/** * Coverage 分类层 —— RequirementContract → 覆盖模式(artifact | process)+ orphan tier 分类。 * * 设计依据:docs/architecture/ 下 Requirement Coverage 迁移决策(方案 3:governance req 不进 artifact coverage)+ * Orphan 策略决策(tiered 分类)文档。 * * classifyRequirementCoverageMode:source 主判定 —— * - source.kind=governance → process(governance req 是 process/evidence gate,不进 artifact coverage) * - source.kind=manual 或 source 缺失(legacy)→ artifact(业务产物追溯) * source 主判定化解 governance+artifact 类型歧义(governance 源即使 requirementType=artifact 仍归 process)。 * * classifyOrphanTier:tiered 分类(非 blanket 降级)—— * A=真业务 orphan(error 阻断);B=optional 技术产物/C=process target/D=generated-support(均豁免,severity none)。 * 遵守"禁止所有 orphan 自动 warning":A 保持 error,B/C/D 豁免(非降级是归类)。 * * 纯函数(无 IO),确定性。 */ import type { RequirementContract } from "./types.js"; /** 覆盖模式。 */ export type CoverageMode = "artifact" | "process"; /** RequirementContract → 覆盖模式。source 主判定;legacy(source 缺失)兼容归 artifact。 */ export declare function classifyRequirementCoverageMode(req: RequirementContract): { mode: CoverageMode; }; /** orphan tier。 */ export type OrphanTier = "A" | "B" | "C" | "D"; /** orphan tier 分类结果。 */ export interface OrphanTierClassification { tier: OrphanTier; severity: "error" | "none"; reason: string; } /** orphan tier 分类输入(调用方查 declaration/process target 后传入,保持本函数纯)。 */ export interface OrphanTierInput { artifactKind: string; /** 是否是 governance process req 的 target(process target → 类 C,归过程门)。 */ isProcessTarget: boolean; /** ArtifactDeclaration.requirement_optional(optional 技术产物 / generated-support → 类 B/D)。 */ isOptional: boolean; } /** * orphan tier 分类(对"有证据但无 artifact req 追溯"的产物分类)。 * 调用时机:仅对 orphan 候选(uncovered by artifactReq)调用。 */ export declare function classifyOrphanTier(input: OrphanTierInput): OrphanTierClassification;