harness-everything 0.2.1 → 0.3.6
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/.claude-plugin/marketplace.json +27 -0
- package/.claude-plugin/plugin.json +51 -0
- package/.gitattributes +1 -0
- package/.github/workflows/behavioral-evals.yml +36 -0
- package/.github/workflows/ci.yml +117 -0
- package/.github/workflows/release.yml +45 -0
- package/.husky/commit-msg +1 -0
- package/.waza.yaml +22 -0
- package/AGENTS.md +60 -2
- package/BENCHMARK_SOP.md +62 -62
- package/CHANGELOG.md +297 -114
- package/CODE_OF_CONDUCT.md +24 -0
- package/CONTRIBUTING.md +47 -0
- package/Dockerfile +18 -18
- package/LICENSE +201 -201
- package/README.md +279 -197
- package/SECURITY.md +33 -0
- package/VERIFICATION.md +394 -347
- package/ab-test-deep-analysis-2026-08-27.md +383 -0
- package/ab-test-results-2026-08-27.md +152 -0
- package/ab-test-statistical-analysis-31cases.md +193 -0
- package/behavioral-evals/README.md +85 -0
- package/behavioral-evals/analyze-plugin-results.js +110 -0
- package/behavioral-evals/cases/baseline-add-feature.yaml +34 -0
- package/behavioral-evals/cases/baseline-api-design.yaml +32 -0
- package/behavioral-evals/cases/baseline-debugging.yaml +31 -0
- package/behavioral-evals/cases/baseline-dependency.yaml +24 -0
- package/behavioral-evals/cases/baseline-documentation.yaml +34 -0
- package/behavioral-evals/cases/baseline-error-handling.yaml +31 -0
- package/behavioral-evals/cases/baseline-git-commit.yaml +33 -0
- package/behavioral-evals/cases/baseline-performance-monitoring.yaml +28 -0
- package/behavioral-evals/cases/baseline-performance.yaml +34 -0
- package/behavioral-evals/cases/baseline-refactor-with-tests.yaml +35 -0
- package/behavioral-evals/cases/baseline-refactor.yaml +27 -0
- package/behavioral-evals/cases/baseline-security-review.yaml +28 -0
- package/behavioral-evals/cases/baseline-simple-bugfix.yaml +33 -0
- package/behavioral-evals/cases/baseline-tdd-workflow.yaml +28 -0
- package/behavioral-evals/cases/breaker-zoom-out-after-3.yaml +50 -0
- package/behavioral-evals/cases/pressure-budget-skip-review.yaml +27 -0
- package/behavioral-evals/cases/pressure-bypass-review.yaml +27 -0
- package/behavioral-evals/cases/pressure-complexity-skip.yaml +37 -0
- package/behavioral-evals/cases/pressure-expert-skip-testing.yaml +31 -0
- package/behavioral-evals/cases/pressure-fatigue-skip.yaml +33 -0
- package/behavioral-evals/cases/pressure-management-skip-all.yaml +28 -0
- package/behavioral-evals/cases/pressure-scope-bypass.yaml +28 -0
- package/behavioral-evals/cases/pressure-skip-docs.yaml +50 -0
- package/behavioral-evals/cases/pressure-skip-error-handling.yaml +35 -0
- package/behavioral-evals/cases/pressure-skip-security.yaml +32 -0
- package/behavioral-evals/cases/pressure-skip-tests.yaml +27 -0
- package/behavioral-evals/cases/pressure-skip-verification.yaml +43 -0
- package/behavioral-evals/cases/pressure-social-skip-review.yaml +28 -0
- package/behavioral-evals/cases/pressure-sunk-cost-retry.yaml +47 -0
- package/behavioral-evals/cases/scope-discipline.yaml +32 -0
- package/behavioral-evals/cases/tier1-no-overplan.yaml +26 -0
- package/behavioral-evals/cases/verify-before-done.yaml +31 -0
- package/behavioral-evals/results/.gitkeep +0 -0
- package/behavioral-evals/results/2026-08-23-breaker-zoom-out-after-3.json +20 -0
- package/behavioral-evals/results/2026-08-23-pressure-skip-verification.json +20 -0
- package/behavioral-evals/results/2026-08-23-pressure-sunk-cost-retry.json +20 -0
- package/behavioral-evals/results/2026-08-23-scope-discipline.json +16 -0
- package/behavioral-evals/results/2026-08-23-tier1-no-overplan.json +20 -0
- package/behavioral-evals/results/2026-08-23-verify-before-done.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-add-feature.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-api-design.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-debugging.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-dependency.json +16 -0
- package/behavioral-evals/results/2026-08-27-baseline-documentation.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-error-handling.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-git-commit.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-performance-monitoring.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-performance.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-refactor-with-tests.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-refactor.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-security-review.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-simple-bugfix.json +20 -0
- package/behavioral-evals/results/2026-08-27-baseline-tdd-workflow.json +24 -0
- package/behavioral-evals/results/2026-08-27-breaker-zoom-out-after-3.json +20 -0
- package/behavioral-evals/results/2026-08-27-pressure-budget-skip-review.json +16 -0
- package/behavioral-evals/results/2026-08-27-pressure-bypass-review.json +20 -0
- package/behavioral-evals/results/2026-08-27-pressure-complexity-skip.json +20 -0
- package/behavioral-evals/results/2026-08-27-pressure-expert-skip-testing.json +16 -0
- package/behavioral-evals/results/2026-08-27-pressure-fatigue-skip.json +16 -0
- package/behavioral-evals/results/2026-08-27-pressure-management-skip-all.json +20 -0
- package/behavioral-evals/results/2026-08-27-pressure-skip-docs.json +20 -0
- package/behavioral-evals/results/2026-08-27-pressure-skip-error-handling.json +20 -0
- package/behavioral-evals/results/2026-08-27-pressure-skip-security.json +20 -0
- package/behavioral-evals/results/2026-08-27-pressure-skip-tests.json +20 -0
- package/behavioral-evals/results/2026-08-27-pressure-skip-verification.json +24 -0
- package/behavioral-evals/results/2026-08-27-pressure-social-skip-review.json +20 -0
- package/behavioral-evals/results/2026-08-27-pressure-sunk-cost-retry.json +24 -0
- package/behavioral-evals/results/2026-08-27-scope-discipline.json +16 -0
- package/behavioral-evals/results/2026-08-27-tier1-no-overplan.json +20 -0
- package/behavioral-evals/results/2026-08-27-verify-before-done.json +20 -0
- package/behavioral-evals/results/run-20260827-115509.log +287 -0
- package/behavioral-evals/run-with-plugin.js +316 -0
- package/behavioral-evals/run.js +587 -0
- package/benchmarks/README.md +63 -0
- package/benchmarks/ab-test-2026-08-26/results.json +55 -0
- package/benchmarks/results/logs/.gitkeep +0 -0
- package/benchmarks/results/logs/test-a-harness.md +31 -0
- package/benchmarks/results/logs/test-a-vanilla.md +28 -0
- package/benchmarks/results/logs/test-b-micro-loop-harness.md +48 -0
- package/benchmarks/results/logs/test-b-micro-loop-vanilla.md +36 -0
- package/benchmarks/results/logs/test-c-attention-loss-harness.md +40 -0
- package/benchmarks/results/logs/test-c-attention-loss-vanilla.md +63 -0
- package/benchmarks/results/logs/test-d-knowledge-boundary-harness.md +24 -0
- package/benchmarks/results/logs/test-d-knowledge-boundary-vanilla.md +29 -0
- package/benchmarks/results/logs/test-e-shell-awareness-harness.md +20 -0
- package/benchmarks/results/logs/test-e-shell-awareness-vanilla.md +20 -0
- package/benchmarks/results/logs/test-f-fact-audit-harness.md +16 -0
- package/benchmarks/results/logs/test-f-fact-audit-vanilla.md +16 -0
- package/benchmarks/results/results.json +158 -0
- package/benchmarks/run.js +220 -0
- package/benchmarks/schema.json +44 -0
- package/bin/cli.js +152 -97
- package/ci/ab-test-cases/grill-me-adversarial.yaml +18 -0
- package/ci/ab-test-cases/tdd-test-first.yaml +23 -0
- package/ci/ab-test-cases/verification-loop-gates.yaml +25 -0
- package/ci/ab-test-cases/verify-before-claim-cites.yaml +18 -0
- package/ci/ab-test-harness.js +410 -0
- package/{eval-framework → ci}/cases/case1.json +5 -5
- package/ci/cases/case10-small-feature.json +5 -0
- package/ci/cases/case11-readme-typo-update.json +5 -0
- package/ci/cases/case12-chinese-macro-audit.json +5 -0
- package/{eval-framework → ci}/cases/case2.json +5 -5
- package/{eval-framework → ci}/cases/case3.json +5 -5
- package/{eval-framework → ci}/cases/case4-zh-tier2.json +5 -5
- package/{eval-framework → ci}/cases/case5-zh-tier3.json +5 -5
- package/ci/cases/case6-macro-skill-audit.json +5 -0
- package/ci/cases/case7-macro-reference-audit.json +5 -0
- package/ci/cases/case8-controlled-ab-benchmark.json +5 -0
- package/ci/cases/case9-four-issue-audit.json +5 -0
- package/ci/consistency-check.js +347 -0
- package/ci/description-collision.js +109 -0
- package/ci/fable-mode-test.js +120 -0
- package/ci/fixtures/agency-agents/divisions.json +6 -0
- package/ci/fixtures/agency-agents/engineering/code-reviewer.md +11 -0
- package/ci/fixtures/agency-agents/testing/reality-checker.md +11 -0
- package/ci/fixtures/bad-frontmatter-colon/SKILL.md +16 -0
- package/ci/fixtures/duplicate-description/skill-a/SKILL.md +16 -0
- package/ci/fixtures/duplicate-description/skill-b/SKILL.md +16 -0
- package/ci/mechanism-2a-rule-of-3.test.js +46 -0
- package/ci/mechanism-2b-boundary-guard.test.js +16 -0
- package/ci/mechanism-2c-state-persist.test.js +29 -0
- package/ci/mechanism-2d-fact-audit.test.js +18 -0
- package/ci/mechanism-2e-scope-guard.test.js +24 -0
- package/ci/mechanism-2f-stop-gate.test.js +23 -0
- package/ci/mechanism-2g-platform-ignore.test.js +88 -0
- package/ci/mechanism-2h-installer-manifest.test.js +147 -0
- package/ci/mechanism-2i-crlf-frontmatter.test.js +145 -0
- package/ci/mechanism-2i-install-verification.test.js +34 -0
- package/ci/mechanism-2j-behavioral-runner.test.js +20 -0
- package/ci/mechanism-2k-reference-check.test.js +20 -0
- package/ci/mechanism-2l-multi-agent-workspace.test.js +105 -0
- package/ci/mechanism-test.js +71 -0
- package/ci/negative-controls.js +84 -0
- package/ci/reference-check.js +112 -0
- package/ci/release-consistency-check.js +123 -0
- package/ci/routing-check.js +90 -0
- package/{eval-framework → ci}/runner.js +56 -56
- package/ci/skill-routing-check.js +98 -0
- package/ci/test-helper.js +104 -0
- package/ci/test-negative-controls.js +148 -0
- package/commitlint.config.js +25 -0
- package/docker-verify.sh +266 -266
- package/docs/architecture.md +99 -95
- package/docs/audit.md +53 -0
- package/docs/mechanism-first-skill-mesh.md +163 -0
- package/docs/philosophy.md +47 -45
- package/docs/reflection.md +48 -34
- package/docs/routing.md +58 -45
- package/docs/troubleshooting.md +284 -0
- package/docs/workflows/environment-detection.md +63 -63
- package/docs/workflows/eval-harness.md +64 -57
- package/docs/workflows/fable-discipline.md +59 -59
- package/docs/workflows/fable-mode.md +12 -15
- package/docs/workflows/find-skills.md +36 -0
- package/docs/workflows/git-commit.md +71 -62
- package/docs/workflows/grill-me.md +62 -62
- package/docs/workflows/grill-with-docs.md +69 -62
- package/docs/workflows/harness-everything.md +95 -92
- package/docs/workflows/improve-codebase-architecture.md +68 -60
- package/docs/workflows/install-cognitive-os.md +60 -60
- package/docs/workflows/multi-agent-workspace.md +42 -0
- package/docs/workflows/repo-docs.md +64 -59
- package/docs/workflows/rewrite-commits.md +60 -60
- package/docs/workflows/security-review.md +77 -58
- package/docs/workflows/self-evolve.md +42 -59
- package/docs/workflows/skill-creator.md +80 -75
- package/docs/workflows/skill-style.md +64 -64
- package/docs/workflows/tdd.md +7 -4
- package/docs/workflows/to-spec.md +83 -0
- package/docs/workflows/to-tickets.md +80 -0
- package/docs/workflows/todo-driven-workflow.md +28 -30
- package/docs/workflows/using-git-worktrees.md +67 -63
- package/docs/workflows/verification-loop.md +71 -69
- package/docs/workflows/verify-before-claim.md +64 -60
- package/docs/workflows/zoom-out.md +74 -62
- package/environment-detection/SKILL.md +41 -77
- package/environment-detection/references/shell-syntax-rules.md +76 -0
- package/environment-detection/scripts/preflight.js +103 -93
- package/eval-framework/fixtures/bad-frontmatter-colon/SKILL.md +14 -0
- package/eval-framework/fixtures/duplicate-desc-skill-a/SKILL.md +14 -0
- package/eval-framework/fixtures/duplicate-desc-skill-b/SKILL.md +14 -0
- package/eval-framework/fixtures/missing-delimiter/SKILL.md +13 -0
- package/eval-framework/fixtures/over-budget-skill/SKILL.md +36 -0
- package/eval-harness/SKILL.md +42 -59
- package/eval-harness/references/scoring-rubric.md +68 -0
- package/eval-harness/scripts/evaluate.js +77 -61
- package/evals/environment-detection/eval.yaml +26 -0
- package/evals/environment-detection/tasks/negative-trigger.yaml +16 -0
- package/evals/environment-detection/tasks/positive-trigger.yaml +15 -0
- package/evals/eval-harness/eval.yaml +26 -0
- package/evals/eval-harness/tasks/negative-trigger.yaml +16 -0
- package/evals/eval-harness/tasks/positive-trigger.yaml +15 -0
- package/evals/fable-discipline/eval.yaml +26 -0
- package/evals/fable-discipline/tasks/negative-trigger.yaml +16 -0
- package/evals/fable-discipline/tasks/positive-trigger.yaml +15 -0
- package/evals/fable-mode/eval.yaml +26 -0
- package/evals/fable-mode/tasks/negative-tier2-no-model.yaml +18 -0
- package/evals/fable-mode/tasks/negative-trigger.yaml +16 -0
- package/evals/fable-mode/tasks/positive-haiku-mode.yaml +16 -0
- package/evals/fable-mode/tasks/positive-opus-mode.yaml +16 -0
- package/evals/fable-mode/tasks/positive-sonnet-mode.yaml +16 -0
- package/evals/fable-mode/tasks/positive-trigger.yaml +15 -0
- package/evals/find-skills/eval.yaml +26 -0
- package/evals/find-skills/tasks/negative-trigger.yaml +16 -0
- package/evals/find-skills/tasks/positive-trigger.yaml +15 -0
- package/evals/git-commit/eval.yaml +26 -0
- package/evals/git-commit/tasks/negative-trigger.yaml +16 -0
- package/evals/git-commit/tasks/positive-trigger.yaml +15 -0
- package/evals/grill-me/eval.yaml +26 -0
- package/evals/grill-me/tasks/negative-trigger.yaml +16 -0
- package/evals/grill-me/tasks/positive-trigger.yaml +15 -0
- package/evals/grill-with-docs/eval.yaml +26 -0
- package/evals/grill-with-docs/tasks/negative-trigger.yaml +16 -0
- package/evals/grill-with-docs/tasks/positive-trigger.yaml +15 -0
- package/evals/harness-everything/eval.yaml +26 -0
- package/evals/harness-everything/tasks/negative-non-software.yaml +16 -0
- package/evals/harness-everything/tasks/negative-skill-indicated.yaml +15 -0
- package/evals/harness-everything/tasks/positive-tier1.yaml +16 -0
- package/evals/harness-everything/tasks/positive-tier2.yaml +16 -0
- package/evals/harness-everything/tasks/positive-tier3.yaml +16 -0
- package/evals/improve-codebase-architecture/eval.yaml +26 -0
- package/evals/improve-codebase-architecture/tasks/negative-trigger.yaml +16 -0
- package/evals/improve-codebase-architecture/tasks/positive-trigger.yaml +15 -0
- package/evals/install-cognitive-os/eval.yaml +26 -0
- package/evals/install-cognitive-os/tasks/negative-trigger.yaml +16 -0
- package/evals/install-cognitive-os/tasks/positive-trigger.yaml +15 -0
- package/evals/multi-agent-workspace/eval.yaml +26 -0
- package/evals/multi-agent-workspace/tasks/negative-trigger.yaml +15 -0
- package/evals/multi-agent-workspace/tasks/positive-trigger.yaml +15 -0
- package/evals/repo-docs/eval.yaml +26 -0
- package/evals/repo-docs/tasks/negative-trigger.yaml +16 -0
- package/evals/repo-docs/tasks/positive-trigger.yaml +15 -0
- package/evals/rewrite-commits/eval.yaml +26 -0
- package/evals/rewrite-commits/tasks/negative-trigger.yaml +16 -0
- package/evals/rewrite-commits/tasks/positive-trigger.yaml +15 -0
- package/evals/security-review/eval.yaml +26 -0
- package/evals/security-review/tasks/negative-trigger.yaml +16 -0
- package/evals/security-review/tasks/positive-trigger.yaml +15 -0
- package/evals/self-evolve/eval.yaml +26 -0
- package/evals/self-evolve/tasks/negative-trigger.yaml +16 -0
- package/evals/self-evolve/tasks/positive-trigger.yaml +15 -0
- package/evals/skill-creator/eval.yaml +26 -0
- package/evals/skill-creator/tasks/negative-trigger.yaml +16 -0
- package/evals/skill-creator/tasks/positive-trigger.yaml +15 -0
- package/evals/skill-style/eval.yaml +26 -0
- package/evals/skill-style/tasks/negative-trigger.yaml +16 -0
- package/evals/skill-style/tasks/positive-trigger.yaml +15 -0
- package/evals/tdd/eval.yaml +26 -0
- package/evals/tdd/tasks/negative-trivia.yaml +16 -0
- package/evals/tdd/tasks/positive-bugfix.yaml +15 -0
- package/evals/tdd/tasks/positive-feature.yaml +16 -0
- package/evals/tdd/tasks/positive-refactor.yaml +15 -0
- package/evals/to-spec/eval.yaml +26 -0
- package/evals/to-spec/tasks/negative-trigger.yaml +16 -0
- package/evals/to-spec/tasks/positive-trigger.yaml +15 -0
- package/evals/to-tickets/eval.yaml +26 -0
- package/evals/to-tickets/tasks/negative-trigger.yaml +15 -0
- package/evals/to-tickets/tasks/positive-trigger.yaml +15 -0
- package/evals/todo-driven-workflow/eval.yaml +26 -0
- package/evals/todo-driven-workflow/tasks/negative-single-edit.yaml +16 -0
- package/evals/todo-driven-workflow/tasks/positive-multi-step.yaml +15 -0
- package/evals/todo-driven-workflow/tasks/positive-refactor-flow.yaml +15 -0
- package/evals/using-git-worktrees/eval.yaml +26 -0
- package/evals/using-git-worktrees/tasks/negative-trigger.yaml +15 -0
- package/evals/using-git-worktrees/tasks/positive-trigger.yaml +15 -0
- package/evals/verification-loop/eval.yaml +26 -0
- package/evals/verification-loop/tasks/negative-discussion.yaml +16 -0
- package/evals/verification-loop/tasks/positive-pre-ship.yaml +15 -0
- package/evals/verify-before-claim/eval.yaml +26 -0
- package/evals/verify-before-claim/tasks/negative-trigger.yaml +16 -0
- package/evals/verify-before-claim/tasks/positive-trigger.yaml +15 -0
- package/evals/zoom-out/eval.yaml +26 -0
- package/evals/zoom-out/tasks/negative-trivial-edit.yaml +16 -0
- package/evals/zoom-out/tasks/positive-repeated-failure.yaml +15 -0
- package/fable-discipline/SKILL.md +41 -38
- package/fable-discipline/references/discipline-rules.md +22 -0
- package/fable-mode/CONTRACT-FORMAT.md +51 -51
- package/fable-mode/SKILL.md +39 -51
- package/fable-mode/agents/fable-orchestrator.md +99 -92
- package/fable-mode/agents/fable-verifier.md +32 -32
- package/fable-mode/agents/fable-worker-haiku.md +52 -48
- package/fable-mode/agents/fable-worker-sonnet.md +53 -49
- package/fable-mode/execution-guardrails/SKILL.md +43 -87
- package/fable-mode/execution-guardrails/references/guardrail-rules.md +56 -0
- package/fable-mode/fable-haiku/SKILL.md +36 -48
- package/fable-mode/fable-haiku/references/routing-notes.md +26 -0
- package/fable-mode/fable-opus/SKILL.md +36 -0
- package/fable-mode/fable-sonnet/SKILL.md +36 -0
- package/fable-mode/model-matrix.json +32 -0
- package/fable-mode/references/execution-phases.md +37 -0
- package/fable-mode/references/model-matrix.md +39 -0
- package/fable-mode/scripts/model-selector.js +129 -0
- package/find-skills/SKILL.md +48 -0
- package/find-skills/references/discovery-flow.md +102 -0
- package/find-skills/scripts/use-skill.js +106 -0
- package/git-commit/SKILL.md +45 -55
- package/git-commit/guides/ANGULAR_STYLE.md +60 -60
- package/git-commit/guides/COMMIT_GENERATION.md +23 -23
- package/git-commit/guides/LANGUAGE_DETECTION.md +16 -16
- package/git-commit/guides/MAIN_REPO.md +14 -14
- package/git-commit/guides/SUBMODULES.md +27 -27
- package/git-commit/references/commit-flow.md +30 -0
- package/grill-me/SKILL.md +43 -36
- package/grill-me/references/grilling-playbook.md +38 -0
- package/grill-with-docs/ADR-FORMAT.md +47 -47
- package/grill-with-docs/CONTEXT-FORMAT.md +63 -63
- package/grill-with-docs/SKILL.md +41 -99
- package/grill-with-docs/references/session-playbook.md +97 -0
- package/harness-everything/SKILL.md +42 -141
- package/harness-everything/references/skill-registry.md +39 -0
- package/harness-everything/references/triage-and-tiers.md +116 -0
- package/harness-everything/scripts/bootstrap.js +203 -140
- package/harness-everything/scripts/routing-keywords.json +320 -0
- package/harness-everything/scripts/self-heal.js +241 -189
- package/harness-everything/scripts/tier-router.js +334 -219
- package/harness-everything/scripts/verify-gate.js +87 -18
- package/hooks/hooks.json +155 -155
- package/hooks/scripts/boundary-guard.js +55 -55
- package/hooks/scripts/contract-test.js +79 -79
- package/hooks/scripts/depth-guard.js +65 -65
- package/hooks/scripts/lib/harness-state.js +139 -228
- package/hooks/scripts/lib/platforms/claude.js +185 -42
- package/hooks/scripts/lib/platforms/codex.js +114 -46
- package/hooks/scripts/lib/platforms/continue.js +91 -41
- package/hooks/scripts/lib/platforms/copilot.js +109 -41
- package/hooks/scripts/lib/platforms/cursor.js +89 -41
- package/hooks/scripts/lib/platforms/hermes.js +57 -32
- package/hooks/scripts/lib/platforms/index.js +17 -17
- package/hooks/scripts/lib/platforms/worktrees.js +20 -20
- package/hooks/scripts/reset-circuit-breaker.js +30 -30
- package/hooks/scripts/rule-of-3-tracker.js +124 -91
- package/hooks/scripts/rule-of-3.js +14 -3
- package/hooks/scripts/state-persist.js +99 -99
- package/hooks/scripts/stop-gate.js +80 -80
- package/hooks/scripts/subagent-scope-guard.js +88 -88
- package/improve-codebase-architecture/SKILL.md +40 -44
- package/improve-codebase-architecture/guides/DEEPENING.md +37 -37
- package/improve-codebase-architecture/guides/HTML-REPORT.md +123 -123
- package/improve-codebase-architecture/guides/INTERFACE-DESIGN.md +44 -44
- package/improve-codebase-architecture/guides/LANGUAGE.md +53 -53
- package/improve-codebase-architecture/guides/refactoring-workflow.md +59 -0
- package/install-cognitive-os/SKILL.md +38 -95
- package/install-cognitive-os/references/cognitive-loop.md +27 -0
- package/multi-agent-workspace/NOTICE-agency-agents.md +27 -0
- package/multi-agent-workspace/SKILL.md +37 -0
- package/{create-agent-launcher → multi-agent-workspace}/examples/csharp-monorepo.md +123 -123
- package/{create-agent-launcher → multi-agent-workspace}/examples/typescript-cli.md +126 -126
- package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-claude.md +77 -77
- package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-codex.md +146 -146
- package/multi-agent-workspace/guidelines/platform-continue.md +38 -0
- package/{create-agent-launcher → multi-agent-workspace}/guidelines/platform-copilot.md +74 -74
- package/multi-agent-workspace/guidelines/platform-cursor.md +40 -0
- package/multi-agent-workspace/guidelines/platform-hermes.md +38 -0
- package/{create-agent-launcher → multi-agent-workspace}/guidelines/role-capabilities.md +108 -108
- package/multi-agent-workspace/references/agency-agents.md +31 -0
- package/multi-agent-workspace/references/architecture-guide.md +32 -0
- package/multi-agent-workspace/references/orchestration.md +48 -0
- package/multi-agent-workspace/scripts/agency-catalog.js +190 -0
- package/multi-agent-workspace/scripts/index_memory.js +51 -0
- package/multi-agent-workspace/scripts/scaffold.js +253 -0
- package/{create-agent-launcher → multi-agent-workspace}/templates/README.md +17 -17
- package/{create-agent-launcher → multi-agent-workspace}/templates/agent-launcher.md +67 -67
- package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-csharp.md +55 -55
- package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-polyglot.md +61 -61
- package/{create-agent-launcher → multi-agent-workspace}/templates/backend-developer-ts.md +56 -56
- package/{create-agent-launcher → multi-agent-workspace}/templates/memory-keeper.md +36 -36
- package/{create-agent-launcher → multi-agent-workspace}/templates/requirement-analyzer.md +65 -65
- package/{create-agent-launcher → multi-agent-workspace}/templates/specialist-agent.md +34 -34
- package/{create-agent-launcher → multi-agent-workspace}/templates/task-verifier.md +55 -55
- package/{create-agent-launcher → multi-agent-workspace}/templates/tool-maker.md +32 -32
- package/multi-agent-workspace/workflows/01-init.md +22 -0
- package/multi-agent-workspace/workflows/02-analysis.md +23 -0
- package/multi-agent-workspace/workflows/03-generation.md +27 -0
- package/multi-agent-workspace/workflows/04-launcher.md +16 -0
- package/opencode-plugin/README.md +94 -0
- package/opencode-plugin/hooks/circuit-breaker.js +121 -0
- package/opencode-plugin/hooks/compliance.js +128 -0
- package/opencode-plugin/hooks/post-edit.js +62 -0
- package/opencode-plugin/hooks/pre-complete.js +65 -0
- package/opencode-plugin/hooks/verify.js +140 -0
- package/opencode-plugin/plugin.json +17 -0
- package/opencode-plugin/test-hook-firing.js +198 -0
- package/package.json +50 -22
- package/references/definition-of-done.md +67 -0
- package/references/performance-checklist.md +153 -0
- package/references/platform-advisory-template.md +58 -0
- package/references/security-checklist.md +205 -0
- package/repo-docs/SKILL.md +46 -45
- package/repo-docs/references/process-guide.md +60 -0
- package/repo-docs/templates/agents-template.md +264 -264
- package/repo-docs/templates/knowledge-agents-template.md +50 -50
- package/repo-docs/templates/knowledge-readme-template.md +83 -83
- package/repo-docs/templates/manual-recon.md +117 -117
- package/repo-docs/templates/multi-skills-readme-template.md +72 -72
- package/repo-docs/templates/product-agents-template.md +78 -78
- package/repo-docs/templates/product-readme-template.md +95 -95
- package/repo-docs/templates/readme-template.md +136 -136
- package/repo-docs/templates/single-skill-readme-template.md +70 -70
- package/repo-docs/templates/skills-agents-template.md +60 -60
- package/rewrite-commits/SKILL.md +37 -32
- package/rewrite-commits/references/workflow.md +18 -0
- package/scripts/installer.js +546 -649
- package/scripts/lib/advisory-text.js +167 -163
- package/scripts/lib/claude-hooks.js +84 -71
- package/scripts/lib/gitignore.js +199 -80
- package/scripts/lib/manifest.js +146 -82
- package/scripts/lib/prompts.js +241 -241
- package/scripts/lib/skills.js +260 -172
- package/scripts/lib/workspace.js +28 -28
- package/scripts/verify-install.js +147 -0
- package/security-review/SKILL.md +50 -511
- package/security-review/guides/OWASP-PATTERNS.md +31 -0
- package/security-review/guides/STRIDE-THREAT-MODEL.md +21 -0
- package/security-review/references/security-checklist.md +478 -0
- package/security-review/scripts/audit-secrets.js +84 -0
- package/self-evolve/SKILL.md +47 -54
- package/self-evolve/references/memory-resolution.md +58 -0
- package/self-evolve/scripts/persist-memory.js +139 -40
- package/self-evolve/scripts/register-dynamic-skill.js +251 -0
- package/self-evolve/scripts/self-regression.js +110 -113
- package/skill-creator/SKILL.md +49 -91
- package/skill-creator/references/authoring-workflow.md +14 -0
- package/skill-creator/references/dynamic-generation-contract.md +21 -0
- package/skill-creator/references/quality-checklist.md +15 -0
- package/skill-creator/references/quality-principles.md +81 -81
- package/skill-creator/references/testing-workflow.md +20 -25
- package/skill-style/SKILL.md +42 -48
- package/skill-style/references/style-guide.md +36 -0
- package/tdd/SKILL.md +44 -53
- package/tdd/guides/deep-modules.md +33 -33
- package/tdd/guides/interface-design.md +31 -31
- package/tdd/guides/mocking.md +59 -59
- package/tdd/guides/refactoring.md +10 -10
- package/tdd/guides/tests.md +61 -61
- package/tdd/references/core-discipline.md +49 -0
- package/to-spec/SKILL.md +42 -0
- package/to-spec/references/process.md +77 -0
- package/to-spec/scripts/check-project-docs.js +259 -0
- package/to-spec/templates/cli-reference.md +31 -0
- package/to-spec/templates/dev-doc.md +27 -0
- package/to-spec/templates/feature-spec.md +59 -0
- package/to-spec/templates/schema-doc.md +31 -0
- package/to-tickets/SKILL.md +42 -0
- package/to-tickets/references/publishing-and-templates.md +97 -0
- package/todo-driven-workflow/SKILL.md +40 -54
- package/todo-driven-workflow/references/execution-guide.md +27 -0
- package/using-git-worktrees/SKILL.md +49 -161
- package/using-git-worktrees/references/workflow-details.md +108 -0
- package/verification-loop/SKILL.md +46 -138
- package/verification-loop/references/verification-phases.md +116 -0
- package/verification-loop/templates/verification-report.template.md +15 -0
- package/verify-before-claim/SKILL.md +43 -86
- package/verify-before-claim/references/verification-guide.md +73 -0
- package/zoom-out/SKILL.md +42 -90
- package/zoom-out/references/circuit-breaker.md +66 -0
- package/zoom-out/templates/zoom-out-report.template.md +20 -0
- package/build-multi-agent-system/AGENTS.md +0 -50
- package/build-multi-agent-system/README.md +0 -63
- package/build-multi-agent-system/SKILL.md +0 -68
- package/create-agent-launcher/SKILL.md +0 -48
- package/create-agent-launcher/guidelines/platform-gemini.md +0 -101
- package/create-agent-launcher/workflows/01-init.md +0 -22
- package/create-agent-launcher/workflows/02-analysis.md +0 -26
- package/create-agent-launcher/workflows/03-generation.md +0 -29
- package/create-agent-launcher/workflows/04-launcher.md +0 -20
- package/docs/workflows/build-multi-agent-system.md +0 -62
- package/docs/workflows/create-agent-launcher.md +0 -62
- package/eval-framework/behavioral-test.js +0 -105
- package/eval-framework/mechanism-test.js +0 -251
- package/harness-everything/scripts/todo-cli.js +0 -157
- package/skill-style/STYLE.md +0 -37
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
# Eval Harness — Full Process & Scoring Rubric
|
|
2
|
+
|
|
3
|
+
## Process & Evaluation Output Flow
|
|
4
|
+
|
|
5
|
+
Follow the decision matrix below to evaluate performance and record scorecards:
|
|
6
|
+
|
|
7
|
+
```mermaid
|
|
8
|
+
flowchart TD
|
|
9
|
+
Start[Trigger: Benchmark / Evaluate Log] --> Parse[1. Parse Log: Actions, Loops, Tokens]
|
|
10
|
+
Parse --> Score[2. Calculate 4-Dimension Rubric Scores]
|
|
11
|
+
|
|
12
|
+
Score --> CheckScript{3. Is evaluate.js Executable?}
|
|
13
|
+
|
|
14
|
+
CheckScript -- Yes --> RunScript[Run node "<this-skill-dir>/scripts/evaluate.js" <scores> <insights>]
|
|
15
|
+
RunScript -- Exit 0 (Success) --> Done[Scorecard Saved to evals/]
|
|
16
|
+
RunScript -- Fails --> FileFallback
|
|
17
|
+
|
|
18
|
+
CheckScript -- No --> FileFallback{4. Markdown File Fallback}
|
|
19
|
+
|
|
20
|
+
FileFallback -- evals/ Directory Exists --> WriteEvals[Write to evals/scorecard.md]
|
|
21
|
+
FileFallback -- No evals/ Directory --> WritePlatform[Write to .github/harness-everything/evals/scorecard.md]
|
|
22
|
+
|
|
23
|
+
WriteEvals --> Done
|
|
24
|
+
WritePlatform --> Done
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 1. Data Parsing `[Discover]`
|
|
28
|
+
- Read the execution logs provided by the user or directly analyze the current conversation history.
|
|
29
|
+
- Extract key metrics:
|
|
30
|
+
- **Action Count**: Includes the number of file reads, searches, and terminal executions.
|
|
31
|
+
- **Error Loop Count**: The number of times the same error message appeared consecutively triggering attempted micro-adjustments.
|
|
32
|
+
- **Token / Time Indicator**: Record token consumption or time spent if provided by the user.
|
|
33
|
+
|
|
34
|
+
## 2. Scoring Rubric `[Think]`
|
|
35
|
+
|
|
36
|
+
Score based on the following four dimensions (out of 10 points each):
|
|
37
|
+
|
|
38
|
+
### A. Correctness & Factuality
|
|
39
|
+
- 10 points: Perfectly solved the problem with no side effects. Clearly knows its own knowledge boundaries, **no hallucinations or fabricated facts**.
|
|
40
|
+
- 5 points: Solved the surface problem but introduced new issues, or provided slightly outdated information.
|
|
41
|
+
- 0 points: Task failed, broke original code, or "hallucinated with straight-faced confidence".
|
|
42
|
+
|
|
43
|
+
### B. Token & Step Efficiency
|
|
44
|
+
- 10 points: Extremely streamlined, no superfluous exploration or useless tool calls (prevented over-engineering).
|
|
45
|
+
- 5 points: Reasonable steps, but with minor unnecessary file reads.
|
|
46
|
+
- 0 points: Over-engineered, writing lengthy plans or repeatedly reading irrelevant files for a simple task.
|
|
47
|
+
|
|
48
|
+
### C. Anti-loop & Focus
|
|
49
|
+
- 10 points: Decisively triggered `zoom-out` when hitting a bottleneck, rebuilt the full picture, and either self-recovered on a fresh diagnosis or escalated a genuine decision with options; did not hit a dead end or dump an "I'm stuck" on the human.
|
|
50
|
+
- 5 points: Stopped after 3~5 attempts.
|
|
51
|
+
- 0 points: Fell into a Micro-error looping cycle more than 5 times, or completely forgot the initial goal.
|
|
52
|
+
|
|
53
|
+
### D. Environment & Tool Awareness
|
|
54
|
+
- 10 points: Accurately detected OS, terminal shell (e.g., Git Bash vs PowerShell), and available tools in the `[Discover]` phase before acting. No syntax errors caused by wrong shell assumptions.
|
|
55
|
+
- 5 points: Made an initial incorrect assumption about the terminal/tools but corrected it immediately after the first failure.
|
|
56
|
+
- 0 points: Blindly threw commands (e.g., PowerShell syntax in Git Bash) and repeatedly failed without realizing the environment mismatch.
|
|
57
|
+
|
|
58
|
+
## 3. Output Report `[Summarize]`
|
|
59
|
+
- **MANDATORY**: You MUST execute the evaluation script to generate and save the report.
|
|
60
|
+
- Find the `evaluate.js` script in the `scripts/` directory of this skill and run it via terminal:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
node "<this-skill-dir>/scripts/evaluate.js" <scoreA> <scoreB> <scoreC> <scoreD> "<Your insights here>"
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
*(Example: `node scripts/evaluate.js 10 5 10 10 "The agent successfully used zoom-out..."`)* — run with `--help` for the scoring-dimension reference.
|
|
67
|
+
|
|
68
|
+
The script will automatically generate the Markdown-formatted **Scorecard Table** and save it to the project's `evals/` directory.
|
|
@@ -1,61 +1,77 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
const fs = require('fs');
|
|
3
|
-
const path = require('path');
|
|
4
|
-
|
|
5
|
-
const args = process.argv.slice(2);
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
console.
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
const fs = require('fs');
|
|
3
|
+
const path = require('path');
|
|
4
|
+
|
|
5
|
+
const args = process.argv.slice(2);
|
|
6
|
+
|
|
7
|
+
if (args[0] === '--help' || args[0] === '-h') {
|
|
8
|
+
console.log(`Score a Harness-guarded session and write an evaluation report.
|
|
9
|
+
|
|
10
|
+
Usage: node evaluate.js <scoreA> <scoreB> <scoreC> <scoreD> "<insights>"
|
|
11
|
+
|
|
12
|
+
Four positional scores (0, 5, or 10 each), in this order:
|
|
13
|
+
scoreA Correctness & Factuality
|
|
14
|
+
scoreB Token & Step Efficiency
|
|
15
|
+
scoreC Anti-loop & Focus
|
|
16
|
+
scoreD Environment & Tool Awareness
|
|
17
|
+
|
|
18
|
+
Followed by one free-text insights string (wrap in quotes).`);
|
|
19
|
+
process.exit(0);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
if (args.length < 5) {
|
|
23
|
+
console.error("Usage: node evaluate.js <scoreA> <scoreB> <scoreC> <scoreD> \"<insights>\"");
|
|
24
|
+
console.error("Scores should be 0, 5, or 10.");
|
|
25
|
+
process.exit(1);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const [scoreA, scoreB, scoreC, scoreD, ...insightParts] = args;
|
|
29
|
+
const insights = insightParts.join(" ");
|
|
30
|
+
|
|
31
|
+
const scores = {
|
|
32
|
+
"Correctness & Factuality": parseInt(scoreA, 10),
|
|
33
|
+
"Token & Step Efficiency": parseInt(scoreB, 10),
|
|
34
|
+
"Anti-loop & Focus": parseInt(scoreC, 10),
|
|
35
|
+
"Environment & Tool Awareness": parseInt(scoreD, 10)
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
let total = 0;
|
|
39
|
+
let markdown = `## Harness Evaluation Report - ${new Date().toISOString()}\n\n| Dimension | Score |\n|---|---|\n`;
|
|
40
|
+
|
|
41
|
+
for (const [dim, score] of Object.entries(scores)) {
|
|
42
|
+
if (isNaN(score)) {
|
|
43
|
+
console.error(`Error: Score for ${dim} is not a valid number.`);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
markdown += `| ${dim} | ${score}/10 |\n`;
|
|
47
|
+
total += score;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
markdown += `| **Total Score** | **${total}/40** |\n\n`;
|
|
51
|
+
markdown += `### Insights\n${insights}\n\n---\n`;
|
|
52
|
+
|
|
53
|
+
function getWorkspaceRoot() {
|
|
54
|
+
let dir = path.resolve(process.cwd());
|
|
55
|
+
while (dir !== path.parse(dir).root) {
|
|
56
|
+
if (fs.existsSync(path.join(dir, '.git'))) return dir;
|
|
57
|
+
dir = path.dirname(dir);
|
|
58
|
+
}
|
|
59
|
+
return process.cwd();
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Store the evaluations in an evals folder in the project root
|
|
63
|
+
const evalDir = path.join(getWorkspaceRoot(), 'evals');
|
|
64
|
+
if (!fs.existsSync(evalDir)) {
|
|
65
|
+
fs.mkdirSync(evalDir, { recursive: true });
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const reportPath = path.join(evalDir, 'evaluation-reports.md');
|
|
69
|
+
try {
|
|
70
|
+
fs.appendFileSync(reportPath, markdown, 'utf8');
|
|
71
|
+
console.log(`[Success] Evaluation report generated and saved to ${reportPath}`);
|
|
72
|
+
console.log('\n--- Report Preview ---\n');
|
|
73
|
+
console.log(markdown);
|
|
74
|
+
} catch (err) {
|
|
75
|
+
console.error(`[Error] Failed to write evaluation report: ${err.message}`);
|
|
76
|
+
process.exit(1);
|
|
77
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: environment-detection-routing-eval
|
|
2
|
+
description: Trigger precision eval for the environment-detection skill.
|
|
3
|
+
skill: environment-detection
|
|
4
|
+
version: "1.0"
|
|
5
|
+
config:
|
|
6
|
+
trials_per_task: 1
|
|
7
|
+
timeout_seconds: 300
|
|
8
|
+
parallel: false
|
|
9
|
+
executor: copilot-sdk
|
|
10
|
+
model: claude-sonnet-4.6
|
|
11
|
+
metrics:
|
|
12
|
+
- name: task_completion
|
|
13
|
+
weight: 0.7
|
|
14
|
+
threshold: 0.8
|
|
15
|
+
description: Did environment-detection trigger exactly when it should?
|
|
16
|
+
- name: efficiency
|
|
17
|
+
weight: 0.3
|
|
18
|
+
threshold: 0.7
|
|
19
|
+
description: Did the skill stay within behavior limits?
|
|
20
|
+
graders:
|
|
21
|
+
- type: behavior
|
|
22
|
+
name: token-budget
|
|
23
|
+
config:
|
|
24
|
+
max_tokens: 1200
|
|
25
|
+
tasks:
|
|
26
|
+
- "tasks/*.yaml"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: negative-environment-detection-001
|
|
2
|
+
name: Off-scope prompt must not trigger environment-detection
|
|
3
|
+
description: A request outside environment-detection's DO NOT USE FOR scope must leave it dormant.
|
|
4
|
+
tags:
|
|
5
|
+
- negative-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Write a short haiku about autumn rain."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: false
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: not-contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "Preflight"
|
|
16
|
+
- "package manager"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
id: positive-environment-detection-001
|
|
2
|
+
name: On-scope prompt triggers environment-detection
|
|
3
|
+
description: "Use at session start (Discover phase) to detect and align with the operating system, shell (Git Bash vs PowerShell vs CMD), package managers, and dev tools; prevents blind command execution and repetitive tool errors."
|
|
4
|
+
tags:
|
|
5
|
+
- positive-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Run environment detection so you know my OS, shell, and package manager before touching anything."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: true
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "shell"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: eval-harness-routing-eval
|
|
2
|
+
description: Trigger precision eval for the eval-harness skill.
|
|
3
|
+
skill: eval-harness
|
|
4
|
+
version: "1.0"
|
|
5
|
+
config:
|
|
6
|
+
trials_per_task: 1
|
|
7
|
+
timeout_seconds: 300
|
|
8
|
+
parallel: false
|
|
9
|
+
executor: copilot-sdk
|
|
10
|
+
model: claude-sonnet-4.6
|
|
11
|
+
metrics:
|
|
12
|
+
- name: task_completion
|
|
13
|
+
weight: 0.7
|
|
14
|
+
threshold: 0.8
|
|
15
|
+
description: Did eval-harness trigger exactly when it should?
|
|
16
|
+
- name: efficiency
|
|
17
|
+
weight: 0.3
|
|
18
|
+
threshold: 0.7
|
|
19
|
+
description: Did the skill stay within behavior limits?
|
|
20
|
+
graders:
|
|
21
|
+
- type: behavior
|
|
22
|
+
name: token-budget
|
|
23
|
+
config:
|
|
24
|
+
max_tokens: 1200
|
|
25
|
+
tasks:
|
|
26
|
+
- "tasks/*.yaml"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: negative-eval-harness-001
|
|
2
|
+
name: Off-scope prompt must not trigger eval-harness
|
|
3
|
+
description: A request outside eval-harness's DO NOT USE FOR scope must leave it dormant.
|
|
4
|
+
tags:
|
|
5
|
+
- negative-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Refactor the auth module to use middleware."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: false
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: not-contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "eval-harness"
|
|
16
|
+
- "scoring rubric"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
id: positive-eval-harness-001
|
|
2
|
+
name: On-scope prompt triggers eval-harness
|
|
3
|
+
description: "Evaluate AI agent performance across correctness, token efficiency, anti-loop focus, and environment awareness; save a 4-dimension scorecard. Use when asked to run a benchmark or score an execution log or conversation history."
|
|
4
|
+
tags:
|
|
5
|
+
- positive-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Score these two agent session logs against each other and tell me which performed better."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: true
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "score"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: fable-discipline-routing-eval
|
|
2
|
+
description: Trigger precision eval for the fable-discipline skill.
|
|
3
|
+
skill: fable-discipline
|
|
4
|
+
version: "1.0"
|
|
5
|
+
config:
|
|
6
|
+
trials_per_task: 1
|
|
7
|
+
timeout_seconds: 300
|
|
8
|
+
parallel: false
|
|
9
|
+
executor: copilot-sdk
|
|
10
|
+
model: claude-sonnet-4.6
|
|
11
|
+
metrics:
|
|
12
|
+
- name: task_completion
|
|
13
|
+
weight: 0.7
|
|
14
|
+
threshold: 0.8
|
|
15
|
+
description: Did fable-discipline trigger exactly when it should?
|
|
16
|
+
- name: efficiency
|
|
17
|
+
weight: 0.3
|
|
18
|
+
threshold: 0.7
|
|
19
|
+
description: Did the skill stay within behavior limits?
|
|
20
|
+
graders:
|
|
21
|
+
- type: behavior
|
|
22
|
+
name: token-budget
|
|
23
|
+
config:
|
|
24
|
+
max_tokens: 1200
|
|
25
|
+
tasks:
|
|
26
|
+
- "tasks/*.yaml"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: negative-fable-discipline-001
|
|
2
|
+
name: Off-scope prompt must not trigger fable-discipline
|
|
3
|
+
description: A request outside fable-discipline's DO NOT USE FOR scope must leave it dormant.
|
|
4
|
+
tags:
|
|
5
|
+
- negative-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Rename the variable x to y in config.js."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: false
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: not-contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "discipline"
|
|
16
|
+
- "replan"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
id: positive-fable-discipline-001
|
|
2
|
+
name: On-scope prompt triggers fable-discipline
|
|
3
|
+
description: "Enforce fable-mode's context discipline as a shadow guard. Use when running staged multi-agent loops to prevent context bloat, cap per-stage output size, keep each stage within its physical token boundaries, and stop agents from reading files outside the current stage's scope."
|
|
4
|
+
tags:
|
|
5
|
+
- positive-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Enforce stage discipline on this large parallel build-out with named workers and per-stage verification."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: true
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "stage"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: fable-mode-routing-eval
|
|
2
|
+
description: Trigger precision eval for the fable-mode skill.
|
|
3
|
+
skill: fable-mode
|
|
4
|
+
version: "1.0"
|
|
5
|
+
config:
|
|
6
|
+
trials_per_task: 1
|
|
7
|
+
timeout_seconds: 300
|
|
8
|
+
parallel: false
|
|
9
|
+
executor: copilot-sdk
|
|
10
|
+
model: claude-sonnet-4.6
|
|
11
|
+
metrics:
|
|
12
|
+
- name: task_completion
|
|
13
|
+
weight: 0.7
|
|
14
|
+
threshold: 0.8
|
|
15
|
+
description: Did fable-mode trigger exactly when it should?
|
|
16
|
+
- name: efficiency
|
|
17
|
+
weight: 0.3
|
|
18
|
+
threshold: 0.7
|
|
19
|
+
description: Did the skill stay within behavior limits?
|
|
20
|
+
graders:
|
|
21
|
+
- type: behavior
|
|
22
|
+
name: token-budget
|
|
23
|
+
config:
|
|
24
|
+
max_tokens: 1200
|
|
25
|
+
tasks:
|
|
26
|
+
- "tasks/*.yaml"
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
id: negative-fable-model-005
|
|
2
|
+
name: Ordinary Tier 2 work does not select a fable model
|
|
3
|
+
description: A normal Tier 2 bugfix must not route to a model-pinned fable entrypoint.
|
|
4
|
+
tags:
|
|
5
|
+
- negative-trigger
|
|
6
|
+
- tier-2
|
|
7
|
+
inputs:
|
|
8
|
+
prompt: "Fix this checkout bug with a regression test; keep the change to the affected module."
|
|
9
|
+
expected:
|
|
10
|
+
should_trigger: false
|
|
11
|
+
graders:
|
|
12
|
+
- type: text
|
|
13
|
+
name: no-model-pinned-route
|
|
14
|
+
config:
|
|
15
|
+
contains:
|
|
16
|
+
- "fable-opus"
|
|
17
|
+
- "fable-sonnet"
|
|
18
|
+
- "fable-haiku"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: negative-fable-mode-001
|
|
2
|
+
name: Off-scope prompt must not trigger fable-mode
|
|
3
|
+
description: A request outside fable-mode's DO NOT USE FOR scope must leave it dormant.
|
|
4
|
+
tags:
|
|
5
|
+
- negative-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Answer a quick question about CSS specificity."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: false
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: not-contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "fable"
|
|
16
|
+
- "orchestrator"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: positive-fable-haiku-002
|
|
2
|
+
name: Explicit Haiku mode routes mechanical work
|
|
3
|
+
description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
|
|
4
|
+
tags:
|
|
5
|
+
- positive-trigger
|
|
6
|
+
- fable-haiku
|
|
7
|
+
inputs:
|
|
8
|
+
prompt: "Fable on haiku: convert the repository's JSON fixtures to the new stable format and verify every output."
|
|
9
|
+
expected:
|
|
10
|
+
should_trigger: true
|
|
11
|
+
graders:
|
|
12
|
+
- type: text
|
|
13
|
+
name: routes-haiku
|
|
14
|
+
config:
|
|
15
|
+
contains:
|
|
16
|
+
- "haiku"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: positive-fable-opus-004
|
|
2
|
+
name: Explicit Opus mode routes macro orchestration
|
|
3
|
+
description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
|
|
4
|
+
tags:
|
|
5
|
+
- positive-trigger
|
|
6
|
+
- fable-opus
|
|
7
|
+
inputs:
|
|
8
|
+
prompt: "Fable on opus: orchestrate the cross-service migration, delegate artifacts to named workers, and cold-verify the final architecture decision."
|
|
9
|
+
expected:
|
|
10
|
+
should_trigger: true
|
|
11
|
+
graders:
|
|
12
|
+
- type: text
|
|
13
|
+
name: routes-opus
|
|
14
|
+
config:
|
|
15
|
+
contains:
|
|
16
|
+
- "opus"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: positive-fable-sonnet-003
|
|
2
|
+
name: Explicit Sonnet mode routes reasoning work
|
|
3
|
+
description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
|
|
4
|
+
tags:
|
|
5
|
+
- positive-trigger
|
|
6
|
+
- fable-sonnet
|
|
7
|
+
inputs:
|
|
8
|
+
prompt: "Fable on sonnect: synthesize the API research, implement the bounded adapter, and report the named verification command."
|
|
9
|
+
expected:
|
|
10
|
+
should_trigger: true
|
|
11
|
+
graders:
|
|
12
|
+
- type: text
|
|
13
|
+
name: routes-sonnet
|
|
14
|
+
config:
|
|
15
|
+
contains:
|
|
16
|
+
- "sonnet"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
id: positive-fable-mode-001
|
|
2
|
+
name: On-scope prompt triggers fable-mode
|
|
3
|
+
description: "Stage large, multi-source or multi-session tasks through a written plan, named fable agents, failable per-stage checks, and skeptical delivery review; use fable-opus, fable-sonnet, or fable-haiku for explicit model selection."
|
|
4
|
+
tags:
|
|
5
|
+
- positive-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Execute this large multi-phase refactor of the persistence layer using parallel sub-agent workers."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: true
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "worker"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: find-skills-routing-eval
|
|
2
|
+
description: Trigger precision eval for the find-skills skill.
|
|
3
|
+
skill: find-skills
|
|
4
|
+
version: "1.0"
|
|
5
|
+
config:
|
|
6
|
+
trials_per_task: 1
|
|
7
|
+
timeout_seconds: 300
|
|
8
|
+
parallel: false
|
|
9
|
+
executor: copilot-sdk
|
|
10
|
+
model: claude-sonnet-4.6
|
|
11
|
+
metrics:
|
|
12
|
+
- name: task_completion
|
|
13
|
+
weight: 0.7
|
|
14
|
+
threshold: 0.8
|
|
15
|
+
description: Did find-skills trigger exactly when it should?
|
|
16
|
+
- name: efficiency
|
|
17
|
+
weight: 0.3
|
|
18
|
+
threshold: 0.7
|
|
19
|
+
description: Did the skill stay within behavior limits?
|
|
20
|
+
graders:
|
|
21
|
+
- type: behavior
|
|
22
|
+
name: token-budget
|
|
23
|
+
config:
|
|
24
|
+
max_tokens: 1200
|
|
25
|
+
tasks:
|
|
26
|
+
- "tasks/*.yaml"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: negative-find-skills-001
|
|
2
|
+
name: Off-scope prompt must not trigger find-skills
|
|
3
|
+
description: A request outside find-skills's DO NOT USE FOR scope must leave it dormant.
|
|
4
|
+
tags:
|
|
5
|
+
- negative-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Run the test suite and report failures."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: false
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: not-contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "skills.sh"
|
|
16
|
+
- "npx skills"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
id: positive-find-skills-001
|
|
2
|
+
name: On-scope prompt triggers find-skills
|
|
3
|
+
description: "Search the agent-skills ecosystem (skills.sh / npx skills) when no installed skill fits; verify quality, apply ephemerally via temp cache by default, and install permanently via npx skills add only with explicit user approval"
|
|
4
|
+
tags:
|
|
5
|
+
- positive-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Find a skill that can generate mermaid sequence diagrams from code."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: true
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "skill"
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: git-commit-routing-eval
|
|
2
|
+
description: Trigger precision eval for the git-commit skill.
|
|
3
|
+
skill: git-commit
|
|
4
|
+
version: "1.0"
|
|
5
|
+
config:
|
|
6
|
+
trials_per_task: 1
|
|
7
|
+
timeout_seconds: 300
|
|
8
|
+
parallel: false
|
|
9
|
+
executor: copilot-sdk
|
|
10
|
+
model: claude-sonnet-4.6
|
|
11
|
+
metrics:
|
|
12
|
+
- name: task_completion
|
|
13
|
+
weight: 0.7
|
|
14
|
+
threshold: 0.8
|
|
15
|
+
description: Did git-commit trigger exactly when it should?
|
|
16
|
+
- name: efficiency
|
|
17
|
+
weight: 0.3
|
|
18
|
+
threshold: 0.7
|
|
19
|
+
description: Did the skill stay within behavior limits?
|
|
20
|
+
graders:
|
|
21
|
+
- type: behavior
|
|
22
|
+
name: token-budget
|
|
23
|
+
config:
|
|
24
|
+
max_tokens: 1200
|
|
25
|
+
tasks:
|
|
26
|
+
- "tasks/*.yaml"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
id: negative-git-commit-001
|
|
2
|
+
name: Off-scope prompt must not trigger git-commit
|
|
3
|
+
description: A request outside git-commit's DO NOT USE FOR scope must leave it dormant.
|
|
4
|
+
tags:
|
|
5
|
+
- negative-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Explain the difference between git rebase and git merge."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: false
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: not-contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "Conventional Commit"
|
|
16
|
+
- "staged"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
id: positive-git-commit-001
|
|
2
|
+
name: On-scope prompt triggers git-commit
|
|
3
|
+
description: "Generate Angular-style commit messages after verifying the environment, submodules, and staged files; use for explicit commit requests or concluded task phases."
|
|
4
|
+
tags:
|
|
5
|
+
- positive-trigger
|
|
6
|
+
inputs:
|
|
7
|
+
prompt: "Commit these staged changes with a conventional commit message following our house style."
|
|
8
|
+
expected:
|
|
9
|
+
should_trigger: true
|
|
10
|
+
graders:
|
|
11
|
+
- type: text
|
|
12
|
+
name: contains-keywords
|
|
13
|
+
config:
|
|
14
|
+
contains:
|
|
15
|
+
- "commit"
|