DO-330 TQL-5 alignment — formalizes the Scenario-as-shall-statement convention in feature files and adds an automated baseline of tool-hygiene TOR requirements driven by
CLAUDE.md.
Highlights
FEATURE_TEMPLATE.mdcodifies one artifact, two roles: Scenario title is the formalshallstatement; Given/When/Then is the verification procedure./peak-workflow:setupauditsCLAUDE.mdfor two new sections (Tool Hygiene & Operability and Security Baseline) and adds a Step 7: Audit Repo Hygiene Files check (README, CHANGELOG, LICENSE, .gitignore, CI config, lockfile)./peak-workflow:capture-requirementsderives baseline tool-hygiene TORs automatically — one per active line in the Tool Hygiene section, with default shall-statement forms per project type (CLI / Web app / Service / Library / Hybrid).
Non-breaking for projects predating v1.3.0: capture-requirements warns and allows continuation when the Tool Hygiene section is absent.
Added
-
setupskill —Tool Hygiene & Operabilityaudit and CLAUDE.md section. Setup now audits CLAUDE.md for aTool Hygiene & Operabilitysection that declares the project's load-bearing tool-hygiene mechanisms — five categories driven by project type (CLI tool / Web app / Service or API / Library / Hybrid):- Version exposure to the user (mechanism varies:
--versionflag for CLIs,/versionendpoint + footer for web apps,__version__for libraries, etc.) - Version stamped at log startup (universal)
- Version single source of truth (one authoritative file)
- Logging convention (levels, format, configuration location)
- Exit code convention (CLI / Hybrid only)
- stdout / stderr discipline (CLI / Hybrid only)
- Error-message standard (problem + next user action)
When
setupfinds the section missing, it prompts the user for each line and writes the section into CLAUDE.md. The section is consumed by/peak-workflow:capture-requirementsto derive baseline TOR requirements automatically. - Version exposure to the user (mechanism varies:
-
setupskill —Security Baselinestatic section. Setup now audits CLAUDE.md for aSecurity Baselinesection covering the load-bearing negative invariants that are NOT derived as TORs (because "do not X" is hard to verify by Given/When/Then):- No
shell=True/evalwith user input - No logging of secrets or PII
- No secrets committed to the repo
The section is written verbatim — not customized per project — and is reviewed by
/peak-workflow:startand/peak-workflow:wrapup, not derived as TORs. - No
-
setupskill — Step 7: Audit Repo Hygiene Files. New step that audits the load-bearing repo-root files and CI / build artifacts that mature projects maintain:README.md— detect-and-stub (offers a stub with project-type-aware install / quick-start)CHANGELOG.md— detect-and-stub (Keep-a-Changelog 1.1.0 format)LICENSE— detect-and-warn (legal artifact; not auto-generated).gitignore— detect file presence; onWEAK, surface missing high-signal entries (.env, build/dependency dirs by stack, editor / OS files)- CI configuration — detect across GitHub Actions, GitLab CI, CircleCI, Azure Pipelines, Bitbucket Pipelines, Jenkins; warn if absent
- Lockfile — detect by tech stack (npm/yarn/pnpm/bun for Node, poetry/uv/pipfile for Python, Cargo for Rust, go.sum for Go, etc.); warn if absent
Items that carry legal weight or must come from the build toolchain (LICENSE, CI config, lockfile) are detect-and-warn only; setup does not auto-create them.
-
capture-requirementsStep 3A.2.1: Baseline Tool Hygiene TORs. New sub-step that reads theTool Hygiene & Operabilitysection of CLAUDE.md and ensures at least one TOR requirement covers each active (non-N/A) line. Default shall-statement forms are provided for both CLI and web-app project types; project-specific declarations in CLAUDE.md override the defaults. Baseline TORs are placed in the most appropriate functional-area feature file (typically the first —01-cli,01-app, etc.) and lead the file's TORs. -
capture-requirementsStep 4: Tool Hygiene rows in the trace table. Each active Tool Hygiene line in CLAUDE.md is enumerated as a trace-table input row, ensuring it maps explicitly to one or more TOR IDs. -
capture-requirementsStep 5: Tool Hygiene coverage quality check. New quality check rejects a capture run that leaves any active Tool Hygiene line uncovered.
Changed
-
capture-requirementsStep 1: Load Context — explicitly captures theTool Hygiene & OperabilityandSecurity Baselinesections from CLAUDE.md. If the Tool Hygiene section is missing, the skill warns and asks whether to continue without baseline TORs or stop and run/peak-workflow:setupfirst. Existing projects that pre-date v1.3.0 are not blocked. -
capture-requirementsStep 7: Present Summary — adds two new lines to the "By the Numbers" output: baseline tool-hygiene TOR count, and Tool Hygiene lines covered out of total.
Also bundled — feature template redesign (originally tracked as v1.2.0)
FEATURE_TEMPLATE.md— restructured to make the "one artifact, two roles" principle explicit. The Scenario title is the formalshallstatement (the requirement) and the Given/When/Then is its verification procedure (the test case). No separateRequirement:orVerification:fields are introduced — the existing Gherkin shape carries both roles.- New "Core Principle" section.
- "Gherkin Subset Used" table — encouraged: Doc Strings (
"""), Data Tables, inline# Note:blocks, section banner comments. Excluded: Tags,Background:,Rule:,Scenario Outline/Examples:. - Worked CLI example demonstrating Doc Strings for multi-line config content and a Data Table for tabular expected output.
- Generic plain-English step vocabulary in the template; application-specific dialect emerges over time as a project's test step library matures.
capture-requirementsStep 3A.2 PM persona — Scenario title carries the full shall statement; Given/When/Then is the verification procedure.capture-requirementsStep 5 quality checks — every Scenario title (after the[TOR-NN-XXXXXXX]tag) is a full sentence containingshall. Rejectshould/will/may/must/canin the normative slot. Reject@tags,Background:,Rule:,Scenario Outline/Examples:.
Notes
- v1.3.0 is non-breaking for existing projects. Projects that have not yet run setup with the v1.3.0 audit can continue to use
/peak-workflow:capture-requirementswithout baseline TORs (warn-and-continue path). Re-run/peak-workflow:setupto add theTool Hygiene & OperabilityandSecurity Baselinesections, then re-run capture to pick up baseline TORs. - The
Security Baselinesection is universal and not customized. It is loaded into every session via CLAUDE.md and is reviewed during/peak-workflow:startand/peak-workflow:wrapuprather than verified by TOR Given/When/Then — TORs verify positive observable behavior, and "do not X" invariants are a poor fit for that shape.