/** * Presence Policy Runtime(最小实现)—— 按 domain × lifecycle 判定是否强制 ≥1 RequirementContract。 * * 设计依据:docs/architecture/ 下 Presence Policy 设计文档(接口 + 默认提案)。 * * 职责:presence(是否要求有需求)判定,与 coverage(已有需求是否覆盖)分离。 * presence 和 coverage 是两个独立关注点(架构设计文档)。 * * 最小表(不扩展策略,当前范围): * - greenfield/maintenance × {design,backend,frontend,data} → required(防 AI 跳需求阶段) * - infra(任何 lifecycle)→ not-required(infra 变更常无业务需求驱动,由 deploy/operate 门 + governance 管) * - hotfix(任何 domain)→ not-required(紧急修复;仍受 governance policy + verification_passed 门约束) * * 注意:PresenceDomain(design/backend/frontend/data/infra,业务域)与 SoloForge DomainName(design/build/verify/operate, * 交付阶段)是正交轴,派生须从 task intent/scope,不可混用(见 Presence Policy 设计文档)。 */ /** 业务/产物域(与 DomainName 交付阶段正交)。 */ export type PresenceDomain = "design" | "backend" | "frontend" | "data" | "infra"; /** Task 生命周期。 */ export type TaskLifecycle = "greenfield" | "maintenance" | "hotfix"; /** presence 判定结果。 */ export interface PresenceDecision { required: boolean; reason: string; } /** * 判定 task 是否强制 presence(≥1 RequirementContract)。 * 最小表(见上方注释);后续可扩展为项目级配置(本步不扩展)。 */ export declare function decidePresence(domain: PresenceDomain, lifecycle: TaskLifecycle): PresenceDecision; /** 最小派生:从 task intent 文本粗略推断 PresenceDomain(保守默认 backend)。 * 当前最小实现,真实派生规则留后续(见 Presence Policy 设计文档未决项)。 */ export declare function derivePresenceDomain(intent: string): PresenceDomain; /** 从 artifact_kind 集合派生 PresenceDomain。无业务产物映射 → undefined(trivial/support 任务)。 */ export declare function derivePresenceDomainFromArtifacts(artifactKinds: readonly string[]): PresenceDomain | undefined; /** * 从 artifact 集合判 presence(校准入口,可用 artifacts 或 intent 派生 domain)。 * - 无业务产物(仅 support/test)→ not-required(trivial/support 任务) * - 有业务产物 → 按 domain × lifecycle * 优先用 artifacts 派生(更准);artifacts 空时回退 intent 派生。 */ export declare function decidePresenceFromArtifacts(artifactKinds: readonly string[], lifecycle: TaskLifecycle, intent?: string): PresenceDecision;