/** * Insight detection — 把 4 类报告(doctor / eval-评分 / eval-功能 / observe)合并成 * 一组结构化"问题",每个 Insight 自带: * - audience: 该问题主要由谁来修(skill-author / sample-author / omk-maintainer) * - 多 perspective 的证据(支持现象证据 illustration: 真实 prompt / LLM 输出 / 工具调用) * - 改进建议(可带可粘贴 patch 片段) * * 设计原则: * - 用户语去黑话:title/message 写成"用户能复现的现象",不直接吐 omk 内部枚举 * - 受众 explicit:每条 insight 标谁该 own,UI 拆区,不让 skill 开发者看 omk 维护待办 * - action 错位修对:环境拦截 → sample.mocks(不是 skill);doctor 盲区 → omk(不是 skill) * - 现象 > 统计:展开 1-2 条真实 sample 的 prompt/output/toolCall 让用户"看见"问题 * - 可粘贴 patch:推荐带文件位置 + 代码片段,不只是"改一段"的空话 * * 6 类 detection(audience 标在每条): * 1. environment-blocked-mocks sample-author 评测环境 mock 列表盖不全 * 2. skill-doc-gap skill-author + sample-author skill 文档某段缺/模糊 + sample environment 没声明 * 3. failure-mode-skill skill-author skill 写法上的反模式(硬编码/幻觉/跳步/误读) * 4. coverage-gap sample-author 生产 + 评测都漏的文件 * 5. production-instability skill-author + sample-author 真实环境失败率高 * 6. skill-too-long skill-author skill 文档过长 LLM 找不到段落 * 7. omk-doctor-blindspot omk-maintainer doctor 应该卡却没规则的反模式 */ import type { EvaluationReport, Diagnosis, SkillIndexEntry, SkillEvalSnapshot, InsightCategory, InsightSeverity, InsightAudience, InsightPerspective, InsightIllustration, InsightEvidence, InsightPatch, InsightRecommendation, InsightStageRefs, Insight, DetectInsightsOptions } from '../types/index.js'; export type { InsightCategory, InsightSeverity, InsightAudience, InsightPerspective, InsightIllustration, InsightEvidence, InsightPatch, InsightRecommendation, InsightStageRefs, Insight, DetectInsightsOptions, }; export declare function projectDiagnosticsToInsights(diagnostics: Diagnosis[]): Insight[]; export declare function detectInsights(entry: SkillIndexEntry, evalReport: EvaluationReport | null, options?: DetectInsightsOptions): Insight[]; export declare function flattenRecommendations(insights: Insight[]): InsightRecommendation[]; /** 按 audience 分桶 — UI 拆区用。 */ export declare function groupInsightsByAudience(insights: Insight[]): Record; export type _SkillEvalSnapshotForInsight = SkillEvalSnapshot;