/** * 检测文档专业度 * 宽松策略:满足 2+ 个条件即判定为 "low" */ export declare function detectProfessionalLevel(content: string): 'high' | 'medium' | 'low'; /** * v8.3.374: 澄清产物完整性校验结果 */ export interface ClarifyCompletenessResult { /** 是否通过完整性校验 */ pass: boolean; /** 缺失的必含章节 */ missingSections: string[]; /** 字数是否达标 */ wordCountOk: boolean; /** 实际字数 */ wordCount: number; /** 源文档字数(如有) */ sourceWordCount?: number; /** 源文档字数比(产物字数 / 源文档字数) */ sourceRatio?: number; /** 建议(不通过时给出修复建议) */ suggestion?: string; } /** * v8.3.374: 澄清产物完整性校验——检查 unit-{feature}.md 是否是一份合格的黄金需求。 * 校验维度: * 1. 字数 ≥ 300(排除「只写了标题没写内容」的假澄清) * 2. 必含章节覆盖(背景/目标、功能规格/用户故事、验收标准 至少命中 2/3) * 3. 不含 SPEC-SKELETON 标记(骨架不算澄清) * 4. v8.3.374: 字数 ≥ 源文档字数 × 0.8(黄金需求必须包含源文档全部内容) * @param sourceWordCount 可选,源文档字数。传入后会做比值校验。 */ export declare function validateClarifyCompleteness(content: string, sourceWordCount?: number): ClarifyCompletenessResult; /** * v8.3.374: [OPEN] 项解析结果 */ export interface OpenItem { /** 原始问题描述 */ question: string; /** 可选方案列表 */ options: string[]; /** 推荐方案索引(-1 表示无推荐) */ recommendedIndex: number; /** 在原文中的起始位置 */ startIndex: number; /** 在原文中的结束位置 */ endIndex: number; } /** * v8.3.374: 解析文档中的 [OPEN] 待确认项。 * v8.3.377: 同时支持两种标题格式——`### [OPEN] 问题` 与 `- [OPEN] 问题`, * 与澄清 prompt 模板的三段式格式对齐(此前模板用 `###` 标题而解析器只认 `-`, * 导致 autoResolveOpenItems 对真实产出完全无效)。 * 匹配格式: * ### [OPEN] 问题描述? * - 方案 A: ... * - 方案 B: ...(推荐 ⭐) * - 方案 C: ... */ export declare function parseOpenItems(content: string): OpenItem[]; /** * v8.3.374: 自动模式——将 [OPEN] 项替换为 [RESOLVED: 推荐方案]。 * 规则: * - 有推荐项 → 自动选择推荐项,替换为 [RESOLVED: 方案X] * - 无推荐项 → 保留 [OPEN] 不替换(等待人工确认) * 返回 { content: 替换后内容, resolvedCount: 已解决数, pendingCount: 待人工确认数 } */ export declare function autoResolveOpenItems(content: string): { content: string; resolvedCount: number; pendingCount: number; }; /** * 构建需求专业化 Prompt * 让 AI 以专业产品经理角色整理 PRD */ export declare function buildClarifyPrompt(rawDesc: string, context?: { iteration?: string; sourceFile?: string; existingDocs?: string[]; }): string; /** * 解析 AI 返回的整理结果 * 提取 PRD 内容和原始输入 */ export declare function parseClarifiedRequirement(response: string): { content: string; hasOriginalSection: boolean; }; /** * v8.3.370: 剥离开头的 YAML frontmatter 块(---\n...\n---)。 * 宿主 AI 按澄清剧本回传时,块内容常自带 source/status frontmatter; * CLI 落盘会统一追加系统头(buildClarifiedHeader),不剥离则双 frontmatter。 */ export declare function stripLeadingFrontmatter(text: string): string; /** * 写入澄清后的需求文档 * v8.2.0+: 改为写入 020-specs/requirements/ 作为黄金需求目录 * 原始需求保留在 010-requirements/ 不变 * v8.3.35+: 文件名改为 {原需求名}-clarified.md,多次澄清时自动备份 * v8.3.386: 通用源文件名(SOURCE.md/README.md 等)在多功能单元场景下互相覆盖—— * 每个单元都产出 SOURCE-clarified.md,旧文件仅时间戳备份。携带单元目录名 unitHint * 时以其命名产物({单元}-clarified.md),保证黄金需求与功能单元一一对应(BUG-6) */ export declare function writeClarifiedDoc(content: string, iterDir: string, sourceName: string, unitHint?: string): Promise; /** * 读取需求文档并检测专业度 * 返回检测结果和建议 */ export declare function assessRequirementDoc(filePath: string): Promise<{ level: 'high' | 'medium' | 'low'; content: string; issues: string[]; }>; /** * 生成澄清后的文档头部元信息 * v6.80.0+: 增加版本号和质量评分 */ export declare function buildClarifiedHeader(originalSource: string, clarifyTime?: string, version?: string): string; export interface QualityDimension { name: string; score: number; issues: string[]; suggestions: string[]; } export interface RequirementQualityReport { filePath: string; overallScore: number; level: 'high' | 'medium' | 'low'; dimensions: QualityDimension[]; summary: string; clarified: boolean; version?: string; } /** * 多维度需求质量评价 * 评分维度:完整性 / 一致性 / 可测试性 / 可追溯性 / 专业度 / 交互逻辑 / 业务流程 * v6.83.0+: 增加交互逻辑完整性和业务流程完整性维度 */ export declare function assessRequirementQuality(content: string, filePath?: string): RequirementQualityReport; /** * 生成 CLARIFY_REPORT.md * v6.80.0+: 汇总所有需求文档的质量评价 */ export declare function writeQualityReport(iterDir: string, reports: RequirementQualityReport[]): Promise; /** * v8.3.235+: 生成 CLARIFY_REPORT.md——澄清执行报告(confirm-check 前调用)。 * 修复「CLARIFY_REPORT.md 无任何代码生成、需求确认步骤永远读不到」的断链: * 汇总源文档 → 澄清产物(黄金需求 *-clarified.md + 两级 CLARIFY.md)的映射与完成状态。 */ export declare function writeClarifyReport(iterDir: string): Promise; /** * 检测迭代是否已有有效的 clarified 文档 * v8.3.181+: 支持两级澄清(全局 overview/CLARIFY.md + 模块 {feature}/overview/CLARIFY.md) * 同时保持对旧路径 020-specs/requirements/ 的兼容 * * 逻辑: * 1. 收集所有 clarified 文件的最新修改时间 * 2. 如果没有 clarified 文件 → 返回 false * 3. 收集所有 source 文件的最新修改时间 * 4. 返回 latestClarifyTime >= latestSourceTime */ export declare function hasValidClarifiedDocs(iterDir: string): Promise; export interface ClarifyUnit { id: string; name: string; content: string; } export interface ClarifiedUnit { id: string; name: string; clarifiedContent: string; timestamp: string; } /** 从 Markdown 内容中提取功能单元(基于 ##/### 标题) */ export declare function extractUnitsFromText(content: string): ClarifyUnit[]; /** * 从 features/ 目录加载功能单元(v8.3.191+:切分独立于澄清) * 每个 features/{name}/SOURCE.md(兼容旧 README.md)是一个功能单元,id 用目录名保持映射。 * 切分由 unitize 完成,澄清(req-doc --unit)只读已切分的单元,不再自己切分。 */ export declare function loadFeatureUnits(iterDir: string): Promise; /** 构建单个功能单元的澄清 Prompt(v8.2.0+ 智能上下文组装) */ export declare function buildUnitClarifyPrompt(unit: ClarifyUnit, fullContent: string, context?: { iteration?: string; sourceFile?: string; iterDir?: string; allUnits?: ClarifyUnit[]; }): Promise; /** 汇总所有澄清单元为统一 PRD */ export declare function consolidateClarifiedUnits(units: ClarifiedUnit[], originalSource: string): string; //# sourceMappingURL=requirement-clarifier.d.ts.map