oh-my-knowledge 0.32.0 → 0.34.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.
- package/README.md +29 -14
- package/README.zh.md +32 -17
- package/dist/analysis/coverage-analyzer.d.ts +0 -1
- package/dist/analysis/coverage-analyzer.js +0 -1
- package/dist/analysis/failure-clusterer.d.ts +0 -1
- package/dist/analysis/failure-clusterer.js +0 -1
- package/dist/analysis/gap-analyzer.d.ts +0 -1
- package/dist/analysis/gap-analyzer.js +0 -1
- package/dist/analysis/hedging-classifier.d.ts +0 -1
- package/dist/analysis/hedging-classifier.js +1 -2
- package/dist/analysis/report-diagnostics.d.ts +0 -1
- package/dist/analysis/report-diagnostics.js +0 -1
- package/dist/analysis/sample-diagnostics.d.ts +1 -2
- package/dist/analysis/sample-diagnostics.js +18 -19
- package/dist/analysis/saturation.d.ts +8 -1
- package/dist/analysis/saturation.js +12 -5
- package/dist/assets/agent-skills/omk/SKILL.md +197 -0
- package/dist/assets/agent-skills/omk/references/commands.md +547 -0
- package/dist/authoring/evolver.d.ts +169 -4
- package/dist/authoring/evolver.js +287 -15
- package/dist/authoring/generator.d.ts +29 -2
- package/dist/authoring/generator.js +113 -1
- package/dist/authoring/sample-fixer.d.ts +0 -1
- package/dist/authoring/sample-fixer.js +0 -1
- package/dist/cli/commands/doctor.d.ts +2 -1
- package/dist/cli/commands/doctor.js +24 -6
- package/dist/cli/commands/eval/gold/compare.d.ts +0 -1
- package/dist/cli/commands/eval/gold/compare.js +0 -1
- package/dist/cli/commands/eval/gold/index.d.ts +0 -1
- package/dist/cli/commands/eval/gold/index.js +0 -1
- package/dist/cli/commands/eval/gold/init.d.ts +0 -1
- package/dist/cli/commands/eval/gold/init.js +0 -1
- package/dist/cli/commands/eval/gold/validate.d.ts +0 -1
- package/dist/cli/commands/eval/gold/validate.js +0 -1
- package/dist/cli/commands/eval/index.d.ts +2 -1
- package/dist/cli/commands/eval/index.js +23 -11
- package/dist/cli/commands/evolve.d.ts +7 -1
- package/dist/cli/commands/evolve.js +93 -6
- package/dist/cli/commands/init.d.ts +0 -1
- package/dist/cli/commands/init.js +0 -1
- package/dist/cli/commands/install.d.ts +22 -0
- package/dist/cli/commands/install.js +411 -0
- package/dist/cli/commands/observe/inbox.d.ts +0 -1
- package/dist/cli/commands/observe/inbox.js +0 -1
- package/dist/cli/commands/observe/index.d.ts +0 -1
- package/dist/cli/commands/observe/index.js +6 -3
- package/dist/cli/commands/observe/ingest.d.ts +0 -1
- package/dist/cli/commands/observe/ingest.js +0 -1
- package/dist/cli/commands/observe/show.d.ts +0 -1
- package/dist/cli/commands/observe/show.js +0 -1
- package/dist/cli/commands/sample.d.ts +2 -1
- package/dist/cli/commands/sample.js +100 -9
- package/dist/cli/commands/studio.d.ts +0 -1
- package/dist/cli/commands/studio.js +0 -1
- package/dist/cli/index.d.ts +0 -1
- package/dist/cli/index.js +1 -2
- package/dist/cli/lib/cli-exit.d.ts +0 -1
- package/dist/cli/lib/cli-exit.js +0 -1
- package/dist/cli/lib/cmd-flags.d.ts +11 -1
- package/dist/cli/lib/cmd-flags.js +0 -1
- package/dist/cli/lib/i18n-dict/common.d.ts +1 -2
- package/dist/cli/lib/i18n-dict/common.js +18 -3
- package/dist/cli/lib/i18n-dict/evolve.d.ts +1 -2
- package/dist/cli/lib/i18n-dict/evolve.js +24 -1
- package/dist/cli/lib/i18n-dict/gen.d.ts +0 -1
- package/dist/cli/lib/i18n-dict/gen.js +0 -1
- package/dist/cli/lib/i18n-dict/help.d.ts +0 -1
- package/dist/cli/lib/i18n-dict/help.js +0 -1
- package/dist/cli/lib/i18n-dict/init.d.ts +0 -1
- package/dist/cli/lib/i18n-dict/init.js +0 -1
- package/dist/cli/lib/i18n-dict/install.d.ts +3 -0
- package/dist/cli/lib/i18n-dict/install.js +90 -0
- package/dist/cli/lib/i18n-dict/run.d.ts +0 -1
- package/dist/cli/lib/i18n-dict/run.js +0 -1
- package/dist/cli/lib/i18n-dict/types.d.ts +0 -1
- package/dist/cli/lib/i18n-dict/types.js +0 -1
- package/dist/cli/lib/i18n-dict.d.ts +2 -2
- package/dist/cli/lib/i18n-dict.js +2 -1
- package/dist/cli/lib/i18n.d.ts +0 -1
- package/dist/cli/lib/i18n.js +0 -1
- package/dist/cli/lib/parse-run-config/judge-models.d.ts +0 -1
- package/dist/cli/lib/parse-run-config/judge-models.js +0 -1
- package/dist/cli/lib/parse-run-config/samples-discovery.d.ts +0 -1
- package/dist/cli/lib/parse-run-config/samples-discovery.js +1 -4
- package/dist/cli/lib/parse-run-config/variant-resolution.d.ts +8 -4
- package/dist/cli/lib/parse-run-config/variant-resolution.js +46 -14
- package/dist/cli/lib/parse-run-config.d.ts +0 -1
- package/dist/cli/lib/parse-run-config.js +1 -2
- package/dist/cli/lib/progress.d.ts +0 -1
- package/dist/cli/lib/progress.js +0 -1
- package/dist/cli/lib/resolve-skill-input.d.ts +0 -1
- package/dist/cli/lib/resolve-skill-input.js +7 -6
- package/dist/cli/lib/run-tally.d.ts +0 -1
- package/dist/cli/lib/run-tally.js +1 -2
- package/dist/cli/lib/shared.d.ts +0 -1
- package/dist/cli/lib/shared.js +1 -2
- package/dist/cli/lib/update-check.d.ts +65 -1
- package/dist/cli/lib/update-check.js +220 -32
- package/dist/cli/lib/update-fetch-worker.d.ts +1 -0
- package/dist/cli/lib/update-fetch-worker.js +34 -0
- package/dist/cli/oclif/base-command.d.ts +0 -1
- package/dist/cli/oclif/base-command.js +0 -1
- package/dist/cli/oclif/help.d.ts +0 -1
- package/dist/cli/oclif/help.js +0 -1
- package/dist/cli/oclif/i18n.d.ts +0 -1
- package/dist/cli/oclif/i18n.js +0 -1
- package/dist/cli/oclif/parsers.d.ts +0 -1
- package/dist/cli/oclif/parsers.js +0 -1
- package/dist/cli/oclif/projection.d.ts +0 -1
- package/dist/cli/oclif/projection.js +0 -1
- package/dist/cli/oclif/run.d.ts +0 -1
- package/dist/cli/oclif/run.js +0 -1
- package/dist/diagnosis/observe-mapper.d.ts +2 -3
- package/dist/diagnosis/observe-mapper.js +6 -7
- package/dist/diagnosis/observe-producer.d.ts +0 -1
- package/dist/diagnosis/observe-producer.js +3 -4
- package/dist/diagnosis/studio-projection.d.ts +0 -1
- package/dist/diagnosis/studio-projection.js +0 -1
- package/dist/diagnosis/types.d.ts +0 -1
- package/dist/diagnosis/types.js +0 -1
- package/dist/doctor/fixer.d.ts +0 -1
- package/dist/doctor/fixer.js +0 -1
- package/dist/doctor/health/builtin-dimensions.d.ts +0 -1
- package/dist/doctor/health/builtin-dimensions.js +0 -1
- package/dist/doctor/health/composer.d.ts +0 -1
- package/dist/doctor/health/composer.js +1 -2
- package/dist/doctor/health/dimension-registry.d.ts +0 -1
- package/dist/doctor/health/dimension-registry.js +0 -1
- package/dist/doctor/health/dimension-spec.d.ts +0 -1
- package/dist/doctor/health/dimension-spec.js +0 -1
- package/dist/doctor/health/load-custom-dimensions.d.ts +1 -0
- package/dist/doctor/health/load-custom-dimensions.js +30 -0
- package/dist/doctor/health/parser.d.ts +0 -1
- package/dist/doctor/health/parser.js +0 -1
- package/dist/doctor/health/prompt-builder.d.ts +0 -1
- package/dist/doctor/health/prompt-builder.js +0 -1
- package/dist/doctor/health/register.d.ts +0 -1
- package/dist/doctor/health/register.js +0 -1
- package/dist/doctor/index.d.ts +0 -1
- package/dist/doctor/index.js +1 -2
- package/dist/doctor/messages.d.ts +0 -1
- package/dist/doctor/messages.js +1 -2
- package/dist/doctor/preflight.d.ts +0 -1
- package/dist/doctor/preflight.js +0 -1
- package/dist/doctor/renderer.d.ts +0 -1
- package/dist/doctor/renderer.js +0 -1
- package/dist/doctor/rules.d.ts +0 -1
- package/dist/doctor/rules.js +0 -1
- package/dist/eval-core/bootstrap.d.ts +8 -1
- package/dist/eval-core/bootstrap.js +11 -4
- package/dist/eval-core/cache.d.ts +0 -1
- package/dist/eval-core/cache.js +0 -1
- package/dist/eval-core/comparability.d.ts +0 -1
- package/dist/eval-core/comparability.js +3 -4
- package/dist/eval-core/dependency-checker.d.ts +0 -1
- package/dist/eval-core/dependency-checker.js +2 -2
- package/dist/eval-core/evaluation-execution.d.ts +0 -1
- package/dist/eval-core/evaluation-execution.js +0 -1
- package/dist/eval-core/evaluation-job.d.ts +0 -1
- package/dist/eval-core/evaluation-job.js +0 -1
- package/dist/eval-core/evaluation-reporting.d.ts +0 -1
- package/dist/eval-core/evaluation-reporting.js +9 -8
- package/dist/eval-core/execution-strategy.d.ts +0 -1
- package/dist/eval-core/execution-strategy.js +6 -3
- package/dist/eval-core/fact-checker.d.ts +0 -1
- package/dist/eval-core/fact-checker.js +0 -1
- package/dist/eval-core/layer-gates.d.ts +0 -1
- package/dist/eval-core/layer-gates.js +0 -1
- package/dist/eval-core/mocks-runtime.d.ts +0 -1
- package/dist/eval-core/mocks-runtime.js +0 -1
- package/dist/eval-core/schema.d.ts +0 -1
- package/dist/eval-core/schema.js +0 -1
- package/dist/eval-core/statistics.d.ts +0 -1
- package/dist/eval-core/statistics.js +0 -1
- package/dist/eval-core/task-planner.d.ts +0 -1
- package/dist/eval-core/task-planner.js +0 -1
- package/dist/eval-core/verdict.d.ts +21 -4
- package/dist/eval-core/verdict.js +54 -5
- package/dist/eval-workflows/batch-evaluation-workflow.d.ts +18 -3
- package/dist/eval-workflows/batch-evaluation-workflow.js +31 -15
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.d.ts +0 -1
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.js +0 -1
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.d.ts +0 -1
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.js +0 -1
- package/dist/eval-workflows/evaluation-pipeline/run-state.d.ts +0 -1
- package/dist/eval-workflows/evaluation-pipeline/run-state.js +0 -1
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.d.ts +0 -1
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.js +0 -1
- package/dist/eval-workflows/evaluation-pipeline.d.ts +0 -1
- package/dist/eval-workflows/evaluation-pipeline.js +0 -1
- package/dist/eval-workflows/evaluation-preparation.d.ts +1 -5
- package/dist/eval-workflows/evaluation-preparation.js +20 -16
- package/dist/eval-workflows/messages.d.ts +0 -1
- package/dist/eval-workflows/messages.js +0 -1
- package/dist/eval-workflows/run-evaluation.d.ts +4 -9
- package/dist/eval-workflows/run-evaluation.js +16 -26
- package/dist/executors/anthropic-api.d.ts +0 -1
- package/dist/executors/anthropic-api.js +1 -2
- package/dist/executors/claude-cli.d.ts +0 -1
- package/dist/executors/claude-cli.js +0 -1
- package/dist/executors/claude-sdk-trace.d.ts +0 -1
- package/dist/executors/claude-sdk-trace.js +0 -1
- package/dist/executors/claude-sdk.d.ts +0 -1
- package/dist/executors/claude-sdk.js +0 -1
- package/dist/executors/codex-cli-trace.d.ts +0 -1
- package/dist/executors/codex-cli-trace.js +0 -1
- package/dist/executors/codex-cli.d.ts +0 -1
- package/dist/executors/codex-cli.js +0 -1
- package/dist/executors/codex-sdk.d.ts +0 -1
- package/dist/executors/codex-sdk.js +0 -1
- package/dist/executors/gemini.d.ts +0 -1
- package/dist/executors/gemini.js +0 -1
- package/dist/executors/index.d.ts +0 -1
- package/dist/executors/index.js +0 -1
- package/dist/executors/openai-api.d.ts +0 -1
- package/dist/executors/openai-api.js +0 -1
- package/dist/executors/runtime-fingerprint.d.ts +0 -1
- package/dist/executors/runtime-fingerprint.js +2 -3
- package/dist/executors/script.d.ts +0 -1
- package/dist/executors/script.js +0 -1
- package/dist/executors/shared.d.ts +0 -2
- package/dist/executors/shared.js +0 -1
- package/dist/grading/assertions.d.ts +0 -1
- package/dist/grading/assertions.js +0 -1
- package/dist/grading/debias-validate.d.ts +0 -1
- package/dist/grading/debias-validate.js +0 -1
- package/dist/grading/diagnostic.d.ts +0 -1
- package/dist/grading/diagnostic.js +0 -1
- package/dist/grading/gold-cli.d.ts +0 -1
- package/dist/grading/gold-cli.js +0 -1
- package/dist/grading/gold-dataset.d.ts +0 -1
- package/dist/grading/gold-dataset.js +0 -1
- package/dist/grading/human-gold.d.ts +0 -1
- package/dist/grading/human-gold.js +0 -1
- package/dist/grading/index.d.ts +0 -1
- package/dist/grading/index.js +0 -1
- package/dist/grading/judge.d.ts +0 -1
- package/dist/grading/judge.js +0 -1
- package/dist/grading/layered-scores.d.ts +0 -1
- package/dist/grading/layered-scores.js +0 -1
- package/dist/inputs/eval-config.d.ts +0 -1
- package/dist/inputs/eval-config.js +3 -2
- package/dist/inputs/load-samples.d.ts +0 -1
- package/dist/inputs/load-samples.js +0 -1
- package/dist/inputs/mcp-resolver.d.ts +0 -1
- package/dist/inputs/mcp-resolver.js +0 -1
- package/dist/inputs/skill-loader.d.ts +99 -7
- package/dist/inputs/skill-loader.js +325 -45
- package/dist/inputs/source-resolver.d.ts +28 -0
- package/dist/inputs/source-resolver.js +125 -0
- package/dist/inputs/url-fetcher.d.ts +0 -1
- package/dist/inputs/url-fetcher.js +0 -1
- package/dist/managed/index.d.ts +5 -0
- package/dist/managed/index.js +5 -0
- package/dist/managed/store.d.ts +76 -0
- package/dist/managed/store.js +260 -0
- package/dist/observability/experience-frontmatter.d.ts +0 -1
- package/dist/observability/experience-frontmatter.js +0 -1
- package/dist/observability/experience.d.ts +1 -2
- package/dist/observability/experience.js +1 -2
- package/dist/observability/feedback-matchers.d.ts +0 -1
- package/dist/observability/feedback-matchers.js +0 -1
- package/dist/observability/feedback-projection.d.ts +0 -1
- package/dist/observability/feedback-projection.js +0 -1
- package/dist/observability/inbox-view-model.d.ts +0 -1
- package/dist/observability/inbox-view-model.js +0 -1
- package/dist/observability/inbox.d.ts +0 -1
- package/dist/observability/inbox.js +2 -3
- package/dist/observability/problem-patterns.d.ts +0 -1
- package/dist/observability/problem-patterns.js +0 -1
- package/dist/observability/resolved-review.d.ts +0 -1
- package/dist/observability/resolved-review.js +4 -5
- package/dist/observability/review-state.d.ts +0 -1
- package/dist/observability/review-state.js +3 -4
- package/dist/observability/skill-chain-advisories.d.ts +0 -1
- package/dist/observability/skill-chain-advisories.js +0 -1
- package/dist/observability/skill-chain.d.ts +0 -1
- package/dist/observability/skill-chain.js +5 -6
- package/dist/observability/skill-health-analyzer.d.ts +13 -1
- package/dist/observability/skill-health-analyzer.js +17 -3
- package/dist/observability/soft-standards/constants.d.ts +0 -1
- package/dist/observability/soft-standards/constants.js +0 -1
- package/dist/observability/soft-standards/index.d.ts +0 -1
- package/dist/observability/soft-standards/index.js +0 -1
- package/dist/observability/soft-standards/llm-extractor.d.ts +0 -1
- package/dist/observability/soft-standards/llm-extractor.js +7 -8
- package/dist/observability/soft-standards/runtime-evaluator.d.ts +0 -1
- package/dist/observability/soft-standards/runtime-evaluator.js +2 -3
- package/dist/observability/soft-standards/skill-standards-store.d.ts +0 -1
- package/dist/observability/soft-standards/skill-standards-store.js +5 -6
- package/dist/observability/soft-standards/types.d.ts +10 -11
- package/dist/observability/soft-standards/types.js +0 -1
- package/dist/observability/text-signals.d.ts +0 -1
- package/dist/observability/text-signals.js +0 -1
- package/dist/observability/trace-adapter.d.ts +0 -1
- package/dist/observability/trace-adapter.js +0 -1
- package/dist/observability/trace-attribution.d.ts +0 -1
- package/dist/observability/trace-attribution.js +0 -1
- package/dist/observability/trace-segmenter.d.ts +0 -1
- package/dist/observability/trace-segmenter.js +0 -1
- package/dist/observability/trace-source.d.ts +0 -1
- package/dist/observability/trace-source.js +0 -1
- package/dist/renderer/html-renderer.d.ts +0 -1
- package/dist/renderer/html-renderer.js +4 -5
- package/dist/renderer/layout.d.ts +0 -1
- package/dist/renderer/layout.js +2 -1
- package/dist/renderer/observation-inbox/helpers.d.ts +0 -1
- package/dist/renderer/observation-inbox/helpers.js +0 -1
- package/dist/renderer/observation-inbox/styles.d.ts +0 -1
- package/dist/renderer/observation-inbox/styles.js +0 -1
- package/dist/renderer/observation-inbox-renderer.d.ts +0 -1
- package/dist/renderer/observation-inbox-renderer.js +13 -14
- package/dist/renderer/skill-detail-renderer.d.ts +0 -1
- package/dist/renderer/skill-detail-renderer.js +101 -23
- package/dist/renderer/skill-health-renderer.d.ts +0 -1
- package/dist/renderer/skill-health-renderer.js +33 -5
- package/dist/renderer/skill-list-renderer.d.ts +0 -1
- package/dist/renderer/skill-list-renderer.js +18 -7
- package/dist/renderer/summary.d.ts +0 -1
- package/dist/renderer/summary.js +21 -10
- package/dist/renderer/table.d.ts +0 -1
- package/dist/renderer/table.js +0 -1
- package/dist/renderer/test-view.d.ts +0 -1
- package/dist/renderer/test-view.js +0 -1
- package/dist/renderer/trends.d.ts +0 -1
- package/dist/renderer/trends.js +0 -1
- package/dist/server/job-store.d.ts +0 -1
- package/dist/server/job-store.js +0 -1
- package/dist/server/report-server.d.ts +0 -1
- package/dist/server/report-server.js +10 -4
- package/dist/server/report-store.d.ts +1 -2
- package/dist/server/report-store.js +6 -7
- package/dist/server/skill-index.d.ts +0 -1
- package/dist/server/skill-index.js +7 -5
- package/dist/server/skill-insights.d.ts +0 -1
- package/dist/server/skill-insights.js +41 -14
- package/dist/shared/hard-rules.d.ts +0 -1
- package/dist/shared/hard-rules.js +0 -1
- package/dist/shared/llm-prompts/index.d.ts +0 -1
- package/dist/shared/llm-prompts/index.js +0 -1
- package/dist/shared/llm-prompts/skill-health.d.ts +0 -1
- package/dist/shared/llm-prompts/skill-health.js +0 -1
- package/dist/shared/time.d.ts +0 -1
- package/dist/shared/time.js +0 -1
- package/dist/shared/tool-search.d.ts +0 -1
- package/dist/shared/tool-search.js +0 -1
- package/dist/types/dependencies.d.ts +0 -1
- package/dist/types/dependencies.js +0 -1
- package/dist/types/diagnosis.d.ts +0 -1
- package/dist/types/diagnosis.js +0 -1
- package/dist/types/doctor.d.ts +4 -5
- package/dist/types/doctor.js +2 -3
- package/dist/types/eval.d.ts +2 -1
- package/dist/types/eval.js +0 -1
- package/dist/types/executor.d.ts +1 -2
- package/dist/types/executor.js +0 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/judge.d.ts +0 -1
- package/dist/types/judge.js +0 -1
- package/dist/types/managed.d.ts +85 -0
- package/dist/types/managed.js +1 -0
- package/dist/types/observability.d.ts +5 -6
- package/dist/types/observability.js +0 -1
- package/dist/types/report.d.ts +2 -3
- package/dist/types/report.js +0 -1
- package/dist/types/shared.d.ts +0 -1
- package/dist/types/shared.js +0 -1
- package/dist/types/skill-index.d.ts +3 -1
- package/dist/types/skill-index.js +0 -1
- package/dist/types/storage.d.ts +0 -1
- package/dist/types/storage.js +0 -1
- package/dist/util/safe-slice.d.ts +0 -1
- package/dist/util/safe-slice.js +0 -1
- package/package.json +10 -5
- package/dist/analysis/coverage-analyzer.d.ts.map +0 -1
- package/dist/analysis/coverage-analyzer.js.map +0 -1
- package/dist/analysis/failure-clusterer.d.ts.map +0 -1
- package/dist/analysis/failure-clusterer.js.map +0 -1
- package/dist/analysis/gap-analyzer.d.ts.map +0 -1
- package/dist/analysis/gap-analyzer.js.map +0 -1
- package/dist/analysis/hedging-classifier.d.ts.map +0 -1
- package/dist/analysis/hedging-classifier.js.map +0 -1
- package/dist/analysis/report-diagnostics.d.ts.map +0 -1
- package/dist/analysis/report-diagnostics.js.map +0 -1
- package/dist/analysis/sample-diagnostics.d.ts.map +0 -1
- package/dist/analysis/sample-diagnostics.js.map +0 -1
- package/dist/analysis/saturation.d.ts.map +0 -1
- package/dist/analysis/saturation.js.map +0 -1
- package/dist/authoring/evolver.d.ts.map +0 -1
- package/dist/authoring/evolver.js.map +0 -1
- package/dist/authoring/generator.d.ts.map +0 -1
- package/dist/authoring/generator.js.map +0 -1
- package/dist/authoring/sample-fixer.d.ts.map +0 -1
- package/dist/authoring/sample-fixer.js.map +0 -1
- package/dist/cli/commands/doctor.d.ts.map +0 -1
- package/dist/cli/commands/doctor.js.map +0 -1
- package/dist/cli/commands/eval/gold/compare.d.ts.map +0 -1
- package/dist/cli/commands/eval/gold/compare.js.map +0 -1
- package/dist/cli/commands/eval/gold/index.d.ts.map +0 -1
- package/dist/cli/commands/eval/gold/index.js.map +0 -1
- package/dist/cli/commands/eval/gold/init.d.ts.map +0 -1
- package/dist/cli/commands/eval/gold/init.js.map +0 -1
- package/dist/cli/commands/eval/gold/validate.d.ts.map +0 -1
- package/dist/cli/commands/eval/gold/validate.js.map +0 -1
- package/dist/cli/commands/eval/index.d.ts.map +0 -1
- package/dist/cli/commands/eval/index.js.map +0 -1
- package/dist/cli/commands/evolve.d.ts.map +0 -1
- package/dist/cli/commands/evolve.js.map +0 -1
- package/dist/cli/commands/init.d.ts.map +0 -1
- package/dist/cli/commands/init.js.map +0 -1
- package/dist/cli/commands/observe/inbox.d.ts.map +0 -1
- package/dist/cli/commands/observe/inbox.js.map +0 -1
- package/dist/cli/commands/observe/index.d.ts.map +0 -1
- package/dist/cli/commands/observe/index.js.map +0 -1
- package/dist/cli/commands/observe/ingest.d.ts.map +0 -1
- package/dist/cli/commands/observe/ingest.js.map +0 -1
- package/dist/cli/commands/observe/show.d.ts.map +0 -1
- package/dist/cli/commands/observe/show.js.map +0 -1
- package/dist/cli/commands/sample.d.ts.map +0 -1
- package/dist/cli/commands/sample.js.map +0 -1
- package/dist/cli/commands/studio.d.ts.map +0 -1
- package/dist/cli/commands/studio.js.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cli/lib/cli-exit.d.ts.map +0 -1
- package/dist/cli/lib/cli-exit.js.map +0 -1
- package/dist/cli/lib/cmd-flags.d.ts.map +0 -1
- package/dist/cli/lib/cmd-flags.js.map +0 -1
- package/dist/cli/lib/i18n-dict/common.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/common.js.map +0 -1
- package/dist/cli/lib/i18n-dict/evolve.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/evolve.js.map +0 -1
- package/dist/cli/lib/i18n-dict/gen.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/gen.js.map +0 -1
- package/dist/cli/lib/i18n-dict/help.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/help.js.map +0 -1
- package/dist/cli/lib/i18n-dict/init.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/init.js.map +0 -1
- package/dist/cli/lib/i18n-dict/run.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/run.js.map +0 -1
- package/dist/cli/lib/i18n-dict/types.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict/types.js.map +0 -1
- package/dist/cli/lib/i18n-dict.d.ts.map +0 -1
- package/dist/cli/lib/i18n-dict.js.map +0 -1
- package/dist/cli/lib/i18n.d.ts.map +0 -1
- package/dist/cli/lib/i18n.js.map +0 -1
- package/dist/cli/lib/parse-run-config/judge-models.d.ts.map +0 -1
- package/dist/cli/lib/parse-run-config/judge-models.js.map +0 -1
- package/dist/cli/lib/parse-run-config/samples-discovery.d.ts.map +0 -1
- package/dist/cli/lib/parse-run-config/samples-discovery.js.map +0 -1
- package/dist/cli/lib/parse-run-config/variant-resolution.d.ts.map +0 -1
- package/dist/cli/lib/parse-run-config/variant-resolution.js.map +0 -1
- package/dist/cli/lib/parse-run-config.d.ts.map +0 -1
- package/dist/cli/lib/parse-run-config.js.map +0 -1
- package/dist/cli/lib/progress.d.ts.map +0 -1
- package/dist/cli/lib/progress.js.map +0 -1
- package/dist/cli/lib/resolve-skill-input.d.ts.map +0 -1
- package/dist/cli/lib/resolve-skill-input.js.map +0 -1
- package/dist/cli/lib/run-tally.d.ts.map +0 -1
- package/dist/cli/lib/run-tally.js.map +0 -1
- package/dist/cli/lib/shared.d.ts.map +0 -1
- package/dist/cli/lib/shared.js.map +0 -1
- package/dist/cli/lib/update-check.d.ts.map +0 -1
- package/dist/cli/lib/update-check.js.map +0 -1
- package/dist/cli/oclif/base-command.d.ts.map +0 -1
- package/dist/cli/oclif/base-command.js.map +0 -1
- package/dist/cli/oclif/help.d.ts.map +0 -1
- package/dist/cli/oclif/help.js.map +0 -1
- package/dist/cli/oclif/i18n.d.ts.map +0 -1
- package/dist/cli/oclif/i18n.js.map +0 -1
- package/dist/cli/oclif/parsers.d.ts.map +0 -1
- package/dist/cli/oclif/parsers.js.map +0 -1
- package/dist/cli/oclif/projection.d.ts.map +0 -1
- package/dist/cli/oclif/projection.js.map +0 -1
- package/dist/cli/oclif/run.d.ts.map +0 -1
- package/dist/cli/oclif/run.js.map +0 -1
- package/dist/diagnosis/observe-mapper.d.ts.map +0 -1
- package/dist/diagnosis/observe-mapper.js.map +0 -1
- package/dist/diagnosis/observe-producer.d.ts.map +0 -1
- package/dist/diagnosis/observe-producer.js.map +0 -1
- package/dist/diagnosis/studio-projection.d.ts.map +0 -1
- package/dist/diagnosis/studio-projection.js.map +0 -1
- package/dist/diagnosis/types.d.ts.map +0 -1
- package/dist/diagnosis/types.js.map +0 -1
- package/dist/doctor/fixer.d.ts.map +0 -1
- package/dist/doctor/fixer.js.map +0 -1
- package/dist/doctor/health/builtin-dimensions.d.ts.map +0 -1
- package/dist/doctor/health/builtin-dimensions.js.map +0 -1
- package/dist/doctor/health/composer.d.ts.map +0 -1
- package/dist/doctor/health/composer.js.map +0 -1
- package/dist/doctor/health/dimension-registry.d.ts.map +0 -1
- package/dist/doctor/health/dimension-registry.js.map +0 -1
- package/dist/doctor/health/dimension-spec.d.ts.map +0 -1
- package/dist/doctor/health/dimension-spec.js.map +0 -1
- package/dist/doctor/health/parser.d.ts.map +0 -1
- package/dist/doctor/health/parser.js.map +0 -1
- package/dist/doctor/health/prompt-builder.d.ts.map +0 -1
- package/dist/doctor/health/prompt-builder.js.map +0 -1
- package/dist/doctor/health/register.d.ts.map +0 -1
- package/dist/doctor/health/register.js.map +0 -1
- package/dist/doctor/index.d.ts.map +0 -1
- package/dist/doctor/index.js.map +0 -1
- package/dist/doctor/messages.d.ts.map +0 -1
- package/dist/doctor/messages.js.map +0 -1
- package/dist/doctor/preflight.d.ts.map +0 -1
- package/dist/doctor/preflight.js.map +0 -1
- package/dist/doctor/renderer.d.ts.map +0 -1
- package/dist/doctor/renderer.js.map +0 -1
- package/dist/doctor/rules.d.ts.map +0 -1
- package/dist/doctor/rules.js.map +0 -1
- package/dist/eval-core/bootstrap.d.ts.map +0 -1
- package/dist/eval-core/bootstrap.js.map +0 -1
- package/dist/eval-core/cache.d.ts.map +0 -1
- package/dist/eval-core/cache.js.map +0 -1
- package/dist/eval-core/comparability.d.ts.map +0 -1
- package/dist/eval-core/comparability.js.map +0 -1
- package/dist/eval-core/dependency-checker.d.ts.map +0 -1
- package/dist/eval-core/dependency-checker.js.map +0 -1
- package/dist/eval-core/evaluation-execution.d.ts.map +0 -1
- package/dist/eval-core/evaluation-execution.js.map +0 -1
- package/dist/eval-core/evaluation-job.d.ts.map +0 -1
- package/dist/eval-core/evaluation-job.js.map +0 -1
- package/dist/eval-core/evaluation-reporting.d.ts.map +0 -1
- package/dist/eval-core/evaluation-reporting.js.map +0 -1
- package/dist/eval-core/execution-strategy.d.ts.map +0 -1
- package/dist/eval-core/execution-strategy.js.map +0 -1
- package/dist/eval-core/fact-checker.d.ts.map +0 -1
- package/dist/eval-core/fact-checker.js.map +0 -1
- package/dist/eval-core/layer-gates.d.ts.map +0 -1
- package/dist/eval-core/layer-gates.js.map +0 -1
- package/dist/eval-core/mocks-runtime.d.ts.map +0 -1
- package/dist/eval-core/mocks-runtime.js.map +0 -1
- package/dist/eval-core/schema.d.ts.map +0 -1
- package/dist/eval-core/schema.js.map +0 -1
- package/dist/eval-core/statistics.d.ts.map +0 -1
- package/dist/eval-core/statistics.js.map +0 -1
- package/dist/eval-core/task-planner.d.ts.map +0 -1
- package/dist/eval-core/task-planner.js.map +0 -1
- package/dist/eval-core/verdict.d.ts.map +0 -1
- package/dist/eval-core/verdict.js.map +0 -1
- package/dist/eval-workflows/batch-evaluation-workflow.d.ts.map +0 -1
- package/dist/eval-workflows/batch-evaluation-workflow.js.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/preflight-warnings.js.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/report-finalize.js.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/run-state.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/run-state.js.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline/test-set-hash.js.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-pipeline.js.map +0 -1
- package/dist/eval-workflows/evaluation-preparation.d.ts.map +0 -1
- package/dist/eval-workflows/evaluation-preparation.js.map +0 -1
- package/dist/eval-workflows/messages.d.ts.map +0 -1
- package/dist/eval-workflows/messages.js.map +0 -1
- package/dist/eval-workflows/run-evaluation.d.ts.map +0 -1
- package/dist/eval-workflows/run-evaluation.js.map +0 -1
- package/dist/executors/anthropic-api.d.ts.map +0 -1
- package/dist/executors/anthropic-api.js.map +0 -1
- package/dist/executors/claude-cli.d.ts.map +0 -1
- package/dist/executors/claude-cli.js.map +0 -1
- package/dist/executors/claude-sdk-trace.d.ts.map +0 -1
- package/dist/executors/claude-sdk-trace.js.map +0 -1
- package/dist/executors/claude-sdk.d.ts.map +0 -1
- package/dist/executors/claude-sdk.js.map +0 -1
- package/dist/executors/codex-cli-trace.d.ts.map +0 -1
- package/dist/executors/codex-cli-trace.js.map +0 -1
- package/dist/executors/codex-cli.d.ts.map +0 -1
- package/dist/executors/codex-cli.js.map +0 -1
- package/dist/executors/codex-sdk.d.ts.map +0 -1
- package/dist/executors/codex-sdk.js.map +0 -1
- package/dist/executors/gemini.d.ts.map +0 -1
- package/dist/executors/gemini.js.map +0 -1
- package/dist/executors/index.d.ts.map +0 -1
- package/dist/executors/index.js.map +0 -1
- package/dist/executors/openai-api.d.ts.map +0 -1
- package/dist/executors/openai-api.js.map +0 -1
- package/dist/executors/runtime-fingerprint.d.ts.map +0 -1
- package/dist/executors/runtime-fingerprint.js.map +0 -1
- package/dist/executors/script.d.ts.map +0 -1
- package/dist/executors/script.js.map +0 -1
- package/dist/executors/shared.d.ts.map +0 -1
- package/dist/executors/shared.js.map +0 -1
- package/dist/grading/assertions.d.ts.map +0 -1
- package/dist/grading/assertions.js.map +0 -1
- package/dist/grading/debias-validate.d.ts.map +0 -1
- package/dist/grading/debias-validate.js.map +0 -1
- package/dist/grading/diagnostic.d.ts.map +0 -1
- package/dist/grading/diagnostic.js.map +0 -1
- package/dist/grading/gold-cli.d.ts.map +0 -1
- package/dist/grading/gold-cli.js.map +0 -1
- package/dist/grading/gold-dataset.d.ts.map +0 -1
- package/dist/grading/gold-dataset.js.map +0 -1
- package/dist/grading/human-gold.d.ts.map +0 -1
- package/dist/grading/human-gold.js.map +0 -1
- package/dist/grading/index.d.ts.map +0 -1
- package/dist/grading/index.js.map +0 -1
- package/dist/grading/judge.d.ts.map +0 -1
- package/dist/grading/judge.js.map +0 -1
- package/dist/grading/layered-scores.d.ts.map +0 -1
- package/dist/grading/layered-scores.js.map +0 -1
- package/dist/inputs/eval-config.d.ts.map +0 -1
- package/dist/inputs/eval-config.js.map +0 -1
- package/dist/inputs/load-samples.d.ts.map +0 -1
- package/dist/inputs/load-samples.js.map +0 -1
- package/dist/inputs/mcp-resolver.d.ts.map +0 -1
- package/dist/inputs/mcp-resolver.js.map +0 -1
- package/dist/inputs/skill-loader.d.ts.map +0 -1
- package/dist/inputs/skill-loader.js.map +0 -1
- package/dist/inputs/url-fetcher.d.ts.map +0 -1
- package/dist/inputs/url-fetcher.js.map +0 -1
- package/dist/observability/experience-frontmatter.d.ts.map +0 -1
- package/dist/observability/experience-frontmatter.js.map +0 -1
- package/dist/observability/experience.d.ts.map +0 -1
- package/dist/observability/experience.js.map +0 -1
- package/dist/observability/feedback-matchers.d.ts.map +0 -1
- package/dist/observability/feedback-matchers.js.map +0 -1
- package/dist/observability/feedback-projection.d.ts.map +0 -1
- package/dist/observability/feedback-projection.js.map +0 -1
- package/dist/observability/inbox-view-model.d.ts.map +0 -1
- package/dist/observability/inbox-view-model.js.map +0 -1
- package/dist/observability/inbox.d.ts.map +0 -1
- package/dist/observability/inbox.js.map +0 -1
- package/dist/observability/problem-patterns.d.ts.map +0 -1
- package/dist/observability/problem-patterns.js.map +0 -1
- package/dist/observability/resolved-review.d.ts.map +0 -1
- package/dist/observability/resolved-review.js.map +0 -1
- package/dist/observability/review-state.d.ts.map +0 -1
- package/dist/observability/review-state.js.map +0 -1
- package/dist/observability/skill-chain-advisories.d.ts.map +0 -1
- package/dist/observability/skill-chain-advisories.js.map +0 -1
- package/dist/observability/skill-chain.d.ts.map +0 -1
- package/dist/observability/skill-chain.js.map +0 -1
- package/dist/observability/skill-health-analyzer.d.ts.map +0 -1
- package/dist/observability/skill-health-analyzer.js.map +0 -1
- package/dist/observability/soft-standards/constants.d.ts.map +0 -1
- package/dist/observability/soft-standards/constants.js.map +0 -1
- package/dist/observability/soft-standards/index.d.ts.map +0 -1
- package/dist/observability/soft-standards/index.js.map +0 -1
- package/dist/observability/soft-standards/llm-extractor.d.ts.map +0 -1
- package/dist/observability/soft-standards/llm-extractor.js.map +0 -1
- package/dist/observability/soft-standards/runtime-evaluator.d.ts.map +0 -1
- package/dist/observability/soft-standards/runtime-evaluator.js.map +0 -1
- package/dist/observability/soft-standards/skill-standards-store.d.ts.map +0 -1
- package/dist/observability/soft-standards/skill-standards-store.js.map +0 -1
- package/dist/observability/soft-standards/types.d.ts.map +0 -1
- package/dist/observability/soft-standards/types.js.map +0 -1
- package/dist/observability/text-signals.d.ts.map +0 -1
- package/dist/observability/text-signals.js.map +0 -1
- package/dist/observability/trace-adapter.d.ts.map +0 -1
- package/dist/observability/trace-adapter.js.map +0 -1
- package/dist/observability/trace-attribution.d.ts.map +0 -1
- package/dist/observability/trace-attribution.js.map +0 -1
- package/dist/observability/trace-segmenter.d.ts.map +0 -1
- package/dist/observability/trace-segmenter.js.map +0 -1
- package/dist/observability/trace-source.d.ts.map +0 -1
- package/dist/observability/trace-source.js.map +0 -1
- package/dist/renderer/html-renderer.d.ts.map +0 -1
- package/dist/renderer/html-renderer.js.map +0 -1
- package/dist/renderer/layout.d.ts.map +0 -1
- package/dist/renderer/layout.js.map +0 -1
- package/dist/renderer/observation-inbox/helpers.d.ts.map +0 -1
- package/dist/renderer/observation-inbox/helpers.js.map +0 -1
- package/dist/renderer/observation-inbox/styles.d.ts.map +0 -1
- package/dist/renderer/observation-inbox/styles.js.map +0 -1
- package/dist/renderer/observation-inbox-renderer.d.ts.map +0 -1
- package/dist/renderer/observation-inbox-renderer.js.map +0 -1
- package/dist/renderer/skill-detail-renderer.d.ts.map +0 -1
- package/dist/renderer/skill-detail-renderer.js.map +0 -1
- package/dist/renderer/skill-health-renderer.d.ts.map +0 -1
- package/dist/renderer/skill-health-renderer.js.map +0 -1
- package/dist/renderer/skill-list-renderer.d.ts.map +0 -1
- package/dist/renderer/skill-list-renderer.js.map +0 -1
- package/dist/renderer/summary.d.ts.map +0 -1
- package/dist/renderer/summary.js.map +0 -1
- package/dist/renderer/table.d.ts.map +0 -1
- package/dist/renderer/table.js.map +0 -1
- package/dist/renderer/test-view.d.ts.map +0 -1
- package/dist/renderer/test-view.js.map +0 -1
- package/dist/renderer/trends.d.ts.map +0 -1
- package/dist/renderer/trends.js.map +0 -1
- package/dist/server/job-store.d.ts.map +0 -1
- package/dist/server/job-store.js.map +0 -1
- package/dist/server/report-server.d.ts.map +0 -1
- package/dist/server/report-server.js.map +0 -1
- package/dist/server/report-store.d.ts.map +0 -1
- package/dist/server/report-store.js.map +0 -1
- package/dist/server/skill-index.d.ts.map +0 -1
- package/dist/server/skill-index.js.map +0 -1
- package/dist/server/skill-insights.d.ts.map +0 -1
- package/dist/server/skill-insights.js.map +0 -1
- package/dist/shared/hard-rules.d.ts.map +0 -1
- package/dist/shared/hard-rules.js.map +0 -1
- package/dist/shared/llm-prompts/index.d.ts.map +0 -1
- package/dist/shared/llm-prompts/index.js.map +0 -1
- package/dist/shared/llm-prompts/skill-health.d.ts.map +0 -1
- package/dist/shared/llm-prompts/skill-health.js.map +0 -1
- package/dist/shared/time.d.ts.map +0 -1
- package/dist/shared/time.js.map +0 -1
- package/dist/shared/tool-search.d.ts.map +0 -1
- package/dist/shared/tool-search.js.map +0 -1
- package/dist/types/dependencies.d.ts.map +0 -1
- package/dist/types/dependencies.js.map +0 -1
- package/dist/types/diagnosis.d.ts.map +0 -1
- package/dist/types/diagnosis.js.map +0 -1
- package/dist/types/doctor.d.ts.map +0 -1
- package/dist/types/doctor.js.map +0 -1
- package/dist/types/eval.d.ts.map +0 -1
- package/dist/types/eval.js.map +0 -1
- package/dist/types/executor.d.ts.map +0 -1
- package/dist/types/executor.js.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/types/judge.d.ts.map +0 -1
- package/dist/types/judge.js.map +0 -1
- package/dist/types/observability.d.ts.map +0 -1
- package/dist/types/observability.js.map +0 -1
- package/dist/types/report.d.ts.map +0 -1
- package/dist/types/report.js.map +0 -1
- package/dist/types/shared.d.ts.map +0 -1
- package/dist/types/shared.js.map +0 -1
- package/dist/types/skill-index.d.ts.map +0 -1
- package/dist/types/skill-index.js.map +0 -1
- package/dist/types/storage.d.ts.map +0 -1
- package/dist/types/storage.js.map +0 -1
- package/dist/util/safe-slice.d.ts.map +0 -1
- package/dist/util/safe-slice.js.map +0 -1
package/README.md
CHANGED
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
**English** | [简体中文](./README.zh.md)
|
|
10
10
|
|
|
11
11
|
**Did your prompt actually get better?**
|
|
12
|
-
A/B test your prompts and skills with statistical rigor — bootstrap CI
|
|
12
|
+
A/B test your prompts and skills with statistical rigor — bootstrap CI and length-debias on by default, Krippendorff α the moment you add a gold set.
|
|
13
|
+
|
|
14
|
+
📖 **Full documentation: [oh-my-knowledge.pages.dev](https://oh-my-knowledge.pages.dev)** (searchable, English / 简体中文)
|
|
13
15
|
|
|
14
16
|

|
|
15
17
|
|
|
@@ -23,12 +25,22 @@ omk eval --control code-review-v1 --treatment code-review-v2
|
|
|
23
25
|
|
|
24
26
|
That's it — no editing required. `omk init` scaffolds two skill variants and three sample cases; `omk eval` runs the controlled A/B and opens an HTML report with a one-line verdict in about five minutes.
|
|
25
27
|
|
|
28
|
+
> The CLI notifies you when a newer version is available (at most once per 20h); set `OMK_SKIP_UPDATE_CHECK=1` to silence it permanently.
|
|
29
|
+
|
|
26
30
|
Walkthrough: [5-minute quickstart guide](docs/quickstart-skill-eval.md) (recommended for first-time users).
|
|
27
31
|
|
|
28
|
-
Deeper: [CLI reference](docs/reference/cli.md) · [how it works](docs/explanation/architecture.md) · [eval sample format](docs/reference/eval-sample-format.md) · [executors
|
|
32
|
+
Deeper: [CLI reference](docs/reference/cli.md) · [how it works](docs/explanation/architecture.md) · [eval sample format](docs/reference/eval-sample-format.md) · [executors](docs/reference/executors.md) · [artifact layout](docs/reference/artifact-layout.md)
|
|
29
33
|
|
|
30
34
|
## Use inside AI Coding Agents
|
|
31
35
|
|
|
36
|
+
Install the official omk Agent Skill to let your coding agent run omk workflows from natural language:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
omk install omk-agent-skill
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
By default, omk installs only into detected local targets it explicitly supports: Codex/AGENTS when `~/.codex` or `~/.agents` exists, and Claude Code when `~/.claude` exists. Use `--to all` to force every target omk currently knows, or `--dest` for a custom skill root.
|
|
43
|
+
|
|
32
44
|
### Use inside Claude Code
|
|
33
45
|
|
|
34
46
|
When the `omk` skill is available in Claude Code, you can invoke it directly:
|
|
@@ -62,15 +74,15 @@ Teams doing knowledge engineering produce lots of knowledge artifacts (skills to
|
|
|
62
74
|
| | omk | promptfoo | DeepEval | LangSmith |
|
|
63
75
|
|--|--|--|--|--|
|
|
64
76
|
| Bootstrap CI | ✓ default | ✗ | ✗ | ✗ |
|
|
65
|
-
| Krippendorff α (judge ↔ human) | ✓
|
|
77
|
+
| Krippendorff α (judge ↔ human) | ✓ with gold set | ✗ | ✗ | ✗ |
|
|
66
78
|
| Length-debias judge prompt | ✓ default | ✗ | ✗ | ✗ |
|
|
67
79
|
| Saturation curve | ✓ | ✗ | ✗ | ✗ |
|
|
68
80
|
| Three-layer scoring isolation | ✓ | ✗ | partial | ✗ |
|
|
69
81
|
| Per-variant skill isolation (construct validity) | ✓ default | ✗ | ✗ | ✗ |
|
|
70
|
-
| Native
|
|
82
|
+
| Native Agent Skill | ✓ | ✗ | ✗ | ✗ |
|
|
71
83
|
| Hosted SaaS dashboard | ✗ | ✗ | ✓ | ✓ |
|
|
72
84
|
|
|
73
|
-
omk's moat is **default-on safety net** — Bootstrap CI
|
|
85
|
+
omk's moat is **default-on safety net** — Bootstrap CI and length-debias aren't advanced flags; they're the default, and judge ↔ human α comes free the moment you add a gold set. Other tools let you opt into confidence intervals; omk makes them unavoidable. Need a hosted SaaS dashboard? Choose LangSmith. Want quick local prompt iteration without statistics? Choose promptfoo. **Shipping to production and someone will ask "why should I trust this number?" Choose omk.**
|
|
74
86
|
|
|
75
87
|
RAG-specific evals: see RAGAS (separate niche, complementary to omk). Full comparison with 7 tools across 25+ dimensions: [docs/reference/comparison.md](docs/reference/comparison.md).
|
|
76
88
|
|
|
@@ -80,9 +92,9 @@ RAG-specific evals: see RAGAS (separate niche, complementary to omk). Full compa
|
|
|
80
92
|
|---|---|
|
|
81
93
|
| **One-line verdict** | `omk eval` six-tier verdict + ship recommendation + exit-code routing; HTML pill shares the same rules |
|
|
82
94
|
| **Six-dim evaluation** | Fact / Behavior / LLM-judge / Cost / Efficiency / Stability shown independently |
|
|
83
|
-
| **Multi-executor** | Claude CLI / Claude SDK / Codex CLI / Codex SDK / OpenAI / Gemini / any custom command |
|
|
84
|
-
| **
|
|
85
|
-
| **Statistical rigor** | Bootstrap CI /
|
|
95
|
+
| **Multi-executor** | Claude CLI / Claude SDK / Codex CLI / Codex SDK / OpenAI / Gemini / Anthropic API / any custom command |
|
|
96
|
+
| **30+ assertion types** | substring, regex, JSON Schema, ROUGE/BLEU/Levenshtein similarity, agent tool-call assertions, semantic similarity, custom JS |
|
|
97
|
+
| **Statistical rigor** | Bootstrap CI / length-debias / saturation curve on by default; Krippendorff α auto-computed with a gold set. [Details →](docs/explanation/statistical-rigor.md) |
|
|
86
98
|
| **RAG metrics** | `faithfulness` / `answer_relevancy` / `context_recall` — anti-hallucination + answer relevance + context coverage |
|
|
87
99
|
| **LLM health audit** | `omk doctor` grades 7 builtin dimensions; `--static-only` runs offline without an LLM |
|
|
88
100
|
| **Production observability** | parse Claude Code session JSONL traces; measure per-skill failure rate / latency / cost / knowledge-gap signals |
|
|
@@ -99,14 +111,17 @@ RAG-specific evals: see RAGAS (separate niche, complementary to omk). Full compa
|
|
|
99
111
|
|
|
100
112
|
## Documentation
|
|
101
113
|
|
|
114
|
+
The full docs are published at **[oh-my-knowledge.pages.dev](https://oh-my-knowledge.pages.dev)** — searchable, with an English / 简体中文 switcher. Key pages:
|
|
115
|
+
|
|
102
116
|
- **[How it works](docs/explanation/architecture.md)** — interleaved scheduling, variant resolution, dual-channel scoring, six-dim report
|
|
103
|
-
- **[Eval sample format](docs/reference/eval-sample-format.md)** — sample schema, scoring formulas,
|
|
104
|
-
- **[CLI reference](docs/reference/cli.md)** — all
|
|
105
|
-
- **[Executors & artifact layout](docs/reference/
|
|
117
|
+
- **[Eval sample format](docs/reference/eval-sample-format.md)** — sample schema, scoring formulas, 30+ assertion types, custom JS assertions
|
|
118
|
+
- **[CLI reference](docs/reference/cli.md)** — all top-level commands with bash examples and flag tables
|
|
119
|
+
- **[Executors](docs/reference/executors.md)** & **[artifact layout](docs/reference/artifact-layout.md)** — built-in / custom executors; how `variant` resolves to an artifact + runtime context
|
|
120
|
+
- **[How-to guides](docs/guides/agent-eval.md)** — [evaluate an agent](docs/guides/agent-eval.md) (project runtime context) and [use non-Claude models](docs/guides/non-claude-models.md) (GLM / Qwen / DeepSeek / Moonshot / Ollama)
|
|
106
121
|
- **[Quickstart](docs/quickstart-skill-eval.md)** — first-time five-minute walkthrough
|
|
107
122
|
- **[Sample design spec](docs/specs/sample-design-spec.md)** — capability / construct / provenance metadata; industry-gap mapping
|
|
108
123
|
- **[Statistical rigor](docs/explanation/statistical-rigor.md)** — why bootstrap CI / α / length-debias / saturation matter
|
|
109
|
-
- **[Comparison with 7 tools](docs/reference/comparison.md)** — 25+ dimensions across promptfoo / DeepEval / LangSmith /
|
|
124
|
+
- **[Comparison with 7 tools](docs/reference/comparison.md)** — 25+ dimensions across promptfoo / DeepEval / RAGAS / OpenAI Evals / LangSmith / lm-eval-harness / inspect-ai
|
|
110
125
|
|
|
111
126
|
## Environment variables
|
|
112
127
|
|
|
@@ -117,9 +132,9 @@ RAG-specific evals: see RAGAS (separate niche, complementary to omk). Full compa
|
|
|
117
132
|
|
|
118
133
|
## Requirements
|
|
119
134
|
|
|
120
|
-
- Node.js >=
|
|
135
|
+
- Node.js >= 22
|
|
121
136
|
- `claude` CLI (for the default executor and LLM judge; see [Claude Code](https://claude.ai/code))
|
|
122
|
-
- not needed if you use other executors (openai / gemini) with `--no-judge`
|
|
137
|
+
- not needed if you use other executors (openai-api / anthropic-api / gemini) with `--no-judge`
|
|
123
138
|
|
|
124
139
|
## Security notice
|
|
125
140
|
|
package/README.zh.md
CHANGED
|
@@ -9,7 +9,9 @@
|
|
|
9
9
|
[English](./README.md) | **简体中文**
|
|
10
10
|
|
|
11
11
|
**你改完 prompt,真的变好了吗?**
|
|
12
|
-
用统计严谨性 A/B 测试你的 prompt 和 skill —— Bootstrap
|
|
12
|
+
用统计严谨性 A/B 测试你的 prompt 和 skill —— Bootstrap 置信区间、长度去偏默认开,配一份人工 gold 就自动算 Krippendorff α。
|
|
13
|
+
|
|
14
|
+
📖 **完整文档:[oh-my-knowledge.pages.dev/zh](https://oh-my-knowledge.pages.dev/zh/)**(可搜索,可切换英文)
|
|
13
15
|
|
|
14
16
|

|
|
15
17
|
|
|
@@ -23,12 +25,22 @@ omk eval --control code-review-v1 --treatment code-review-v2
|
|
|
23
25
|
|
|
24
26
|
不用改任何文件 —— `omk init` 帮你脚手架两版 skill 和三条评测用例;`omk eval` 跑控制变量 A/B,5 分钟内出 HTML 报告 + 一行 verdict。
|
|
25
27
|
|
|
28
|
+
> 命令行有新版本时会自动提示(每 20 小时最多一次);想永久关闭该提醒,设环境变量 `OMK_SKIP_UPDATE_CHECK=1` 即可。
|
|
29
|
+
|
|
26
30
|
手把手教程:[5 分钟快速上手](docs/zh/quickstart-skill-eval.md)(推荐第一次跑评测的用户)。
|
|
27
31
|
|
|
28
|
-
深入:[CLI 参考](docs/zh/reference/cli.md) · [工作原理](docs/zh/explanation/architecture.md) · [
|
|
32
|
+
深入:[CLI 参考](docs/zh/reference/cli.md) · [工作原理](docs/zh/explanation/architecture.md) · [评测用例格式](docs/zh/reference/eval-sample-format.md) · [执行器](docs/zh/reference/executors.md) · [artifact 布局](docs/zh/reference/artifact-layout.md)
|
|
29
33
|
|
|
30
34
|
## 在 AI Coding Agent 中使用
|
|
31
35
|
|
|
36
|
+
安装 omk 官方 Agent Skill 后,可以直接用自然语言让 coding agent 跑 omk 工作流:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
omk install omk-agent-skill
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
默认只会安装到本机已检测到、且 omk 明确支持的目标:检测到 `~/.codex` 或 `~/.agents` 时写入 Codex/AGENTS,检测到 `~/.claude` 时写入 Claude Code。要强制写入当前 omk 已知的全部目标,用 `--to all`;要指定自定义 skill 根目录,用 `--dest`。
|
|
43
|
+
|
|
32
44
|
### 在 Claude Code 中使用
|
|
33
45
|
|
|
34
46
|
当 `omk` skill 已在 Claude Code 中可用时,可以直接这样调用:
|
|
@@ -62,15 +74,15 @@ omk sample skills/my-skill.md
|
|
|
62
74
|
| | omk | promptfoo | DeepEval | LangSmith |
|
|
63
75
|
|--|--|--|--|--|
|
|
64
76
|
| Bootstrap 置信区间 | ✓ 默认 | ✗ | ✗ | ✗ |
|
|
65
|
-
| Krippendorff α(评委 ↔ 人工) | ✓
|
|
77
|
+
| Krippendorff α(评委 ↔ 人工) | ✓ 加 gold 即开 | ✗ | ✗ | ✗ |
|
|
66
78
|
| 长度去偏的评委 prompt | ✓ 默认 | ✗ | ✗ | ✗ |
|
|
67
79
|
| 饱和曲线 | ✓ | ✗ | ✗ | ✗ |
|
|
68
80
|
| 三层独立评分 | ✓ | ✗ | 部分 | ✗ |
|
|
69
81
|
| 用例隔离(construct validity) | ✓ 默认 | ✗ | ✗ | ✗ |
|
|
70
|
-
| 原生
|
|
82
|
+
| 原生 Agent Skill | ✓ | ✗ | ✗ | ✗ |
|
|
71
83
|
| 托管 SaaS 看板 | ✗ | ✗ | ✓ | ✓ |
|
|
72
84
|
|
|
73
|
-
omk 的护城河是 **default-on 安全网** —— Bootstrap CI /
|
|
85
|
+
omk 的护城河是 **default-on 安全网** —— Bootstrap CI / 长度去偏不是 advanced flag,是默认行为;评委 ↔ 人工 α 只要给一份 gold 集就自动算。其他工具让你**手动**接置信区间;omk 让你**默认无法忽略**它。需要 SaaS 看板?选 LangSmith。要快速 prompt 迭代不要统计层?选 promptfoo。**要发到生产且会被问「为什么应该相信这个数字」?选 omk。**
|
|
74
86
|
|
|
75
87
|
RAG 专项评测请看 RAGAS(独立 niche,跟 omk 互补)。完整对比(7 个工具 × 25+ 维度): [docs/zh/reference/comparison.md](docs/zh/reference/comparison.md)
|
|
76
88
|
|
|
@@ -80,15 +92,15 @@ RAG 专项评测请看 RAGAS(独立 niche,跟 omk 互补)。完整对比
|
|
|
80
92
|
|------|------|
|
|
81
93
|
| **Verdict 一行结论** | `omk eval` 六档判定 + ship 建议 + exit code 路由,与 HTML 报告 verdict pill 共享规则 |
|
|
82
94
|
| **六维评估** | 事实 / 行为 / LLM 评价 / 成本 / 效率 / 稳定性独立展示 |
|
|
83
|
-
| **多执行器** | 支持 Claude CLI / Claude SDK / Codex CLI / Codex SDK / OpenAI / Gemini 及自定义命令 |
|
|
84
|
-
| **
|
|
85
|
-
| **统计严谨性** | Bootstrap CI /
|
|
95
|
+
| **多执行器** | 支持 Claude CLI / Claude SDK / Codex CLI / Codex SDK / OpenAI / Gemini / Anthropic API 及自定义命令 |
|
|
96
|
+
| **30+ 种断言** | 包含子串、正则、JSON Schema、ROUGE/BLEU/Levenshtein 相似度、Agent 工具调用、语义相似度、自定义函数等 |
|
|
97
|
+
| **统计严谨性** | Bootstrap CI / 长度去偏 / 饱和曲线默认开,Krippendorff α 提供 gold 集即自动计算。[详情 →](docs/zh/explanation/statistical-rigor.md) |
|
|
86
98
|
| **RAG metrics** | `faithfulness` / `answer_relevancy` / `context_recall` 三 metric — 反幻觉 + 切题度 + context 覆盖 |
|
|
87
99
|
| **LLM 健康度审计** | `omk doctor` 给 7 个内置维度独立打分;`--static-only` 可离线无 LLM 调用 |
|
|
88
100
|
| **线上 session 观测** | 解析 Claude Code session JSONL,测量各 skill 的失败率、耗时、token 成本、知识缺口信号 |
|
|
89
101
|
| **知识缺口识别** | 严重度加权的信号量化风险敞口,不宣称完备性 |
|
|
90
102
|
| **用例隔离 (construct validity)** | `--strict-baseline`(默认开)三堵 baseline 拿到被测 skill 的污染路径 |
|
|
91
|
-
| **用例设计科学性** | Sample schema 加 `capability` / `difficulty` / `construct` / `provenance` 元数据字段(HF Dataset Cards 风),studio 输出 coverage 分桶 + `rubric_clarity_low` / `capability_thin` issue。[docs/specs/sample-design-spec.md](docs/specs/sample-design-spec.md) |
|
|
103
|
+
| **用例设计科学性** | Sample schema 加 `capability` / `difficulty` / `construct` / `provenance` 元数据字段(HF Dataset Cards 风),studio 输出 coverage 分桶 + `rubric_clarity_low` / `capability_thin` issue。[docs/zh/specs/sample-design-spec.md](docs/zh/specs/sample-design-spec.md) |
|
|
92
104
|
| **多评委 ensemble** | `--judge-models claude:opus,openai:gpt-4o` 跨厂商评分 + agreement 度量 |
|
|
93
105
|
| **盲测 A/B** | `--blind` 隐藏变体名称,HTML 报告有揭晓按钮 |
|
|
94
106
|
| **多轮方差分析** | `--repeat N` 重复 N 次,计算均值/标准差/置信区间/t 检验 |
|
|
@@ -99,14 +111,17 @@ RAG 专项评测请看 RAGAS(独立 niche,跟 omk 互补)。完整对比
|
|
|
99
111
|
|
|
100
112
|
## 文档
|
|
101
113
|
|
|
114
|
+
完整文档已发布到 **[oh-my-knowledge.pages.dev/zh](https://oh-my-knowledge.pages.dev/zh/)** —— 可搜索,可切换英文。重点页面:
|
|
115
|
+
|
|
102
116
|
- **[工作原理](docs/zh/explanation/architecture.md)** —— 交错调度、variant 解析、双通道评分、六维报告
|
|
103
|
-
- **[
|
|
104
|
-
- **[CLI 参考](docs/zh/reference/cli.md)** ——
|
|
105
|
-
- **[
|
|
117
|
+
- **[评测用例格式](docs/zh/reference/eval-sample-format.md)** —— sample schema、评分公式、30+ 断言类型、自定义 JS 断言
|
|
118
|
+
- **[CLI 参考](docs/zh/reference/cli.md)** —— 顶层命令的 bash 示例和 flag 表
|
|
119
|
+
- **[执行器](docs/zh/reference/executors.md)** & **[artifact 布局](docs/zh/reference/artifact-layout.md)** —— 内置 / 自定义执行器;variant 如何解析为 artifact + runtime context
|
|
120
|
+
- **[操作指南](docs/zh/guides/agent-eval.md)** —— [评测 agent](docs/zh/guides/agent-eval.md)(项目 runtime context)与[使用非 Claude 模型](docs/zh/guides/non-claude-models.md)(GLM / 通义 / DeepSeek / Moonshot / Ollama)
|
|
106
121
|
- **[快速上手](docs/zh/quickstart-skill-eval.md)** —— 第一次跑评测的 5 分钟教程
|
|
107
|
-
- **[用例设计规范](docs/specs/sample-design-spec.md)** —— capability / construct / provenance 元数据;行业 gap 映射
|
|
122
|
+
- **[用例设计规范](docs/zh/specs/sample-design-spec.md)** —— capability / construct / provenance 元数据;行业 gap 映射
|
|
108
123
|
- **[统计严谨性](docs/zh/explanation/statistical-rigor.md)** —— 为什么 Bootstrap CI / α / 长度去偏 / 饱和曲线重要
|
|
109
|
-
- **[7 工具对比](docs/zh/reference/comparison.md)** —— promptfoo / DeepEval / LangSmith /
|
|
124
|
+
- **[7 工具对比](docs/zh/reference/comparison.md)** —— promptfoo / DeepEval / RAGAS / OpenAI Evals / LangSmith / lm-eval-harness / inspect-ai 等 25+ 维度横评
|
|
110
125
|
|
|
111
126
|
## 环境变量
|
|
112
127
|
|
|
@@ -117,9 +132,9 @@ RAG 专项评测请看 RAGAS(独立 niche,跟 omk 互补)。完整对比
|
|
|
117
132
|
|
|
118
133
|
## 系统要求
|
|
119
134
|
|
|
120
|
-
- Node.js >=
|
|
135
|
+
- Node.js >= 22
|
|
121
136
|
- `claude` CLI(默认执行器和 LLM 评委需要,参考 [Claude Code](https://claude.ai/code))
|
|
122
|
-
- 如果使用其它执行器(openai / gemini)+ `--no-judge` 则可不需要
|
|
137
|
+
- 如果使用其它执行器(openai-api / anthropic-api / gemini)+ `--no-judge` 则可不需要
|
|
123
138
|
|
|
124
139
|
## 安全说明
|
|
125
140
|
|
|
@@ -128,7 +143,7 @@ RAG 专项评测请看 RAGAS(独立 niche,跟 omk 互补)。完整对比
|
|
|
128
143
|
| 功能 | 风险 | 适用场景 |
|
|
129
144
|
|------|------|----------|
|
|
130
145
|
| **自定义断言**(`custom`) | 动态加载并执行用户指定的 `.mjs` 文件 | 仅使用自己编写或审查过的断言文件 |
|
|
131
|
-
| **eval-samples.json** | 断言配置可引用外部文件路径 |
|
|
146
|
+
| **eval-samples.json** | 断言配置可引用外部文件路径 | 不要使用来源不明的用例文件 |
|
|
132
147
|
|
|
133
148
|
**建议:**
|
|
134
149
|
|
|
@@ -54,4 +54,3 @@ export declare function computeCoverage(results: ResultEntry[], variant: string,
|
|
|
54
54
|
* Returns a map of variant → CoverageReport.
|
|
55
55
|
*/
|
|
56
56
|
export declare function computeReportCoverage(report: Report, artifactContents: Record<string, string | null>, cwds: Record<string, string | null>): Record<string, CoverageReport>;
|
|
57
|
-
//# sourceMappingURL=coverage-analyzer.d.ts.map
|
|
@@ -93,4 +93,3 @@ export interface FailureClusterReport {
|
|
|
93
93
|
}
|
|
94
94
|
export declare function clusterFailures(req: FailureClusterRequest): Promise<FailureClusterReport>;
|
|
95
95
|
export declare function formatFailureClusterReport(r: FailureClusterReport): string;
|
|
96
|
-
//# sourceMappingURL=failure-clusterer.d.ts.map
|
|
@@ -31,4 +31,3 @@ export declare function clearHedgingCache(): void;
|
|
|
31
31
|
* 失败降级:单批 LLM 调用 / 解析失败 → 该 batch 全部 isUncertainty=true (保守保留)。
|
|
32
32
|
*/
|
|
33
33
|
export declare function classifyHedgingCandidates(candidates: HedgingCandidate[], executor: ExecutorFn, opts?: ClassifyOptions): Promise<ClassifyResult>;
|
|
34
|
-
//# sourceMappingURL=hedging-classifier.d.ts.map
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
import { createHash } from 'node:crypto';
|
|
13
13
|
const DEFAULT_MAX_CANDIDATES = 50;
|
|
14
14
|
const DEFAULT_BATCH_SIZE = 10;
|
|
15
|
-
const DEFAULT_MODEL = 'claude-haiku-4-5
|
|
15
|
+
const DEFAULT_MODEL = 'claude-haiku-4-5';
|
|
16
16
|
// in-memory cache,进程内复用。key = sha256(sentence)。
|
|
17
17
|
const verdictCache = new Map();
|
|
18
18
|
export function clearHedgingCache() {
|
|
@@ -141,4 +141,3 @@ export async function classifyHedgingCandidates(candidates, executor, opts) {
|
|
|
141
141
|
}
|
|
142
142
|
return { verdicts, costUSD, truncated };
|
|
143
143
|
}
|
|
144
|
-
//# sourceMappingURL=hedging-classifier.js.map
|
|
@@ -31,4 +31,3 @@ export declare function analyzeResults(report: Report, opts?: AnalyzeResultsOpti
|
|
|
31
31
|
*/
|
|
32
32
|
export declare function buildSampleQualityAggregate(samples: Sample[]): SampleQualityAggregate;
|
|
33
33
|
export declare function generateAnalysisSummary(report: Report, lang?: Lang): string | undefined;
|
|
34
|
-
//# sourceMappingURL=report-diagnostics.d.ts.map
|
|
@@ -28,7 +28,7 @@ export type SampleIssueKind = 'flat_scores' | 'all_pass' | 'all_fail' | 'near_du
|
|
|
28
28
|
export interface SampleIssue {
|
|
29
29
|
sample_id: string;
|
|
30
30
|
severity: 'error' | 'warning' | 'info';
|
|
31
|
-
|
|
31
|
+
issueKind: SampleIssueKind;
|
|
32
32
|
/** Minimal evidence to make the issue actionable. */
|
|
33
33
|
evidence: Record<string, unknown>;
|
|
34
34
|
}
|
|
@@ -82,4 +82,3 @@ export declare function formatSampleDiagnostics(diag: SampleDiagnosticReport, op
|
|
|
82
82
|
lang?: DiagnosticLang;
|
|
83
83
|
}): string;
|
|
84
84
|
export {};
|
|
85
|
-
//# sourceMappingURL=sample-diagnostics.d.ts.map
|
|
@@ -69,19 +69,19 @@ export function diagnoseSamples(report, options = {}) {
|
|
|
69
69
|
const min = Math.min(...scores);
|
|
70
70
|
if (max === 5 && min === 5) {
|
|
71
71
|
issues.push({
|
|
72
|
-
sample_id: entry.sample_id, severity: 'info',
|
|
72
|
+
sample_id: entry.sample_id, severity: 'info', issueKind: 'all_pass',
|
|
73
73
|
evidence: { scores: scoresMap(entry, variants) },
|
|
74
74
|
});
|
|
75
75
|
}
|
|
76
76
|
else if (max === 1 && min === 1) {
|
|
77
77
|
issues.push({
|
|
78
|
-
sample_id: entry.sample_id, severity: 'error',
|
|
78
|
+
sample_id: entry.sample_id, severity: 'error', issueKind: 'all_fail',
|
|
79
79
|
evidence: { scores: scoresMap(entry, variants) },
|
|
80
80
|
});
|
|
81
81
|
}
|
|
82
82
|
else if (max - min < opt.flatThreshold) {
|
|
83
83
|
issues.push({
|
|
84
|
-
sample_id: entry.sample_id, severity: 'warning',
|
|
84
|
+
sample_id: entry.sample_id, severity: 'warning', issueKind: 'flat_scores',
|
|
85
85
|
evidence: { scores: scoresMap(entry, variants), spread: Number((max - min).toFixed(2)), threshold: opt.flatThreshold },
|
|
86
86
|
});
|
|
87
87
|
}
|
|
@@ -89,7 +89,7 @@ export function diagnoseSamples(report, options = {}) {
|
|
|
89
89
|
// Errored on at least one variant — sample may be broken (env / executor / fixture).
|
|
90
90
|
if (errors > 0) {
|
|
91
91
|
issues.push({
|
|
92
|
-
sample_id: entry.sample_id, severity: errors === variants.length ? 'error' : 'warning',
|
|
92
|
+
sample_id: entry.sample_id, severity: errors === variants.length ? 'error' : 'warning', issueKind: 'error_prone',
|
|
93
93
|
evidence: { errorCount: errors, variantCount: variants.length },
|
|
94
94
|
});
|
|
95
95
|
}
|
|
@@ -97,7 +97,7 @@ export function diagnoseSamples(report, options = {}) {
|
|
|
97
97
|
const maxStddev = judgeStddevs.length > 0 ? Math.max(...judgeStddevs) : 0;
|
|
98
98
|
if (maxStddev >= opt.ambiguousStddev) {
|
|
99
99
|
issues.push({
|
|
100
|
-
sample_id: entry.sample_id, severity: 'warning',
|
|
100
|
+
sample_id: entry.sample_id, severity: 'warning', issueKind: 'ambiguous_rubric',
|
|
101
101
|
evidence: { maxStddev: Number(maxStddev.toFixed(2)), threshold: opt.ambiguousStddev, stddevs: judgeStddevs.map((s) => Number(s.toFixed(2))) },
|
|
102
102
|
});
|
|
103
103
|
}
|
|
@@ -110,13 +110,13 @@ export function diagnoseSamples(report, options = {}) {
|
|
|
110
110
|
for (const s of sampleStats) {
|
|
111
111
|
if (medianCost > 0 && s.cost >= opt.costOutlierK * medianCost) {
|
|
112
112
|
issues.push({
|
|
113
|
-
sample_id: s.entry.sample_id, severity: 'info',
|
|
113
|
+
sample_id: s.entry.sample_id, severity: 'info', issueKind: 'cost_outlier',
|
|
114
114
|
evidence: { cost: Number(s.cost.toFixed(4)), medianCost: Number(medianCost.toFixed(4)), multiplier: opt.costOutlierK },
|
|
115
115
|
});
|
|
116
116
|
}
|
|
117
117
|
if (medianLatency > 0 && s.latencyMs >= opt.latencyOutlierK * medianLatency) {
|
|
118
118
|
issues.push({
|
|
119
|
-
sample_id: s.entry.sample_id, severity: 'info',
|
|
119
|
+
sample_id: s.entry.sample_id, severity: 'info', issueKind: 'latency_outlier',
|
|
120
120
|
evidence: { latencyMs: s.latencyMs, medianMs: medianLatency, multiplier: opt.latencyOutlierK },
|
|
121
121
|
});
|
|
122
122
|
}
|
|
@@ -145,7 +145,7 @@ export function diagnoseSamples(report, options = {}) {
|
|
|
145
145
|
continue;
|
|
146
146
|
seenPair.add(key);
|
|
147
147
|
issues.push({
|
|
148
|
-
sample_id: prompts[i].id, severity: 'warning',
|
|
148
|
+
sample_id: prompts[i].id, severity: 'warning', issueKind: 'near_duplicate',
|
|
149
149
|
evidence: { duplicateOf: prompts[j].id, rouge1: Number(score.toFixed(2)), threshold: opt.duplicateRouge },
|
|
150
150
|
});
|
|
151
151
|
}
|
|
@@ -170,7 +170,7 @@ export function diagnoseSamples(report, options = {}) {
|
|
|
170
170
|
if (containsRubricGradeKeyword(rubric))
|
|
171
171
|
continue;
|
|
172
172
|
issues.push({
|
|
173
|
-
sample_id: entry.sample_id, severity: 'info',
|
|
173
|
+
sample_id: entry.sample_id, severity: 'info', issueKind: 'rubric_clarity_low',
|
|
174
174
|
evidence: { rubricLength: rubric.length, rubricSnippet: rubric.slice(0, 80) },
|
|
175
175
|
});
|
|
176
176
|
}
|
|
@@ -205,7 +205,7 @@ export function diagnoseSamples(report, options = {}) {
|
|
|
205
205
|
// 报警挂在该 capability 的第一个 sample 上(便于定位),其他在 evidence 里列。
|
|
206
206
|
const primarySampleId = info.sampleIds[0];
|
|
207
207
|
issues.push({
|
|
208
|
-
sample_id: primarySampleId, severity: 'warning',
|
|
208
|
+
sample_id: primarySampleId, severity: 'warning', issueKind: 'capability_thin',
|
|
209
209
|
evidence: { capability: cap, sampleCount: info.count, threshold, sampleIds: info.sampleIds },
|
|
210
210
|
});
|
|
211
211
|
}
|
|
@@ -215,10 +215,10 @@ export function diagnoseSamples(report, options = {}) {
|
|
|
215
215
|
issues.sort((a, b) => SEVERITY_RANK[a.severity] - SEVERITY_RANK[b.severity] || a.sample_id.localeCompare(b.sample_id));
|
|
216
216
|
const byKind = {};
|
|
217
217
|
for (const i of issues) {
|
|
218
|
-
if (!byKind[i.
|
|
219
|
-
byKind[i.
|
|
220
|
-
if (!byKind[i.
|
|
221
|
-
byKind[i.
|
|
218
|
+
if (!byKind[i.issueKind])
|
|
219
|
+
byKind[i.issueKind] = [];
|
|
220
|
+
if (!byKind[i.issueKind].includes(i.sample_id))
|
|
221
|
+
byKind[i.issueKind].push(i.sample_id);
|
|
222
222
|
}
|
|
223
223
|
const totals = {
|
|
224
224
|
samples: results.length,
|
|
@@ -301,7 +301,7 @@ function evidenceString(evidence, key, fallback = '') {
|
|
|
301
301
|
}
|
|
302
302
|
export function formatSampleIssue(issue, lang = 'zh') {
|
|
303
303
|
const evidence = issue.evidence;
|
|
304
|
-
switch (issue.
|
|
304
|
+
switch (issue.issueKind) {
|
|
305
305
|
case 'all_pass':
|
|
306
306
|
return lang === 'zh'
|
|
307
307
|
? '所有 variant 得分均为 5——用例可能太简单或断言过宽'
|
|
@@ -371,8 +371,8 @@ export function formatSampleIssue(issue, lang = 'zh') {
|
|
|
371
371
|
}
|
|
372
372
|
default:
|
|
373
373
|
return lang === 'zh'
|
|
374
|
-
? `结构化诊断:${issue.
|
|
375
|
-
: `Structured diagnostic: ${issue.
|
|
374
|
+
? `结构化诊断:${issue.issueKind}`
|
|
375
|
+
: `Structured diagnostic: ${issue.issueKind}`;
|
|
376
376
|
}
|
|
377
377
|
}
|
|
378
378
|
/**
|
|
@@ -401,7 +401,7 @@ export function formatSampleDiagnostics(diag, options = {}) {
|
|
|
401
401
|
if (ids.length === 0)
|
|
402
402
|
continue;
|
|
403
403
|
lines.push(` [${kind}] ${ids.length} sample(s)`);
|
|
404
|
-
const matching = diag.issues.filter((i) => i.
|
|
404
|
+
const matching = diag.issues.filter((i) => i.issueKind === kind);
|
|
405
405
|
const display = topN ? matching.slice(0, topN) : matching;
|
|
406
406
|
for (const issue of display) {
|
|
407
407
|
const sev = issue.severity === 'error' ? '✗' : issue.severity === 'warning' ? '⚠' : 'ℹ';
|
|
@@ -455,4 +455,3 @@ export function formatSampleDiagnostics(diag, options = {}) {
|
|
|
455
455
|
lines.push('');
|
|
456
456
|
return lines.join('\n');
|
|
457
457
|
}
|
|
458
|
-
//# sourceMappingURL=sample-diagnostics.js.map
|
|
@@ -28,6 +28,14 @@
|
|
|
28
28
|
* that look like convergence but aren't.
|
|
29
29
|
*/
|
|
30
30
|
export type SaturationMethod = 'slope' | 'bootstrap-ci-width' | 'plateau-height';
|
|
31
|
+
/** Default consecutive-window run length required before declaring saturation. */
|
|
32
|
+
export declare const DEFAULT_SATURATION_WINDOW_SIZE = 3;
|
|
33
|
+
/**
|
|
34
|
+
* Default `bootstrap-ci-width` cutoff: declare saturation when the relative
|
|
35
|
+
* CI-width shrink per checkpoint stays under 5%. Single source of truth for
|
|
36
|
+
* the documented threshold; guarded by `doc-constants-drift.test.ts`.
|
|
37
|
+
*/
|
|
38
|
+
export declare const DEFAULT_CI_WIDTH_SHRINK_THRESHOLD = 0.05;
|
|
31
39
|
/**
|
|
32
40
|
* One observation in a saturation curve. `n` is the cumulative sample
|
|
33
41
|
* count at this checkpoint; `mean` and (optional) `ciWidth` come from
|
|
@@ -82,4 +90,3 @@ export declare function findSaturationPoint(cumulativeScores: number[][], method
|
|
|
82
90
|
* Use this when feeding `runMultiple` results to `findSaturationPoint`.
|
|
83
91
|
*/
|
|
84
92
|
export declare function buildCumulativeScores(runs: number[][]): number[][];
|
|
85
|
-
//# sourceMappingURL=saturation.d.ts.map
|
|
@@ -27,7 +27,15 @@
|
|
|
27
27
|
* window run-of-success is required. This guards against random dips
|
|
28
28
|
* that look like convergence but aren't.
|
|
29
29
|
*/
|
|
30
|
-
import { bootstrapMeanCI } from '../eval-core/bootstrap.js';
|
|
30
|
+
import { bootstrapMeanCI, DEFAULT_BOOTSTRAP_ALPHA, DEFAULT_BOOTSTRAP_SAMPLES } from '../eval-core/bootstrap.js';
|
|
31
|
+
/** Default consecutive-window run length required before declaring saturation. */
|
|
32
|
+
export const DEFAULT_SATURATION_WINDOW_SIZE = 3;
|
|
33
|
+
/**
|
|
34
|
+
* Default `bootstrap-ci-width` cutoff: declare saturation when the relative
|
|
35
|
+
* CI-width shrink per checkpoint stays under 5%. Single source of truth for
|
|
36
|
+
* the documented threshold; guarded by `doc-constants-drift.test.ts`.
|
|
37
|
+
*/
|
|
38
|
+
export const DEFAULT_CI_WIDTH_SHRINK_THRESHOLD = 0.05;
|
|
31
39
|
/**
|
|
32
40
|
* Compute saturation from a sequence of cumulative score arrays.
|
|
33
41
|
*
|
|
@@ -44,13 +52,13 @@ import { bootstrapMeanCI } from '../eval-core/bootstrap.js';
|
|
|
44
52
|
* @param bootstrapSamples Used only by 'bootstrap-ci-width' (default 1000).
|
|
45
53
|
* @param seed Optional seed for reproducible CIs.
|
|
46
54
|
*/
|
|
47
|
-
export function findSaturationPoint(cumulativeScores, method = 'bootstrap-ci-width', threshold, windowSize =
|
|
55
|
+
export function findSaturationPoint(cumulativeScores, method = 'bootstrap-ci-width', threshold, windowSize = DEFAULT_SATURATION_WINDOW_SIZE, bootstrapSamples = DEFAULT_BOOTSTRAP_SAMPLES, seed) {
|
|
48
56
|
const trace = [];
|
|
49
57
|
const checkpoints = [];
|
|
50
58
|
for (const scores of cumulativeScores) {
|
|
51
59
|
if (scores.length === 0)
|
|
52
60
|
continue;
|
|
53
|
-
const ci = bootstrapMeanCI(scores,
|
|
61
|
+
const ci = bootstrapMeanCI(scores, DEFAULT_BOOTSTRAP_ALPHA, bootstrapSamples, seed);
|
|
54
62
|
checkpoints.push({
|
|
55
63
|
n: scores.length,
|
|
56
64
|
mean: ci.estimate,
|
|
@@ -151,7 +159,7 @@ export function findSaturationPoint(cumulativeScores, method = 'bootstrap-ci-wid
|
|
|
151
159
|
function defaultThreshold(method) {
|
|
152
160
|
switch (method) {
|
|
153
161
|
case 'slope': return 0.005;
|
|
154
|
-
case 'bootstrap-ci-width': return
|
|
162
|
+
case 'bootstrap-ci-width': return DEFAULT_CI_WIDTH_SHRINK_THRESHOLD;
|
|
155
163
|
case 'plateau-height': return 0.1;
|
|
156
164
|
}
|
|
157
165
|
}
|
|
@@ -171,4 +179,3 @@ export function buildCumulativeScores(runs) {
|
|
|
171
179
|
}
|
|
172
180
|
return out;
|
|
173
181
|
}
|
|
174
|
-
//# sourceMappingURL=saturation.js.map
|