A · Small feature
Use this when the change is small, local, and already matches an existing pattern.
The process
ACEF doesn't invent a new lifecycle. It overlays the normal SDLC, then orchestrates the frameworks you already use — BMAD v2, Kiro, spec-kit, GSD, OpenSpec — through your project's real adapter, running only the phases a given request needs.
This guide starts at the first brief. Once the work is framed, ACEF routes into the SDLC phases below and only runs the parts that matter for that request.
ACEF runs one of two lanes, then applies process gates before anything is marked done.
| Lane | Use when | Gate |
|---|---|---|
| Lightweight | Small, scoped, ongoing work | Planner / Developer / Judge, with mechanical · standard · guarded tracks |
| Full BMAD v2 | Epics, large features, core behavior, multi-module, or risky-and-large work | Real BMAD conductor/skills must resolve, and each phase must bind to a separate worker persona |
ACEF_PREFLIGHT.md must PASS before planning or implementation. Before a story/task is done, verify route, lane, track, skill paths, phase order, artifacts, and evidence.
Before epic close, verify drift audit, trace, epic test-review, E2E/user-flow evidence, manual QA ledger, product-done audit, retrospective, and status close.
When a story creates the first reusable UI/runtime pattern, it needs a round-trip proof through the real surface before other stories reuse it. UI epics need representative E2E at close.
For risky/large work, user flows become test cases before automation and before final story slicing.
The conductor routes the lifecycle. Test Author, Developer, Code Reviewer, Verify-Patch Reviewer, Test Reviewer, and Process Judge are separate actors. A worker cannot approve its own output.
acef-state records each actor and worker scope, captures command output with a hash, and requires Process Judge PASS to cite successful evidence. Epic transitions use an exact hashed human approval quote.
Epics/stories generation creates every Epic N Process Judge [PENDING] row up front. The next epic cannot start until the prior epic gate is PASS.
Before epics/stories, an independent Architect or Process Judge checks codemap use, golden-neighbor claims, source discrepancies, counts, and do-not-copy entries. Findings need a ledger disposition before stories start.
Independent, non-overlapping stories may run in parallel, workers must return complete final reports inline, and low-risk work can use lighter review tiers. Guarded/security/routing/storage work keeps full separation.
Evidence stays on disk. Chat reports path, verdict, key evidence, and next step; no full artifact or broad search dumps by default.
BMAD v2 is itself a full pipeline (Analysis → Planning → Solutioning → Implementation) with agent personas. ACEF uses BMAD as the large-feature heavy lane and imports its output — it never regenerates what BMAD already produced.
claude-plugins/acef-bmad-guard/ or run scripts/install-acef-bmad-guard --repo /path/to/repo.
The full guard is repo-local under .acef/hooks/; Claude Code and Codex can use the optional
--global-dispatcher shim to find that local hook.
When an ACEF lane marker is present, the hook blocks the dispatcher/conductor from writing BMAD artifacts or
implementation files while allowing dedicated persona workers. It also blocks Epic N+1 story-start commands
until Epic N Process Judge is PASS.| BMAD produces | ACEF maps it to |
|---|---|
| PRD (functional / non-functional requirements) | requirements.md |
| Architecture document | design.md |
| Epics / stories / tasks | tasks.md |
| Readiness report | Definition-of-Ready evidence |
ACEF orchestrates; it doesn't force you to use all of these. You use what your project already has, and ACEF imports the output through the adapter into one canonical format.
| Framework | Plugs into | What ACEF takes |
|---|---|---|
| BMAD v2 | Phases 2–4 (large feature) | PRD→requirements, architecture→design, stories→tasks; import, don't regenerate |
| Kiro | Phases 2–4 (spec format) | the 3-file requirements/design/tasks shape + EARS acceptance criteria |
| GitHub spec-kit | Phases 2–4 (traceability) | FR-###/US#/SC-### IDs + tasks tagged to stories |
| OpenSpec | Phase 4 (brownfield currency) | ADDED/MODIFIED/REMOVED deltas that keep living specs current |
| GSD | Phase 1 / onboarding | orientation + codebase mapping |
The differentiator vs any single tool: ACEF binds all of them to your extracted adapter (per-repo, evidence-based) and runs them behind one agent — no ceremony, no double work.
A route is just a subset of phases. This is why "every job goes through all 8 phases" is false.
| Route | Phases it runs |
|---|---|
| A · Small feature | 1 → 5 → 6 (skip 2–4) |
| B · Large feature | 1 → 2 → 3 → 4 → 5 → 6 |
| C · Bug fix | 1 → 5 → 6 (root-cause first) |
| D · Test cases | 2 (flows→AC) → 6 |
| E · Test automation | 6 (bootstrap first) |
| F · Unit / integration | 6 |
Same routes, but spelled out. Each card shows the shortest useful path for that job.
Use this when the change is small, local, and already matches an existing pattern.
Use this when scope is larger, a new contract appears, or multiple modules are affected.
Use this when the job is about restoring behavior, not adding a new feature shape.
Use this when the output is a test plan or structured cases before automation.
Use this when the project needs the first real test pattern before broader automation can scale.
Use this when the job is about test coverage in the project’s actual framework and command set.