oh-my-knowledge 0.33.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 +18 -5
- package/README.zh.md +22 -9
- 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 +0 -1
- package/dist/analysis/saturation.js +0 -1
- 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 +130 -6
- package/dist/authoring/evolver.js +221 -32
- package/dist/authoring/generator.d.ts +0 -1
- package/dist/authoring/generator.js +0 -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 +0 -1
- package/dist/cli/commands/doctor.js +2 -3
- 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 +20 -9
- package/dist/cli/commands/evolve.d.ts +6 -1
- package/dist/cli/commands/evolve.js +77 -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 +0 -1
- 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 +0 -1
- package/dist/cli/commands/sample.js +2 -3
- 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 +6 -1
- package/dist/cli/lib/cmd-flags.js +0 -1
- package/dist/cli/lib/i18n-dict/common.d.ts +0 -1
- package/dist/cli/lib/i18n-dict/common.js +0 -1
- package/dist/cli/lib/i18n-dict/evolve.d.ts +1 -2
- package/dist/cli/lib/i18n-dict/evolve.js +16 -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 +0 -1
- package/dist/cli/lib/parse-run-config/variant-resolution.js +34 -8
- 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 +0 -1
- 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 +0 -1
- package/dist/cli/lib/update-check.js +0 -1
- package/dist/cli/lib/update-fetch-worker.d.ts +0 -1
- package/dist/cli/lib/update-fetch-worker.js +0 -1
- 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 +0 -1
- package/dist/doctor/health/load-custom-dimensions.js +0 -1
- 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 +0 -1
- package/dist/eval-core/bootstrap.js +0 -1
- 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 +5 -4
- 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 +0 -1
- package/dist/eval-core/verdict.js +0 -1
- 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 -44
- 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 +3 -8
- package/dist/eval-workflows/run-evaluation.js +9 -19
- 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 +2 -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 +81 -11
- package/dist/inputs/skill-loader.js +173 -52
- 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 +0 -1
- package/dist/observability/skill-health-analyzer.js +0 -1
- 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 +0 -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 +3 -4
- package/dist/renderer/skill-health-renderer.d.ts +0 -1
- package/dist/renderer/skill-health-renderer.js +0 -1
- package/dist/renderer/skill-list-renderer.d.ts +0 -1
- package/dist/renderer/skill-list-renderer.js +0 -1
- package/dist/renderer/summary.d.ts +0 -1
- package/dist/renderer/summary.js +1 -2
- 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 +1 -2
- 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 +4 -5
- package/dist/server/skill-insights.d.ts +0 -1
- package/dist/server/skill-insights.js +8 -9
- 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 +1 -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 +0 -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 +7 -2
- 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/lib/update-fetch-worker.d.ts.map +0 -1
- package/dist/cli/lib/update-fetch-worker.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/load-custom-dimensions.d.ts.map +0 -1
- package/dist/doctor/health/load-custom-dimensions.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
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
**Did your prompt actually get better?**
|
|
12
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
13
|
|
|
14
|
+
📖 **Full documentation: [oh-my-knowledge.pages.dev](https://oh-my-knowledge.pages.dev)** (searchable, English / 简体中文)
|
|
15
|
+
|
|
14
16
|

|
|
15
17
|
|
|
16
18
|
## Quick start
|
|
@@ -27,10 +29,18 @@ That's it — no editing required. `omk init` scaffolds two skill variants and t
|
|
|
27
29
|
|
|
28
30
|
Walkthrough: [5-minute quickstart guide](docs/quickstart-skill-eval.md) (recommended for first-time users).
|
|
29
31
|
|
|
30
|
-
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)
|
|
31
33
|
|
|
32
34
|
## Use inside AI Coding Agents
|
|
33
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
|
+
|
|
34
44
|
### Use inside Claude Code
|
|
35
45
|
|
|
36
46
|
When the `omk` skill is available in Claude Code, you can invoke it directly:
|
|
@@ -69,7 +79,7 @@ Teams doing knowledge engineering produce lots of knowledge artifacts (skills to
|
|
|
69
79
|
| Saturation curve | ✓ | ✗ | ✗ | ✗ |
|
|
70
80
|
| Three-layer scoring isolation | ✓ | ✗ | partial | ✗ |
|
|
71
81
|
| Per-variant skill isolation (construct validity) | ✓ default | ✗ | ✗ | ✗ |
|
|
72
|
-
| Native
|
|
82
|
+
| Native Agent Skill | ✓ | ✗ | ✗ | ✗ |
|
|
73
83
|
| Hosted SaaS dashboard | ✗ | ✗ | ✓ | ✓ |
|
|
74
84
|
|
|
75
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.**
|
|
@@ -101,14 +111,17 @@ RAG-specific evals: see RAGAS (separate niche, complementary to omk). Full compa
|
|
|
101
111
|
|
|
102
112
|
## Documentation
|
|
103
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
|
+
|
|
104
116
|
- **[How it works](docs/explanation/architecture.md)** — interleaved scheduling, variant resolution, dual-channel scoring, six-dim report
|
|
105
117
|
- **[Eval sample format](docs/reference/eval-sample-format.md)** — sample schema, scoring formulas, 30+ assertion types, custom JS assertions
|
|
106
|
-
- **[CLI reference](docs/reference/cli.md)** — all
|
|
107
|
-
- **[Executors & artifact layout](docs/reference/
|
|
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)
|
|
108
121
|
- **[Quickstart](docs/quickstart-skill-eval.md)** — first-time five-minute walkthrough
|
|
109
122
|
- **[Sample design spec](docs/specs/sample-design-spec.md)** — capability / construct / provenance metadata; industry-gap mapping
|
|
110
123
|
- **[Statistical rigor](docs/explanation/statistical-rigor.md)** — why bootstrap CI / α / length-debias / saturation matter
|
|
111
|
-
- **[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
|
|
112
125
|
|
|
113
126
|
## Environment variables
|
|
114
127
|
|
package/README.zh.md
CHANGED
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
**你改完 prompt,真的变好了吗?**
|
|
12
12
|
用统计严谨性 A/B 测试你的 prompt 和 skill —— Bootstrap 置信区间、长度去偏默认开,配一份人工 gold 就自动算 Krippendorff α。
|
|
13
13
|
|
|
14
|
+
📖 **完整文档:[oh-my-knowledge.pages.dev/zh](https://oh-my-knowledge.pages.dev/zh/)**(可搜索,可切换英文)
|
|
15
|
+
|
|
14
16
|

|
|
15
17
|
|
|
16
18
|
## 快速开始
|
|
@@ -27,10 +29,18 @@ omk eval --control code-review-v1 --treatment code-review-v2
|
|
|
27
29
|
|
|
28
30
|
手把手教程:[5 分钟快速上手](docs/zh/quickstart-skill-eval.md)(推荐第一次跑评测的用户)。
|
|
29
31
|
|
|
30
|
-
深入:[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)
|
|
31
33
|
|
|
32
34
|
## 在 AI Coding Agent 中使用
|
|
33
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
|
+
|
|
34
44
|
### 在 Claude Code 中使用
|
|
35
45
|
|
|
36
46
|
当 `omk` skill 已在 Claude Code 中可用时,可以直接这样调用:
|
|
@@ -69,7 +79,7 @@ omk sample skills/my-skill.md
|
|
|
69
79
|
| 饱和曲线 | ✓ | ✗ | ✗ | ✗ |
|
|
70
80
|
| 三层独立评分 | ✓ | ✗ | 部分 | ✗ |
|
|
71
81
|
| 用例隔离(construct validity) | ✓ 默认 | ✗ | ✗ | ✗ |
|
|
72
|
-
| 原生
|
|
82
|
+
| 原生 Agent Skill | ✓ | ✗ | ✗ | ✗ |
|
|
73
83
|
| 托管 SaaS 看板 | ✗ | ✗ | ✓ | ✓ |
|
|
74
84
|
|
|
75
85
|
omk 的护城河是 **default-on 安全网** —— Bootstrap CI / 长度去偏不是 advanced flag,是默认行为;评委 ↔ 人工 α 只要给一份 gold 集就自动算。其他工具让你**手动**接置信区间;omk 让你**默认无法忽略**它。需要 SaaS 看板?选 LangSmith。要快速 prompt 迭代不要统计层?选 promptfoo。**要发到生产且会被问「为什么应该相信这个数字」?选 omk。**
|
|
@@ -90,7 +100,7 @@ RAG 专项评测请看 RAGAS(独立 niche,跟 omk 互补)。完整对比
|
|
|
90
100
|
| **线上 session 观测** | 解析 Claude Code session JSONL,测量各 skill 的失败率、耗时、token 成本、知识缺口信号 |
|
|
91
101
|
| **知识缺口识别** | 严重度加权的信号量化风险敞口,不宣称完备性 |
|
|
92
102
|
| **用例隔离 (construct validity)** | `--strict-baseline`(默认开)三堵 baseline 拿到被测 skill 的污染路径 |
|
|
93
|
-
| **用例设计科学性** | 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) |
|
|
94
104
|
| **多评委 ensemble** | `--judge-models claude:opus,openai:gpt-4o` 跨厂商评分 + agreement 度量 |
|
|
95
105
|
| **盲测 A/B** | `--blind` 隐藏变体名称,HTML 报告有揭晓按钮 |
|
|
96
106
|
| **多轮方差分析** | `--repeat N` 重复 N 次,计算均值/标准差/置信区间/t 检验 |
|
|
@@ -101,14 +111,17 @@ RAG 专项评测请看 RAGAS(独立 niche,跟 omk 互补)。完整对比
|
|
|
101
111
|
|
|
102
112
|
## 文档
|
|
103
113
|
|
|
114
|
+
完整文档已发布到 **[oh-my-knowledge.pages.dev/zh](https://oh-my-knowledge.pages.dev/zh/)** —— 可搜索,可切换英文。重点页面:
|
|
115
|
+
|
|
104
116
|
- **[工作原理](docs/zh/explanation/architecture.md)** —— 交错调度、variant 解析、双通道评分、六维报告
|
|
105
|
-
- **[
|
|
106
|
-
- **[CLI 参考](docs/zh/reference/cli.md)** ——
|
|
107
|
-
- **[
|
|
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)
|
|
108
121
|
- **[快速上手](docs/zh/quickstart-skill-eval.md)** —— 第一次跑评测的 5 分钟教程
|
|
109
|
-
- **[用例设计规范](docs/specs/sample-design-spec.md)** —— capability / construct / provenance 元数据;行业 gap 映射
|
|
122
|
+
- **[用例设计规范](docs/zh/specs/sample-design-spec.md)** —— capability / construct / provenance 元数据;行业 gap 映射
|
|
110
123
|
- **[统计严谨性](docs/zh/explanation/statistical-rigor.md)** —— 为什么 Bootstrap CI / α / 长度去偏 / 饱和曲线重要
|
|
111
|
-
- **[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+ 维度横评
|
|
112
125
|
|
|
113
126
|
## 环境变量
|
|
114
127
|
|
|
@@ -130,7 +143,7 @@ RAG 专项评测请看 RAGAS(独立 niche,跟 omk 互补)。完整对比
|
|
|
130
143
|
| 功能 | 风险 | 适用场景 |
|
|
131
144
|
|------|------|----------|
|
|
132
145
|
| **自定义断言**(`custom`) | 动态加载并执行用户指定的 `.mjs` 文件 | 仅使用自己编写或审查过的断言文件 |
|
|
133
|
-
| **eval-samples.json** | 断言配置可引用外部文件路径 |
|
|
146
|
+
| **eval-samples.json** | 断言配置可引用外部文件路径 | 不要使用来源不明的用例文件 |
|
|
134
147
|
|
|
135
148
|
**建议:**
|
|
136
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
|
|
@@ -90,4 +90,3 @@ export declare function findSaturationPoint(cumulativeScores: number[][], method
|
|
|
90
90
|
* Use this when feeding `runMultiple` results to `findSaturationPoint`.
|
|
91
91
|
*/
|
|
92
92
|
export declare function buildCumulativeScores(runs: number[][]): number[][];
|
|
93
|
-
//# sourceMappingURL=saturation.d.ts.map
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: omk
|
|
3
|
+
description: |
|
|
4
|
+
oh-my-knowledge 知识载体评测工具的智能代理。评测 skill(系统提示词)质量,对比不同版本效果,自动迭代改进。
|
|
5
|
+
Use when: 用户提到"评测"、"测评"、"eval"、"benchmark"、"对比 skill"、"改进 skill"、"evolve"、"生成测试用例"、"gen-samples"、"omk"。
|
|
6
|
+
user-invocable: true
|
|
7
|
+
argument-hint: "<doctor|eval|evolve|init|install|observe|sample|studio> [options]"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# OMK — 知识载体评测
|
|
11
|
+
|
|
12
|
+
你是 oh-my-knowledge(omk)的智能代理。帮助用户评测、对比、改进 AI skill(系统提示词),用数据说话。
|
|
13
|
+
|
|
14
|
+
## 第一步:检查环境
|
|
15
|
+
|
|
16
|
+
运行 `which omk` 检查是否已安装。如果未安装,告诉用户:
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
npm i oh-my-knowledge -g
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
omk CLI 顶层命令包括:`init` / `install` / `doctor` / `eval` / `observe` / `evolve` / `sample` / `studio`。没有 `bench` / `improve` / `gen-samples` 这些旧子命令名 —— 如果你在历史 SKILL / 文档里看到了,那是 v0.30 命令树重构之前的写法。
|
|
23
|
+
|
|
24
|
+
## 第二步:理解用户意图
|
|
25
|
+
|
|
26
|
+
根据用户的描述,匹配对应的操作:
|
|
27
|
+
|
|
28
|
+
| 用户意图 | 操作 |
|
|
29
|
+
|---------|------|
|
|
30
|
+
| 评测 / 对比 skill | → `omk eval` |
|
|
31
|
+
| 改进 / 优化 skill | → `omk evolve`(自动多轮迭代) |
|
|
32
|
+
| 生成测试用例 | → `omk sample` |
|
|
33
|
+
| 体检 skill 写法 | → `omk doctor` |
|
|
34
|
+
| 查看 / 浏览报告 | → `omk studio`(启动本地报告浏览器) |
|
|
35
|
+
| 看真实使用 trace | → `omk observe` |
|
|
36
|
+
|
|
37
|
+
如果用户意图不明确,先扫描当前项目结构(skills/ 目录和 eval-samples 文件),然后推荐最合适的操作。
|
|
38
|
+
|
|
39
|
+
## 第三步:检测项目结构
|
|
40
|
+
|
|
41
|
+
使用 Glob 和 Read 工具检查:
|
|
42
|
+
|
|
43
|
+
1. `skills/` 目录下有哪些 skill 文件(`.md` 或 `*/SKILL.md`)
|
|
44
|
+
2. 是否存在 `eval-samples.json` / `eval-samples.yaml` / `eval-samples.yml` / `<skill>/.omk/samples.json`(推荐的标准位置)
|
|
45
|
+
3. 是否有 `skills/*.eval-samples.json`(每 skill 配对文件 → `--batch` 模式)
|
|
46
|
+
|
|
47
|
+
根据检测结果决定:
|
|
48
|
+
|
|
49
|
+
- 多个 skill + 各自的 eval-samples → 建议 `--batch` 批量模式
|
|
50
|
+
- 多个 skill + 共享 eval-samples → 建议版本对比模式
|
|
51
|
+
- 只有一个 skill → 建议 `baseline` 对照(`omk eval --control baseline --treatment <skill>`)或 `omk evolve` 改进
|
|
52
|
+
- 没有 eval-samples → 先 `omk sample <skill>` 生成
|
|
53
|
+
|
|
54
|
+
## 第四步:执行操作
|
|
55
|
+
|
|
56
|
+
### 评测 skill
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# 单 skill 必要性测试(有 skill vs 没 skill)
|
|
60
|
+
omk eval --control baseline --treatment my-skill
|
|
61
|
+
|
|
62
|
+
# 版本 A/B 对比
|
|
63
|
+
omk eval --control my-skill-v1 --treatment my-skill-v2
|
|
64
|
+
|
|
65
|
+
# 对比 git 历史里的版本跟当前
|
|
66
|
+
omk eval --control git:my-skill --treatment my-skill
|
|
67
|
+
|
|
68
|
+
# 批量评测:每个 skill 独立 vs baseline
|
|
69
|
+
omk eval --batch
|
|
70
|
+
|
|
71
|
+
# 先预览任务计划再执行
|
|
72
|
+
omk eval --control v1 --treatment v2 --dry-run
|
|
73
|
+
|
|
74
|
+
# 复杂配置走 eval.yaml
|
|
75
|
+
omk eval --config eval.yaml
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
常用选项:
|
|
79
|
+
|
|
80
|
+
- `--model <name>` 任务执行模型(默认 opus;省钱用 sonnet / haiku)
|
|
81
|
+
- `--effort <low|medium|high|xhigh|max>` 执行模型扩展思考预算(默认 low;跨 effort 报告不严格可比)
|
|
82
|
+
- `--judge-models <executor:model[,...]>` 评委配置(默认 claude:haiku,≥ 2 条 = ensemble)
|
|
83
|
+
- `--concurrency <n>` 并发数
|
|
84
|
+
- `--skip-doctor` 跳过 doctor preflight 门禁(默认 doctor 会先跑一次卡掉 skill 写法大问题)
|
|
85
|
+
- `--no-diagnostic` 关掉 diagnostic 诊断 LLM 调用(默认开启,给 failed sample 出「哪错了 + 怎么改」建议)
|
|
86
|
+
- `--no-judge` 关掉评委主观评分(保留断言层)
|
|
87
|
+
|
|
88
|
+
### 自动迭代改进
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
omk evolve skills/my-skill.md --rounds 5
|
|
92
|
+
omk evolve skills/my-skill.md --rounds 10 --target 4.5
|
|
93
|
+
# 严格留出 + 锁定 test:按 val 显著性接受、收尾给无偏泛化分
|
|
94
|
+
omk evolve skills/my-skill.md --holdout-ratio 0.2 --test-ratio 0.2
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
evolve 默认开**显著性接受门**:候选只在相对当前最优**统计显著更好**时才被接受(`bootstrapDiffCI` 的 95% CI 排除 0),而不是「分数高一点点就收」—— 拒绝与评委噪声不可分的提升。决策样本太少时退回点估计并 warn;`--no-significance-gate` 可关。配 `--holdout-ratio` 留出 val 选择集、`--test-ratio` 再锁一份全程不参与选择的 test 集,收尾读一次给无偏泛化分。改动过大的候选评测前直接判拒(`--edit-budget`,默认 0.2)。
|
|
98
|
+
|
|
99
|
+
**重要:evolve 必须在前台运行(不要用 `run_in_background`)。** 原因:evolve 自带实时进度输出,每个 sample 执行时会打印 `[1/5] s001/... ⏳ 执行中...`,每轮完成会打印 `Round N: score=... ✓ ACCEPT / ✗ REJECT`。前台运行时用户能实时看到这些进度,无需手动询问。设置足够长的 timeout(建议 600000ms)以确保命令不会中途超时。
|
|
100
|
+
|
|
101
|
+
### 生成测试用例
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
# 为单个 skill 生成
|
|
105
|
+
omk sample skills/my-skill.md
|
|
106
|
+
|
|
107
|
+
# 显式指定数量(不指定时 LLM 根据 skill 类型自动决定 4-8 条)
|
|
108
|
+
omk sample skills/my-skill.md --count 8
|
|
109
|
+
|
|
110
|
+
# 自然语言指定重点覆盖场景
|
|
111
|
+
omk sample skills/my-skill.md --focus "重点覆盖搜索失败 / 权限拒绝 / 跨工具 fallback 路径"
|
|
112
|
+
|
|
113
|
+
# 为 skill 目录下所有缺测试集的 skill 批量生成
|
|
114
|
+
omk sample --batch
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
输出位置:`<skill>/SKILL.md` 风格 → `<skill>/.omk/samples.json`(标准),其他 `.md` 路径 → 当前目录 `eval-samples.json`(兜底)。
|
|
118
|
+
|
|
119
|
+
### 体检 skill 写法
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
# 全量体检(含 LLM-judge 维度)
|
|
123
|
+
omk doctor
|
|
124
|
+
|
|
125
|
+
# 只跑静态检查不调 LLM
|
|
126
|
+
omk doctor --static-only
|
|
127
|
+
|
|
128
|
+
# 针对单 skill
|
|
129
|
+
omk doctor skills/my-skill.md
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
`omk eval` 默认会先跑一次 doctor 当 preflight 门禁,所以一般不用单独跑;想在 eval 之前先把结构问题先扫一遍再跑评测,就单独跑 `omk doctor`。
|
|
133
|
+
|
|
134
|
+
### 查看 / 浏览报告
|
|
135
|
+
|
|
136
|
+
```bash
|
|
137
|
+
omk studio # 启动本地 web 报告浏览器
|
|
138
|
+
omk studio --port 8080 # 改端口
|
|
139
|
+
omk studio --host 0.0.0.0 # 局域网访问(默认 127.0.0.1)
|
|
140
|
+
omk studio --no-open # 不自动开浏览器
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Studio 是 skill-centric:列表页(`/`)按 skill 卡片展示健康等级 / 0-100 参考分 / 待优化数 / 趋势;详情页(`/skills/<name>`)左栏列关键问题清单,右栏画健康趋势 + 三档阶段卡(doctor / eval / observe)。访问 `/observations/inbox` 查看 observe inbox 看板。
|
|
144
|
+
|
|
145
|
+
## 第五步:解读结果
|
|
146
|
+
|
|
147
|
+
`omk eval` 跑完会自动启动 studio 并输出 JSON 结果。你需要用自然语言总结关键发现:
|
|
148
|
+
|
|
149
|
+
### 版本对比模式
|
|
150
|
+
|
|
151
|
+
总结要包含:
|
|
152
|
+
|
|
153
|
+
1. **结论**:verdict 是 PROGRESS / NOISE / REGRESSION / CAUTIOUS,哪个 variant 更好
|
|
154
|
+
2. **质量分数**:各 variant 的平均综合分(0-5 分)+ Δ + 95% CI
|
|
155
|
+
3. **成本对比**:token 消耗、execCostUSD、判官花费、diagnostic 花费
|
|
156
|
+
4. **低分样本**:哪些样本两个版本差异最大,rubric 期望 vs 实际差在哪
|
|
157
|
+
5. **建议**:基于数据给出的下一步行动建议
|
|
158
|
+
|
|
159
|
+
示例输出:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
v2 比 v1 更好(verdict: PROGRESS,Δ=+0.7,95% CI [+0.3, +1.1]):
|
|
163
|
+
- 质量:v2 平均 4.5 分 vs v1 平均 3.8 分(+18%)
|
|
164
|
+
- 成本:v2 略高($0.15 vs $0.12),因为输出更详细
|
|
165
|
+
- 亮点:v2 在 s002(错误处理)上显著提升(2.5 → 4.5),因为新增了"列出所有缺失的错误处理场景"指令
|
|
166
|
+
- 建议:v2 可以上线,但 s003(XSS 检测)仍然有提升空间
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### evolve 模式
|
|
170
|
+
|
|
171
|
+
总结进化过程:起始分数 → 最终分数,接受 / 拒绝了哪些改进,总花费。如果用户想看具体改了什么,引导查看 `skills/evolve/` 目录下的版本文件。
|
|
172
|
+
|
|
173
|
+
### 批量评测模式(`--batch`)
|
|
174
|
+
|
|
175
|
+
列出每个 skill 的 baseline 分 vs skill 分和提升幅度,高亮表现最好和最差的 skill。
|
|
176
|
+
|
|
177
|
+
## 指定工作目录(cwd)
|
|
178
|
+
|
|
179
|
+
当评测用例需要模型读取特定仓库的代码时,可在 sample 中设置 `cwd` 字段:
|
|
180
|
+
|
|
181
|
+
```yaml
|
|
182
|
+
- sample_id: task-001
|
|
183
|
+
prompt: "实现用户登录功能,要求支持手机号和邮箱两种方式"
|
|
184
|
+
cwd: "/path/to/target-repo"
|
|
185
|
+
assertions:
|
|
186
|
+
- type: contains_all
|
|
187
|
+
values: ["auth.ts", "login.tsx"]
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
`cwd` 会作为 executor 的工作目录,`claude -p` 将在该目录下运行,能自动读取仓库代码。适用于「给一个任务 query,断言应该修改哪些文件」的 A/B 评测场景。
|
|
191
|
+
|
|
192
|
+
## 注意事项
|
|
193
|
+
|
|
194
|
+
- 评测需要调用 LLM,会产生费用。运行前告知用户预估成本(样本数 × 变体数 × 约 $0.01-0.05 美元 / 次)
|
|
195
|
+
- 首次使用建议先 `--dry-run` 预览任务计划
|
|
196
|
+
- `evolve` 命令会修改原始 skill 文件,原始版本保存在 `skills/evolve/*.r0.md`
|
|
197
|
+
- 详细命令参考见 [commands.md](references/commands.md)
|