feat(kyberforge): make Research doc name one Research registry
validate-provenance.sh assumed `Research doc:` names a research sources.md whose H2 headings are the source slugs, but 29 corpus entries named topic docs and 6 values were not a single path, so checks 7 and 8 reported INFO for 36 entries and nothing ever failed. `Research doc:` now takes exactly one path. An entry with no registry writes `none` plus one `- **Basis:** <path>` bullet per path; each Basis path is existence-checked unless annotated `(removed in <sha>)`. - Check 7 FAILs when a resolved registry lacks the slug, when the value is a topic doc, or when it is a list. An unresolvable path stays INFO. - Check 8 is retired: one registry serves many skills, so requiring every registry slug in each skill's sources.md is unsatisfiable. - The Research doc and Basis parsers accept the inline, bullet and header-plus-bullets spellings, so a differently spelled field is no longer read as absent. Refs: #121 ADR: 0028 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EGHFJextYtVQseaHPDDhxB
This commit is contained in:
@@ -50,11 +50,15 @@ on-disk check. Flag any other spelling of a cross-skill reference.
|
||||
|
||||
Two directories are exempt, and the exemptions are structural rather than discretionary:
|
||||
|
||||
- **`references/sources.md`.** Its `Research doc:` fields are development-time provenance pointers,
|
||||
not runtime references. They are expected to be unresolvable after install, so
|
||||
`validate-provenance.sh` does not treat an absent path as a FAIL — it emits an INFO naming the
|
||||
slug and stating that checks 7 and 8 did not run for it. Flagging them as broken references
|
||||
would make every correctly-provenanced skill fail.
|
||||
- **`references/sources.md`.** Its `Research doc:` and `Basis:` fields are development-time
|
||||
provenance pointers, not runtime references. A `Research doc:` path that does not resolve after
|
||||
install is expected, so `validate-provenance.sh` does not treat an absent path as a FAIL — it
|
||||
emits an INFO naming the slug and stating that check 7 did not run for it. Flagging them as
|
||||
broken references would make every correctly-provenanced skill fail. Where the path DOES
|
||||
resolve, it is checked: `Research doc:` names exactly one Research registry (a `sources.md`
|
||||
whose H2 headings are the source slugs), and a slug missing from it, a topic document in its
|
||||
place, or a list of paths is a FAIL. An entry with no registry writes `Research doc: none` plus
|
||||
`Basis:` repo paths, which are existence-checked unless annotated `(removed in <sha>)`.
|
||||
- **`tests/`.** Test files are dev-only and may reference repo-level infrastructure such as a shared
|
||||
`tests/test_helper/`. The exemption is conditional on the dependency being declared: if `tests/`
|
||||
exists and `tests/README.md` is absent or does not document it, that is a FAIL.
|
||||
|
||||
Reference in New Issue
Block a user