§2 missing LICENSE | Create LICENSE with the SPDX-identified license text and the correct copyright holder |
§3 missing README.md sections | Edit README.md; run update-readme afterwards if extensive rewording is needed |
§4/§5/§6 missing CONTRIBUTING.md / CODE_OF_CONDUCT.md / SECURITY.md | Create the file with the minimum content mandated by the corresponding spec section |
| §7.1 tool-specific guidance file is not a symlink | Replace the regular file with ln -s AGENTS.md <path> (or ln -s ../AGENTS.md .github/copilot-instructions.md) |
§8.4 missing CHANGELOG.md | Create an empty Keep-a-Changelog-formatted file; do not hand-author entries |
| §9 Makefile target missing | Add the missing target to Makefile and verify it runs end-to-end |
| §10.1/§10.3/§10.4 missing workflow | Create .github/workflows/<file>.yml; cross-reference the upstream templates/_common/.github/workflows/ for the canonical template |
| §10.3 floating or under-pinned toolchain | Edit the workflow to pin at or above the spec minimums (see upstream MIN_TOOLCHAIN_VERSIONS in src/validate/toolchain.rs) |
§11.1 missing docs/ content | Create the topic file, then run update-docs |
| §11.2 website drift | Run make website and inspect website/src/generated/; follow up with update-website |
§13.5 prompts/<name>/ has no versioned file | Add prompts/<name>/1_0_0.md with the required YAML front matter (name, description, version: 1.0.0) and ## System / ## User sections |
| §15 missing issue / PR templates | Create the templates under .github/ISSUE_TEMPLATE/ or .github/PULL_REQUEST_TEMPLATE.md |
| §19 raw print statement outside the project's output module | Route the call through the project's structured output helpers |
§20 inline #[cfg(test)] mod { … } block in src/ | Move the tests to tests/<module>_tests.rs and replace with #[cfg(test)] #[path = "..._tests.rs"] mod tests; |
§20.2 test file stem does not end with _test(s) / Test(s) | Rename the file so the stem matches the regex _?[Tt]ests?$ |
| §20.5 source file exceeds 1000 lines | Preferred: split the file by concern into sibling modules / helpers. Common easy case: if the file also has a §20 inline-test violation, extracting the test block usually resolves both at once. Escape hatch: if the size is genuinely justified (generated code, cohesive state machine, third-party snapshot), add oss-spec:allow-large-file: <reason> in any comment within the file's first 20 lines — the reason must be non-empty. |
§21.2 .claude/skills is not a symlink | Replace it with ln -s ../.agent/skills .claude/skills |
| §21.3 SKILL.md missing front matter fields | Add name: / description: to the front matter |
§21.4 missing .last-updated | Touch the file and record the current HEAD: git rev-parse HEAD > .claude/skills/<skill>/.last-updated |
§21.5 missing required update-* skill | Create .claude/skills/<skill>/SKILL.md (+ .last-updated); register it in maintenance/SKILL.md |
§21.6 maintenance skill registry row missing | Add the row in maintenance/SKILL.md, alphabetical, with a run-order slot |