Skip to content

Commit d405e6a

Browse files
committed
v3.0.0: three-command split, harness-agnostic rewrite, de-overlapped review
Rolls up all work since v2.5.0, including the untagged v2.6.0 commit, into one squashed release. Breaking change: /implement no longer plans. - /plan promoted to a first-class command that owns the plan-review gate - convergence back-edge: /implement re-gates the plan in-session - review-impl narrowed to a conformance gate; correctness, robustness, standards, and cleanup deferred to red-team (de-overlap) - three-state acceptance-criteria verification (CONFIRMED/PLAUSIBLE/REFUTED) - harness-agnostic skill and agent prose; Codex plugin manifest added alongside the Claude Code manifest, sharing one skills/ directory - design stress-test hardening: crash-safe gates, chunk-graph DAG validation, counted convergence, spec back-edge, honest degradation - validate.sh at 220 checks, adding harness-agnosticism and no-em-dash guards; .gitattributes curates the release archive to installable files See CHANGELOG.md for the full 3.0.0 entry.
1 parent 502be24 commit d405e6a

19 files changed

Lines changed: 1333 additions & 649 deletions

.claude-plugin/plugin.json

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "devloop",
3-
"version": "2.5.0",
4-
"description": "Spec, plan, implement, review: a test-driven development loop for AI coding agents, with structured specifications, TDD chunk decomposition, and independent review agents (plan review, implementation review, and an adversarial red-team diff reviewer).",
3+
"version": "3.0.0",
4+
"description": "Spec, plan, implement, review: a test-driven development loop for AI coding agents. Three commands map to three gates, one per command (plus a convergence back-edge where /implement re-runs the plan gate): /spec (WHAT, spec validation), /plan (HOW, plan review), /implement (BUILD, conformance + adversarial red-team review).",
55
"keywords": ["tdd", "specification", "code-review", "red-team", "workflow", "quality"],
66
"homepage": "https://github.com/KashZod/devloop",
77
"author": {
@@ -13,10 +13,15 @@
1313
"path": "skills/spec",
1414
"description": "Structured specification with user stories, acceptance criteria, and interactive clarification"
1515
},
16+
{
17+
"name": "plan",
18+
"path": "skills/plan",
19+
"description": "Decomposes a spec into an ordered, dependency-aware chunk plan and JSON tracker, then gates it through the independent review-plan agent before any code is written"
20+
},
1621
{
1722
"name": "implement",
1823
"path": "skills/implement",
19-
"description": "Test-driven implementation with chunk decomposition, JSON tracker, quality checklist, and parallel independent review (review-impl + red-team)"
24+
"description": "Test-driven build of a review-passed plan: TDD chunk cycle against the tracker, quality checklist, and parallel independent review (review-impl + red-team). Requires a tracker whose plan_review gate passed"
2025
}
2126
],
2227
"agents": [
@@ -28,7 +33,7 @@
2833
{
2934
"name": "review-impl",
3035
"path": "agents/review-impl.md",
31-
"description": "Independent implementation review, verifies plan conformance, acceptance criteria, test quality, and drift"
36+
"description": "Independent conformance gate, verifies plan match, acceptance criteria met with quoted test evidence, test quality, and regression. Defers correctness, robustness, standards, and cleanup to red-team so the two reviews do not overlap"
3237
},
3338
{
3439
"name": "red-team",

.codex-plugin/plugin.json

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
{
2+
"name": "devloop",
3+
"version": "3.0.0",
4+
"description": "Spec, plan, implement, review: a test-driven development loop for AI coding agents. Three commands map to three gates, one per command (plus a convergence back-edge where /implement re-runs the plan gate): /spec (WHAT, spec validation), /plan (HOW, plan review), /implement (BUILD, conformance + adversarial red-team review).",
5+
"author": {
6+
"name": "KashZod"
7+
},
8+
"homepage": "https://github.com/KashZod/devloop",
9+
"repository": "https://github.com/KashZod/devloop",
10+
"license": "Apache-2.0",
11+
"keywords": ["tdd", "specification", "code-review", "red-team", "workflow", "quality"],
12+
"skills": "./skills/",
13+
"interface": {
14+
"displayName": "devloop",
15+
"shortDescription": "Spec -> plan -> implement TDD loop with independent review gates",
16+
"longDescription": "A test-driven development loop for AI coding agents: /spec clarifies WHAT, /plan decides HOW and gates the plan, /implement builds it with TDD and independent conformance plus adversarial review. Review agents run in isolated context to cut author-evaluator bias.",
17+
"developerName": "KashZod",
18+
"category": "Productivity",
19+
"capabilities": ["Read", "Write"],
20+
"websiteURL": "https://github.com/KashZod/devloop",
21+
"defaultPrompt": [
22+
"Use /spec to clarify a feature into user stories and acceptance criteria.",
23+
"Use /plan to decompose the spec into a reviewed chunk plan.",
24+
"Use /implement to build the plan with TDD and independent review."
25+
]
26+
}
27+
}

.gitattributes

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Keep dev-only files out of `git archive` (GitHub's "Source code" release
2+
# download). The archive then contains only the installable plugin.
3+
validate.sh export-ignore
4+
.github/ export-ignore
5+
docs/ export-ignore
6+
.gitignore export-ignore
7+
.gitattributes export-ignore

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,5 @@ docs/
1313

1414
# Node (if users clone into a node project)
1515
node_modules/
16+
17+
evals/work/

CHANGELOG.md

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,141 @@
11
# Changelog
22

3+
## 3.0.0
4+
5+
Three-command split, a harness-agnostic rewrite, and a de-overlapped
6+
review layer. The loop is now `/spec -> /plan -> /implement`, mapping to
7+
three gates (spec validation, plan review, code review) one gate per
8+
command, with a convergence back-edge where `/implement` re-runs the
9+
plan-review gate in-session. This release rolls up every change since
10+
2.5.0. Breaking change: `/implement` no longer plans.
11+
12+
### Added
13+
- **`/plan` skill**: decomposes a spec into an ordered, dependency-aware
14+
chunk plan, writes the JSON tracker, and runs the `review-plan` gate
15+
before any code is written. This is the old `/implement` Phases 1-2.5
16+
(analysis, chunk decomposition, dependency graph, tracker creation,
17+
plan-review gate), promoted from a buried mid-`/implement` checkpoint to
18+
a first-class command. The plan-review gate is the most important
19+
checkpoint in the loop, now its own visible step.
20+
- **Convergence back-edge**: when a code-time finding (Phase 3) reveals
21+
that the *plan* was wrong (not just the code), `/implement` appends
22+
corrective chunks to the tracker and re-gates in-session by spawning the
23+
`review-plan` agent directly (not by re-invoking `/plan`, which would
24+
regenerate the tracker), preserving completed chunks and looping under a
25+
bounded guard until the plan and code converge. `/plan` gained a
26+
`/spec`-style detect-existing-tracker branch so a re-run merges into the
27+
existing tracker instead of resetting completed work.
28+
- **`spec_doc` tracker field**: `/plan` records the source spec path so
29+
`/implement` and `review-impl` bind to the exact spec instead of
30+
globbing the spec directory (sharpens spec -> tracker traceability).
31+
- **Shared concern vocabulary**: the seven concerns common to `review-plan`
32+
(plan-time) and the Phase 3 checklist (code-time) are now documented as
33+
one vocabulary in `quality-checklist.md`, so the reviewers speak the same
34+
language at both altitudes (the eighth concern is phase-specific: TDD
35+
Quality of the plan vs Blindspots in the code).
36+
- **Three-state acceptance-criteria verification**: `review-impl`
37+
classifies each criterion CONFIRMED / PLAUSIBLE / REFUTED, each backed by
38+
a quoted line, recall-biased (default PLAUSIBLE; only CONFIRMED when a
39+
real test would go red on regression). Ported from the `red-team`
40+
verification model.
41+
- **Spec validation evidence rule**: every WARN/FAIL in the spec
42+
validation checklist must quote the exact spec line it refers to, the
43+
same discipline the review agents apply to code.
44+
- **validate.sh checks**: a harness-agnosticism check fails if any
45+
harness-specific mechanic (`Shift+Tab`, `Ctrl+G`, `/compact`, `/rename`,
46+
`--resume`, and similar) reappears in the skill or agent prose; the
47+
structural suite (~220 checks) also enforces the three-skill layout,
48+
phase sequencing, JSON validity, no project-specific leaks, and no em
49+
dashes in any published file.
50+
- **Empirical validation**: the higher-risk changes, the
51+
`review-impl`/`red-team` de-overlap (does a defect ever fall between
52+
them?) and the three-state false-positive catch, were validated with an
53+
A/B eval harness over seeded fixtures rather than by inspection alone.
54+
55+
### Changed
56+
- **`/implement` is now build-only** (3 phases): Load the Plan (locate the
57+
tracker, hard-stop unless its `plan_review` gate passed, orient on the
58+
next chunk), TDD Cycle per chunk (red/green/verify), and Quality
59+
Verification (8-point checklist + parallel `review-impl` + `red-team`
60+
gate). It refuses to start the TDD cycle on a tracker whose `plan_review`
61+
is missing or FAIL, telling the user to run `/plan` first.
62+
- **`/spec` hands off to `/plan`** instead of `/implement`; its downstream
63+
mapping now routes spec sections to `/plan` (analysis, chunking) and
64+
`/implement` (tests) phases.
65+
- **Plan artifacts moved with the plan**: `tracker-schema.md` and
66+
`chunk-template.md` now live under `skills/plan/references/`;
67+
`quality-checklist.md` stays under `skills/implement/references/` (it is
68+
the Phase 3 code checklist). Each skill cross-references the one shared
69+
file it needs.
70+
- **review-impl narrowed to a conformance gate**: it verifies plan match,
71+
acceptance criteria (with quoted test evidence), test quality, and
72+
regression only. Adversarial correctness, robustness/blindspots,
73+
standards violations, and cleanup are deferred to `red-team`, which
74+
already does them better. This removes the overlap between the two
75+
Quality-Verification reviewers while preserving their
76+
conformance-vs-correctness separation.
77+
- **Harness-agnostic instructions**: removed terminal-specific mechanics
78+
from the skill prose in favor of portable behavior. Plan presentation
79+
states the principle (planning is read-only; present a plan; get explicit
80+
approval) and lets the harness supply the mechanism; context management
81+
and session resumption describe the intent instead of naming specific
82+
keystrokes or commands. Exploration and check-running steps use
83+
conditional phrasing: use a subagent or parallel-tool capability if the
84+
harness has one, otherwise sequential is the default. The workflow tables
85+
are retitled "Mapping to the Explore -> Plan -> Code Loop" with no harness
86+
brand in the header.
87+
- **review-plan / review-impl repointing**: `review-plan`'s description now
88+
says "in the /plan skill"; both agents read "the project's engineering
89+
`PROJECT.md`" rather than "PROJECT.md in the skill directory" (there are
90+
now three skills); `review-impl`'s Criterion 5 and the checklist
91+
reference `/implement` Phase 3 (Quality Verification). Agent names are
92+
unchanged (`review-plan`, `review-impl`, `red-team`).
93+
- **review-plan Criterion 1** renamed "Scope, Completeness & Traceability"
94+
with explicit spec -> plan -> tracker forward/backward traceability
95+
language.
96+
- **Scaffolding trim**: default to continuing multi-chunk work in one
97+
session rather than resetting between chunks; reset only when context
98+
degrades. Chunk decomposition prefers the fewest independently-testable
99+
chunks.
100+
101+
### Migration
102+
- The workflow gains one user-invoked step: after `/spec`, run `/plan`,
103+
then `/implement`. Trackers created by an older `/implement` run without
104+
a `plan_review` field will be refused by the new `/implement`; run
105+
`/plan` (pointed at the existing tracker/spec) to gate them, or set
106+
`plan_review` manually if the plan was already reviewed. Hand-setting
107+
`plan_review: "PASS"` bypasses the review-plan gate: `/implement` trusts
108+
the field and cannot tell a gate-written verdict from a typed one.
109+
110+
### Fixed (design stress-test)
111+
Hardening from an adversarial review of the whole v3.0.0 design:
112+
- **Plan-time gate crash-safety**, the symmetric twin of the convergence
113+
fix. `/plan` creates the tracker with `plan_review: "PENDING"` (never a
114+
pre-stamped `PASS`), writes `FAIL` to disk *before* re-running on a gate
115+
FAIL, and bounds the FAIL/re-run loop, so a crash mid-review can no
116+
longer leave a stale `PASS` that `/implement` would build against.
117+
- **`error` and `in_progress` chunks are no longer dead-ends.** `error` is
118+
documented as non-terminal (re-entered like `in_progress`); `/implement`
119+
Phase 1.3 validates the chunk graph (rejecting `depends_on` cycles and
120+
dangling ids); resumption re-enters an unfinished chunk before searching
121+
for the next `pending` one, so a blocked feature is surfaced, not
122+
silently left with the Phase 3 gate un-triggered.
123+
- **Convergence re-gate loop is now counted.** `convergence_rounds` is
124+
bumped before *each* `review-plan` re-gate (not only when chunks are
125+
appended), so the two-round cap bounds the re-gate loop too; a bail-out
126+
cleanup path is documented.
127+
- **Spec back-edge.** A finding that an acceptance *criterion itself* is
128+
wrong now routes to `/spec` (update mode) instead of into the plan gate
129+
built to reject it.
130+
- **Honest degradation without subagents / without a project rule file.**
131+
The gates document that a harness with no subagent capability degrades
132+
to a non-isolated self-check; `/implement` Phase 3 covers standards and
133+
architecture with a self-check when no `PROJECT.md`/`CLAUDE.md` exists
134+
(where `red-team`'s conventions angle would otherwise return nothing).
135+
- **Docs.** Softened the "1:1 gates" phrasing (`/implement` touches two
136+
gates via convergence); README's table notes review-plan's convergence
137+
spawn; tracker writes documented as atomic.
138+
3139
## 2.5.0
4140

5141
### Changed

PRIVACY.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55

66
## Data Collection
77

8-
This plugin collects no data. It consists entirely of markdown files (skills, agents, references, and templates) that run locally within Claude Code on your machine.
8+
This plugin collects no data. It consists entirely of markdown files (skills, agents, references, and templates) that run locally within your AI coding agent (Claude Code or Codex) on your machine.
99

1010
## What This Plugin Does
1111

12-
- Provides two skills (`/spec`, `/implement`) that guide Claude Code through structured development workflows
12+
- Provides three skills (`/spec`, `/plan`, `/implement`) that guide the agent through structured development workflows
1313
- Provides three review agents (`review-plan`, `review-impl`, `red-team`) that evaluate plans, implementations, and diffs
14-
- All processing happens locally in your Claude Code session
14+
- All processing happens locally in your agent session
1515

1616
## What This Plugin Does NOT Do
1717

@@ -23,7 +23,7 @@ This plugin collects no data. It consists entirely of markdown files (skills, ag
2323

2424
## Third-Party Services
2525

26-
This plugin does not integrate with or send data to any third-party services. Your interactions with Claude Code are governed by [Anthropic's privacy policy](https://www.anthropic.com/privacy) and your own Claude Code configuration.
26+
This plugin does not integrate with or send data to any third-party services. Your interactions with the underlying AI coding agent are governed by that provider's privacy policy ([Anthropic](https://www.anthropic.com/privacy) for Claude Code, [OpenAI](https://openai.com/policies/privacy-policy) for Codex) and your own agent configuration.
2727

2828
## Contact
2929

0 commit comments

Comments
 (0)