All notable changes to this project are documented here, following Common Changelog.
-
Add
hone(aliascode-review-loop) — stage 5: local adversarial review of the implementation diff (spec-conformance / security / simplicity lenses with mandatory active procedures, ≤400-changed-line review units, A++ = two consecutive zero-blocking rounds, max 3 rounds), between quench and merge -
Add quench hardening gates: diff-scoped mutation testing (line coverage reported, never gated), host-repo static/type/security checks, an FR ↔ test traceability sweep (
@pytest.mark.fr("FR-NNN")/@FR-NNNGherkin tags), and a stable-green rule (new tests pass 3× in randomized order; a flake is red, never a retry) -
Add the test freeze: from amber onward a test changes only after
spec.md/tasks.mdchange first; test agents never write implementation andfastapi-implementertreats test files as read-only -
Add
specs/NNN-<slug>/quench-log.md— append-only per-task cycle log (red/amber/green timestamps, amber's failure message, diff size, gate results, waivers) -
Add property-based tests (Hypothesis) derived from PRD Safeguards and SC invariants, characterization-test-first handling for
[REFACTOR]tasks, and sample-and-select (2–3 independent candidates judged by the frozen tests) for[HARD]tasks -
Add active reading procedures to temper's critics (re-derive sections, trace a data flow, draft per-FR test skeletons — findings without the artifact are discarded) and a capture-recapture overlap signal that caps near-disjoint rounds at B+ in both review loops
-
Add the five SPDD pipeline skills:
forge(PRD authoring),anvil(spec/plan/tasks decomposition),temper(adversarial review loop),quench(BDD-first red-amber-green execution),smithy(state-machine orchestrator) -
Add invocation aliases:
prd-authoring,speckit-decomposition,adversarial-review-loop,bdd-tdd-execution,spdd-pipeline -
Add the five quench dispatch agents:
bdd-scenario-writer,tdd-test-generator,playwright-e2e-tester,fastapi-implementer,labcoat -
Add
install.shfor symlinking skills and agents into a consumer repo's.claude/ -
Vendor obra/superpowers v4.3.1 and github/spec-kit v0.10.1 as pinned submodules
-
Add
docs/production-readiness.md— phased single-founder plan (licensing, CI, releases, installer hardening, automated maintenance) -
Add MIT
LICENSE(vendored submodules retain their upstream licenses) -
Add CI workflow: shellcheck + syntax checks, alias-symlink and frontmatter integrity, install/uninstall smoke test on Ubuntu and macOS (including stock bash 3.2), and a changelog-updated gate on PRs
-
Add
tests/smoke.sh— end-to-end installer test against a throwaway consumer repo (idempotency, ownership guarantee, pruning, verify, dry-run, uninstall) -
Add
install.sh --verify(link health report for bug reports) and--dry-run(print planned actions without touching anything) -
Add stale-link pruning: install now sweeps damascus-owned links whose names are no longer shipped; uninstall removes every owned link, not just known names
-
Add Dependabot config for monthly vendor-submodule and GitHub Actions bumps, and a bug-report issue template
-
Add README sections: requirements, pinned-tag install, upgrading, support posture and licensing; document the release ritual and submodule bump policy in CLAUDE.md
- Redraw
docs/assets/hero.pngwith a real alpha channel: the previous file carried an opaque cream background remnant above the forge and 250 speckle regions of keying debris, and it showed four stages withforge anvil temper quenchpainted into its pixels. The new plate is five objects and no lettering — 5 regions for 5 objects, 2.06% partial alpha, no border bleed — with the stage names moved to a README caption - Make
install.shportable to bash 3.2 / stock macOS (replacedeclare -Aandreadlink -fwith portable equivalents) - Replace the external-API review gate in
temperwith a fully local adversarial panel (3 critic lenses + judge; A++ = two consecutive zero-blocking rounds, max 5 rounds) - Change forge's Norms section to require machine-checkable form (the tool + config that enforces each norm, installed as gates by quench) and mark each Safeguard as the source of a property test or runtime assertion
- Change anvil's task format: optional
[UX]/[REFACTOR]/[HARD]tags and a ≤400-changed-line sizing budget per task (oversized tasks come back as anvil feedback via the quench log) - Change smithy's state machine to drive hone after quench and halt on hone's 3-round cap
- Add a smithy finish step at the end of the cycle: after hone reaches A++, update
README.mdandCHANGELOG.mdfor the feature, then run theatlasskill scoped to the completed feature if it is available (silent no-op otherwise, like the kanban sync) - Move
superpowers:requesting-code-reviewfrom KEEP to DENY —honereplaces it;receiving-code-reviewstays KEEP for applying findings - Replace the 95% line-coverage gate in
tdd-test-generator's pytest config with mutation-testing guidance and a registeredfrmarker for requirement traceability
- Make the README hero image background transparent (renders cleanly on dark and light themes)
- Fix three quench agents (
tdd-test-generator,labcoat,fastapi-implementer) that defined Amber as "minimal implementation", contradicting quench's fails-for-the-right-reason contract