Release candidate. Material shift in positioning: this template is now a reference implementation of the layered AI constitution pattern with halt-on-violation enforcement.
Added
- Layered AI constitution split across
CLAUDE.md,.claude/engineering.md,.claude/workflow.md,.claude/stack.md, and.claude/roles/(ADR-036) - Testing philosophy adopted as house rules — test-first, AAA structure, no conditional assertions, no lowered thresholds (ADR-037)
- Three-pass Architect → Coder → Reviewer workflow with explicit hand-off artefacts (ADR-038)
- Container API helper for
.astrocomponent microtests; microtests now ship for every atom and molecule (ADR-040) - Stryker mutation testing nightly via
.github/workflows/mutation.yml; local invocationpnpm test:mutate(ADR-042) - CRAP score budget policy for high-coupling functions (ADR-043)
- Coupling-map tooling to surface high-fan-in modules (ADR-044)
AGENTS.mdat repo root — cross-tool AI agent spine read natively by Cursor, Codex CLI, Copilot, Windsurf, Aider, Devin, Zed, Continue, Amp, and Amazon Q (ADR-045)scripts/src/build-agents-md.tswithpnpm agents:buildandpnpm agents:check— generatesAGENTS.mdfrom the layered constitution; CI fails on drift- Homepage "AI-Assisted Development" card rewritten as "Agentic Discipline Built In" naming the constitution, role-separated workflow, and halt-on-violation gates
- Homepage tech stack now lists Astro Container API and Stryker as first-class testing tools
- README "Why This Starter?" bullet rewritten ("Agentic discipline built in") and a new "Working with AI Agents" section documents the layered constitution, the
AGENTS.mdcross-tool spine, and Uncle Bob's Clean AI: Agentic Discipline source - SVG hero images for the
design-decisionsandai-optimized-means-ai-readyblog posts; the latter is now published (draft removed)
Changed
pnpm quality:cinow halts on any violation — broken tests, lint, types, and markdown all block merge with no--no-verifybypass (ADR-039). Breaking for contributors: PRs that previously landed without passing tests will now be blocked.quality:cinow also chainsagents:checkso a source-file edit withoutAGENTS.mdregeneration fails CI.windsurfrulesshrunk from 179 lines to a ~20-line Windsurf-specific overlay; full context now comes fromAGENTS.md.claude/stack.md"Multi-tool sync" footer replaced with a generated-spine notedocs/ai-context/INDEX.mdRules of Engagement section no longer duplicates the halt-on-violation rules (the 7-vs-10 drift it encoded was the motivating example for ADR-045); points atAGENTS.mdinsteaddocs/ai-context/ai-rules-setup.mdrewritten for the AGENTS.md pattern with a 2026 tool-support matrix- ADR-035 Category 1 enumeration:
airules.examplerow removed;AGENTS.mdrow added - README, CONTRIBUTING, and
docs/getting-started/included-in-this-template.mdupdated to describe the cross-tool spine instead of the per-tool copy workflow - E2E suite restructured for ADR-037 hygiene (one logical assertion per test, behaviour-describing names); Gherkin extension declined as unnecessary ceremony given the rewrite already reads as specifications
- Homepage Foundation tier card replaces "CI pipeline" with "Layered AI constitution" and "Halt-on-violation CI gates"
- Homepage Build tier card replaces "Automated tests & CI quality gates" with "Container API microtests for every atom & molecule" and "Test-first discipline enforced in CI (ADR-037)"
- Homepage Polish tier card replaces "Post-launch monitoring" with "Mutation testing as quality verification (ADR-042)"
- Homepage "Lighthouse Performance Scores" section renamed to "Quality Metrics" to accommodate both runtime performance and test-quality dimensions
- Homepage CTA footer "AI Optimized" replaced with "Agentic Discipline"; subhead updated to reference the layered constitution
package.jsondescription rewritten from "AI-optimized documentation" to "a layered AI constitution with halt-on-violation enforcement"; previously-emptyauthor,homepage,repository.url, andbugs.urlfields populated- ADR-040 Notes section cleaned of a hardcoded
/Users/chrispezza/…path leak — now cross-links to ADR-042 instead
Fixed
@stryker-mutator/core,@stryker-mutator/vitest-runner, and@vitest/coverage-v8were declared but not installed locally; lockfile refreshed sopnpm test:mutateworks on first clone
Removed
airules.example— stale Chrome Extension / React / Shadcn / Express boilerplate; setup docs that recommended copying it (cp airules.example .windsurfrules) would have overwritten the working Windsurf rules with the wrong stack. Replaced by the generatedAGENTS.mdpattern (ADR-045)