Purpose
Decide what "good" means for this project up-front so the scaffold can include the right guardrails from day one.
Questions to ask (in order)
- Code style: existing style guide (company, open-source convention) or pick language defaults?
- Linting and formatting tools per language.
- Testing strategy: which levels apply (unit, integration, end-to-end) and rough coverage expectation.
- Test frameworks per language.
- Security baseline: dependency scanning, secrets management, SAST, auth testing, and whether to include a threat-modeling commitment (ask explicitly whether a threat model document should be part of the scaffold).
- Accessibility target (for any UI): none, WCAG AA, or WCAG AAA.
- Performance budgets: any hard numbers (page load, API p95 latency, memory ceiling, bundle size)?
- Documentation expectations: README only, README plus ADRs, or full docs site.
- Observability baseline: logs only, logs + metrics, or logs + metrics + tracing.
- Profile opt-ins: which
profile-*skills in the session workspace should this project follow? List skill names by exact name (e.g.,profile-java-database-access). Leave empty if none apply. If the user is unsure, glob<SESSION_DIR>/.claude/skills/profile-*/SKILL.mdand show the names plus their description lines so the user can pick.
Use AskUserQuestion where multiple choice fits.
Solution space to present
- Test pyramid shapes: heavy unit / balanced / heavy integration or E2E. Tradeoff: feedback speed vs. realism.
- Security tooling: language-native audit tools (
npm audit,pip-audit,cargo audit), Dependabot or Renovate, Snyk, Semgrep, Trivy (containers), explicit threat-model document. - Observability: OpenTelemetry + self-hosted (Prometheus/Grafana/Jaeger), hosted (Datadog, Honeycomb, New Relic, Grafana Cloud), print-to-stdout + log aggregator.
- ADR practice: none / lightweight markdown ADRs / formal architecture docs.
Required schema
style_guide(string)linters_formatters(list per language)testing({levels, coverage_target, frameworks})security(list)accessibility_target(string)performance_budgets(list)documentation(string)observability(string)profiles(list of profile skill names — possibly empty)
Output
Write two top-level sections to PROJECT_BRIEF.md, in this order:
## Quality & Standards— captures the answers to questions 1–9 above. Replace any prior## Quality & Standardssection when re-run.## Profiles— one profile skill name per line, exactly as they appear in.claude/skills/. WriteNoneon a single line if the list is empty. Replace any prior## Profilessection when re-run.
The ## Profiles section is a separate top-level heading (not a subsection) because every role agent reads it independently during the develop workflow.
Frontmatter contribution
Update these YAML frontmatter fields (see CLAUDE.md for the full schema). Leave every other field untouched:
test.framework— the primary test framework (e.g.,junit,spock,pytest,vitest,jest,go test)test.levels— list of levels the project commits to (e.g.,[unit, integration],[unit, integration, e2e])test.coverage_target— the stated target (e.g.,80%,none)profiles— list of profile skill names, exactly as they appear in.claude/skills/. Must be identical to the names written in the## Profilesprose section; keep them in sync.