What's included
What’s included
Section titled “What’s included”| Category | Files | Purpose |
|---|---|---|
| CI pipeline | .gitlab-ci.yml, ci/*.yml |
Governance jobs (changelog, gate self-tests and parity, stale references, SAST, secret detection) + stack-specific includes + deploy templates |
| Git hooks | hooks/, scripts/setup-hooks.sh |
Pre-commit: format-check, lint, typecheck. Pre-push: make pre-push-checks (duplicate-MR gate and parity gates) |
| Changelog | changelog.d/, scripts/assemble-changelog.sh |
Fragment-based changelog, CI enforcement, auto-assembly |
| Release | scripts/release.sh, scripts/release-notes.sh, docs/releases/ |
Version bump, changelog rotation, per-release notes |
| MR templates | .gitlab/merge_request_templates/ |
Standardized MR description with checklist |
| Issue templates | .gitlab/issue_templates/ |
Bug, Feature, Task templates |
| Claude agents | .claude/agents/ |
VoC (opus), threat-model (opus), architect (opus), security (opus), rbac-check (sonnet), UX design (opus), UX review (sonnet), accessibility (sonnet), perf (sonnet), schema-check (sonnet), generated-artifact-check (sonnet), test (sonnet), regression (opus), dependency (sonnet), changelog (sonnet), docs (sonnet) |
| Claude skills | .claude/skills/ |
/kickoff, /import-spec, /import-design, /dotplanning, /mr, /fix-mr, /mass-merge, /batch, /review, /adr, /ci-debug, /kaizen, /incident-postmortem, /tracker-hygiene, /release, /pre-release, /voc, /voc-audit, /sunset-check, /memory-audit |
| Harness gates | scripts/check-*.sh, scripts/lib/, scripts/tests/ |
Duplicate-MR gate, pre-push parity, self-test parity, stale STUB/TODO(#N)/SUPPRESSED-UNTIL(#N) references, sigpipe-reader scan, shellcheck, memory-index check, each with a --self-test; tests for scripts/wt |
| Claude rules | scripts/CLAUDE.md (real, ci/CLAUDE.md imports it), backend/CLAUDE.md.example, frontend/CLAUDE.md.example, tests/CLAUDE.md.example |
Nested CLAUDE.md files — Claude Code’s actual path-scoping mechanism — auto-loaded when editing gate scripts, backend, frontend, or test files; the .example ones move into place once your project has that tree |
| Claude hooks | .claude/hooks/ |
Pre-tool safety guards, post-edit agent reminders, pre-MR security gate |
| Personas | .claude/personas.md |
Voice of the Customer panel personas |
| ADRs | docs/adr/ |
Architecture Decision Records (Nygard format) |
| Dep updates | renovate.json, .github/dependabot.yml |
Automated dependency update MRs/PRs |
| Git config | .gitattributes |
Line endings, merge strategies, binary detection |
| Global rules | global-claude-md.example |
Copy to ~/.claude/CLAUDE.md to enforce agent workflow |
| Makefile | Makefile |
Universal interface: setup, customize, lint, test, build, doctor |
| Project rules | CLAUDE.md |
Coding conventions, security defaults, agent workflow |
| Contributing | CONTRIBUTING.md |
Branch naming, commit format, MR checklist |
Removing what you don’t need
Section titled “Removing what you don’t need”- No frontend? Delete
ci/node.yml, remove node sections fromMakefile, delete theux-design.md,ux-review.md, andaccessibility.mdagents - Not a web service (no HTTP endpoints)? Delete the
rbac-check.mdagent and thepre-mr-security-gate.shhook (and itsUserPromptSubmitentry insettings.json) - No CI? Delete
.gitlab-ci.ymlandci/— the changelog workflow works locally without CI - No Claude Code? Delete
.claude/andglobal-claude-md.example— everything else works independently - Different license? Replace
LICENSEwith your preferred license text - GitHub instead of GitLab? Replace
.gitlab-ci.yml→.github/workflows/,.gitlab/→.github/,glab→gh; deleterenovate.json(use.github/dependabot.ymlinstead) - GitLab instead of GitHub? Delete
.github/directory; keeprenovate.json(or use GitLab’s built-in dependency scanning)
Suggested enhancements
Section titled “Suggested enhancements”The template covers the core governance workflow. Depending on your project, consider adding these:
| Enhancement | What it adds | When to add |
|---|---|---|
| CODEOWNERS file | Automatic reviewer assignment per directory/file pattern | When your team has >2 developers with distinct ownership areas |
Container scanning in ci/docker.yml |
CVE scanning of built Docker images (e.g. Trivy, GitLab container scanning) | When deploying containerized services to production |
| Dependency CVE scanning | pip-audit / npm audit / govulncheck CI jobs alongside license checks |
When shipping to production (the template has license checks but not CVE scanning for Python/Node) |
| Richer MR template | Migration notes, deployment impact, rollback plan, reviewer assignment sections | When your deployments have database migrations or multi-service dependencies |
| GitLab approval rules | Require N approvals before merge, with per-directory overrides | When your team has a formal review process |
| GitLab merge trains | Serialized merge queue that rebases and tests before merging | When main breaks frequently from concurrent MR merges |
File tree
Section titled “File tree”.├── .claude/│ ├── agents/│ │ ├── accessibility.md # WCAG 2.1 AA conformance (sonnet)│ │ ├── architect.md # Technical architecture review (opus + sonnet sub-agents)│ │ ├── changelog.md # Changelog fragment creation (sonnet)│ │ ├── dependency.md # Package review before adding (sonnet + sonnet sub-agents)│ │ ├── docs.md # Documentation writing (sonnet + sonnet sub-agents)│ │ ├── generated-artifact-check.md # Schema/type/SDK drift and staleness (sonnet)│ │ ├── perf-check.md # N+1 and query performance (sonnet)│ │ ├── rbac-check.md # Access-control audit for endpoints (sonnet)│ │ ├── regression-check.md # Pre-merge regression audit (opus + sonnet sub-agents)│ │ ├── schema-check.md # Migration and constraint safety (sonnet)│ │ ├── security-review.md # OWASP Top 10 + project-specific (opus + sonnet sub-agents)│ │ ├── test-scaffold.md # Test generation (sonnet + sonnet sub-agents)│ │ ├── threat-model.md # STRIDE threat model at design time (opus + sonnet sub-agents)│ │ ├── ux-design.md # UI/UX design proposal (opus + sonnet sub-agents)│ │ ├── ux-review.md # Design system compliance (sonnet)│ │ └── voc.md # Voice of the Customer panel (opus + sonnet sub-agents)│ ├── skills/│ │ ├── adr/SKILL.md # /adr — Architecture Decision Record│ │ ├── batch/SKILL.md # /batch — land a wave of issues, one agent per worktree ⛔│ │ ├── ci-debug/SKILL.md # /ci-debug — diagnose pipeline failures│ │ ├── dotplanning/SKILL.md # /dotplanning — plan a release milestone → HTML report ⛔│ │ ├── fix-mr/SKILL.md # /fix-mr — get a blocked MR green AND mergeable ⛔│ │ ├── import-design/SKILL.md # /import-design — design guide → frontend/CLAUDE.md│ │ ├── import-spec/SKILL.md # /import-spec — PRD/spec → tracker issues ⛔│ │ ├── incident-postmortem/SKILL.md # /incident-postmortem — one incident → a memory entry│ │ ├── kaizen/SKILL.md # /kaizen — audit the harness for speed wins│ │ ├── kickoff/SKILL.md # /kickoff — interactive project setup ⛔│ │ ├── mass-merge/SKILL.md # /mass-merge — land a batch of MRs safely ⛔│ │ ├── memory-audit/SKILL.md # /memory-audit — sweep the memory store ⛔│ │ ├── mr/SKILL.md # /mr — open merge request ⛔│ │ ├── pre-release/SKILL.md # /pre-release — cross-cutting audit│ │ ├── release/SKILL.md # /release — create a release ⛔│ │ ├── review/SKILL.md # /review — code review│ │ ├── tracker-hygiene/SKILL.md # /tracker-hygiene — tracker drift sweep between kickoffs│ │ ├── voc/SKILL.md # /voc — VoC panel on a spec, before build│ │ ├── sunset-check/SKILL.md # /sunset-check — should this still exist?│ │ └── voc-audit/SKILL.md # /voc-audit — VoC panel on what shipped ⛔│ ├── hooks/│ │ ├── on-stop.sh # Stop hook — post-response actions (notify, log)│ │ ├── post-edit-checks.sh # Post-edit agent reminders (customize per stack)│ │ ├── pre-mr-security-gate.sh # UserPromptSubmit — gate /mr on rbac/security review│ │ └── pre-tool-safety.sh # Pre-tool guards (lock files, migrations, CI config)│ ├── rules/│ │ ├── backend.md # Path-scoped rules loaded on backend files│ │ ├── frontend.md # Path-scoped rules loaded on frontend files│ │ ├── gates.md # Path-scoped rules loaded on scripts/ and CI config│ │ └── tests.md # Path-scoped rules loaded on test files│ ├── personas.md # VoC persona definitions (replace examples with yours)│ └── settings.json # Hooks, permissions, and Claude Code settings├── .github/│ └── dependabot.yml # Dependabot config (GitHub projects — delete if GitLab)├── .gitlab/│ ├── issue_templates/│ │ ├── Bug.md│ │ ├── Feature.md│ │ └── Task.md│ └── merge_request_templates/│ └── Default.md├── ci/│ ├── docker.yml # Kaniko build verification│ ├── go.yml # Go lint, test, vuln check│ ├── node.yml # Node.js lint, test, license│ └── python.yml # Python lint, test, license├── changelog.d/│ └── README.md # Fragment naming guide├── docs/│ ├── adr/│ │ ├── README.md # ADR format and naming guide│ │ └── 0001-record-architecture-decisions.md # Seed ADR (meta)│ └── releases/ # Blueprint's own release notes (delete or replace with yours)├── frontend/│ └── CLAUDE.md.example # Package-level CLAUDE.md starter (see /import-design)├── hooks/│ ├── pre-commit # Runs make format-check, lint, typecheck (each if defined)│ └── pre-push # Runs make pre-push-checks├── scripts/│ ├── lib/│ │ └── git-ignored.sh # is_ignored / drop_ignored_lines — scan the repo, not the dir│ ├── tests/ # wt-args / wt-prune / wt-ports tests for scripts/wt│ ├── adr-accepted-issue-sweep.py # Open issues written BEFORE the ADR they name│ ├── assemble-changelog.sh # Collect fragments into CHANGELOG.md│ ├── check-gate-selftest-parity.sh # Every CI gate self-tests in its OWN job│ ├── check-issue-collision.sh # Block a push that would duplicate another session's MR│ ├── check-memory-index.sh # Claude memory index size and dangling links (make memory-check)│ ├── check-prepush-parity.sh # Every CI gate script must be runnable before push│ ├── check-release-pipeline.sh# A tag may not publish from a commit whose branch pipeline failed│ ├── check-sigpipe-readers.sh # No early-exit reader (grep -q / head) behind a pipe│ ├── check-stale-references.sh# STUB/WIP, TODO(#N)/SUPPRESSED-UNTIL(#N) vs closed issues│ ├── check-version-lockstep.py# Every version-bearing manifest agrees, and none is behind the changelog│ ├── customize.sh # Setup checklist (make customize) — reports, never edits│ ├── doctor.sh # Verify prerequisites│ ├── release-notes.sh # Generate docs/releases/<version>.md│ ├── release.sh # Version bump + changelog rotation│ ├── setup-hooks.sh # Install git hooks from hooks/│ └── wt # Git-worktree helper (incl. worktree-private `wt stash`)├── website/ # This documentation site (Astro Starlight → GitLab Pages)├── .env.example├── .gitattributes # Line endings, merge strategies, binary detection├── .gitignore├── .gitlab-ci.yml # Governance CI + stack includes├── CHANGELOG.md # Seeded with [Unreleased]├── CLAUDE.md # Project conventions for Claude Code├── CONTRIBUTING.md # Contributor workflow guide├── LICENSE # Apache 2.0 (change if needed)├── global-claude-md.example # Copy to ~/.claude/CLAUDE.md to enforce agent workflow├── Makefile # Universal: setup, customize, lint, test, build, doctor├── README.md # Landing page — points here for everything else└── renovate.json # Renovate config (GitLab projects — delete if GitHub)