export type SkillDrift = { name: string; /** Repo-relative path, for printing. */ path: string; /** True when the file is missing rather than merely different. */ missing: boolean; }; /** * Report bundled skill files in `cwd` that differ from what this CLI ships. * * Compares content rather than a version stamp: the skill files carry YAML * front-matter that is part of Claude Code's contract, and adding an Auden * stamp to it would put our bookkeeping inside a file format we do not own. * Content comparison also catches user edits, which is the honest signal * anyway — the fix (`auden init --skills-only`) overwrites either way, and the * caller says so. * * Reports nothing unless the repo shows evidence of `auden init` — at least * one bundled skill actually present. `.claude/skills/` is shared by every * Claude Code skill, not just Auden's, so its mere existence proves nothing: * a repo holding only unrelated skills would otherwise have every Auden * bundled skill reported as "missing" and be shown a drift warning for a tool * it was never set up with. */ export declare function detectBundledSkillDrift(cwd: string): Promise; /** * Stale `auden eval` Stop-hook commands in this repo's `.claude/settings.json`. * * Local grading was removed (docs/plans/cli-local-grading-removal-plan.md), so * an entry invoking it runs a command the CLI no longer has and Claude Code * reports a failing hook at the end of *every* assistant turn. `auden init` * prunes what it can, but the documented upgrade paths — `auden update`, and * the `auden init --skills-only` it recommends afterwards — never reach that * code, so an upgraded user would keep the dead hook until they independently * worked out that a full init was needed. * * Detection only. Rewriting a committed `.claude/settings.json` is `init`'s * job, not an asset sync's: this module already draws that line for bundled * skills, which it reports and tells the user to fix rather than overwriting. * Reporting is what closes the discovery gap; the fix stays where it was. * * Returns the offending command strings (empty when there are none, the file * is absent, or it cannot be parsed — a malformed settings file is `doctor`'s * to complain about, not this function's). */ export declare function detectStaleEvalHooks(cwd: string): Promise; /** * Whether this repo's `.claude/settings.json` logs successful tool calls but * has no `PostToolUseFailure` hook to log their failures. * * Same class of gap as `detectStaleEvalHooks`, for a newer defect * (`hook-failure-event-registration`): the documented upgrade paths — `auden * update`, and the `auden init --skills-only` it recommends afterwards — * never touch `.claude/settings.json`, so a repo initialized before this hook * existed keeps silently logging successes only until someone independently * re-runs a full `auden init`. Detection only, for the same reason stated * above: rewriting a committed settings file is `init`'s job, not an asset * sync's. * * False when `PostToolUse` itself is not configured — nothing is "missing" * for a repo that was never `auden init`ed at all, and `doctor`'s "Claude Code * hooks configured" check already owns that case. */ export declare function detectMissingFailureHook(cwd: string): Promise; //# sourceMappingURL=assets.d.ts.map