Two small independent false positives, both suited to a first contribution.
1. DEAD_COMMAND reads package-manager builtins as script names
A scaffold documenting `pnpm install` gets:
✗ DEAD_COMMAND:48 Script "install" not found in package.json scripts
install is a builtin, not a script. checkCommands in
src/drift/checkers/command.ts matches:
/^(?:npm\s+run|yarn|pnpm|bun\s+run)\s+(\S+)/
npm run x and bun run x are scoped correctly, but bare yarn and pnpm
swallow their builtins, so install, add, dlx and ci are looked up as
scripts and reported missing.
2. INDEX_MISSING_ENTRY ignores frontmatter edges
A pattern referenced from patterns/INDEX.md only as an edge:
edges:
- target: syntax-extractor-review.md
is reported as exists but is not referenced in INDEX.md. It is referenced —
checkIndexSync in src/drift/checkers/index-sync.ts parses markdown links and
backticks only, never frontmatter.
This looks like an oversight, not a decision: the sibling checker
src/drift/checkers/stale-pattern.ts already handles edges and says why —
"Frontmatter edges are mex's canonical navigation, so a pattern reached only
through an edge is not orphaned." The two checkers currently disagree about the
same concept.
Two small independent false positives, both suited to a first contribution.
1.
DEAD_COMMANDreads package-manager builtins as script namesA scaffold documenting
`pnpm install`gets:installis a builtin, not a script.checkCommandsinsrc/drift/checkers/command.tsmatches:/^(?:npm\s+run|yarn|pnpm|bun\s+run)\s+(\S+)/npm run xandbun run xare scoped correctly, but bareyarnandpnpmswallow their builtins, so
install,add,dlxandciare looked up asscripts and reported missing.
2.
INDEX_MISSING_ENTRYignores frontmatter edgesA pattern referenced from
patterns/INDEX.mdonly as an edge:is reported as
exists but is not referenced in INDEX.md. It is referenced —checkIndexSyncinsrc/drift/checkers/index-sync.tsparses markdown links andbackticks only, never frontmatter.
This looks like an oversight, not a decision: the sibling checker
src/drift/checkers/stale-pattern.tsalready handles edges and says why —"Frontmatter edges are mex's canonical navigation, so a pattern reached only
through an edge is not orphaned." The two checkers currently disagree about the
same concept.