Issue lifecycle model with 9 bundled Claude Code skills for DDD, TDD, moldable development, and parallel code review.
Drives issues from filing through triage, prior-art lookup, DDD + TDD
planning, parallel review fan-out (5 review skills), autonomous
code-review iteration (zero CRITICAL + zero HIGH gate), optional UAT/KB
harvest, and completion. State persists across sessions via the state
resource; the hydrate method writes a cheap summary resource for
long autonomous loops.
State Machine
filed ──[triage]──> triaged
triaged ──[plan]──> planned
planned ──[review_plan]──> reviewing
reviewing ──[approve_plan]──> approved
reviewing ──[reject_plan]──> planned (feedback loop)
approved ──[implement]──> writing_tests
writing_tests ──[review_tests]──> reviewing_tests
reviewing_tests ──[iterate_tests]──> writing_tests (autonomous TDD sub-loop)
reviewing_tests ──[tests_approved]──> implementing (autonomous gate)
implementing ──[review_code]──> code_reviewing
code_reviewing ──[resolve_findings]──> resolved
code_reviewing ──[iterate]──> implementing (autonomous loop)
resolved ──[iterate]──> implementing
resolved ──[harvest]──> harvested (optional)
resolved ──[complete]──> complete
harvested ──[complete]──> completeapprove_plan requires full matrix coverage AND zero open CRITICAL AND
zero open HIGH findings. close works from any state.
Methods
start— file a new issuetriage— classify with optional confidence/regression/reproductionrecord_prior_art— record existing UAT scenarios and KB entriesplan— create/revise plan with DDD analysis, TDD strategy, review matrixreview_plan— enter plan review phaserecord_review— record one reviewer's findingsapprove_plan— approve (gated on coverage + zero blocking findings)reject_plan— reject with auto/human source trackingimplement— start TDD on a branch (enterswriting_tests)review_tests— enter test review phaseiterate_tests— loop back on test-review findings (bumps testReviewIteration)tests_approved— tests clean → write code (autonomous gate; supportsoverride_reasonfor explicit human force-approve after 5-iteration cap)review_code— enter code review phaseresolve_findings— record resolutions, snapshot rounditerate— return to implementation (bumps codeReviewIteration)harvest— record UAT/KB improvement proposalscomplete— mark doneclose— abandon from any statehydrate— write compact summary for autonomous loops
Bundled Skills
issue-lifecycle— orchestrates the full lifecycleddd— domain-driven design building block selectiontdd— red-green-refactor workflow enforcementmoldable-dev— contextual inspectors and live-data queriesreview-code— general code reviewreview-adversarial— adversarial review (7 dimensions)review-security— OWASP-adapted security auditreview-ux— CLI output and error message reviewreview-skill— skill quality review
2026.04.30.5 — TDD test sub-loop with human escalation + explicit plan display
This release wraps up the work introduced across 2026.04.30.3 / .4 (which went out without proper release notes) and adds the CI publish-flow fix that prevents future versions from shipping with empty changelog entries.
What's new since 2026.04.30.2
Phase 5 (Implementation) is now a TDD test-first state machine
implement no longer transitions straight to implementing. It enters
writing_tests, and the lifecycle enforces the TDD discipline at the
state-machine level: tests must be authored, reviewed, and cleared of
blocking findings before any production code is written.
New states:
writing_tests— author failing TDD tests (RED).reviewing_tests— tests under review.implementing(existing) — tests are clean; now write code (GREEN) and refactor.
New ReviewPhase value: test_review (alongside plan_review and
code_review). Each test-review round is snapshotted into reviewHistory
just like plan/code rounds.
New methods
review_tests— fan out reviewers fromreviewMatrixagainst the tests (writing_tests → reviewing_tests). Resets the round and stampsreviewRoundStartedAt.iterate_tests— return towriting_testsbecause findings remain; bumpstestReviewIteration, snapshots round withoutcome: "rejected_auto"or"rejected_human"persource.tests_approved— gated transitionreviewing_tests → implementing. Default autonomous gate (full matrix coverage AND zero open CRITICAL AND zero open HIGH). Accepts an optionaloverride_reasonthat bypasses the blocking-findings gate as an explicit human override after the iteration cap; matrix coverage is still enforced. The override path snapshotsoutcome: "human_override"with the reason stored inrejectReasonfor audit.
Human escalation path (cap-reached safeguard)
After 5 test-review iterations (or signature-loop detection), the autonomous loop must stop and escalate to the human. The skill presents the full iteration history and open blocking findings, then offers two explicit, audited paths:
- Human correction —
iterate_tests --input source=human --input reason="<guidance>". Counter bumps; the round snapshotsrejected_human; tests get rewritten per the human's guidance. - Human override —
tests_approved --input override_reason="<justification>". Bypasses the blocking-findings gate; matrix coverage still required; the round snapshotshuman_overridewith the reason recorded.
Explicit full plan display before approve_plan (Phase 4)
The plan must be presented to the human in full — verbatim, no compression — before approve_plan. SKILL.md now mandates an ordered display:
- Plan summary
- Every step (description, files, risks)
- Full DDD analysis
- Full TDD strategy
- Review matrix
- Potential challenges
- Aggregated review findings (every reviewer, every finding)
- Explicit approval prompt with the accepted phrases ("approve" / "approved" / "LGTM" / "ship it" / "go").
This closes a gap where the model could ask for approval after only summarizing the plan, undermining informed consent at the only true human-gated transition.
Other surface changes
record_reviewguard extended to allowreviewing_tests.hydratesummary now surfacestestReviewIterationalongsidecodeReviewIteration(so the autonomous loop can detect the cap and escalate cheaply without parsing full state).- New
ReviewOutcomevalue:human_override. - Model TypeVersion bumped to 2026.04.30.1; package version 2026.04.30.5.
Backwards compatibility
Existing recorded state parses through schema defaults
(testReviewIteration defaults to 1). Issues already past approved (in
implementing, code_reviewing, etc.) keep working; the new sub-loop
applies to any issue that re-enters via implement.
Tests
47 model tests pass (33 prior + 14 new covering the test sub-loop, the override gate, escalation paths, and the new state machine guards).
Why .3 / .4 changelogs were sparse
2026.04.30.3 was auto-published by CI immediately after the code push,
and the CI publish step did not pass --release-notes — so the
swamp.club changelog entry for .3 was empty. 2026.04.30.4 was a manual
republish to attach notes, but the page still shows .3's empty entry in
the "Previous Versions" section because per-version notes are immutable
once published.
The CI workflow has now been updated to read HEAD's commit message and
pass it as --release-notes on every auto-publish, so future versions
will always carry notes derived from the version-bump commit.
| Argument | Type | Description |
|---|---|---|
| title | string | |
| description | string | |
| labels | array |
| Argument | Type | Description |
|---|---|---|
| priority | enum | |
| affectedAreas | array | |
| reasoning? | string | |
| isRegression? | boolean | |
| clarifyingQuestions | array |
| Argument | Type | Description |
|---|---|---|
| uatScenarios | array | |
| kbEntries | array |
| Argument | Type | Description |
|---|---|---|
| summary | string | |
| steps | array | |
| dddAnalysis | string | Which aggregates, entities, value objects, and domain services are affected |
| testStrategy | string | What tests to write first, red-green-refactor sequence |
| potentialChallenges | array |
| Argument | Type | Description |
|---|---|---|
| reviewer | string | Skill name: review-code, review-adversarial, review-security, review-ux, review-skill |
| verdict | enum | |
| findings | array |
| Argument | Type | Description |
|---|---|---|
| reason | string | |
| source | enum |
| Argument | Type | Description |
|---|---|---|
| branch | string | |
| description | string |
| Argument | Type | Description |
|---|---|---|
| reason | string | |
| source | enum |
| Argument | Type | Description |
|---|---|---|
| override_reason? | string | When set, bypasses the blocking-findings gate as an explicit |
| Argument | Type | Description |
|---|---|---|
| resolutions | record | Map of finding description → resolution action |
| Argument | Type | Description |
|---|---|---|
| reason | string | |
| source | enum |
| Argument | Type | Description |
|---|---|---|
| uatProposals | array | |
| kbProposals | array |
| Argument | Type | Description |
|---|---|---|
| summary | string |
| Argument | Type | Description |
|---|---|---|
| reason | string |
Resources
TDD test sub-loop in implementation phase, with human escalation after the 5-iteration cap.
Highlights since 2026.04.30.2:
- New states: writing_tests, reviewing_tests. New ReviewPhase: test_review.
- New methods:
- review_tests — fan-out reviewers against TDD tests (writing_tests → reviewing_tests).
- iterate_tests — loop back on test-review findings (reviewing_tests → writing_tests); bumps testReviewIteration; snapshots outcome rejected_auto/rejected_human.
- tests_approved — gate transitioning reviewing_tests → implementing. Default autonomous gate (matrix coverage + zero CRITICAL + zero HIGH). New optional override_reason bypasses the blocking-findings gate as an explicit human override after the 5-iteration cap; snapshots outcome=human_override with the reason in rejectReason for audit.
- implement now enters writing_tests (not implementing) so production code is only written after the test-review round comes back clean.
- record_review guard extended to allow reviewing_tests.
- hydrate summary now surfaces testReviewIteration alongside codeReviewIteration.
- New ReviewOutcome value: human_override.
Skill instructions (issue-lifecycle/SKILL.md):
- Phase 4 now mandates explicit, full-content plan display before approve_plan: summary, every step (with files/risks), DDD analysis, TDD strategy, review matrix, potentialChallenges, aggregated review findings — all verbatim, no compression — followed by an explicit approval prompt.
- Phase 5 documents the autonomous TDD sub-loop and the cap-reached escalation path: when testReviewIteration >= 5 (or signature loop detected), the skill must surface the iteration history and open findings to the human and offer two explicit, audited paths — iterate_tests source=human (correction) or tests_approved override_reason=… (force-approve).
Tests: 47 passing (33 prior + 14 new covering the test sub-loop, override gate, and escalation paths).
Backwards compatibility: existing recorded state parses through schema defaults (testReviewIteration default = 1). Any in-flight issue still in implementing/code_reviewing continues to work; the new sub-loop applies to issues that re-enter via implement.
Modified 1 models
Restructure to monorepo layout. Add repository field, root README as additionalFile, improved manifest description with state machine and method docs.
updated labels
Initial publish: issue lifecycle model (v2026.04.09.1) with prior-art lookup, DDD+TDD planning, autonomous code-review iteration, UAT/KB harvest, and hydrate summary resource. Bundled with 9 user skills: issue-lifecycle, ddd, tdd, moldable-dev, review-code/adversarial/security/ux/skill.
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types1/1earned
- Has description1/1earned
- At least one platform tag (or universal)1/1earned
- Two or more platform tags (or universal)1/1earned
- License declared1/1earned
- Verified public repository2/2earned
This extension includes AI agent skills that can modify AI assistant behavior. Review the skill files before installing.