Project-Template/docs
null ef4494c83e fix(tools): doc-triggers could not see the documents at the repository root
Collection started at DOCS.rglob("*.md"), so nothing at the root was read.
README.md, project-readme-template.md and both START-HERE documents carry a full
status header, and Governs lines nothing ever looked at. Changing a file they
govern fired nothing, and the run said "No document's Governs matched these
paths" -- true of the tool, false of the repository.

Third instance of one shape in two days, each a level further out. Documents
whose Governs carried a gloss were handed a glob no file could satisfy; before
that a root resolved by depth pointed the whole tool outside the repository; here
four documents were never collected at all. Every one of them printed something
reassuring while checking less than it claimed.

Root documents are now collected alongside the tree. The root walk is glob, not
rglob -- deliberately one level deep, so a vendored copy of this template, a
scratch checkout or somebody's directory of notes cannot enrol its documents as
governing the project that holds it. Verified: a vendor/Template/README.md
declaring Governs: src/** is not consulted.

## Status is what separates a document from a template for one

project-readme-template.md carries `Status: <Current | Draft | Superseded |
Archived>` and a Governs describing the README of whichever project copies it.
Collecting the root without a guard would trade a document that never fires for a
template that always does, which is the pair of failures this script has spent
two days on.

DOC_TRUST_MAP.md already makes the status vocabulary a rule with a checker behind
it, so that is the test: a document whose Status is not one of the four words is
not treated as governing anything here. It is **named, not dropped** -- when such
a document governs a path in the change it is listed with its status, because a
silent exclusion is the failure being fixed, not a smaller version of it. A
document that governs a subject rather than paths can never fire mechanically, so
an unfilled one is left out of the judge-these-yourself list entirely rather than
sitting in it permanently.

Both branches were exercised: a root template governing src/** is named and not
fired; the same file with Status: Current fires normally.

The no-match message now covers this case too, rather than claiming nothing
matched when something did and was set aside for a stated reason.

## Documents

architecture/README.md's row says where doc-triggers reads from, which has
changed. DOC_TRUST_MAP.md owns the status header: it now says root documents
carry one and are read, that the root is one level deep and why, and what the
four status words separate.

Verified from a clean clone: touching START-HERE-New-Project.md fires README.md;
docs/ behaviour is unchanged across a modified script, a modified document, a
modified githook, a branding asset and a staged deletion; the scripts/ copy still
resolves its own root. doc-claims reads 116 claimed paths across 23 files, all
present.

closes #22

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-18 00:12:49 -05:00
..
architecture fix(tools): doc-triggers could not see the documents at the repository root 2026-08-18 00:12:49 -05:00
data fix(docs): two documents claimed files that must not exist 2026-08-17 22:45:35 -05:00
design chore(repo): put the template under version control 2026-08-17 22:44:26 -05:00
history chore(repo): put the template under version control 2026-08-17 22:44:26 -05:00
planning chore(repo): put the template under version control 2026-08-17 22:44:26 -05:00
qa feat(qa): pass I, money flowing backwards 2026-08-17 22:54:03 -05:00
security feat(docs): two markers for entries that do not apply everywhere 2026-08-17 22:55:56 -05:00
DOC_TRUST_MAP.md fix(tools): doc-triggers could not see the documents at the repository root 2026-08-18 00:12:49 -05:00
OPERATIONS.md feat(docs): OPERATIONS.md, the runbook that did not exist 2026-08-17 22:57:20 -05:00
TOOLS.md chore(repo): put the template under version control 2026-08-17 22:44:26 -05:00
WORK_CYCLE.md docs(tracker): the milestone naming this template teaches truncates on the card 2026-08-17 22:49:23 -05:00