BeeDev workflow rules -- TDD mandatory, disk-is-truth, no auto-commit. Spec-driven development with phase lifecycle.
From beenpx claudepluginhub bee-coded/bee-dev --plugin beeThis skill uses the workspace's default tool permissions.
templates/eod-report.mdtemplates/phases.mdtemplates/project-config.jsontemplates/requirements.mdtemplates/review-report.mdtemplates/spec.mdtemplates/state.mdtemplates/tasks.mdtemplates/testing.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Executes pre-written implementation plans: critically reviews, follows bite-sized steps exactly, runs verifications, tracks progress with checkpoints, uses git worktrees, stops on blockers.
These rules apply to ALL work within a Bee-managed project. No exceptions.
NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST
Write code before the test? Delete it. Start over.
The Red-Green-Refactor cycle:
Watch It Fail (MANDATORY): After writing a test, run it and confirm:
Test passes immediately? You're testing existing behavior. Fix the test.
Verification before completion: Before claiming work is done, verify with fresh evidence:
Testing anti-patterns (avoid these):
Common rationalizations (all wrong):
| Excuse | Reality |
|---|---|
| "Too simple to test" | Simple code breaks. Test takes 30 seconds. |
| "I'll test after" | Tests-after pass immediately and prove nothing. |
| "Already manually tested" | Manual testing is not systematic and cannot be re-run. |
| "Deleting my code is wasteful" | Sunk cost fallacy. Unverified code is technical debt. |
| "Keep code as reference" | You'll adapt it. That's testing-after in disguise. |
| "Need to explore first" | Fine. Throw away exploration, then start with TDD. |
| "Hard to test = skip test" | Hard to test = hard to use. Listen to the test. |
| "TDD will slow me down" | TDD is faster than debugging. Always. |
| "Existing code has no tests" | You're improving it. Start with tests for your changes. |
Red flags — STOP and start over:
All of these mean: delete code, start over with TDD.
All critical state lives on disk. Never rely on conversation memory.
STATE.md tracks current spec, phase progress, decisions, and last actionTASKS.md is the execution contract -- tasks, waves, research notes, agent notes, completion statusconfig.json holds project configuration (stacks with per-stack linter and test runner, CI, review settings)user.md holds user preferences and work style rules (see User Preferences below)If it is not on disk, it does not exist.
The user decides when and what to commit via /bee:commit. Never commit automatically. Never stage files without explicit user instruction through the commit command.
These rules are non-negotiable and apply to ALL commands and agents.
R1: Bee never auto-commits. Commit is only a suggestion. User confirms via /bee:commit.
R2: Bee never suggests clear or compact. User sees the statusbar and decides. If user explicitly asks for clear/compact via Custom option, then execute.
R3: Interactive menu at every major step. Use AskUserQuestion with selectable options parameter. Last option is always "Custom" (free text input). On ALL workflows without exception.
R4: Re-review available after any review/fix cycle. No iteration limit. User decides when it's clean.
R5: Unlimited clarifying questions. discuss, new-spec, and any conversational flow — no hardcoded limit. Continue one-at-a-time questions until context is sufficient. User can always choose to move forward.
R6: When user selects an option, execute it. No follow-up warnings, no extra confirmation (exception: commit has its own confirmation flow via bee:commit).
R7: user.md is the only persistent memory. Injected to all agents at SubagentStart. Contains preferences, rules, work style. Only conductors write to it, never agents.
When spawning agents via the Task tool, the conductor (parent command) chooses the model based on the agent's work complexity. All agents use model: inherit in their frontmatter -- the conductor overrides at spawn time.
Model selection guide:
| Model | When to use | Examples |
|---|---|---|
model: "sonnet" | Structured/template work, scanning, classification, validation, comparison | researcher, spec-writer, phase-planner, plan-reviewer, finding-validator, integrity-auditor, test-auditor, test-planner, reviewer (ad-hoc mode — focused scope scan) |
| (omit / inherit) | Production code, complex reasoning, deep analysis, interactive sessions | implementer, fixer, reviewer (full phase review — deep multi-category analysis), spec-shaper |
Decision principle: If the agent follows a template, does read-only scanning, runs tools mechanically, or classifies into fixed categories -- pass model: "sonnet". If the agent writes production code, makes architectural decisions, or needs deep nuanced analysis -- omit the model parameter (inherits parent model).
The conductor SHOULD assess each spawn and pass model: "sonnet" explicitly for structured work, or omit the model for reasoning-heavy work. This is not optional -- it is how Bee manages cost and speed.
.bee/user.md is the only persistent memory file. It contains user preferences, work style rules, and recurring decisions. It is injected to all agents via the SubagentStart hook. Only conductor commands write to it — agents never modify it directly.
Work only on features and tasks defined in specs. No ad-hoc implementation.
Every feature follows this lifecycle:
| Step | Command | Output |
|---|---|---|
| Plan What | /bee:new-spec | Spec document with requirements |
| Plan How | /bee:plan-phase | TASKS.md with waves and tasks |
| Do | /bee:execute-phase | Implementation with TDD |
| Check | /bee:review | Review findings, validated fixes |
| Test | /bee:test | Manual test verification |
| Commit | /bee:commit | Clean, reviewed commit |
Phases must be reviewed before advancing to the next phase (phases.require_review_before_next in config).
Context7 provides live documentation lookups for framework APIs and best practices. Several agents (researcher, bug-detector, stack-reviewer, security-auditor, api-auditor, audit-bug-detector) have Context7 tools in their frontmatter.
skills/context7/SKILL.md for the Library IDs Per Stack table — this maps stack names to Context7 library namesmcp__context7__resolve-library-id with the library name from the tablemcp__context7__query-docs with the resolved libraryId and a specific questionContext7 MCP tools may not be available in all environments. If the tools are missing or fail:
For projects with multiple stacks, each agent should resolve library IDs for the specific stack it's working with. The researcher agent resolves libraries for ALL configured stacks when doing broad research.