§2 missing LICENSE | Create LICENSE with the SPDX-identified license text and the correct copyright holder |
§3 missing README.md sections | Edit README.md; hand off to update-readme 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 |
| §10.3 floating or under-pinned toolchain | Edit the workflow to pin at or above the minimums declared in the fetched OSS_SPEC.md §10.3 table |
| §10.5 missing pin file / pin ↔ CI mismatch | Add the language's repo-root pin (rust-toolchain.toml, .python-version, .nvmrc, or go.mod toolchain directive) and align it with ci.yml |
§11.1 missing docs/ content | Create the topic file, then hand off to update-docs |
| §11.2 website drift | Regenerate website sources, hand off to update-website |
| §11.3 SEO outputs missing (sitemap.xml, robots.txt, og-default.png, JSON-LD, canonical link) | Add website/src/seo/siteConfig.<ext> as the single source of truth, generate sitemap.xml / robots.txt / og-default.png into website/public/ from it, splice the same data into the served <head> (Vite plugin, Helmet, etc.), and call verify-seo from the pages.yml job |
§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.4 missing central output module | Add src/output.<ext> (or lib/output.<ext>) with semantic helpers (status, info, warn, error, header) and route existing prints through it |
§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 to tests/<stem>_test.<ext> usually resolves both at once. Escape hatch: add oss-spec:allow-large-file: <reason> in a comment within the first 20 lines — the reason must be non-empty and genuinely justify the size (generated code, cohesive state machine, third-party snapshot, inherent rule-catalogue density). |
§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 | git rev-parse HEAD > .agent/skills/<skill>/.last-updated |
§21.5 missing required update-* skill | Create .agent/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 |