/** * instruction-sources.ts — the pure policy for WHICH instruction files the audit * rule-routing preview reads. * * A repo's real subdirectory memory (`src/CLAUDE.md`, `research/CLAUDE.md`, a * nested `AGENTS.md`) IS worth routing; a fixture/demo/build/test CLAUDE.md is * NOISE that would flood the preview. `isFixturePath` is the precision-first * discriminator (over-skip a legit `sample-service` before flooding with fixture * rules). Pure + unit-tested; the fs discovery/glue lives in cli.ts * (`gatherInstructionFiles`). See research/rule-enforcer-multilang-design.md §0. */ /** One instruction file gathered from disk, with its canonical (symlink-resolved) * path so a mirror can be detected. */ export interface RawInstructionFile { /** The repo-relative path (kept for provenance). */ readonly path: string; /** The realpath (symlink-resolved) — a symlinked mirror shares this. */ readonly canonical: string; readonly text: string; } /** * Dedup instruction files so a `CLAUDE.md`⇄`AGENTS.md` MIRROR is routed ONCE, not * double-counted (compose-with-sync-tools: a symlinked or byte-identical synced * mirror is ONE logical artifact). Dedups by BOTH the canonical path (a symlink) * AND the content hash (a byte-identical sync) — relative-path dedup alone caught * neither. First occurrence wins (callers pass root files first). Pure. */ export declare function dedupeInstructionFiles(files: readonly RawInstructionFile[]): { path: string; text: string; }[]; /** * Is this (repo-relative) instruction-file path fixture/demo/build/test noise? * True when any DIRECTORY segment (never the filename) is a build/deps/test dir * OR starts with a demo/example/sample/fixture/bench/mock/scratch/tmp prefix. * Conventional + general (not vigiles-specific), precision over recall. */ export declare function isFixturePath(relPath: string): boolean; //# sourceMappingURL=instruction-sources.d.ts.map