/** * Wire the {@link RULES} into aih's plan/verify model. * * `bootstrap-ai` lints the docs it is ABOUT to write — in memory, before they * become writes — so reference resolution can see the full set of paths the same * plan will create (a forward `#[[file:…]]` ref resolves even on a fresh repo). * `doctor` is read-only and can't recompute the plan, so it lints the canon * already on disk. Both surface findings as {@link Check}s: a fail-tier finding * flips the verify exit code; an info-tier finding is `skip` (report-only). */ import { type Action } from "../internals/plan.js"; import type { Check } from "../internals/verify.js"; /** A doc to lint: its repo-relative POSIX path and the exact string aih emits. */ export interface GeneratedDoc { path: string; source: string; } /** * One lint probe per generated canon doc, for the `bootstrap-ai` plan. Refs * resolve against `plannedPaths` (what this run will write) ∪ `existsSync` * (pre-existing repo files). Pure: string regex + `existsSync`, no spawn. */ export declare function lintProbes(generated: readonly GeneratedDoc[], plannedPaths: ReadonlySet, root: string, contextDir?: string): Action[]; /** * Read-only lint of the canon already written under `contextDir`, aggregated into * one {@link Check} for `aih doctor`. Lints only the harness-authored context dir * tree (never the root bootloaders, which carry user prose outside the managed * block). `skip` when the dir isn't scaffolded — never fail a fresh repo. */ export declare function canonLintCheck(root: string, contextDir: string): Check;