oh-my-knowledge 0.25.0 → 0.26.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 (35) hide show
  1. package/README.md +6 -23
  2. package/README.zh.md +6 -23
  3. package/dist/src/cli/i18n-dict.d.ts +1 -1
  4. package/dist/src/cli/i18n-dict.d.ts.map +1 -1
  5. package/dist/src/cli/i18n-dict.js +57 -19
  6. package/dist/src/cli/i18n-dict.js.map +1 -1
  7. package/dist/src/cli/index.js +36 -7
  8. package/dist/src/cli/index.js.map +1 -1
  9. package/dist/src/cli/run-tally.d.ts +18 -0
  10. package/dist/src/cli/run-tally.d.ts.map +1 -0
  11. package/dist/src/cli/run-tally.js +31 -0
  12. package/dist/src/cli/run-tally.js.map +1 -0
  13. package/dist/src/doctor/index.d.ts +1 -1
  14. package/dist/src/doctor/index.d.ts.map +1 -1
  15. package/dist/src/doctor/index.js +17 -3
  16. package/dist/src/doctor/index.js.map +1 -1
  17. package/dist/src/doctor/rules.d.ts +1 -1
  18. package/dist/src/doctor/rules.d.ts.map +1 -1
  19. package/dist/src/doctor/rules.js +49 -9
  20. package/dist/src/doctor/rules.js.map +1 -1
  21. package/dist/src/eval-core/dependency-checker.d.ts +9 -3
  22. package/dist/src/eval-core/dependency-checker.d.ts.map +1 -1
  23. package/dist/src/eval-core/dependency-checker.js +16 -29
  24. package/dist/src/eval-core/dependency-checker.js.map +1 -1
  25. package/dist/src/eval-workflows/run-evaluation.js +1 -1
  26. package/dist/src/eval-workflows/run-evaluation.js.map +1 -1
  27. package/dist/src/server/report-server.d.ts +1 -0
  28. package/dist/src/server/report-server.d.ts.map +1 -1
  29. package/dist/src/server/report-server.js +35 -2
  30. package/dist/src/server/report-server.js.map +1 -1
  31. package/dist/src/types/doctor.d.ts +26 -4
  32. package/dist/src/types/doctor.d.ts.map +1 -1
  33. package/dist/src/types/doctor.js +3 -1
  34. package/dist/src/types/doctor.js.map +1 -1
  35. package/package.json +2 -2
package/README.md CHANGED
@@ -11,7 +11,7 @@
11
11
  **omk** — The knowledge you give your LLM — what's it actually worth?
12
12
  omk answers with objective data, not gut feeling.
13
13
 
14
- **Fix the model, vary the knowledge artifact.**
14
+ **Evaluation framework for LLM knowledge inputs** — prompts, RAG corpora, skills, agent workflows. Fix the model, vary the artifact.
15
15
 
16
16
  <a id="statistical-rigor"></a>
17
17
  > Built-in: Bootstrap CI · Krippendorff α (judge ↔ human) · length-debias · saturation curves · construct-validity isolation. [Why these matter →](docs/statistical-rigor.md)
@@ -21,31 +21,14 @@ omk answers with objective data, not gut feeling.
21
21
  ## Quick start
22
22
 
23
23
  ```bash
24
- # install
25
24
  npm i oh-my-knowledge -g
26
-
27
- # scaffold an eval project
28
- omk bench init my-eval
29
- cd my-eval
30
-
31
- # drop the artifacts you want to compare into skills/
32
- # option 1: plain .md files (skills/v1.md, skills/v2.md)
33
- # option 2: full artifact dirs (skills/my-skill-v1/SKILL.md, ...)
34
- # a single artifact also works — baseline is auto-added as control
35
-
36
- # preview the plan
37
- omk bench run --dry-run
38
-
39
- # run the evaluation (auto-discovers everything under skills/)
40
- omk bench run # → HTML report with verdict in 5 minutes
41
- # (omk doctor + LLM connectivity check both run as mandatory gates;
42
- # --skip-connectivity available for connectivity, doctor is unconditional)
43
-
44
- # CLI output language: zh (default) / en — flag wins over env
45
- omk bench run --lang en
46
- OMK_LANG=en omk bench report
25
+ omk bench init my-eval && cd my-eval
26
+ # edit skills/code-review-v1/SKILL.md and skills/code-review-v2/SKILL.md with your two versions
27
+ omk bench run --control code-review-v1 --treatment code-review-v2 # → HTML report with verdict in 5 minutes
47
28
  ```
48
29
 
30
+ Deeper: [use inside Claude Code / Codex](#use-inside-ai-coding-agents) · [`omk bench run` flags](#omk-bench-run) · [artifact directory layout](#artifact-directory-layout) · [`--lang` / `OMK_LANG`](#environment-variables)
31
+
49
32
  ## Use inside AI Coding Agents
50
33
 
51
34
  ### Use inside Claude Code
package/README.zh.md CHANGED
@@ -11,7 +11,7 @@
11
11
  **omk** — 你给 LLM 的知识,价值在哪里?
12
12
  omk 帮你用客观数据回答,而不是凭感觉。
13
13
 
14
- **固定模型,只变知识载体。**
14
+ **面向 LLM 知识输入(prompt / RAG / skill / agent)的评测框架** —— 固定模型,只变知识载体。
15
15
 
16
16
  <a id="statistical-rigor"></a>
17
17
  > 默认带:Bootstrap 置信区间 · Krippendorff α(评委 ↔ 人工)· 长度去偏 · 饱和曲线 · 用例隔离(construct validity)。[这些为什么重要 →](docs/zh/statistical-rigor.md)
@@ -21,31 +21,14 @@ omk 帮你用客观数据回答,而不是凭感觉。
21
21
  ## 快速开始
22
22
 
23
23
  ```bash
24
- # 安装
25
24
  npm i oh-my-knowledge -g
26
-
27
- # 生成评测项目脚手架
28
- omk bench init my-eval
29
- cd my-eval
30
-
31
- # 把要对比的 artifact 放到 skills/ 目录
32
- # 方式一:直接放 .md 文件(skills/v1.md, skills/v2.md)
33
- # 方式二:放完整 artifact 目录(skills/my-skill-v1/SKILL.md, ...)
34
- # 只放一个 artifact 也行,会自动加 baseline 对照
35
-
36
- # 预览评测计划
37
- omk bench run --dry-run
38
-
39
- # 运行评测(自动发现 skills/ 目录下的所有 artifact)
40
- omk bench run # → 5 分钟出 HTML 报告 + verdict
41
- # (omk doctor 和 LLM 连通性检测都是强制前置门禁;
42
- # --skip-connectivity 可跳连通性,doctor 无 skip flag)
43
-
44
- # CLI 输出语言: zh (默认) / en — flag 优先级高于环境变量
45
- omk bench run --lang en
46
- OMK_LANG=en omk bench report
25
+ omk bench init my-eval && cd my-eval
26
+ # 编辑 skills/code-review-v1/SKILL.md 和 skills/code-review-v2/SKILL.md,填入你的两版内容
27
+ omk bench run --control code-review-v1 --treatment code-review-v2 # → 5 分钟出 HTML 报告 + verdict
47
28
  ```
48
29
 
30
+ 深入:[在 Claude Code / Codex 中调用](#在-ai-coding-agent-中使用) · [`omk bench run` 全 flag](#omk-bench-run) · [artifact 目录结构](#artifact-目录结构) · [`--lang` / `OMK_LANG`](#环境变量)
31
+
49
32
  ## 在 AI Coding Agent 中使用
50
33
 
51
34
  ### 在 Claude Code 中使用
@@ -47,7 +47,7 @@
47
47
  * 未来扩 Lang (zh-TW / ja / ko ...): 改 src/types/shared.ts 的 Lang union,
48
48
  * Record 类型自动强制每 key 加新语言版本。
49
49
  */
50
- export type CliMessageKey = 'cli.common.lang_invalid_silent' | 'cli.common.help_hint' | 'cli.common.unknown_domain' | 'cli.common.unknown_bench_command' | 'cli.init.scaffolded' | 'cli.init.next_steps_title' | 'cli.init.next_step_edit_samples' | 'cli.init.next_step_edit_skills' | 'cli.init.next_step_run' | 'cli.update.new_version_available' | 'cli.progress.preflight_starting' | 'cli.progress.sample_retry' | 'cli.progress.sample_error' | 'cli.progress.sample_executing' | 'cli.progress.sample_exec_done' | 'cli.progress.output_preview' | 'cli.progress.judging' | 'cli.progress.judged' | 'cli.progress.skipped' | 'cli.progress.sample_done' | 'cli.progress.sample_failed_done' | 'cli.run.invalid_repeat' | 'cli.run.invalid_judge_repeat' | 'cli.run.no_debias_length_active' | 'cli.run.invalid_bootstrap_samples' | 'cli.run.bootstrap_samples_too_large' | 'cli.run.skill_section' | 'cli.run.run_section' | 'cli.run.batch_complete' | 'cli.run.eval_complete' | 'cli.run.report_saved' | 'cli.run.report_server_running' | 'cli.run.report_server_view' | 'cli.run.report_server_stop' | 'cli.run.no_serve_in_non_tty' | 'cli.run.no_serve_view_hint' | 'cli.run.gold_load_failed' | 'cli.run.gold_load_issue' | 'cli.run.contamination_warning' | 'cli.common.error_prefix' | 'cli.analyze.view_in_browser' | 'cli.common.skill_dir_not_found' | 'cli.common.skill_file_not_found' | 'cli.common.report_not_found' | 'cli.common.no_judge_model' | 'cli.common.judge_models_single_only' | 'cli.common.usage_gold_validate' | 'cli.common.warn_load_samples_failed' | 'cli.gen.skill_skipped_existing' | 'cli.gen.skill_generating' | 'cli.gen.skill_done' | 'cli.gen.skill_failed' | 'cli.gen.batch_none_needed' | 'cli.gen.batch_summary' | 'cli.gen.specify_skill_path' | 'cli.gen.samples_already_exists' | 'cli.gen.single_generating' | 'cli.gen.single_done' | 'cli.gen.review_hint' | 'cli.gen.failed' | 'cli.evolve.specify_skill_path' | 'cli.evolve.section_header' | 'cli.evolve.round_baseline' | 'cli.evolve.round_error' | 'cli.evolve.round_done' | 'cli.evolve.summary' | 'cli.evolve.best_path' | 'cli.evolve.versions_saved' | 'cli.evolve.report_link' | 'cli.gold.created_files' | 'cli.gold.next_step_edit_annotations' | 'cli.gold.validate_ok' | 'cli.debias.warn_cost_doubles' | 'cli.saturation.no_data' | 'cli.saturation.verdict_header' | 'cli.saturation.variant_no_trace' | 'cli.saturation.variant_label' | 'cli.saturation.checkpoints' | 'cli.saturation.last_point' | 'cli.saturation.persisted_verdict' | 'cli.saturation.persisted_verdict_saturated' | 'cli.saturation.persisted_verdict_unsaturated' | 'cli.saturation.skipped_too_few_points' | 'cli.help.main' | 'cli.help.diff_usage' | 'cli.help.analyze_usage' | 'cli.help.gold' | 'cli.help.debias_validate' | 'cli.help.saturation' | 'cli.help.verdict' | 'cli.help.diagnose' | 'cli.help.failures' | 'cli.diagnose.coverage_header' | 'cli.diagnose.coverage_unspecified' | 'cli.diagnose.coverage_chars' | 'cli.diagnose.coverage_hint_empty' | 'cli.diagnose.coverage_declared' | 'cli.doctor.rule.skill_readable' | 'cli.doctor.rule.skill_metadata' | 'cli.doctor.rule.dependencies' | 'cli.doctor.rule.samples_contract' | 'cli.doctor.skill_readable.pass' | 'cli.doctor.skill_metadata.pass' | 'cli.doctor.dependencies.pass' | 'cli.doctor.samples_contract.pass' | 'cli.doctor.skill_readable.fail.missing' | 'cli.doctor.skill_readable.fail.empty' | 'cli.doctor.skill_readable.fail.too_short' | 'cli.doctor.skill_readable.hint.missing' | 'cli.doctor.skill_readable.hint.too_short' | 'cli.doctor.skill_metadata.fail.frontmatter_invalid' | 'cli.doctor.skill_metadata.fail.missing_skillmd' | 'cli.doctor.skill_metadata.hint.frontmatter' | 'cli.doctor.skill_metadata.hint.missing_skillmd' | 'cli.doctor.dependencies.fail' | 'cli.doctor.dependencies.hint' | 'cli.doctor.samples_contract.skipped' | 'cli.doctor.samples_contract.warn.empty' | 'cli.doctor.samples_contract.warn.missing_prompt' | 'cli.doctor.samples_contract.hint' | 'cli.help.doctor_usage' | 'cli.doctor.no_skill_found' | 'cli.doctor.gate_blocked' | 'cli.run.skip_connectivity_warning';
50
+ export type CliMessageKey = 'cli.common.lang_invalid_silent' | 'cli.common.help_hint' | 'cli.common.unknown_domain' | 'cli.common.unknown_bench_command' | 'cli.init.scaffolded' | 'cli.init.next_steps_title' | 'cli.init.next_step_edit_samples' | 'cli.init.next_step_edit_skills' | 'cli.init.next_step_run' | 'cli.init.note_codex_executor' | 'cli.update.new_version_available' | 'cli.progress.preflight_starting' | 'cli.progress.sample_retry' | 'cli.progress.sample_error' | 'cli.progress.sample_executing' | 'cli.progress.sample_exec_done' | 'cli.progress.output_preview' | 'cli.progress.judging' | 'cli.progress.judged' | 'cli.progress.skipped' | 'cli.progress.sample_done' | 'cli.progress.sample_failed_done' | 'cli.run.invalid_repeat' | 'cli.run.invalid_judge_repeat' | 'cli.run.no_debias_length_active' | 'cli.run.invalid_bootstrap_samples' | 'cli.run.bootstrap_samples_too_large' | 'cli.run.skill_section' | 'cli.run.run_section' | 'cli.run.batch_complete' | 'cli.run.eval_complete' | 'cli.run.tally' | 'cli.run.report_saved' | 'cli.run.report_server_running' | 'cli.run.report_server_view' | 'cli.run.report_server_stop' | 'cli.run.no_serve_in_non_tty' | 'cli.run.no_serve_view_hint' | 'cli.run.gold_load_failed' | 'cli.run.gold_load_issue' | 'cli.run.contamination_warning' | 'cli.common.error_prefix' | 'cli.analyze.view_in_browser' | 'cli.common.skill_dir_not_found' | 'cli.common.skill_file_not_found' | 'cli.common.report_not_found' | 'cli.common.no_judge_model' | 'cli.common.judge_models_single_only' | 'cli.common.usage_gold_validate' | 'cli.common.warn_load_samples_failed' | 'cli.gen.skill_skipped_existing' | 'cli.gen.skill_generating' | 'cli.gen.skill_done' | 'cli.gen.skill_failed' | 'cli.gen.batch_none_needed' | 'cli.gen.batch_summary' | 'cli.gen.specify_skill_path' | 'cli.gen.samples_already_exists' | 'cli.gen.single_generating' | 'cli.gen.single_done' | 'cli.gen.review_hint' | 'cli.gen.failed' | 'cli.evolve.specify_skill_path' | 'cli.evolve.section_header' | 'cli.evolve.round_baseline' | 'cli.evolve.round_error' | 'cli.evolve.round_done' | 'cli.evolve.summary' | 'cli.evolve.best_path' | 'cli.evolve.versions_saved' | 'cli.evolve.report_link' | 'cli.gold.created_files' | 'cli.gold.next_step_edit_annotations' | 'cli.gold.validate_ok' | 'cli.debias.warn_cost_doubles' | 'cli.saturation.no_data' | 'cli.saturation.verdict_header' | 'cli.saturation.variant_no_trace' | 'cli.saturation.variant_label' | 'cli.saturation.checkpoints' | 'cli.saturation.last_point' | 'cli.saturation.persisted_verdict' | 'cli.saturation.persisted_verdict_saturated' | 'cli.saturation.persisted_verdict_unsaturated' | 'cli.saturation.skipped_too_few_points' | 'cli.help.main' | 'cli.help.diff_usage' | 'cli.help.analyze_usage' | 'cli.help.gold' | 'cli.help.debias_validate' | 'cli.help.saturation' | 'cli.help.verdict' | 'cli.help.diagnose' | 'cli.help.failures' | 'cli.diagnose.coverage_header' | 'cli.diagnose.coverage_unspecified' | 'cli.diagnose.coverage_chars' | 'cli.diagnose.coverage_hint_empty' | 'cli.diagnose.coverage_declared' | 'cli.doctor.rule.skill_readable' | 'cli.doctor.rule.skill_metadata' | 'cli.doctor.rule.dependencies' | 'cli.doctor.rule.samples_contract' | 'cli.doctor.skill_readable.pass' | 'cli.doctor.skill_metadata.pass' | 'cli.doctor.dependencies.pass' | 'cli.doctor.samples_contract.pass' | 'cli.doctor.skill_readable.fail.missing' | 'cli.doctor.skill_readable.fail.empty' | 'cli.doctor.skill_readable.fail.too_short' | 'cli.doctor.skill_readable.hint.missing' | 'cli.doctor.dependencies.hint.tool' | 'cli.doctor.dependencies.hint.file' | 'cli.doctor.dependencies.hint.env' | 'cli.doctor.dependencies.hint.preflight' | 'cli.doctor.dependencies.issue.tool_not_found' | 'cli.doctor.dependencies.issue.file_not_found' | 'cli.doctor.dependencies.issue.env_not_set' | 'cli.doctor.dependencies.issue.preflight_failed' | 'cli.doctor.skill_readable.hint.too_short' | 'cli.doctor.skill_metadata.fail.frontmatter_invalid' | 'cli.doctor.skill_metadata.fail.missing_skillmd' | 'cli.doctor.skill_metadata.hint.frontmatter' | 'cli.doctor.skill_metadata.hint.missing_skillmd' | 'cli.doctor.dependencies.fail' | 'cli.doctor.samples_contract.skipped' | 'cli.doctor.samples_contract.warn.empty' | 'cli.doctor.samples_contract.warn.missing_prompt' | 'cli.doctor.samples_contract.hint' | 'cli.help.doctor_usage' | 'cli.doctor.no_skill_found' | 'cli.doctor.gate_blocked' | 'cli.run.skip_connectivity_warning';
51
51
  export interface CliMessage {
52
52
  zh: string;
53
53
  en: string;
@@ -1 +1 @@
1
- {"version":3,"file":"i18n-dict.d.ts","sourceRoot":"","sources":["../../../src/cli/i18n-dict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,MAAM,MAAM,aAAa,GAErB,gCAAgC,GAChC,sBAAsB,GACtB,2BAA2B,GAC3B,kCAAkC,GAElC,qBAAqB,GACrB,2BAA2B,GAC3B,iCAAiC,GACjC,gCAAgC,GAChC,wBAAwB,GAExB,kCAAkC,GAElC,iCAAiC,GACjC,2BAA2B,GAC3B,2BAA2B,GAC3B,+BAA+B,GAC/B,+BAA+B,GAC/B,6BAA6B,GAC7B,sBAAsB,GACtB,qBAAqB,GACrB,sBAAsB,GACtB,0BAA0B,GAC1B,iCAAiC,GAEjC,wBAAwB,GACxB,8BAA8B,GAC9B,iCAAiC,GACjC,mCAAmC,GACnC,qCAAqC,GAErC,uBAAuB,GACvB,qBAAqB,GACrB,wBAAwB,GACxB,uBAAuB,GACvB,sBAAsB,GACtB,+BAA+B,GAC/B,4BAA4B,GAC5B,4BAA4B,GAC5B,6BAA6B,GAC7B,4BAA4B,GAC5B,0BAA0B,GAC1B,yBAAyB,GACzB,+BAA+B,GAC/B,yBAAyB,GAEzB,6BAA6B,GAE7B,gCAAgC,GAChC,iCAAiC,GACjC,6BAA6B,GAC7B,2BAA2B,GAC3B,qCAAqC,GACrC,gCAAgC,GAChC,qCAAqC,GAErC,gCAAgC,GAChC,0BAA0B,GAC1B,oBAAoB,GACpB,sBAAsB,GACtB,2BAA2B,GAC3B,uBAAuB,GACvB,4BAA4B,GAC5B,gCAAgC,GAChC,2BAA2B,GAC3B,qBAAqB,GACrB,qBAAqB,GACrB,gBAAgB,GAEhB,+BAA+B,GAC/B,2BAA2B,GAC3B,2BAA2B,GAC3B,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,sBAAsB,GACtB,2BAA2B,GAC3B,wBAAwB,GAExB,wBAAwB,GACxB,qCAAqC,GACrC,sBAAsB,GAEtB,8BAA8B,GAE9B,wBAAwB,GACxB,+BAA+B,GAC/B,iCAAiC,GACjC,8BAA8B,GAC9B,4BAA4B,GAC5B,2BAA2B,GAC3B,kCAAkC,GAClC,4CAA4C,GAC5C,8CAA8C,GAC9C,uCAAuC,GAEvC,eAAe,GACf,qBAAqB,GACrB,wBAAwB,GACxB,eAAe,GACf,0BAA0B,GAC1B,qBAAqB,GACrB,kBAAkB,GAClB,mBAAmB,GACnB,mBAAmB,GAEnB,8BAA8B,GAC9B,mCAAmC,GACnC,6BAA6B,GAC7B,kCAAkC,GAClC,gCAAgC,GAEhC,gCAAgC,GAChC,gCAAgC,GAChC,8BAA8B,GAC9B,kCAAkC,GAElC,gCAAgC,GAChC,gCAAgC,GAChC,8BAA8B,GAC9B,kCAAkC,GAElC,wCAAwC,GACxC,sCAAsC,GACtC,0CAA0C,GAC1C,wCAAwC,GACxC,0CAA0C,GAE1C,oDAAoD,GACpD,gDAAgD,GAChD,4CAA4C,GAC5C,gDAAgD,GAEhD,8BAA8B,GAC9B,8BAA8B,GAE9B,qCAAqC,GACrC,wCAAwC,GACxC,iDAAiD,GACjD,kCAAkC,GAElC,uBAAuB,GACvB,2BAA2B,GAC3B,yBAAyB,GACzB,mCAAmC,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,UAAU,CAsjCtD,CAAC"}
1
+ {"version":3,"file":"i18n-dict.d.ts","sourceRoot":"","sources":["../../../src/cli/i18n-dict.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AAEH,MAAM,MAAM,aAAa,GAErB,gCAAgC,GAChC,sBAAsB,GACtB,2BAA2B,GAC3B,kCAAkC,GAElC,qBAAqB,GACrB,2BAA2B,GAC3B,iCAAiC,GACjC,gCAAgC,GAChC,wBAAwB,GACxB,8BAA8B,GAE9B,kCAAkC,GAElC,iCAAiC,GACjC,2BAA2B,GAC3B,2BAA2B,GAC3B,+BAA+B,GAC/B,+BAA+B,GAC/B,6BAA6B,GAC7B,sBAAsB,GACtB,qBAAqB,GACrB,sBAAsB,GACtB,0BAA0B,GAC1B,iCAAiC,GAEjC,wBAAwB,GACxB,8BAA8B,GAC9B,iCAAiC,GACjC,mCAAmC,GACnC,qCAAqC,GAErC,uBAAuB,GACvB,qBAAqB,GACrB,wBAAwB,GACxB,uBAAuB,GACvB,eAAe,GACf,sBAAsB,GACtB,+BAA+B,GAC/B,4BAA4B,GAC5B,4BAA4B,GAC5B,6BAA6B,GAC7B,4BAA4B,GAC5B,0BAA0B,GAC1B,yBAAyB,GACzB,+BAA+B,GAC/B,yBAAyB,GAEzB,6BAA6B,GAE7B,gCAAgC,GAChC,iCAAiC,GACjC,6BAA6B,GAC7B,2BAA2B,GAC3B,qCAAqC,GACrC,gCAAgC,GAChC,qCAAqC,GAErC,gCAAgC,GAChC,0BAA0B,GAC1B,oBAAoB,GACpB,sBAAsB,GACtB,2BAA2B,GAC3B,uBAAuB,GACvB,4BAA4B,GAC5B,gCAAgC,GAChC,2BAA2B,GAC3B,qBAAqB,GACrB,qBAAqB,GACrB,gBAAgB,GAEhB,+BAA+B,GAC/B,2BAA2B,GAC3B,2BAA2B,GAC3B,wBAAwB,GACxB,uBAAuB,GACvB,oBAAoB,GACpB,sBAAsB,GACtB,2BAA2B,GAC3B,wBAAwB,GAExB,wBAAwB,GACxB,qCAAqC,GACrC,sBAAsB,GAEtB,8BAA8B,GAE9B,wBAAwB,GACxB,+BAA+B,GAC/B,iCAAiC,GACjC,8BAA8B,GAC9B,4BAA4B,GAC5B,2BAA2B,GAC3B,kCAAkC,GAClC,4CAA4C,GAC5C,8CAA8C,GAC9C,uCAAuC,GAEvC,eAAe,GACf,qBAAqB,GACrB,wBAAwB,GACxB,eAAe,GACf,0BAA0B,GAC1B,qBAAqB,GACrB,kBAAkB,GAClB,mBAAmB,GACnB,mBAAmB,GAEnB,8BAA8B,GAC9B,mCAAmC,GACnC,6BAA6B,GAC7B,kCAAkC,GAClC,gCAAgC,GAEhC,gCAAgC,GAChC,gCAAgC,GAChC,8BAA8B,GAC9B,kCAAkC,GAElC,gCAAgC,GAChC,gCAAgC,GAChC,8BAA8B,GAC9B,kCAAkC,GAElC,wCAAwC,GACxC,sCAAsC,GACtC,0CAA0C,GAC1C,wCAAwC,GACxC,mCAAmC,GACnC,mCAAmC,GACnC,kCAAkC,GAClC,wCAAwC,GACxC,8CAA8C,GAC9C,8CAA8C,GAC9C,2CAA2C,GAC3C,gDAAgD,GAChD,0CAA0C,GAE1C,oDAAoD,GACpD,gDAAgD,GAChD,4CAA4C,GAC5C,gDAAgD,GAEhD,8BAA8B,GAE9B,qCAAqC,GACrC,wCAAwC,GACxC,iDAAiD,GACjD,kCAAkC,GAElC,uBAAuB,GACvB,2BAA2B,GAC3B,yBAAyB,GACzB,mCAAmC,CAAC;AAExC,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,UAAU,CA4lCtD,CAAC"}
@@ -77,12 +77,16 @@ export const CLI_DICT = {
77
77
  en: ' 1. Edit eval-samples.json to add your test cases',
78
78
  },
79
79
  'cli.init.next_step_edit_skills': {
80
- zh: ' 2. 编辑 skills/v1.md 和 skills/v2.md, 为两个 skill 版本填入实际内容',
81
- en: ' 2. Edit skills/v1.md and skills/v2.md with your skill versions',
80
+ zh: ' 2. 编辑 skills/code-review-v1/SKILL.md 和 skills/code-review-v2/SKILL.md, 为两个 skill 版本填入实际内容',
81
+ en: ' 2. Edit skills/code-review-v1/SKILL.md and skills/code-review-v2/SKILL.md with your skill versions',
82
82
  },
83
83
  'cli.init.next_step_run': {
84
- zh: ' 3. 运行: omk bench run --control v1 --treatment v2',
85
- en: ' 3. Run: omk bench run --control v1 --treatment v2',
84
+ zh: ' 3. 运行: omk bench run --control code-review-v1 --treatment code-review-v2',
85
+ en: ' 3. Run: omk bench run --control code-review-v1 --treatment code-review-v2',
86
+ },
87
+ 'cli.init.note_codex_executor': {
88
+ zh: '\n注: omk 评测时把 SKILL.md 整文(含 frontmatter)作为 system prompt 注入 — 跨 executor 一致(claude / codex / openai-api / gemini 都走同一条路径,不依赖任何 executor 的 native skill auto-discovery 或 Skill 工具机制)。frontmatter 在 prompt 头部对 model 行为无显著影响。\n模板带 Claude Code 兼容的 frontmatter(name + description)是为了让同一份 directory-skill 也能 deploy 到 Claude Code:把整个目录复制到 ~/.claude/skills/code-review-v1/(整目录,不是单个 SKILL.md),Claude SDK 才能识别。这是 omk 评测之外的 bonus,一份文件双向 dogfood。',
89
+ en: '\nNote: during omk evaluation the full SKILL.md (frontmatter included) is injected as the system prompt — uniformly across executors (claude / codex / openai-api / gemini all take the same path; omk does not rely on any executor\'s native skill auto-discovery or Skill tool). Frontmatter has no measurable impact on model behavior in this position.\nThe template ships with Claude Code-compatible frontmatter (name + description) so the same directory-skill can also be deployed to Claude Code: copy the whole directory to ~/.claude/skills/code-review-v1/ (the directory, not just SKILL.md) so Claude SDK can recognize it. That is a bonus beyond omk evaluation — one source, two-way dogfood.',
86
90
  },
87
91
  'cli.update.new_version_available': {
88
92
  zh: '\n💡 新版本可用: {old} → {new}, 运行 npm update {pkg} -g 升级\n\n',
@@ -97,8 +101,8 @@ export const CLI_DICT = {
97
101
  en: '[{i}/{n}] {sample}/{variant} 🔄 retry {attempt}/{max}...\n',
98
102
  },
99
103
  'cli.progress.sample_error': {
100
- zh: '[{i}/{n}] {sample}/{variant} {error}\n',
101
- en: '[{i}/{n}] {sample}/{variant} {error}\n',
104
+ zh: '[{i}/{n}] {sample}/{variant} ⚠️ {error}\n',
105
+ en: '[{i}/{n}] {sample}/{variant} ⚠️ {error}\n',
102
106
  },
103
107
  'cli.progress.sample_executing': {
104
108
  zh: '[{i}/{n}] {sample}/{variant} ⏳ 执行中...\n',
@@ -129,8 +133,8 @@ export const CLI_DICT = {
129
133
  en: '[{i}/{n}] {sample}/{variant} ✓ {ms}ms {input}+{output} tokens{cost}{score}\n',
130
134
  },
131
135
  'cli.progress.sample_failed_done': {
132
- zh: '[{i}/{n}] {sample}/{variant} {ms}ms {input}+{output} tokens{cost} error={error}\n',
133
- en: '[{i}/{n}] {sample}/{variant} {ms}ms {input}+{output} tokens{cost} error={error}\n',
136
+ zh: '[{i}/{n}] {sample}/{variant} ⚠️ {ms}ms {input}+{output} tokens{cost} error={error}\n',
137
+ en: '[{i}/{n}] {sample}/{variant} ⚠️ {ms}ms {input}+{output} tokens{cost} error={error}\n',
134
138
  },
135
139
  'cli.run.invalid_repeat': {
136
140
  zh: '⚠ --repeat "{value}" 无效 (期望 ≥ 1 的整数), 已按 1 次评测执行\n',
@@ -168,6 +172,10 @@ export const CLI_DICT = {
168
172
  zh: '\n✅ 评测完成\n',
169
173
  en: '\n✅ Evaluation done\n',
170
174
  },
175
+ 'cli.run.tally': {
176
+ zh: '试次: {passed} ✓ / {failed} ⚠️\n',
177
+ en: 'Trials: {passed} ✓ / {failed} ⚠️\n',
178
+ },
171
179
  'cli.run.report_saved': {
172
180
  zh: '📄 报告已保存到: {path}\n',
173
181
  en: '📄 Report saved to: {path}\n',
@@ -205,8 +213,8 @@ export const CLI_DICT = {
205
213
  en: '\n⚠ {warning}\n',
206
214
  },
207
215
  'cli.common.error_prefix': {
208
- zh: '错误: {message}',
209
- en: 'Error: {message}',
216
+ zh: '错误: {message}',
217
+ en: 'Error: {message}',
210
218
  },
211
219
  'cli.analyze.view_in_browser': {
212
220
  zh: "在浏览器查看: omk bench report # 打开后点首页的 \"📊 Skill 健康度日报\"",
@@ -993,8 +1001,8 @@ Examples:
993
1001
  en: 'skill content too short ({length} chars, minimum 10)',
994
1002
  },
995
1003
  'cli.doctor.skill_readable.hint.missing': {
996
- zh: '请确认 skill 文件路径正确,文件可读且非空',
997
- en: 'verify skill file path is correct and the file is readable',
1004
+ zh: 'skill 文件未读到内容(尝试路径: {path})。用 `ls -la {path}` 确认文件存在,用 `cat {path}` 确认可读且非空',
1005
+ en: 'no content read from skill (tried path: {path}). Run `ls -la {path}` to verify it exists and `cat {path}` to confirm it is readable and non-empty',
998
1006
  },
999
1007
  'cli.doctor.skill_readable.hint.too_short': {
1000
1008
  zh: 'skill 至少需要写一句完整的指令,过短的内容评测出来无意义',
@@ -1022,9 +1030,39 @@ Examples:
1022
1030
  zh: '前置依赖检查失败: {summary}',
1023
1031
  en: 'dependency check failed: {summary}',
1024
1032
  },
1025
- 'cli.doctor.dependencies.hint': {
1026
- zh: '安装缺失的工具或设置环境变量;若依赖确实可用 (e.g. shim 化测试),修正 skill 引用方式',
1027
- en: 'install missing tools or set required env vars; if deps are actually present (e.g. shimmed in tests), adjust skill references',
1033
+ 'cli.doctor.dependencies.hint.tool': {
1034
+ zh: '工具缺失: 安装到 PATH 或更新 skill 的 requires.tools 引用名',
1035
+ en: 'missing tool: install it on PATH or update skill\'s requires.tools entry',
1036
+ },
1037
+ 'cli.doctor.dependencies.hint.file': {
1038
+ zh: '文件缺失: 检查路径是否相对 skill 目录正确,或更新 skill 的 requires.files 引用',
1039
+ en: 'missing file: verify path is relative to skill dir, or update skill\'s requires.files entry',
1040
+ },
1041
+ 'cli.doctor.dependencies.hint.env': {
1042
+ zh: '环境变量缺失: 在 .env / shell profile 里 export,或在 CI secrets 中配置',
1043
+ en: 'missing env: export it in .env / shell profile, or configure it in CI secrets',
1044
+ },
1045
+ 'cli.doctor.dependencies.hint.preflight': {
1046
+ zh: 'preflight 命令失败: 看上面的失败原因定位根因,或调整 skill 的 preflight 命令',
1047
+ en: 'preflight command failed: read the failure reason above, or adjust the skill\'s preflight command',
1048
+ },
1049
+ // Per-issue translated lines. dep-checker emits structured reasonCode +
1050
+ // reasonDetail (untranslated raw stderr / cwd) so doctor can localize per ctx.lang.
1051
+ 'cli.doctor.dependencies.issue.tool_not_found': {
1052
+ zh: '工具 {name} 未找到 (不在 PATH 中)',
1053
+ en: 'tool {name} not found on PATH',
1054
+ },
1055
+ 'cli.doctor.dependencies.issue.file_not_found': {
1056
+ zh: '文件 {name} 不存在 (cwd: {detail})',
1057
+ en: 'file {name} not found (cwd: {detail})',
1058
+ },
1059
+ 'cli.doctor.dependencies.issue.env_not_set': {
1060
+ zh: '环境变量 {name} 未设置',
1061
+ en: 'env var {name} not set',
1062
+ },
1063
+ 'cli.doctor.dependencies.issue.preflight_failed': {
1064
+ zh: 'preflight 命令 "{name}" 执行失败: {detail}',
1065
+ en: 'preflight command "{name}" failed: {detail}',
1028
1066
  },
1029
1067
  // samples_contract
1030
1068
  'cli.doctor.samples_contract.skipped': {
@@ -1065,13 +1103,13 @@ oh-my-knowledge — omk doctor 健康检查
1065
1103
 
1066
1104
  示例:
1067
1105
  omk doctor examples/code-review/skills/v1.md
1068
- omk doctor examples/code-review/skills --json | jq .failed
1106
+ omk doctor examples/code-review/skills --json | jq .outcome # passed | warnings_only | failed
1069
1107
  omk doctor --gate; echo $?
1070
1108
 
1071
1109
  doctor 检查项(纯静态 / 零 LLM 调用):
1072
1110
  - skill 文件可读 + 内容有最小长度
1073
1111
  - skill 元数据合法 (front-matter 若有)
1074
- - 前置依赖完整 (引用的 CLI 工具 / 文件 / 环境变量)
1112
+ - 前置依赖完整 (引用的 CLI 工具 / 文件 / 环境变量 / preflight 命令)
1075
1113
  - 用例 ↔ skill 输入约定 (warn 级, 仅传 samples 时跑)
1076
1114
 
1077
1115
  executor / judge 连通性由 evaluation preflight 负责, 不在 doctor 范围内。
@@ -1098,13 +1136,13 @@ Options:
1098
1136
 
1099
1137
  Examples:
1100
1138
  omk doctor examples/code-review/skills/v1.md
1101
- omk doctor examples/code-review/skills --json | jq .failed
1139
+ omk doctor examples/code-review/skills --json | jq .outcome # passed | warnings_only | failed
1102
1140
  omk doctor --gate; echo $?
1103
1141
 
1104
1142
  Checks (pure static / zero LLM calls):
1105
1143
  - skill file readable + minimum content length
1106
1144
  - skill metadata valid (front-matter if present)
1107
- - dependencies present (referenced CLI tools / files / env vars)
1145
+ - dependencies present (referenced CLI tools / files / env vars / preflight commands)
1108
1146
  - samples ↔ skill contract (warn-level, only when samples provided)
1109
1147
 
1110
1148
  executor / judge connectivity is handled by evaluation preflight, not doctor.
@@ -1 +1 @@
1
- {"version":3,"file":"i18n-dict.js","sourceRoot":"","sources":["../../../src/cli/i18n-dict.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n-dict.js","sourceRoot":"","sources":["../../../src/cli/i18n-dict.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import { existsSync } from 'node:fs';
5
5
  import { tCli, getCliLang, parseLangFromArgv, langFromArgv } from './i18n.js';
6
6
  import { parseRunConfig, DEFAULT_REPORTS_DIR, COMMON_OPTIONS, } from './parse-run-config.js';
7
7
  import { makeOnProgress } from './progress.js';
8
+ import { computeRunTally } from './run-tally.js';
8
9
  import { checkUpdate } from './update-check.js';
9
10
  import { parseArgsStrictOrExit } from './parse-strict.js';
10
11
  function requireEvaluationReport(report, id, lang) {
@@ -207,6 +208,8 @@ async function handleRun(argv) {
207
208
  console.log(JSON.stringify(report, null, 2));
208
209
  if (filePath) {
209
210
  process.stderr.write(tCli('cli.run.batch_complete', lang));
211
+ const tally = computeRunTally(report);
212
+ process.stderr.write(tCli('cli.run.tally', lang, tally));
210
213
  process.stderr.write(tCli('cli.run.report_saved', lang, { path: filePath }));
211
214
  if (!values['no-serve'] && process.stdout.isTTY) {
212
215
  const { createReportServer } = await import('../server/report-server.js');
@@ -274,6 +277,8 @@ async function handleRun(argv) {
274
277
  console.log(JSON.stringify(report, null, 2));
275
278
  if (filePath) {
276
279
  process.stderr.write(tCli('cli.run.eval_complete', lang));
280
+ const tally = computeRunTally(report);
281
+ process.stderr.write(tCli('cli.run.tally', lang, tally));
277
282
  process.stderr.write(tCli('cli.run.report_saved', lang, { path: filePath }));
278
283
  if (!values['no-serve'] && process.stdout.isTTY) {
279
284
  // Auto-start report server
@@ -418,8 +423,27 @@ const INIT_SAMPLES = `[
418
423
  }
419
424
  ]
420
425
  `;
421
- const INIT_SKILL_V1 = '你是一个代码审查助手。请审查用户提供的代码,指出潜在问题。';
422
- const INIT_SKILL_V2 = `你是一个高级代码审查专家。请从以下维度审查用户提供的代码:
426
+ // 模板带 Claude Code SKILL.md 兼容 frontmatter(name + description),让用户
427
+ // 可以把 init 出来的 SKILL.md 直接 deploy 到 ~/.claude/skills/ 给 Claude Code 用,
428
+ // 一份文件双向 dogfood(omk 评测 + Claude 部署)。omk 当前不 strip frontmatter,
429
+ // 它会跟着 leak 进 system prompt — 在 model 行为层面是无害噪声,跨 executor 一致。
430
+ const INIT_SKILL_V1 = `---
431
+ name: code-review-v1
432
+ description: 简单代码审查 skill,识别明显问题
433
+ ---
434
+
435
+ # Code review v1
436
+
437
+ 你是一个代码审查助手。请审查用户提供的代码,指出潜在问题。
438
+ `;
439
+ const INIT_SKILL_V2 = `---
440
+ name: code-review-v2
441
+ description: 多维度代码审查,覆盖安全 / 健壮 / 可维护 / 性能,带严重程度标注
442
+ ---
443
+
444
+ # Code review v2
445
+
446
+ 你是一个高级代码审查专家。请从以下维度审查用户提供的代码:
423
447
 
424
448
  1. 安全性:是否存在注入、XSS、敏感信息泄露等风险
425
449
  2. 健壮性:是否有适当的错误处理和边界检查
@@ -496,7 +520,7 @@ async function handleDoctor(argv) {
496
520
  }
497
521
  else if (isGate) {
498
522
  // gate 模式: 静默 stdout, fail 时简短 stderr 摘要(供 CI 抓 exit code)
499
- if (report.failed) {
523
+ if (report.outcome === 'failed') {
500
524
  const summary = lang === 'zh'
501
525
  ? `doctor failed: ${report.totals.fail} 个 skill 未通过 (${report.totals.warn} warn / ${report.totals.pass} pass)`
502
526
  : `doctor failed: ${report.totals.fail} skills did not pass (${report.totals.warn} warn / ${report.totals.pass} pass)`;
@@ -506,7 +530,7 @@ async function handleDoctor(argv) {
506
530
  else {
507
531
  renderDoctorReportText(report, lang);
508
532
  }
509
- process.exit(report.failed ? 1 : 0);
533
+ process.exit(report.outcome === 'failed' ? 1 : 0);
510
534
  }
511
535
  async function handleAnalyze(argv) {
512
536
  const lang = langFromArgv(argv);
@@ -589,16 +613,21 @@ async function handleInit(argv) {
589
613
  });
590
614
  const targetDir = resolve(positionals[0] || '.');
591
615
  const { writeFileSync, mkdirSync } = await import('node:fs');
592
- mkdirSync(join(targetDir, 'skills'), { recursive: true });
616
+ // omk skill loader `skills/<name>/SKILL.md` 子目录识别为 directory-skill,
617
+ // cwd 默认锚到 skill 根目录,后续可在同目录下放 assets / 子文档。
618
+ // 子目录主题化命名(code-review-v1 / code-review-v2)比泛 v1.md / v2.md 心智模型更清晰。
619
+ mkdirSync(join(targetDir, 'skills', 'code-review-v1'), { recursive: true });
620
+ mkdirSync(join(targetDir, 'skills', 'code-review-v2'), { recursive: true });
593
621
  writeFileSync(join(targetDir, 'eval-samples.json'), INIT_SAMPLES);
594
- writeFileSync(join(targetDir, 'skills', 'v1.md'), INIT_SKILL_V1);
595
- writeFileSync(join(targetDir, 'skills', 'v2.md'), INIT_SKILL_V2);
622
+ writeFileSync(join(targetDir, 'skills', 'code-review-v1', 'SKILL.md'), INIT_SKILL_V1);
623
+ writeFileSync(join(targetDir, 'skills', 'code-review-v2', 'SKILL.md'), INIT_SKILL_V2);
596
624
  console.log(tCli('cli.init.scaffolded', lang, { dir: targetDir }));
597
625
  console.log('');
598
626
  console.log(tCli('cli.init.next_steps_title', lang));
599
627
  console.log(tCli('cli.init.next_step_edit_samples', lang));
600
628
  console.log(tCli('cli.init.next_step_edit_skills', lang));
601
629
  console.log(tCli('cli.init.next_step_run', lang));
630
+ console.log(tCli('cli.init.note_codex_executor', lang));
602
631
  }
603
632
  // ---------------------------------------------------------------------------
604
633
  // handleGenSamples