Setlist emerging
Spec-driven development for Claude Code in which specs, rather than chat history, are the control surface, and generated projects carry tracked Git hooks that enforce closed-spec discipline on pushes to the trunk.
Reviewed 6 hours ago · Aug 31, 2026
Website GitHub · AlexCiortan/setlist Compare with other frameworks →
- Stars
- 0
- Contributors
- 1
- Open issues
- 0
- Age
- 2 months
- Last push
- yesterday
- Latest release
- v2.3.0 Aug 30, 2026
View weekly commit data
| Week starting | Commits |
|---|---|
| Aug 30, 2026 | 1 |
| Aug 23, 2026 | 3 |
| Aug 16, 2026 | 1 |
| Aug 9, 2026 | 0 |
| Aug 2, 2026 | 0 |
| Jul 26, 2026 | 3 |
| Jul 19, 2026 | 6 |
| Jul 12, 2026 | 0 |
| Jul 5, 2026 | 1 |
| Jun 28, 2026 | 0 |
| Jun 21, 2026 | 0 |
| Jun 14, 2026 | 0 |
| Jun 7, 2026 | 0 |
| May 31, 2026 | 0 |
| May 24, 2026 | 0 |
| May 17, 2026 | 0 |
| May 10, 2026 | 0 |
| May 3, 2026 | 0 |
| Apr 26, 2026 | 0 |
| Apr 19, 2026 | 0 |
| Apr 12, 2026 | 0 |
| Apr 5, 2026 | 0 |
| Mar 29, 2026 | 0 |
| Mar 22, 2026 | 0 |
| Mar 15, 2026 | 0 |
| Mar 8, 2026 | 0 |
| Mar 1, 2026 | 0 |
| Feb 22, 2026 | 0 |
| Feb 15, 2026 | 0 |
| Feb 8, 2026 | 0 |
| Feb 1, 2026 | 0 |
| Jan 25, 2026 | 0 |
| Jan 18, 2026 | 0 |
| Jan 11, 2026 | 0 |
| Jan 4, 2026 | 0 |
| Dec 28, 2025 | 0 |
| Dec 21, 2025 | 0 |
| Dec 14, 2025 | 0 |
| Dec 7, 2025 | 0 |
| Nov 30, 2025 | 0 |
| Nov 23, 2025 | 0 |
| Nov 16, 2025 | 0 |
| Nov 9, 2025 | 0 |
| Nov 2, 2025 | 0 |
| Oct 26, 2025 | 0 |
| Oct 19, 2025 | 0 |
| Oct 12, 2025 | 0 |
| Oct 5, 2025 | 0 |
| Sep 28, 2025 | 0 |
| Sep 21, 2025 | 0 |
| Sep 14, 2025 | 0 |
| Sep 7, 2025 | 0 |
Metrics updated Aug 31, 2026 · collected automatically from the GitHub API
Core approach
A human directs as architect and reviewer while a Planner writes one small spec with explicit out-of-scope boundaries and exhaustive acceptance criteria, then a Builder implements it. Two QA passes and a completed Closing report gate closure; stamped Git hooks check commits and merges and run a push-time audit of trunk history, while the Claude Code session hooks are advisory.
Workflow
/setlist:new— bootstrap an empty directory through an interview, approved foundational decisions, and a two-phase project stamp/scaffold— use the generated project-local skill to wire the test harness, record the gate command, create the first commit, and arm the Git hooks- Plan one spec at a time — the Planner re-grounds from repository artifacts, writes explicit scope and acceptance criteria, and parks ambiguities instead of improvising
/setlist:checkpoint— open the spec branch, survey and commit spec-scoped work, run the close gate, and merge with--no-ff- Build and verify — the Builder implements in small commits, then records automated criterion-by-criterion QA and a human spot-check in the Closing report
/setlist:validateand/setlist:gate— check instance health and govern transitions between roadmap stages/setlist:journal— capture a substantive session's raw findings and surprises in the repository/setlist:retrofitor/setlist:upgrade— adopt Setlist around an existing codebase or migrate an earlier framework edition
Supported tools
- Claude Code
Strengths
- Tracked Git hooks provide commit- and merge-time checks plus a push-time trunk audit, so the core discipline survives context loss and model changes
- Every release is cold-dogfooded end to end, while a hostile automated suite attacks secret scanning, style checks, incomplete Closing reports, and unspecced trunk work
- Known boundaries, defects, upstream conditions, and bypass routes are documented unusually explicitly, including the distinction between cooperating discipline and security
- Deep Claude Code integration uses plan mode, model switching, session hooks, generated project-local skills, and plugin distribution instead of a lowest-common-denominator workflow
Limitations
- Discipline control, not a security boundary — local Git hooks can be bypassed or left unwired, and deliberate enforcement belongs in forge-side branch protection and required checks
- The supported bootstrap and operating ceremony is Claude Code-specific, even though Git runs the installed enforcement hooks independently of the agent harness
- Execution is deliberately sequential: only one spec is active and coupled code is not written by multiple agents concurrently, though read-only parallel research is allowed
- The advisory session-hook reasons are not shown to the model on documented current Claude Code versions, so practical feedback arrives from later Git-hook refusals
Notes
Setlist makes the repository the durable memory for an AI-directed project: specs, a bounded status file, decision records, journals, and a living architecture diagram survive session resets, while a Planner/Builder split maps onto Claude Code’s plan and execution modes. Its published operating loop is intentionally serial: plan one spec, branch, build, run two QA passes, complete the Closing report, close, then repeat. The framework document defines the spec contract in detail, including explicit out-of-scope items, acceptance criteria, QA verdicts, and the required Closing report. See the versioned README’s principles and operating loop and the v1.11 spec template.
The strongest differentiator is mechanical enforcement. A generated instance includes tracked Git hooks for
early commit and merge checks plus a pre-push audit that examines trunk history for code that did not arrive
through a closed spec. Setlist is careful not to overstate that mechanism: its documentation calls it a
discipline control for cooperating use, lists known ways determined committers can evade local enforcement, and
directs security-sensitive users to forge-side branch protection and required checks. The same documentation
also records a current harness limitation: advisory session-hook reasons are dropped on Claude Code’s allow
path, leaving Git-hook refusals as the feedback users actually see. See the trunk-audit and limitations
documentation and the
stamped Git-hook templates.
The project reports both cold end-to-end dogfood runs and hostile subprocess tests before release, with an automated hook suite running on Linux and macOS. Its rapid release history reached plugin v2.3.0 and framework edition v1.11 in August 2026, which supports an emerging maturity rating: the mechanics are substantial and actively tested, while the published limitations remain extensive and the interface is still changing. See the testing account, the test suite, and the first-party release history.