/** * omk doctor 内置规则注册表。 * * BUILTIN_RULES 是**纯静态/低成本检查**, 不碰 LLM 连通性 — executor / judge * 连通性由 evaluation preflight 负责。用户入口 `omk doctor` 默认会跑这些静态 * 规则,再跑 skill_health composer 做 LLM 审计;`--static-only` 只跑静态规则。 * samples_contract_aligned 需要 samples,仍只归 eval preflight * (run-evaluation.ts 经 runDoctor 调,dependencies_present 守依赖完整性)。 * * 每条 rule 回答一个独立的「skill 能不能被有意义评测」子问题: * - skill_readable: 文件能读、内容非空且有最小长度 * - skill_metadata: front-matter(若有) YAML 合法、directory-skill 有 SKILL.md * - dependencies: 引用的 tool / file / env / preflight 完整(复用 preflightDependencies) * - samples_contract: 仅在传 samples 时跑,warn 级,校验 samples 非空 + 含 prompt * * fatal-fail 时 rule 引擎不中断后续 rule 执行(让用户一次看到全貌), * 但 DoctorReport.outcome 会置 'failed'。 * * 扩展接口预留: registerRule() 允许业务方注入自定义 rule(v0.22 不暴露 CLI flag, * 仅作为 library API 占位)。 */ import type { DoctorRule, DoctorRuleLike } from '../types/doctor.js'; export declare const skillReadableRule: DoctorRule; export declare const skillMetadataRule: DoctorRule; export declare const dependenciesPresentRule: DoctorRule; export declare const samplesContractAlignedRule: DoctorRule; /** v0.22 内置规则注册表。执行顺序即此处定义顺序。 * doctor 不包含 executor 连通性检查 — 该职责属于 evaluation preflight。 */ export declare const BUILTIN_RULES: DoctorRule[]; export declare function registerRule(rule: DoctorRuleLike): void; export declare function getRegisteredRules(): DoctorRuleLike[]; export declare function __resetCustomRulesForTest(): void;