AV-SWE — plan-driven software engineering at scale
Turn a large software engineering effort into a small, ordered, dependency-aware, verifiable task
plan, and execute it reliably. Built by generalizing the clean-room
scope → plan → implement skills for ordinary development where the real source code is present
(no clean-room blinders), plus explicit long-lived project-management operations for driving a big
project over many sessions.
The whole system lives under a plan root (default <project-root>/swe/) and is driven by seven
operations (block/unblock are two directions of one mechanism). Nothing here is a rigid process
for its own sake — the point is that a big project stays plannable, trackable, and consistently
deliverable without the plan rotting.
This file is deliberately a thin index. Each op's full procedure lives in its own file under ops/;
shared conventions (layout, naming, state machine, config schema) live under conventions/. Read the
linked file for the op you're about to run — do not rely on this page alone.
When to use
- The user wants to plan a large project, feature set, migration, or refactor.
- The user wants to break a large body of work into sprints and small atomic tasks.
- The user wants to execute a planned chunk of work with confidence it actually builds and verifies.
- The user asks "where are we", "what's next", "is the plan consistent", or wants to move tasks
between states.
Operations at a glance
| Op |
Effect |
Produces / mutates |
Full procedure |
av-swe scope |
Capture requirements and current architecture into spec docs |
swe/specs/*.md |
ops/scope.md |
av-swe plan |
Derive an ordered sprint + task plan from specs/source |
swe/PLAN.md, swe/sprints/sprint-NNN-*/ |
ops/plan.md |
av-swe implement |
Execute one sprint through the state machine, gated on build+test |
task moves + *-summary.md |
ops/implement.md |
av-swe status |
Report plan health: open/in_progress/blocked/done, next sprint, gaps |
read-only report |
ops/status.md |
av-swe validate |
Check plan integrity (ordering, deps, coverage, ids) |
read-only report |
ops/validate.md |
av-swe block / unblock |
Move a task to/from the blocked state |
task file moves |
ops/block-unblock.md |
av-swe configure |
Inspect or set project conventions |
swe/av-swe.config.json |
ops/configure.md |
Only implement writes source code. The others produce or mutate planning artifacts.
Plan root & layout
Everything is rooted at the plan root (default <project-root>/swe/; override via
configure): PLAN.md at the root, specs/ + notes/ as inputs, and sprint folders under
sprints/sprint-NNN-[kebab-name]/, each holding backlog/, in_progress/, blocked/, done/ task
folders. All four state folders always exist (each holds a .gitkeep, even when empty), and a
task's physical folder — never its Status: field alone — is the source of truth for its state.
Full directory tree, naming rules, the task state machine, and the .gitkeep convention:
conventions/layout.md.
Configuration
All ops read swe/av-swe.config.json (optional; every field defaults sanely, and a missing file
means "use the project's standard build/test commands," never an invented gate).
Schema, defaults, and project-specific escape hatches: conventions/config.md.
Hard rules
- Task files describe what to build + how to verify — never full implementations. Short
signatures/data shapes are fine; source bodies belong in
implement, not in task files.
- Never mark a task done with a failing build or failing tests.
- One task at a time by default (parallel mode is an explicit, guarded exception); always
reflect status by physically moving the file between folders.
- Numeric order = execution order, both for sprints and tasks within a sprint. Never renumber
completed tasks.
- Respect task order and dependencies. A later task must never depend on something unbuilt.
- Implement only the task in hand. Do not advance the plan during an
implement run beyond the
current sprint.
- Keep
PLAN.md in sync whenever sprints/tasks change — it is the single source of truth a
status/validate/next-sprint answer is read from.
- Every sprint's four state folders always exist, each with a
.gitkeep. Create all four with
their .gitkeep the moment a sprint folder is created; never delete a .gitkeep, even once the
folder holds real files — a folder emptied by moving its last task out (e.g. backlog/ at the
end of a sprint) must still exist afterward.
Reference templates
- references/task-template.md — the task file contract.
- references/plan-template.md — PLAN.md (strategy, indexes, coverage).
- references/summary-template.md — the per-task audit trail.
- references/spec-overview-template.md — whole-effort spec.
- references/spec-sub-template.md — feature/architecture spec.
Bootstrap checklist (first use on a project)
av-swe configure — optional; set test/build gates if the default guesses are wrong.
av-swe scope — unless requirements are already written down.
av-swe plan — derive swe/PLAN.md + sprints/sprint-001/… task files.
av-swe implement — run sprints in order.
av-swe status — at any point to see where the project stands.
1---2name: av-swe3description: Manage a large-scale software engineering project as a versioned, ordered, dependency-aware task plan, executed one sprint at a time through a backlog -> in_progress -> done state machine, with an auditable trail and PLAN.md as the single source of truth. Generalizes the clean-room scope -> plan -> implement pipeline for ordinary (non-clean-room) development: the real source is present and tasks reference it, not just specs. Ops: scope (capture what to build into swe/specs/), plan (derive sprints+tasks), implement (execute one sprint with a hard build+test definition of done), status/validate (plan health), block/unblock, configure. Use when the user wants to plan a large project, break requirements into sprints/tasks, run a sprint, or inspect plan progress.4---56# AV-SWE — plan-driven software engineering at scale78Turn a large software engineering effort into a **small, ordered, dependency-aware, verifiable task9plan**, and execute it reliably. Built by generalizing the clean-room10`scope → plan → implement` skills for ordinary development where the **real source code is present**11(no clean-room blinders), plus explicit long-lived project-management operations for driving a big12project over many sessions.1314The whole system lives under a **plan root** (default `<project-root>/swe/`) and is driven by seven15operations (`block`/`unblock` are two directions of one mechanism). Nothing here is a rigid process16for its own sake — the point is that a big project stays **plannable, trackable, and consistently17deliverable** without the plan rotting.1819This file is deliberately a thin index. Each op's full procedure lives in its own file under `ops/`;20shared conventions (layout, naming, state machine, config schema) live under `conventions/`. Read the21linked file for the op you're about to run — do not rely on this page alone.2223## When to use2425- The user wants to plan a large project, feature set, migration, or refactor.26- The user wants to break a large body of work into sprints and small atomic tasks.27- The user wants to execute a planned chunk of work with confidence it actually builds and verifies.28- The user asks "where are we", "what's next", "is the plan consistent", or wants to move tasks29 between states.3031## Operations at a glance3233| Op | Effect | Produces / mutates | Full procedure |34|----|--------|--------------------|-----------------|35| `av-swe scope` | Capture requirements and current architecture into spec docs | `swe/specs/*.md` | [ops/scope.md](ops/scope.md) |36| `av-swe plan` | Derive an ordered sprint + task plan from specs/source | `swe/PLAN.md`, `swe/sprints/sprint-NNN-*/` | [ops/plan.md](ops/plan.md) |37| `av-swe implement` | Execute one sprint through the state machine, gated on build+test | task moves + `*-summary.md` | [ops/implement.md](ops/implement.md) |38| `av-swe status` | Report plan health: open/in_progress/blocked/done, next sprint, gaps | read-only report | [ops/status.md](ops/status.md) |39| `av-swe validate` | Check plan integrity (ordering, deps, coverage, ids) | read-only report | [ops/validate.md](ops/validate.md) |40| `av-swe block` / `unblock` | Move a task to/from the blocked state | task file moves | [ops/block-unblock.md](ops/block-unblock.md) |41| `av-swe configure` | Inspect or set project conventions | `swe/av-swe.config.json` | [ops/configure.md](ops/configure.md) |4243Only `implement` writes source code. The others produce or mutate planning artifacts.4445---4647## Plan root & layout4849Everything is rooted at the **plan root** (default `<project-root>/swe/`; override via50`configure`): `PLAN.md` at the root, `specs/` + `notes/` as inputs, and sprint folders under51`sprints/sprint-NNN-[kebab-name]/`, each holding `backlog/`, `in_progress/`, `blocked/`, `done/` task52folders. All four state folders always exist (each holds a `.gitkeep`, even when empty), and a53task's physical folder — never its `Status:` field alone — is the source of truth for its state.5455Full directory tree, naming rules, the task state machine, and the `.gitkeep` convention:56[conventions/layout.md](conventions/layout.md).5758## Configuration5960All ops read `swe/av-swe.config.json` (optional; every field defaults sanely, and a missing file61means "use the project's standard build/test commands," never an invented gate).6263Schema, defaults, and project-specific escape hatches: [conventions/config.md](conventions/config.md).6465---6667## Hard rules68691. **Task files describe what to build + how to verify — never full implementations.** Short70 signatures/data shapes are fine; source bodies belong in `implement`, not in task files.712. **Never mark a task done with a failing build or failing tests.**723. **One task at a time by default** (parallel mode is an explicit, guarded exception); always73 reflect status by physically moving the file between folders.744. **Numeric order = execution order**, both for sprints and tasks within a sprint. Never renumber75 completed tasks.765. **Respect task order and dependencies.** A later task must never depend on something unbuilt.776. **Implement only the task in hand.** Do not advance the plan during an `implement` run beyond the78 current sprint.797. **Keep `PLAN.md` in sync** whenever sprints/tasks change — it is the single source of truth a80 `status`/`validate`/next-sprint answer is read from.818. **Every sprint's four state folders always exist, each with a `.gitkeep`.** Create all four with82 their `.gitkeep` the moment a sprint folder is created; never delete a `.gitkeep`, even once the83 folder holds real files — a folder emptied by moving its last task out (e.g. `backlog/` at the84 end of a sprint) must still exist afterward.8586## Reference templates8788- [references/task-template.md](references/task-template.md) — the task file contract.89- [references/plan-template.md](references/plan-template.md) — PLAN.md (strategy, indexes, coverage).90- [references/summary-template.md](references/summary-template.md) — the per-task audit trail.91- [references/spec-overview-template.md](references/spec-overview-template.md) — whole-effort spec.92- [references/spec-sub-template.md](references/spec-sub-template.md) — feature/architecture spec.9394## Bootstrap checklist (first use on a project)95961. `av-swe configure` — optional; set test/build gates if the default guesses are wrong.972. `av-swe scope` — unless requirements are already written down.983. `av-swe plan` — derive `swe/PLAN.md` + `sprints/sprint-001/…` task files.994. `av-swe implement` — run sprints in order.1005. `av-swe status` — at any point to see where the project stands.