Project-Template/docs
null 2577cb9ed8 fix(tools): three documents doc-triggers has never once fired
docs/data/README.md, docs/data/img/README.md and
docs/architecture/githooks/README.md have never fired for anything, since the
first commit. They were not reported as skipped either -- they fell into neither
list, so nothing on screen said they had not been checked.

Each carries a Governs entry that explains itself after the glob:

    Governs: docs/data/** -- the assets privacyllc.dev renders for this project

Governs is split on commas only, so that is one entry and the whole string was
used as the glob. It contains a slash, so looks_like_path() called it a path and
the document was classified as path-governing -- which also kept it out of the
"govern a subject rather than paths, judge them yourself" list, the one that
exists so a reader does not conclude everything was checked. Then matches()
tested the file against a glob ending "renders for this project", which is false
and always would be.

Same class as the previous commit and the opposite sign, which makes it worse.
That one fired a document when it should not: a false prompt, costing a glance.
This one silently did not fire when it should, costing a document that goes
quietly stale while the tool reports success. GUARDS.md opens with the sentence
that applies -- a guard that cannot fail is worse than no guard, because it is
trusted.

docs/data/img/README.md governs the branding assets, which is the subject of open
issue #14. Editing them had never once prompted the document that specifies their
names, dimensions and ceilings.

The glob is now extracted from the entry: cut at the first spaced em dash, en
dash or --, then take the tokens on the left that themselves look like paths,
falling back to the entry unchanged if that yields nothing.

Three details are load-bearing:

- The cut requires whitespace both sides. A bare - would halve source-grep and
  doc-claims, both of which appear in these headers.
- Tokens come from the left of the gloss, not the whole entry. privacyllc.dev in
  the docs/data gloss passes looks_like_path on the extension rule and would
  otherwise become a glob firing on a file nobody has.
- Classification still reads the whole entry. Deciding path-or-subject on a token
  would move documents between the two lists as a side effect of this fix.

A trailing / on a glob now means the directory and everything under it.
githooks/README.md governs "the .githooks/ a project installs", which extraction
yields as a bare .githooks/, and fnmatch would not match a file inside it.

DOC_TRUST_MAP.md owns the header schema, so it now states the gloss form and that
it is the only one recognised -- a gloss in parentheses or after a colon puts a
document straight back into silence, which is the failure that was invisible here
for the life of the repository.

Verified: both docs/data documents fire on docs/data/img/icon.webp when it is
added, deleted and modified; githooks/README.md fires on
docs/architecture/githooks/pre-commit and on .githooks/pre-commit; privacyllc.dev
matches nothing; the split stays 7 path-governing and 12 subject-governing,
exactly as before. The previous commit's behaviour is unchanged -- a modified
script still fires TOOLS.md and architecture/README.md and not DOC_TRUST_MAP.md.

closes #21

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-17 23:53:12 -05:00
..
architecture fix(tools): three documents doc-triggers has never once fired 2026-08-17 23:53:12 -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): three documents doc-triggers has never once fired 2026-08-17 23:53:12 -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