oh-my-knowledge 0.27.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/README.md +70 -34
  2. package/README.zh.md +70 -34
  3. package/dist/src/analysis/failure-clusterer.js +1 -1
  4. package/dist/src/analysis/failure-clusterer.js.map +1 -1
  5. package/dist/src/analysis/gap-analyzer.d.ts +8 -1
  6. package/dist/src/analysis/gap-analyzer.d.ts.map +1 -1
  7. package/dist/src/analysis/gap-analyzer.js +65 -33
  8. package/dist/src/analysis/gap-analyzer.js.map +1 -1
  9. package/dist/src/analysis/report-diagnostics.d.ts +2 -2
  10. package/dist/src/analysis/report-diagnostics.js +2 -2
  11. package/dist/src/analysis/sample-diagnostics.d.ts +3 -3
  12. package/dist/src/analysis/sample-diagnostics.js +17 -17
  13. package/dist/src/analysis/sample-diagnostics.js.map +1 -1
  14. package/dist/src/authoring/generator.js +1 -1
  15. package/dist/src/authoring/generator.js.map +1 -1
  16. package/dist/src/cli/commands/doctor.d.ts.map +1 -1
  17. package/dist/src/cli/commands/doctor.js +39 -2
  18. package/dist/src/cli/commands/doctor.js.map +1 -1
  19. package/dist/src/cli/commands/eval.d.ts.map +1 -1
  20. package/dist/src/cli/commands/eval.js +0 -5
  21. package/dist/src/cli/commands/eval.js.map +1 -1
  22. package/dist/src/cli/commands/{export.d.ts → evolve.d.ts} +1 -1
  23. package/dist/src/cli/commands/evolve.d.ts.map +1 -0
  24. package/dist/src/cli/commands/{improve-skill.js → evolve.js} +3 -3
  25. package/dist/src/cli/commands/evolve.js.map +1 -0
  26. package/dist/src/cli/commands/observe.d.ts.map +1 -1
  27. package/dist/src/cli/commands/observe.js +169 -0
  28. package/dist/src/cli/commands/observe.js.map +1 -1
  29. package/dist/src/cli/commands/registry.d.ts.map +1 -1
  30. package/dist/src/cli/commands/registry.js +10 -20
  31. package/dist/src/cli/commands/registry.js.map +1 -1
  32. package/dist/src/cli/commands/{improve.d.ts → sample.d.ts} +1 -1
  33. package/dist/src/cli/commands/sample.d.ts.map +1 -0
  34. package/dist/src/cli/commands/{improve-samples.js → sample.js} +5 -4
  35. package/dist/src/cli/commands/sample.js.map +1 -0
  36. package/dist/src/cli/commands/studio.d.ts.map +1 -1
  37. package/dist/src/cli/commands/studio.js +8 -0
  38. package/dist/src/cli/commands/studio.js.map +1 -1
  39. package/dist/src/cli/i18n-dict.d.ts +2 -4
  40. package/dist/src/cli/i18n-dict.d.ts.map +1 -1
  41. package/dist/src/cli/i18n-dict.js +255 -349
  42. package/dist/src/cli/i18n-dict.js.map +1 -1
  43. package/dist/src/cli/parse-run-config.d.ts +1 -1
  44. package/dist/src/cli/parse-run-config.js +1 -1
  45. package/dist/src/doctor/health/builtin-dimensions.d.ts +11 -0
  46. package/dist/src/doctor/health/builtin-dimensions.d.ts.map +1 -0
  47. package/dist/src/doctor/health/builtin-dimensions.js +94 -0
  48. package/dist/src/doctor/health/builtin-dimensions.js.map +1 -0
  49. package/dist/src/doctor/health/composer.d.ts +19 -0
  50. package/dist/src/doctor/health/composer.d.ts.map +1 -0
  51. package/dist/src/doctor/health/composer.js +289 -0
  52. package/dist/src/doctor/health/composer.js.map +1 -0
  53. package/dist/src/doctor/health/dimension-registry.d.ts +13 -0
  54. package/dist/src/doctor/health/dimension-registry.d.ts.map +1 -0
  55. package/dist/src/doctor/health/dimension-registry.js +28 -0
  56. package/dist/src/doctor/health/dimension-registry.js.map +1 -0
  57. package/dist/src/doctor/health/dimension-spec.d.ts +46 -0
  58. package/dist/src/doctor/health/dimension-spec.d.ts.map +1 -0
  59. package/dist/src/doctor/health/dimension-spec.js +12 -0
  60. package/dist/src/doctor/health/dimension-spec.js.map +1 -0
  61. package/dist/src/doctor/health/parser.d.ts +27 -0
  62. package/dist/src/doctor/health/parser.d.ts.map +1 -0
  63. package/dist/src/doctor/health/parser.js +190 -0
  64. package/dist/src/doctor/health/parser.js.map +1 -0
  65. package/dist/src/doctor/health/prompt-builder.d.ts +22 -0
  66. package/dist/src/doctor/health/prompt-builder.d.ts.map +1 -0
  67. package/dist/src/doctor/health/prompt-builder.js +162 -0
  68. package/dist/src/doctor/health/prompt-builder.js.map +1 -0
  69. package/dist/src/doctor/health/register.d.ts +13 -0
  70. package/dist/src/doctor/health/register.d.ts.map +1 -0
  71. package/dist/src/doctor/health/register.js +20 -0
  72. package/dist/src/doctor/health/register.js.map +1 -0
  73. package/dist/src/doctor/html-renderer.d.ts +20 -0
  74. package/dist/src/doctor/html-renderer.d.ts.map +1 -0
  75. package/dist/src/doctor/html-renderer.js +366 -0
  76. package/dist/src/doctor/html-renderer.js.map +1 -0
  77. package/dist/src/doctor/index.d.ts.map +1 -1
  78. package/dist/src/doctor/index.js +55 -6
  79. package/dist/src/doctor/index.js.map +1 -1
  80. package/dist/src/doctor/renderer.d.ts +4 -0
  81. package/dist/src/doctor/renderer.d.ts.map +1 -1
  82. package/dist/src/doctor/renderer.js +72 -18
  83. package/dist/src/doctor/renderer.js.map +1 -1
  84. package/dist/src/doctor/rules.d.ts +6 -5
  85. package/dist/src/doctor/rules.d.ts.map +1 -1
  86. package/dist/src/doctor/rules.js +4 -3
  87. package/dist/src/doctor/rules.js.map +1 -1
  88. package/dist/src/grading/debias-validate.js +4 -4
  89. package/dist/src/grading/debias-validate.js.map +1 -1
  90. package/dist/src/grading/gold-cli.js +2 -2
  91. package/dist/src/grading/gold-cli.js.map +1 -1
  92. package/dist/src/observability/inbox-view-model.d.ts +17 -0
  93. package/dist/src/observability/inbox-view-model.d.ts.map +1 -0
  94. package/dist/src/observability/inbox-view-model.js +62 -0
  95. package/dist/src/observability/inbox-view-model.js.map +1 -0
  96. package/dist/src/observability/inbox.d.ts +100 -0
  97. package/dist/src/observability/inbox.d.ts.map +1 -0
  98. package/dist/src/observability/inbox.js +703 -0
  99. package/dist/src/observability/inbox.js.map +1 -0
  100. package/dist/src/observability/trace-adapter.d.ts +12 -64
  101. package/dist/src/observability/trace-adapter.d.ts.map +1 -1
  102. package/dist/src/observability/trace-adapter.js +9 -355
  103. package/dist/src/observability/trace-adapter.js.map +1 -1
  104. package/dist/src/observability/trace-attribution.d.ts +28 -0
  105. package/dist/src/observability/trace-attribution.d.ts.map +1 -0
  106. package/dist/src/observability/trace-attribution.js +104 -0
  107. package/dist/src/observability/trace-attribution.js.map +1 -0
  108. package/dist/src/observability/trace-segmenter.d.ts +42 -0
  109. package/dist/src/observability/trace-segmenter.d.ts.map +1 -0
  110. package/dist/src/observability/trace-segmenter.js +231 -0
  111. package/dist/src/observability/trace-segmenter.js.map +1 -0
  112. package/dist/src/observability/trace-source.d.ts +72 -0
  113. package/dist/src/observability/trace-source.d.ts.map +1 -0
  114. package/dist/src/observability/trace-source.js +142 -0
  115. package/dist/src/observability/trace-source.js.map +1 -0
  116. package/dist/src/renderer/html-renderer.d.ts.map +1 -1
  117. package/dist/src/renderer/html-renderer.js +107 -59
  118. package/dist/src/renderer/html-renderer.js.map +1 -1
  119. package/dist/src/renderer/layout.d.ts.map +1 -1
  120. package/dist/src/renderer/layout.js +58 -21
  121. package/dist/src/renderer/layout.js.map +1 -1
  122. package/dist/src/renderer/observation-inbox-renderer.d.ts +4 -0
  123. package/dist/src/renderer/observation-inbox-renderer.d.ts.map +1 -0
  124. package/dist/src/renderer/observation-inbox-renderer.js +900 -0
  125. package/dist/src/renderer/observation-inbox-renderer.js.map +1 -0
  126. package/dist/src/renderer/summary.d.ts +17 -0
  127. package/dist/src/renderer/summary.d.ts.map +1 -1
  128. package/dist/src/renderer/summary.js +277 -33
  129. package/dist/src/renderer/summary.js.map +1 -1
  130. package/dist/src/renderer/trends.d.ts.map +1 -1
  131. package/dist/src/renderer/trends.js +3 -1
  132. package/dist/src/renderer/trends.js.map +1 -1
  133. package/dist/src/server/report-server.d.ts +3 -1
  134. package/dist/src/server/report-server.d.ts.map +1 -1
  135. package/dist/src/server/report-server.js +35 -4
  136. package/dist/src/server/report-server.js.map +1 -1
  137. package/dist/src/shared/tool-search.d.ts +9 -0
  138. package/dist/src/shared/tool-search.d.ts.map +1 -0
  139. package/dist/src/shared/tool-search.js +104 -0
  140. package/dist/src/shared/tool-search.js.map +1 -0
  141. package/dist/src/types/doctor.d.ts +41 -3
  142. package/dist/src/types/doctor.d.ts.map +1 -1
  143. package/dist/src/types/doctor.js +3 -0
  144. package/dist/src/types/doctor.js.map +1 -1
  145. package/dist/src/types/eval.d.ts +1 -1
  146. package/dist/src/types/executor.d.ts +4 -0
  147. package/dist/src/types/executor.d.ts.map +1 -1
  148. package/dist/src/types/report.d.ts +2 -2
  149. package/dist/src/types/report.d.ts.map +1 -1
  150. package/package.json +1 -1
  151. package/dist/src/cli/commands/eval-debias.d.ts +0 -2
  152. package/dist/src/cli/commands/eval-debias.d.ts.map +0 -1
  153. package/dist/src/cli/commands/eval-debias.js +0 -88
  154. package/dist/src/cli/commands/eval-debias.js.map +0 -1
  155. package/dist/src/cli/commands/export-diff.d.ts +0 -2
  156. package/dist/src/cli/commands/export-diff.d.ts.map +0 -1
  157. package/dist/src/cli/commands/export-diff.js +0 -177
  158. package/dist/src/cli/commands/export-diff.js.map +0 -1
  159. package/dist/src/cli/commands/export-saturation.d.ts +0 -2
  160. package/dist/src/cli/commands/export-saturation.d.ts.map +0 -1
  161. package/dist/src/cli/commands/export-saturation.js +0 -59
  162. package/dist/src/cli/commands/export-saturation.js.map +0 -1
  163. package/dist/src/cli/commands/export-verdict.d.ts +0 -2
  164. package/dist/src/cli/commands/export-verdict.d.ts.map +0 -1
  165. package/dist/src/cli/commands/export-verdict.js +0 -45
  166. package/dist/src/cli/commands/export-verdict.js.map +0 -1
  167. package/dist/src/cli/commands/export.d.ts.map +0 -1
  168. package/dist/src/cli/commands/export.js +0 -150
  169. package/dist/src/cli/commands/export.js.map +0 -1
  170. package/dist/src/cli/commands/improve-failures.d.ts +0 -2
  171. package/dist/src/cli/commands/improve-failures.d.ts.map +0 -1
  172. package/dist/src/cli/commands/improve-failures.js +0 -59
  173. package/dist/src/cli/commands/improve-failures.js.map +0 -1
  174. package/dist/src/cli/commands/improve-plan.d.ts +0 -2
  175. package/dist/src/cli/commands/improve-plan.d.ts.map +0 -1
  176. package/dist/src/cli/commands/improve-plan.js +0 -75
  177. package/dist/src/cli/commands/improve-plan.js.map +0 -1
  178. package/dist/src/cli/commands/improve-samples.d.ts +0 -2
  179. package/dist/src/cli/commands/improve-samples.d.ts.map +0 -1
  180. package/dist/src/cli/commands/improve-samples.js.map +0 -1
  181. package/dist/src/cli/commands/improve-skill.d.ts +0 -2
  182. package/dist/src/cli/commands/improve-skill.d.ts.map +0 -1
  183. package/dist/src/cli/commands/improve-skill.js.map +0 -1
  184. package/dist/src/cli/commands/improve.d.ts.map +0 -1
  185. package/dist/src/cli/commands/improve.js +0 -34
  186. package/dist/src/cli/commands/improve.js.map +0 -1
  187. package/dist/src/cli/coverage-renderer.d.ts +0 -15
  188. package/dist/src/cli/coverage-renderer.d.ts.map +0 -1
  189. package/dist/src/cli/coverage-renderer.js +0 -74
  190. package/dist/src/cli/coverage-renderer.js.map +0 -1
package/README.md CHANGED
@@ -37,11 +37,11 @@ When the `omk` skill is available in Claude Code, you can invoke it directly lik
37
37
 
38
38
  ```bash
39
39
  /omk eval # evaluate the artifact(s) in the current project
40
- /omk improve skill # auto-iterate to improve an artifact
41
- /omk improve samples # generate test cases
40
+ /omk evolve # auto-iterate to improve a skill
41
+ /omk sample # generate or fill test cases
42
42
  ```
43
43
 
44
- You can also just say "compare v1 vs v2 for me" or "improve this artifact" and omk picks the right command.
44
+ These slash commands are natural-language entry points — the agent reads the conversation context to figure out which skill to operate on, so you usually don't pass the path explicitly. (See the Codex section below for the literal `omk evolve <skill>` CLI form.) You can also just say "compare v1 vs v2 for me" or "improve this artifact" and omk picks the right command.
45
45
 
46
46
  ### Use inside Codex
47
47
 
@@ -49,8 +49,8 @@ Codex does not support Claude Code style `/omk ...` slash commands by default. I
49
49
 
50
50
  ```bash
51
51
  omk eval
52
- omk improve skill skills/my-skill.md
53
- omk improve samples skills/my-skill.md
52
+ omk evolve skills/my-skill.md
53
+ omk sample skills/my-skill.md
54
54
  ```
55
55
 
56
56
  You can also describe the goal in natural language, such as "compare v1 vs v2" or "generate test cases for this skill".
@@ -61,7 +61,7 @@ Teams doing knowledge engineering produce lots of knowledge artifacts (skills to
61
61
 
62
62
  ## Key features
63
63
 
64
- - **Pre-evaluation health check** — `omk doctor` runs as a mandatory gate before `omk eval`; checks skill readability, metadata, dependencies, samples contract pure static, zero LLM calls (like lint + typecheck for knowledge artifacts). Executor / judge connectivity is a separate phase, controllable via `--skip-connectivity`
64
+ - **LLM health audit** — `omk doctor` runs a single LLM session that emits a multi-dimension report; 7 builtin dimensions (trigger & boundary / doc clarity / instruction precision / dependency / tool conventions / security & compliance / example completeness) each get a *healthy / sub-healthy / unhealthy / N-A* grade plus findings and suggestions; dimensions are extensible, and `--html` produces a visual report. Pass `--static-only` for an offline mode (CI nodes without an LLM, debugging without network) that runs the static checks only (readability / metadata / dependencies / samples contract). `omk eval` still runs static readability / metadata / dependency gates internally to protect eval quality (separation of roles: doctor = audit, eval = evaluate)
65
65
  - **Controlled-variable offline eval** — fix the model and samples, vary only the artifact; works with Claude Code skills, CLAUDE.md prompts, RAG knowledge bases, or any markdown-based instruction
66
66
  - **Six-dimension scoring** — separate signals for Fact / Behavior / LLM-judge / Cost / Efficiency / Stability, so a regression in one axis isn't hidden by gains in another
67
67
  - **Production session observability** — parse Claude Code session JSONL traces, measure per-skill failure rate, latency, token cost, and knowledge-gap signals on real user sessions
@@ -95,12 +95,10 @@ RAG-specific evals: see RAGAS (separate niche, complementary to omk). Full compa
95
95
  | **Multi-executor** | Claude CLI / Claude SDK / Codex CLI / Codex SDK / OpenAI / Gemini / any custom command |
96
96
  | **21+ assertion types** | substring, regex, JSON Schema, ROUGE/BLEU/Levenshtein similarity, agent tool-call assertions, semantic similarity, custom JS, and more |
97
97
  | **Statistical rigor** | Bootstrap CI / Krippendorff α / length-debias / saturation curve — all on by default. [Details →](docs/statistical-rigor.md) |
98
- | **Sample diagnostics** | `omk improve <id>` — 7 issue kinds (low discrimination / duplicates / ambiguous rubric / cost outliers / etc.) + 0-100 healthScore |
99
- | **Failure clustering** | `omk improve failures <id>` — single LLM call clusters failed samples and emits per-cluster fixes |
100
98
  | **RAG metrics** | `faithfulness` / `answer_relevancy` / `context_recall` — anti-hallucination + answer relevance + context coverage; auto-inherits length-debias |
101
99
  | **Hard budget caps** | `--budget-usd / --budget-per-sample-usd / --budget-per-sample-ms` — abort on total-cost overrun, flag per-sample overruns; partial report persisted |
102
100
  | **Construct-validity isolation** | `--strict-baseline` (default ON) cuts three contamination channels so baseline doesn't silently see the skill it's being compared against: (1) SDK skill auto-discovery, (2) subagent Skill tool, (3) cwd file-system access via the `skills/<name>/` symlink that's normally there for the treatment variant. eval.yaml `allowedSkills` for per-variant whitelists |
103
- | **Sample design science** | Sample schema with `capability` / `difficulty` / `construct` / `provenance` metadata fields (HF Dataset Cards style). `omk improve` shows coverage breakdown + flags `rubric_clarity_low` (short rubric without grading keywords) / `capability_thin` (capability supported by ≤ N×0.2 samples). `omk improve samples` auto-stamps provenance. See [docs/sample-design-spec.md](docs/sample-design-spec.md) for the 8 industry-gap mapping |
101
+ | **Sample design science** | Sample schema with `capability` / `difficulty` / `construct` / `provenance` metadata fields (HF Dataset Cards style); studio surfaces coverage breakdown plus `rubric_clarity_low` / `capability_thin` flags. `omk sample` auto-stamps provenance on generated cases. See [docs/sample-design-spec.md](docs/sample-design-spec.md) for the 8 industry-gap mapping |
104
102
  | **Multi-judge ensemble** | `--judge-models claude:opus,openai:gpt-4o` cross-vendor scoring + agreement metrics |
105
103
  | **MCP URL fetching** | pull content from private-doc URLs via an MCP server (SSO-protected knowledge bases, etc.) |
106
104
  | **Blind A/B** | `--blind` hides variant names; HTML report has a reveal button |
@@ -359,7 +357,7 @@ Reports display results across six independent dimensions. The three scoring lay
359
357
 
360
358
  ## CLI reference
361
359
 
362
- omk exposes a workflow CLI for knowledge artifacts. The public surface is organized around the way users work: initialize, check, evaluate, observe, improve, export evidence, and open the local studio.
360
+ omk exposes a workflow CLI for knowledge artifacts. Seven top-level commands cover the full loop: `init` (scaffold) · `doctor` (static check) · `eval` (offline A/B) · `observe` (online trace) · `evolve` (auto-iterate a skill) · `sample` (generate or fill test cases) · `studio` (local web UI for reports & analysis).
363
361
 
364
362
  ### `omk init`
365
363
 
@@ -372,22 +370,28 @@ Scaffolds an evaluation project with two starter skill variants and an `eval-sam
372
370
  ### `omk doctor`
373
371
 
374
372
  ```bash
375
- omk doctor # check current dir / ./skills
376
- omk doctor skills/v1.md # check one skill file
377
- omk doctor skills/ --json # machine-readable output
378
- omk doctor --gate; echo $? # silent CI gate
373
+ omk doctor # audit current dir / ./skills
374
+ omk doctor skills/v1.md # audit one skill file
375
+ omk doctor skills/ --html report.html # produce a visual HTML report
376
+ omk doctor skills/ --json > r.json # JSON for CI / external tools
377
+ omk doctor --gate; echo $? # silent gate; exit 1 on fatal failures, warnings do not block
378
+ omk doctor --static-only # offline mode: static checks only, no LLM call
379
379
  ```
380
380
 
381
- Pure static checks: skill readability, frontmatter, directory-skill layout, dependency hints, and sample contract. It is also run automatically before `omk eval`.
381
+ LLM health audit: a single LLM session emits per-dimension grades, findings, and suggestions for the 7 builtin dimensions; the HTML report sorts dimensions fail→warn→pass→skipped with errors first within each dim. Dimensions are extensible — call `registerHealthDimension` in your own code and the new section is folded into the same LLM call's prompt and report (order = registration order).
382
+
383
+ Static-only mode (`--static-only`): for CI nodes without claude / codex installed, or local debugging without network — runs the four static rules (readability / metadata / dependencies / samples contract) with zero LLM calls and zero cost. Output goes through the same `DoctorReport` shape and combines with `--json` / `--gate` / `--html`.
384
+
385
+ `omk eval` still runs its own static readability / metadata / dependency / samples-contract gates internally to protect eval quality; that path is separate from this user-facing `omk doctor` command and the two roles do not overlap.
382
386
 
383
387
  ### `omk eval`
384
388
 
385
389
  ```bash
386
- omk eval --control code-review-v1 --treatment code-review-v2
390
+ omk eval --control baseline --treatment my-skill # single-skill necessity test (baseline = reserved "no skill" variant)
391
+ omk eval --control code-review-v1 --treatment code-review-v2 # multi-variant A/B
387
392
  omk eval --config eval.yaml
388
393
  omk eval --batch
389
394
  omk eval gold compare <report-id> --gold-dir gold-dataset
390
- omk eval debias length <report-id>
391
395
  ```
392
396
 
393
397
  Runs the offline evaluation, applies the verdict gate, persists the report, and returns a ship/no-ship exit code. Bootstrap CI is enabled by default on this workflow.
@@ -415,12 +419,16 @@ Common options:
415
419
  --trivial-diff <num> practically tiny diff cutoff (default 0.1)
416
420
  --report-only produce the report and print verdict, but always exit 0
417
421
  --no-gate alias for --report-only
418
- --skip-connectivity skip model connectivity check; doctor still runs
422
+ --skip-connectivity skip model connectivity check (internal static gates still run)
419
423
  --no-serve do not auto-start the report server after evaluation
420
424
  ```
421
425
 
422
426
  ### `omk observe`
423
427
 
428
+ `omk observe` ships two workflows: the default skill-health report, and the new observe inbox for human review.
429
+
430
+ #### A. Skill-health report (default)
431
+
424
432
  ```bash
425
433
  omk observe ~/.claude/projects/-Users-you-Documents-my-project
426
434
  omk observe ~/.claude/projects/my-project --last 7d
@@ -431,41 +439,69 @@ omk observe ~/.claude/projects/my-project --kb /path/to/project
431
439
 
432
440
  Turns real Claude Code session traces into skill-health reports: knowledge usage, gap signals, execution stability, tokens, and latency. This is production observation, not production scoring.
433
441
 
434
- ### `omk improve`
442
+ #### B. observe inbox: reviewer loop
443
+
444
+ Parses, aggregates, and de-noises real session traces into a per-observation list a human can review. The whole pipeline is local-only and LLM-free.
435
445
 
436
446
  ```bash
437
- omk improve <report-id> # sample diagnostics and repair plan
438
- omk improve plan <report-id> # explicit repair-plan form
439
- omk improve failures <report-id> # cluster failed samples into root causes
440
- omk improve samples [skill] # generate or fill eval samples
441
- omk improve skill <skill> # iterate a skill through eval-driven rewrites
447
+ # 1. Parse traces, aggregate signals, write to .omk/observations/
448
+ omk observe ingest ~/.claude/projects/my-project
449
+ omk observe ingest ~/.claude/projects/my-project --output-dir ./custom-dir
450
+
451
+ # 2. Read the inbox (default: top 20, sorted by severity / confidence / lastSeen)
452
+ omk observe inbox
453
+ omk observe inbox --limit 50
454
+ omk observe inbox --skill audit # filter by skill
455
+ omk observe inbox --by-skill # rollup view (one row per skill)
456
+ omk observe inbox --explore 10 # sample 10 long-tail items from medium/low
457
+ omk observe inbox --explore 10 --include-noise # explicitly include the noise bucket
458
+ omk observe inbox --json # JSON output for automation
459
+
460
+ # 3. Inspect a single observation with its event triplet (surrounding messages)
461
+ omk observe show <inbox_id>
442
462
  ```
443
463
 
444
- Use this after `omk eval` or `omk observe` to decide what to change next. Generated sample assertions use English, numbers, or code tokens so they are easier to compare across bilingual outputs.
464
+ Every observation carries:
465
+
466
+ - `confidence` and `attributionConfidence` — signal credibility plus skill-attribution credibility, displayed side by side
467
+ - `severityReasonCode` — stable structured reason code for the assigned severity; human-readable reasons are generated by CLI / studio rendering
468
+ - `messageWindow` — 3 messages before / trigger / 3 messages after, plus `resolutionAfter` (whether the agent recovered)
469
+ - `evidence.{messageIndex,messageUuid,toolUseId}` — anchors for round-tripping back to the original jsonl
470
+
471
+ Supported trace formats: Claude Code session JSONL (`.jsonl`) and markdown conversation logs (`.log`).
445
472
 
446
- ### `omk export`
473
+ ### `omk evolve`
447
474
 
448
475
  ```bash
449
- omk export <report-id> --format html
450
- omk export <report-id> --format markdown --out report.md
451
- omk export <report-id> --format github-summary
452
- omk export diff <report-id> --regressions-only
453
- omk export verdict <report-id>
454
- omk export saturation <report-id>
476
+ omk evolve <skill> # multi-round auto-iteration on a skill
477
+ omk evolve skills/foo.md --rounds 10 --target 4.5
455
478
  ```
456
479
 
457
- Exports evidence for PRs, CI summaries, and audit trails. HTML writes a standalone report file; markdown and GitHub summary print to stdout unless `--out` is provided. The export subtree also owns sample/report diffing, persisted verdict reads, and saturation inspection.
480
+ Auto-iterates a skill through repeated eval judge rewrite loops until it hits `--target` or exhausts `--rounds`. Cost scales with `rounds × samples × variants`; a typical run takes minutes to tens of minutes. Original skill files are versioned under `skills/evolve/*.r0.md`.
481
+
482
+ ### `omk sample`
483
+
484
+ ```bash
485
+ omk sample <skill> # generate or fill eval-samples test cases for one skill
486
+ omk sample --batch # generate for skills missing eval-samples
487
+ ```
488
+
489
+ One-shot generation. Auto-stamps `provenance` on generated cases. Generated assertions use English, numbers, or code tokens so they compare cleanly across bilingual outputs.
458
490
 
459
491
  ### `omk studio`
460
492
 
461
493
  ```bash
462
494
  omk studio
463
495
  omk studio --port 7799
496
+ omk studio --host 0.0.0.0 # LAN access (default: 127.0.0.1)
464
497
  omk studio --reports-dir ~/.oh-my-knowledge/reports
498
+ omk studio --observations-dir .omk/observations # observe inbox data directory
465
499
  omk studio --no-open
466
500
  ```
467
501
 
468
- Starts the local knowledge workbench for browsing reports and observation analyses.
502
+ Starts the local knowledge workbench for browsing reports and observation analyses. Verdict, sample diffs, regressions, saturation curves, and per-sample drill-downs all live in the studio UI — there is no CLI export / analysis subcommand. For CI gates, use `omk eval`'s exit code (0 on `PROGRESS`, non-zero otherwise) or `jq` over the report JSON.
503
+
504
+ Visit `/observations/inbox` for the observe inbox dashboard: per-skill rollup view, reviewer action list, observability funnel, and a per-observation detail panel with the event triplet (surrounding messages).
469
505
 
470
506
  ## Executors
471
507
 
package/README.zh.md CHANGED
@@ -37,11 +37,11 @@ omk eval --control code-review-v1 --treatment code-review-v2 # → 5 分钟
37
37
 
38
38
  ```bash
39
39
  /omk eval # 评测当前项目的 artifact
40
- /omk improve skill # 自动迭代改进 artifact
41
- /omk improve samples # 生成评测用例
40
+ /omk evolve # 多轮自动迭代改进 skill
41
+ /omk sample # 生成或补齐评测用例
42
42
  ```
43
43
 
44
- 或直接说"帮我评测 v1 和 v2 的差异"、"改进一下这个 artifact",omk 会自动理解意图并调用对应命令。
44
+ 这些 slash command 是自然语言入口 —— agent 会从对话上下文里推断要操作哪个 skill,所以一般不用显式传路径。(下面 Codex 段落给出 `omk evolve <skill>` 的裸 CLI 形式。)也可以直接说「帮我评测 v1 和 v2 的差异」、「改进一下这个 artifact」,omk 会自动理解意图并调用对应命令。
45
45
 
46
46
  ### 在 Codex 中使用
47
47
 
@@ -49,8 +49,8 @@ Codex 默认不支持 `/omk ...` 这种 Claude Code 风格的 slash command。
49
49
 
50
50
  ```bash
51
51
  omk eval
52
- omk improve skill skills/my-skill.md
53
- omk improve samples skills/my-skill.md
52
+ omk evolve skills/my-skill.md
53
+ omk sample skills/my-skill.md
54
54
  ```
55
55
 
56
56
  也可以直接用自然语言描述目标,例如"比较 v1 和 v2 的评测差异"、"为这个 skill 生成评测用例"。
@@ -61,7 +61,7 @@ omk improve samples skills/my-skill.md
61
61
 
62
62
  ## 核心能力
63
63
 
64
- - **评测前置健康检查** — `omk doctor` `omk eval` 之前**强制**运行,检查 skill 可读性、元数据合法性、依赖完整性、samples 契约——纯静态零 LLM 调用,类比 SE 工具栈的 lint + typecheck。executor / judge 连通性是独立阶段,可用 `--skip-connectivity` 单独跳过
64
+ - **LLM 健康度审计** — `omk doctor` 用单次 LLM 会话产出多维度健康度报告,7 个内置维度(触发与边界 / 文档清晰 / 指令精确性 / 依赖检查 / 工具规范 / 安全与合规 / 示例完备)独立给「健康 / 亚健康 / 不健康 / 不适用」+ findings + 改进建议;维度可扩展,`--html` 产可视化报告。无 LLM 环境(CI 节点 / 断网调试)可加 `--static-only` 跑纯静态检查(可读性 / 元数据 / 依赖 / samples 契约)。`omk eval` 内部仍跑静态可读性、元数据、依赖 gate 把关评测质量(角色分离:doctor=审计,eval=评测)
65
65
  - **控制变量离线评测** — 固定模型和用例,只变知识载体;兼容 Claude Code skill、CLAUDE.md prompt、RAG 知识库等任何 markdown 形式的指令
66
66
  - **六维独立打分** — Fact / Behavior / LLM-judge / Cost / Efficiency / Stability 分别出信号,单一维度的回退不会被其他维度的收益掩盖
67
67
  - **线上 session 观测** — 解析 Claude Code session JSONL,在真实用户会话上测量各 skill 的失败率、耗时、token 成本和知识缺口信号
@@ -95,12 +95,10 @@ RAG 专项评测请看 RAGAS(独立 niche,跟 omk 互补)。完整对比
95
95
  | **多执行器** | 支持 Claude CLI / Claude SDK / Codex CLI / Codex SDK / OpenAI / Gemini 及自定义命令 |
96
96
  | **21+ 种断言** | 包含子串、正则、JSON Schema、ROUGE/BLEU/Levenshtein 相似度、Agent 工具调用、语义相似度、自定义函数等 |
97
97
  | **统计严谨性** | Bootstrap CI / Krippendorff α / 长度去偏 / 饱和曲线 —— 全部默认开。[详情 →](docs/zh/statistical-rigor.md) |
98
- | **用例质量诊断** | `omk improve <id>` 7 类 issue(区分度低 / 重复 / 歧义 / 成本异常 / 全 fail 等)+ healthScore 0-100 |
99
- | **失败聚类 + 根因** | `omk improve failures <id>` 单 LLM 调用聚类失败用例 + 每 cluster 给修复建议 |
100
98
  | **RAG metrics** | `faithfulness` / `answer_relevancy` / `context_recall` 三 metric — 反幻觉 + 切题度 + context 覆盖,自动继承长度去偏 |
101
99
  | **预算硬阈值** | `--budget-usd / --budget-per-sample-usd / --budget-per-sample-ms` 总成本 + 单用例成本/耗时上限,超出中止保留 partial report |
102
100
  | **用例隔离 (construct validity)** | `--strict-baseline` (默认开) 三堵 baseline 拿到被测 skill 的污染路径:(1) SDK skill auto-discovery (2) subagent Skill 工具调用 (3) cwd 文件系统(避免 baseline 顺 `skills/<name>/` symlink 直接 Read 到 SKILL.md)。eval.yaml `allowedSkills` 支持 per-variant 白名单 |
103
- | **用例设计科学性 (sample design science)** | Sample schema 加 `capability` / `difficulty` / `construct` / `provenance` 元数据字段(HF Dataset Cards 风)。`omk improve` 输出 coverage 分桶 + 检测 `rubric_clarity_low` / `capability_thin` 两类新 issue。`omk improve samples` 自动给生成的用例打 provenance。详见 [docs/sample-design-spec.md](docs/sample-design-spec.md),含 8 条行业 gap(HELM / MMLU-Pro / Construct Validity / IRT / Dataset Cards / Adversarial)的 omk v1 映射 |
101
+ | **用例设计科学性 (sample design science)** | Sample schema 加 `capability` / `difficulty` / `construct` / `provenance` 元数据字段(HF Dataset Cards 风),studio 输出 coverage 分桶 + `rubric_clarity_low` / `capability_thin` 两类 issue。`omk sample` 自动给生成的用例打 provenance。详见 [docs/sample-design-spec.md](docs/sample-design-spec.md),含 8 条行业 gap(HELM / MMLU-Pro / Construct Validity / IRT / Dataset Cards / Adversarial)的 omk v1 映射 |
104
102
  | **多评委 ensemble** | `--judge-models claude:opus,openai:gpt-4o` 跨厂商评分 + agreement 度量 |
105
103
  | **MCP URL 获取** | 通过 MCP Server 获取私有文档 URL 内容(SSO 保护的知识库等) |
106
104
  | **盲测 A/B** | `--blind` 隐藏变体名称,HTML 报告有揭晓按钮 |
@@ -359,7 +357,7 @@ export default function(output, { sample, assertion }) {
359
357
 
360
358
  ## CLI 参考
361
359
 
362
- omk 的公开 CLI 按知识载体工作流组织:初始化、健康检查、离线评测、线上观测、改进建议、证据导出、本地工作台。
360
+ omk 的公开 CLI 由 7 个顶层命令构成完整闭环:`init`(脚手架)·`doctor`(静态检查)·`eval`(离线 A/B 评测)·`observe`(线上 trace 观测)·`evolve`(多轮自动迭代 skill)·`sample`(生成或补齐评测用例)·`studio`(本地 Web 工作台,看报告 / 分析)。
363
361
 
364
362
  ### `omk init`
365
363
 
@@ -372,22 +370,28 @@ omk init [目录]
372
370
  ### `omk doctor`
373
371
 
374
372
  ```bash
375
- omk doctor # 检查当前目录或 ./skills
376
- omk doctor skills/v1.md # 检查单个 skill 文件
377
- omk doctor skills/ --json # 输出 JSON 给 CI 消费
378
- omk doctor --gate; echo $? # 静默门禁,fatal exit 1
373
+ omk doctor # 体检当前目录或 ./skills
374
+ omk doctor skills/v1.md # 体检单个 skill
375
+ omk doctor skills/ --html report.html # HTML 可视化报告
376
+ omk doctor skills/ --json > r.json # JSON CI / 外部工具消费
377
+ omk doctor --gate; echo $? # 静默门禁,fatal 问题 exit 1,警告不阻断
378
+ omk doctor --static-only # 离线模式:只跑静态检查,不调 LLM
379
379
  ```
380
380
 
381
- 纯静态检查:skill 可读性、frontmatter、directory-skill 结构、依赖提示、samples 契约。`omk eval` 前也会自动强制执行。
381
+ LLM 健康度审计:单次 LLM 会话产出 7 个内置维度的健康度评分 + findings + 改进建议;HTML 报告按 fail→warn→pass→skipped 排序,错误 finding 优先。维度可扩展(在自己代码里调 `registerHealthDimension`,自动并入同一次 LLM 调用的 prompt 与报告,顺序 = 注册顺序)。
382
+
383
+ 离线静态模式(`--static-only`):CI 节点没装 claude / codex、本地断网调试等场景下跑 4 条静态 rule(可读性 / 元数据 / 依赖 / samples 契约),零 LLM 调用、零成本。结果同样进 `DoctorReport`,可与 `--json` / `--gate` / `--html` 组合。
384
+
385
+ `omk eval` 内部继续跑静态 readability / metadata / dependency / samples 契约 gate 保护评测质量,这条路径与用户入口的 `omk doctor` 角色分离,互不干扰。
382
386
 
383
387
  ### `omk eval`
384
388
 
385
389
  ```bash
386
- omk eval --control code-review-v1 --treatment code-review-v2
390
+ omk eval --control baseline --treatment my-skill # 单 skill 必要性测试(baseline 是保留 variant,代表「不注入 skill」)
391
+ omk eval --control code-review-v1 --treatment code-review-v2 # 多版本 A/B
387
392
  omk eval --config eval.yaml
388
393
  omk eval --batch
389
394
  omk eval gold compare <report-id> --gold-dir gold-dataset
390
- omk eval debias length <report-id>
391
395
  ```
392
396
 
393
397
  运行离线评测,应用 verdict gate,持久化报告,并用 exit code 表示 ship/no-ship。这个工作流默认开启 bootstrap CI。
@@ -415,12 +419,16 @@ omk eval debias length <report-id>
415
419
  --trivial-diff <num> 实际可忽略 diff 阈值(默认 0.1)
416
420
  --report-only 生成报告并打印 verdict,但始终 exit 0
417
421
  --no-gate --report-only 的别名
418
- --skip-connectivity 跳过模型连通性检查;doctor 仍强制执行
422
+ --skip-connectivity 跳过模型连通性检查(内部静态 gate 仍强制执行)
419
423
  --no-serve 评测后不自动启动报告服务
420
424
  ```
421
425
 
422
426
  ### `omk observe`
423
427
 
428
+ omk observe 提供两条工作流:默认的 skill 健康度报告,以及 reviewer 闭环用的 observe inbox。
429
+
430
+ #### A. skill 健康度报告(默认)
431
+
424
432
  ```bash
425
433
  omk observe ~/.claude/projects/-Users-you-Documents-my-project
426
434
  omk observe ~/.claude/projects/my-project --last 7d
@@ -431,41 +439,69 @@ omk observe ~/.claude/projects/my-project --kb /path/to/project
431
439
 
432
440
  把真实 Claude Code session trace 转成 skill 健康度报告:知识使用、gap 信号、执行稳定性、token 和耗时。这是生产观测,不是生产评分。
433
441
 
434
- ### `omk improve`
442
+ #### B. observe inbox:reviewer 闭环
443
+
444
+ 把真实 session trace 解析、聚合、降噪,输出可逐条 review 的 observation 列表。整条链路纯本地、零 LLM。
435
445
 
436
446
  ```bash
437
- omk improve <report-id> # 样本诊断和修复计划
438
- omk improve plan <report-id> # 显式 repair-plan 形式
439
- omk improve failures <report-id> # 聚类失败样本并给根因
440
- omk improve samples [skill] # 生成或补齐 eval samples
441
- omk improve skill <skill> # 通过评测循环迭代 skill
447
+ # 1. trace 解析、聚合、落盘到 .omk/observations/
448
+ omk observe ingest ~/.claude/projects/my-project
449
+ omk observe ingest ~/.claude/projects/my-project --output-dir ./custom-dir
450
+
451
+ # 2. inbox(默认 top 20,按 severity / confidence / lastSeen 排序)
452
+ omk observe inbox
453
+ omk observe inbox --limit 50
454
+ omk observe inbox --skill audit # 只看某个 skill
455
+ omk observe inbox --by-skill # 按 skill 资产视图
456
+ omk observe inbox --explore 10 # 从 medium / low 桶抽 10 条长尾
457
+ omk observe inbox --explore 10 --include-noise # 显式包含 noise 桶
458
+ omk observe inbox --json # JSON 输出,便于自动化消费
459
+
460
+ # 3. 反向查单条 observation 的事件三元组(前后 message 上下文)
461
+ omk observe show <inbox_id>
442
462
  ```
443
463
 
444
- `omk eval` 或 `omk observe` 之后用它决定下一步改什么。自动生成的 sample assertions 使用英文、数字或代码 token,便于跨中英文输出比较。
464
+ 每条 observation 自带:
465
+
466
+ + `confidence` 与 `attributionConfidence`:信号可信度 + skill 归因可信度,并列展示
467
+ + `severityReasonCode`:判断为该 severity 的稳定结构化原因;人类可读说明由 CLI / studio 渲染时生成
468
+ + `messageWindow`:前 3 条 / 触发点 / 后 3 条 message 上下文 + `resolutionAfter`(后续是否解决)
469
+ + `evidence.{messageIndex,messageUuid,toolUseId}`:可反向回到原始 jsonl 的锚点
470
+
471
+ 支持 trace 格式:Claude Code session JSONL(`.jsonl`)+ markdown 对话日志(`.log`)。
445
472
 
446
- ### `omk export`
473
+ ### `omk evolve`
447
474
 
448
475
  ```bash
449
- omk export <report-id> --format html
450
- omk export <report-id> --format markdown --out report.md
451
- omk export <report-id> --format github-summary
452
- omk export diff <report-id> --regressions-only
453
- omk export verdict <report-id>
454
- omk export saturation <report-id>
476
+ omk evolve <skill> # 多轮自动迭代 skill
477
+ omk evolve skills/foo.md --rounds 10 --target 4.5
455
478
  ```
456
479
 
457
- 导出可贴到 PR、CI summary 和审计材料里的证据。HTML 会写 standalone report 文件;markdown GitHub summary 默认输出到 stdout,除非传 `--out`。样本/报告差异、已持久化 verdict、saturation 检查也都归在 export 子树下。
480
+ skill eval judge 改写 SKILL.md 的多轮闭环,直到达到 `--target` `--rounds` 上限。耗时按 `轮数 × 样本 × 变体` 累加,几分钟到几十分钟级别。原始 skill 文件版本保存在 `skills/evolve/*.r0.md`。
481
+
482
+ ### `omk sample`
483
+
484
+ ```bash
485
+ omk sample <skill> # 为单个 skill 生成或补齐评测用例
486
+ omk sample --batch # 为目录下缺评测集的 skill 批量生成
487
+ ```
488
+
489
+ 一次性生成。自动给生成的用例打 `provenance`。生成的 assertions 使用英文 / 数字 / 代码 token,便于跨中英文输出对比。
458
490
 
459
491
  ### `omk studio`
460
492
 
461
493
  ```bash
462
494
  omk studio
463
495
  omk studio --port 7799
496
+ omk studio --host 0.0.0.0 # 局域网访问(默认 127.0.0.1)
464
497
  omk studio --reports-dir ~/.oh-my-knowledge/reports
498
+ omk studio --observations-dir .omk/observations # observe inbox 数据目录
465
499
  omk studio --no-open
466
500
  ```
467
501
 
468
- 启动本地知识工作台,用来浏览报告和观测分析。
502
+ 启动本地知识工作台浏览报告。verdict、样本回退、跨样本 diff、饱和曲线、单样本 drill-down 全部在 studio UI 里 —— omk 不提供 CLI 导出 / 分析子命令。CI gate 用 `omk eval` 的 exit code(PROGRESS 退 0、其他非 0),需要文字摘要自己 `jq` report JSON。
503
+
504
+ 访问 `/observations/inbox` 查看 observe inbox 看板:按 skill 资产视图(rollup)+ reviewer 待办建议 + 当前可观测漏斗 + 单 observation 详情面板(含事件三元组)。
469
505
 
470
506
  ## 执行器
471
507
 
@@ -255,7 +255,7 @@ function normalizeClusters(parsed, fed) {
255
255
  export function formatFailureClusterReport(r) {
256
256
  const lines = [];
257
257
  lines.push('');
258
- lines.push(` 失败聚类 — ${r.totalFailures} 条失败${r.truncated ? ` (取最差 ${r.failures.length} 条做聚类)` : ''}`);
258
+ lines.push(` 失败聚类——${r.totalFailures} 条失败${r.truncated ? ` (取最差 ${r.failures.length} 条做聚类)` : ''}`);
259
259
  lines.push('');
260
260
  if (r.clusters.length === 0) {
261
261
  lines.push(' (聚类失败,以下是原始失败列表)');
@@ -1 +1 @@
1
- {"version":3,"file":"failure-clusterer.js","sourceRoot":"","sources":["../../../src/analysis/failure-clusterer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"failure-clusterer.js","sourceRoot":"","sources":["../../../src/analysis/failure-clusterer.ts"],"names":[],"mappings":"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"}
@@ -41,7 +41,7 @@ export declare const SIGNAL_WEIGHTS: Record<GapSignalType, number>;
41
41
  * - Read with success: false
42
42
  * - Grep with success: false
43
43
  * - Grep with success but empty/"No matches found" output (still a miss)
44
- * - Bash with grep/rg/find in the command and either failure or empty output
44
+ * - Bash with grep/rg/find or explicit probe commands that returned empty or failed
45
45
  */
46
46
  export declare function isFailedSearchTool(tc: ToolCallInfo): boolean;
47
47
  /**
@@ -50,6 +50,7 @@ export declare function isFailedSearchTool(tc: ToolCallInfo): boolean;
50
50
  * that retries the exact same Grep 5 times counts as one signal, not five.
51
51
  */
52
52
  export declare function extractFailedSearchSignals(toolCalls: ToolCallInfo[]): GapSignal[];
53
+ export declare function collectAssistantTextFromTurns(turns: TurnInfo[] | undefined): string;
53
54
  /**
54
55
  * Find explicit "I'm inferring / I don't know" markers in agent output text.
55
56
  * Each marker occurrence produces one signal; dedupe is at the sample level
@@ -74,6 +75,12 @@ export declare function extractRepeatedFailureSignals(turns: TurnInfo[] | undefi
74
75
  * Output signals carry the provided sampleId.
75
76
  */
76
77
  export declare function extractGapSignalsFromSample(variantResult: VariantResult, sampleId: string): GapSignal[];
78
+ export declare function extractGapSignalsFromTrace(input: {
79
+ sampleId: string;
80
+ turns?: TurnInfo[];
81
+ toolCalls?: ToolCallInfo[];
82
+ assistantText?: string;
83
+ }): GapSignal[];
77
84
  /**
78
85
  * Compute the gap report for one variant across all samples in a report.
79
86
  *
@@ -1 +1 @@
1
- {"version":3,"file":"gap-analyzer.d.ts","sourceRoot":"","sources":["../../../src/analysis/gap-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjI,OAAO,EAA6B,KAAK,eAAe,EAAyB,MAAM,yBAAyB,CAAC;AAEjH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC;AA8BrC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAKxD,CAAC;AAIF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAqB5D;AAkBD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAqBjF;AAgBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAoB9D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAiB/D;AAID;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAoCxF;AAID;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAuBvG;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CA+CnF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAM3G;AAmCD;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAuCrE;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAClC,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CASlE"}
1
+ {"version":3,"file":"gap-analyzer.d.ts","sourceRoot":"","sources":["../../../src/analysis/gap-analyzer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjI,OAAO,EAA6B,KAAK,eAAe,EAAyB,MAAM,yBAAyB,CAAC;AAGjH,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;AACjD,MAAM,MAAM,SAAS,GAAG,YAAY,CAAC;AAmCrC;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAKxD,CAAC;AAIF;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAE5D;AAUD;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,SAAS,EAAE,YAAY,EAAE,GAAG,SAAS,EAAE,CAqBjF;AAgBD,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,GAAG,MAAM,CAMnF;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAqB9D;AA0BD;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAiB/D;AAID;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,GAAG,SAAS,EAAE,CAoCxF;AAID;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAuBvG;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,SAAS,EAAE,CAkBd;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,CA+CnF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAM3G;AAmCD;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC,CAuCrE;AAED;;;GAGG;AACH,wBAAsB,+BAA+B,CACnD,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,EAClC,QAAQ,EAAE,UAAU,EACpB,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CASlE"}