Found during a 2026-07-08 miner-roadmap audit: the natural next sibling extraction to the already-shipped test-evidence classifier.
src/signals/path-matchers.ts's matcher family — classifyChangedFile, isGeneratedFile, isVendoredFile, isLockfile, isMinifiedFile, isDocsFile, isDependencyManifestFile, isConfigFile, isNonSubstantivePaddingFile — is 100% pure. Its only import is ./test-evidence, which is already extracted to packages/gittensory-engine/src/signals/test-evidence.ts. The file's own header comment already documents portability discipline ("MUST NOT import from local-branch.ts... reachable from apps/gittensory-ui"), meaning it was written with exactly this kind of extraction in mind.
This is also a direct prerequisite for the separate slop-scoring extraction issue, which depends on this landing first.
Deliverables
References
src/signals/path-matchers.ts (source to move, including its own portability-discipline header comment)
packages/gittensory-engine/src/signals/test-evidence.ts (the extraction pattern to mirror exactly)
packages/gittensory-engine/package.json (exports map — add the new subpath)
Found during a 2026-07-08 miner-roadmap audit: the natural next sibling extraction to the already-shipped test-evidence classifier.
src/signals/path-matchers.ts's matcher family —classifyChangedFile,isGeneratedFile,isVendoredFile,isLockfile,isMinifiedFile,isDocsFile,isDependencyManifestFile,isConfigFile,isNonSubstantivePaddingFile— is 100% pure. Its only import is./test-evidence, which is already extracted topackages/gittensory-engine/src/signals/test-evidence.ts. The file's own header comment already documents portability discipline ("MUST NOT import from local-branch.ts... reachable from apps/gittensory-ui"), meaning it was written with exactly this kind of extraction in mind.This is also a direct prerequisite for the separate slop-scoring extraction issue, which depends on this landing first.
Deliverables
packages/gittensory-engine/src/signals/path-matchers.tssrc/signals/path-matchers.tsbecomes a thin re-export shim, matchingsrc/scoring/preview.ts's existing patternexportsmap subpath, matching./signals/test-evidence's existing precedent)test/unit/*.test.tscoverage for path-matchers passes unmodified against the moved implementationReferences
src/signals/path-matchers.ts(source to move, including its own portability-discipline header comment)packages/gittensory-engine/src/signals/test-evidence.ts(the extraction pattern to mirror exactly)packages/gittensory-engine/package.json(exportsmap — add the new subpath)