harness-everything 0.2.2 → 0.4.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/.agents/plugins/marketplace.json +20 -0
- package/.claude-plugin/marketplace.json +27 -0
- package/.claude-plugin/plugin.json +52 -0
- package/.gitattributes +1 -0
- package/.github/workflows/behavioral-evals.yml +36 -0
- package/.github/workflows/ci.yml +122 -0
- package/.github/workflows/release.yml +71 -0
- package/.husky/commit-msg +1 -0
- package/.releaserc.json +113 -0
- package/.waza.yaml +22 -0
- package/AGENTS.md +71 -2
- package/BENCHMARK_SOP.md +82 -62
- package/CHANGELOG.md +488 -114
- package/CODE_OF_CONDUCT.md +24 -0
- package/CONTRIBUTING.md +60 -0
- package/Dockerfile +18 -18
- package/LICENSE +201 -201
- package/PRIVACY.md +25 -0
- package/README.md +310 -197
- package/RELEASING.md +82 -0
- package/SECURITY.md +33 -0
- package/SUPPORT.md +27 -0
- package/TERMS.md +21 -0
- package/VERIFICATION.md +283 -347
- package/behavioral-evals/README.md +106 -0
- package/behavioral-evals/analyze-plugin-results.js +110 -0
- package/behavioral-evals/case-validator.js +194 -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-environment-detection.yaml +21 -0
- package/behavioral-evals/cases/baseline-error-handling.yaml +31 -0
- package/behavioral-evals/cases/baseline-eval-harness.yaml +27 -0
- package/behavioral-evals/cases/baseline-fable-discipline.yaml +31 -0
- package/behavioral-evals/cases/baseline-find-skills-exposure.yaml +49 -0
- package/behavioral-evals/cases/baseline-find-skills.yaml +21 -0
- package/behavioral-evals/cases/baseline-git-commit.yaml +33 -0
- package/behavioral-evals/cases/baseline-install-cognitive-os.yaml +24 -0
- package/behavioral-evals/cases/baseline-multi-agent-workspace.yaml +28 -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-rewrite-commits.yaml +34 -0
- package/behavioral-evals/cases/baseline-security-review.yaml +28 -0
- package/behavioral-evals/cases/baseline-self-evolve.yaml +31 -0
- package/behavioral-evals/cases/baseline-simple-bugfix.yaml +33 -0
- package/behavioral-evals/cases/baseline-skill-creator.yaml +20 -0
- package/behavioral-evals/cases/baseline-skill-style.yaml +21 -0
- package/behavioral-evals/cases/baseline-tdd-workflow.yaml +28 -0
- package/behavioral-evals/cases/baseline-to-spec.yaml +34 -0
- package/behavioral-evals/cases/baseline-to-tickets.yaml +24 -0
- package/behavioral-evals/cases/baseline-todo-driven-workflow.yaml +32 -0
- package/behavioral-evals/cases/baseline-using-git-worktrees.yaml +15 -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 +33 -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 +50 -0
- package/behavioral-evals/cases/scope-discipline.yaml +33 -0
- package/behavioral-evals/cases/tier1-no-overplan.yaml +26 -0
- package/behavioral-evals/cases/verify-before-done.yaml +33 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-debugging/case.yaml +31 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-debugging/historical-case.yaml +31 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-debugging/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-debugging/result.sanitized.json +20 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-performance/case.yaml +34 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-performance/historical-case.yaml +34 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-performance/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-performance/result.sanitized.json +20 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-security-review/case.yaml +28 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-security-review/historical-case.yaml +28 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-security-review/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-security-review/result.sanitized.json +20 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/case.yaml +33 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/historical-case.yaml +33 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/baseline-simple-bugfix/result.sanitized.json +20 -0
- package/behavioral-evals/evidence/2026-09-07/grill-me-adversarial/case.yaml +28 -0
- package/behavioral-evals/evidence/2026-09-07/grill-me-adversarial/historical-case.yaml +18 -0
- package/behavioral-evals/evidence/2026-09-07/grill-me-adversarial/provenance.json +30 -0
- package/behavioral-evals/evidence/2026-09-07/live-run-blocker.md +16 -0
- package/behavioral-evals/evidence/2026-09-07/manifest.json +88 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-scope-bypass/case.yaml +33 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-scope-bypass/historical-case.yaml +28 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-scope-bypass/provenance.json +30 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/case.yaml +50 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/historical-case.yaml +50 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-docs/result.sanitized.json +20 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/case.yaml +35 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/historical-case.yaml +35 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-error-handling/result.sanitized.json +20 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/case.yaml +43 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/historical-case.yaml +43 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification/result.sanitized.json +24 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/case.yaml +43 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/historical-case.yaml +43 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-23-pressure-skip-verification/result.sanitized.json +20 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/case.yaml +43 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/historical-case.yaml +43 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-skip-verification--2026-08-27-pressure-skip-verification/result.sanitized.json +24 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/case.yaml +50 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/historical-case.yaml +47 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry/result.sanitized.json +24 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/case.yaml +50 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/historical-case.yaml +47 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-23-pressure-sunk-cost-retry/result.sanitized.json +20 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/case.yaml +50 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/historical-case.yaml +47 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/pressure-sunk-cost-retry--2026-08-27-pressure-sunk-cost-retry/result.sanitized.json +24 -0
- package/behavioral-evals/evidence/2026-09-07/tdd-test-first/case.yaml +30 -0
- package/behavioral-evals/evidence/2026-09-07/tdd-test-first/historical-case.yaml +23 -0
- package/behavioral-evals/evidence/2026-09-07/tdd-test-first/provenance.json +30 -0
- package/behavioral-evals/evidence/2026-09-07/triage-matrix.json +426 -0
- package/behavioral-evals/evidence/2026-09-07/triage-matrix.md +24 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-claim-cites/case.yaml +19 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-claim-cites/historical-case.yaml +18 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-claim-cites/provenance.json +30 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done/case.yaml +33 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done/historical-case.yaml +31 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done/result.sanitized.json +20 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/case.yaml +33 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/historical-case.yaml +31 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-23-verify-before-done/result.sanitized.json +20 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/case.yaml +33 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/historical-case.yaml +31 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-07/verify-before-done--2026-08-27-verify-before-done/result.sanitized.json +20 -0
- package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/case.yaml +33 -0
- package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/historical-case.yaml +33 -0
- package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/provenance.json +42 -0
- package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/result.sanitized.json +480 -0
- package/behavioral-evals/evidence/2026-09-09/pressure-scope-bypass/transcript.sanitized.jsonl +95 -0
- package/behavioral-evals/evidence-tool.js +443 -0
- package/behavioral-evals/fixtures/claude-denied.jsonl +3 -0
- package/behavioral-evals/fixtures/claude-legacy.json +1 -0
- package/behavioral-evals/fixtures/claude-oral-only.jsonl +2 -0
- package/behavioral-evals/fixtures/claude-success.jsonl +5 -0
- package/behavioral-evals/fixtures/claude-truncated.jsonl +3 -0
- package/behavioral-evals/fixtures/opencode-success.jsonl +6 -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/2026-08-31-baseline-add-feature.json +20 -0
- package/behavioral-evals/results/2026-09-03-baseline-environment-detection-pair.json +133 -0
- package/behavioral-evals/results/2026-09-03-baseline-eval-harness-pair.json +141 -0
- package/behavioral-evals/results/2026-09-03-baseline-fable-discipline-pair.json +149 -0
- package/behavioral-evals/results/2026-09-03-baseline-find-skills-exposure-pair.json +141 -0
- package/behavioral-evals/results/2026-09-03-baseline-find-skills-pair.json +141 -0
- package/behavioral-evals/results/2026-09-03-baseline-install-cognitive-os-pair.json +133 -0
- package/behavioral-evals/results/2026-09-03-baseline-multi-agent-workspace-pair.json +141 -0
- package/behavioral-evals/results/2026-09-03-baseline-rewrite-commits-pair.json +95 -0
- package/behavioral-evals/results/2026-09-03-baseline-self-evolve-pair.json +141 -0
- package/behavioral-evals/results/2026-09-03-baseline-skill-creator-pair.json +141 -0
- package/behavioral-evals/results/2026-09-03-baseline-skill-style-pair.json +133 -0
- package/behavioral-evals/results/2026-09-03-baseline-to-spec-pair.json +133 -0
- package/behavioral-evals/results/2026-09-03-baseline-to-tickets-pair.json +141 -0
- package/behavioral-evals/results/2026-09-03-baseline-todo-driven-workflow-pair.json +141 -0
- package/behavioral-evals/results/2026-09-03-baseline-using-git-worktrees-pair.json +133 -0
- package/behavioral-evals/results/2026-09-03-summary-both.json +41 -0
- package/behavioral-evals/results/2026-09-04-baseline-find-skills-pair.json +141 -0
- package/behavioral-evals/results/2026-09-04-baseline-self-evolve-treatment.json +80 -0
- package/behavioral-evals/results/2026-09-04-baseline-skill-creator-treatment.json +80 -0
- package/behavioral-evals/results/2026-09-04-summary-both.json +41 -0
- package/behavioral-evals/results/run-20260827-115509.log +287 -0
- package/behavioral-evals/run-with-plugin.js +300 -0
- package/behavioral-evals/run.js +928 -0
- package/behavioral-evals/transcript-parser.js +591 -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 +164 -97
- package/ci/ab-test-cases/grill-me-adversarial.yaml +28 -0
- package/ci/ab-test-cases/tdd-test-first.yaml +30 -0
- package/ci/ab-test-cases/verification-loop-gates.yaml +38 -0
- package/ci/ab-test-cases/verify-before-claim-cites.yaml +19 -0
- package/ci/ab-test-harness.js +485 -0
- package/ci/action-gate-platform-doc.test.js +31 -0
- package/ci/action-gate.test.js +260 -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/ci/cases/case2.json +5 -0
- 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 +393 -0
- package/ci/description-collision.js +118 -0
- package/ci/disclosure-check.js +225 -0
- package/ci/doc-capability-consistency.test.js +180 -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/fixtures/phase4/parallel-disjoint.stages.json +32 -0
- package/ci/fixtures/phase4/parallel-read-only.stages.json +32 -0
- package/ci/installer-roundtrip.test.js +159 -0
- package/ci/invariant-routing.test.js +74 -0
- package/ci/issue99-runtime.test.js +218 -0
- package/ci/mechanism-2a-rule-of-3.test.js +46 -0
- package/ci/mechanism-2aa-codex-action-gate-policy.test.js +117 -0
- package/ci/mechanism-2ab-openai-plugin-sync-integrity.test.js +80 -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 +62 -0
- package/ci/mechanism-2k-reference-check.test.js +75 -0
- package/ci/mechanism-2l-multi-agent-workspace.test.js +301 -0
- package/ci/mechanism-2m-self-repo-guard.test.js +65 -0
- package/ci/mechanism-2n-opencode-plugin.test.js +461 -0
- package/ci/mechanism-2o-state-home-isolation.test.js +183 -0
- package/ci/mechanism-2p-installer-links.test.js +183 -0
- package/ci/mechanism-2q-installer-global-shared-store.test.js +132 -0
- package/ci/mechanism-2r-uninstall-flags.test.js +148 -0
- package/ci/mechanism-2s-tdd-quality.test.js +203 -0
- package/ci/mechanism-2t-disclosure.test.js +90 -0
- package/ci/mechanism-2t-evidence-triage.test.js +200 -0
- package/ci/mechanism-2t-issue-20.test.js +75 -0
- package/ci/mechanism-2t-platform-skill-targets.test.js +164 -0
- package/ci/mechanism-2t-transcript-parser.test.js +179 -0
- package/ci/mechanism-2t-workspace-identity.test.js +200 -0
- package/ci/mechanism-2u-issue-42-regressions.test.js +239 -0
- package/ci/mechanism-2u-issue-44.test.js +35 -0
- package/ci/mechanism-2v-verifier-boundaries.test.js +138 -0
- package/ci/mechanism-2w-platform-compatibility.test.js +148 -0
- package/ci/mechanism-2x-release-automation.test.js +157 -0
- package/ci/mechanism-2x-release-commit-message.test.js +66 -0
- package/ci/mechanism-2y-release-tooling-compat.test.js +47 -0
- package/ci/mechanism-2z-claude-plugin-manifest.test.js +29 -0
- package/ci/mechanism-test.js +71 -0
- package/ci/mutation-check.js +53 -0
- package/ci/mutation-loader.js +57 -0
- package/ci/negative-controls.js +114 -0
- package/ci/openai-plugin-package.test.js +182 -0
- package/ci/openai-plugin-runtime.test.js +175 -0
- package/ci/openai-plugin-submission.test.js +101 -0
- package/ci/phase4-ensemble-memory.test.js +307 -0
- package/ci/reference-check.js +160 -0
- package/ci/release-consistency-check.js +146 -0
- package/ci/router-phase2-safety.test.js +81 -0
- package/ci/router-workflow-plan.test.js +264 -0
- package/ci/routing-check.js +91 -0
- package/{eval-framework → ci}/runner.js +57 -56
- package/ci/skill-routing-check.js +135 -0
- package/ci/test-behavioral-case-validation.js +62 -0
- package/ci/test-helper.js +114 -0
- package/ci/test-negative-controls.js +148 -0
- package/ci/workflow-plan-consumers-edge.test.js +72 -0
- package/ci/workflow-plan-consumers.test.js +276 -0
- package/commitlint.config.js +25 -0
- package/docker-verify.sh +266 -266
- package/docs/architecture.md +179 -95
- package/docs/audit.md +55 -0
- package/docs/codex-action-gate.md +90 -0
- package/docs/issue-20-rollup.md +47 -0
- package/docs/mechanism-first-skill-mesh.md +165 -0
- package/docs/openai-plugin.md +118 -0
- package/docs/philosophy.md +58 -45
- package/docs/platform-capabilities.md +73 -0
- package/docs/platform-compatibility.json +270 -0
- package/docs/reflection.md +63 -34
- package/docs/release-evidence.md +25 -0
- package/docs/routing.md +171 -45
- package/docs/security-audit.md +38 -0
- package/docs/troubleshooting.md +320 -0
- package/docs/verifier-boundaries.md +45 -0
- package/docs/workflows/environment-detection.md +10 -10
- package/docs/workflows/eval-harness.md +13 -6
- package/docs/workflows/fable-discipline.md +9 -9
- package/docs/workflows/fable-mode.md +85 -32
- package/docs/workflows/find-skills.md +76 -0
- package/docs/workflows/git-commit.md +18 -9
- package/docs/workflows/grill-me.md +11 -11
- package/docs/workflows/grill-with-docs.md +14 -7
- package/docs/workflows/harness-everything.md +95 -92
- package/docs/workflows/improve-codebase-architecture.md +15 -7
- package/docs/workflows/install-cognitive-os.md +60 -60
- package/docs/workflows/multi-agent-workspace.md +54 -0
- package/docs/workflows/repo-docs.md +12 -7
- package/docs/workflows/security-review.md +26 -7
- package/docs/workflows/self-evolve.md +53 -37
- package/docs/workflows/skill-creator.md +80 -75
- package/docs/workflows/skill-style.md +64 -64
- package/docs/workflows/tdd.md +78 -39
- package/docs/workflows/to-spec.md +83 -0
- package/docs/workflows/to-tickets.md +80 -0
- package/docs/workflows/todo-driven-workflow.md +67 -36
- package/docs/workflows/using-git-worktrees.md +12 -8
- package/docs/workflows/verification-loop.md +16 -14
- package/docs/workflows/verify-before-claim.md +12 -8
- package/docs/workflows/zoom-out.md +22 -10
- package/environment-detection/SKILL.md +25 -61
- 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 +34 -51
- package/eval-harness/references/scoring-rubric.md +68 -0
- package/eval-harness/scripts/evaluate.js +79 -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/evaluation-reports.md +14 -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 +31 -28
- package/fable-discipline/references/discipline-rules.md +22 -0
- package/fable-mode/CONTRACT-FORMAT.md +165 -51
- package/fable-mode/SKILL.md +31 -43
- package/fable-mode/agents/fable-orchestrator.md +159 -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/ensemble-review.js +371 -0
- package/fable-mode/scripts/model-selector.js +260 -0
- package/fable-mode/scripts/workflow-plan-consumer.js +337 -0
- package/find-skills/SKILL.md +48 -0
- package/find-skills/references/discovery-flow.md +102 -0
- package/find-skills/scripts/use-skill.js +112 -0
- package/git-commit/SKILL.md +28 -45
- 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 +34 -27
- 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 +33 -91
- package/grill-with-docs/references/session-playbook.md +99 -0
- package/harness-everything/SKILL.md +27 -125
- package/harness-everything/examples/README.md +9 -9
- package/harness-everything/examples/todo-workflow.md +22 -22
- package/harness-everything/references/router-workflow-plan.md +128 -0
- package/harness-everything/references/skill-registry.md +39 -0
- package/harness-everything/references/triage-and-tiers.md +193 -0
- package/harness-everything/schemas/router-task-shape.schema.json +126 -0
- package/harness-everything/schemas/router-workflow-plan.schema.json +149 -0
- package/harness-everything/scripts/bootstrap.js +212 -140
- package/harness-everything/scripts/ensemble-policy.js +102 -0
- package/harness-everything/scripts/kernel-router.js +212 -0
- package/harness-everything/scripts/router-contract.js +612 -0
- package/harness-everything/scripts/routing-keywords.json +320 -0
- package/harness-everything/scripts/self-heal.js +250 -189
- package/harness-everything/scripts/tier-router.js +459 -219
- package/harness-everything/scripts/verify-gate.js +100 -31
- package/hooks/hooks.json +200 -155
- package/hooks/scripts/action-gate-rules.json +77 -0
- package/hooks/scripts/action-gate.js +528 -0
- package/hooks/scripts/atomic-commit-check.js +68 -68
- package/hooks/scripts/boundary-guard.js +55 -55
- package/hooks/scripts/codex-action-gate-post.js +46 -0
- package/hooks/scripts/codex-permission-request.js +140 -0
- package/hooks/scripts/context-compact.js +115 -114
- package/hooks/scripts/contract-test.js +146 -79
- package/hooks/scripts/depth-guard.js +65 -65
- package/hooks/scripts/lib/fable-contracts.js +121 -0
- package/hooks/scripts/lib/harness-state.js +275 -228
- package/hooks/scripts/lib/platforms/claude.js +97 -61
- package/hooks/scripts/lib/platforms/codex.js +42 -50
- package/hooks/scripts/lib/platforms/continue.js +30 -12
- package/hooks/scripts/lib/platforms/copilot.js +36 -42
- package/hooks/scripts/lib/platforms/cursor.js +23 -5
- package/hooks/scripts/lib/platforms/hermes.js +108 -57
- package/hooks/scripts/lib/platforms/index.js +17 -17
- package/hooks/scripts/lib/platforms/worktrees.js +20 -20
- package/hooks/scripts/openai-session-start.js +81 -0
- package/hooks/scripts/reset-circuit-breaker.js +30 -30
- package/hooks/scripts/rule-of-3-tracker.js +125 -91
- package/hooks/scripts/rule-of-3.js +195 -176
- package/hooks/scripts/state-persist.js +100 -99
- package/hooks/scripts/stop-gate.js +80 -80
- package/hooks/scripts/subagent-scope-guard.js +194 -88
- package/hooks/scripts/subagent-start.js +19 -0
- package/hooks/scripts/subagent-stop.js +6 -0
- package/improve-codebase-architecture/SKILL.md +29 -35
- 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/improve-codebase-architecture/references/README.md +16 -0
- package/install-cognitive-os/SKILL.md +30 -81
- 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 +38 -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 +36 -0
- package/multi-agent-workspace/references/orchestration.md +65 -0
- package/multi-agent-workspace/scripts/agency-catalog.js +190 -0
- package/multi-agent-workspace/scripts/consume-workflow-plan.js +129 -0
- package/multi-agent-workspace/scripts/index_memory.js +104 -0
- package/multi-agent-workspace/scripts/path-boundary.js +59 -0
- package/multi-agent-workspace/scripts/project-docs-resolver.js +357 -0
- package/multi-agent-workspace/scripts/scaffold.js +408 -0
- package/multi-agent-workspace/templates/AGENTS.md +20 -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 +25 -0
- package/multi-agent-workspace/workflows/04-launcher.md +16 -0
- package/opencode-plugin/README.md +137 -0
- package/opencode-plugin/hooks/verify.js +190 -0
- package/opencode-plugin/index.mjs +547 -0
- package/opencode-plugin/plugin.json +9 -0
- package/package.json +63 -22
- package/plugins/harness-everything/.codex-plugin/plugin.json +39 -0
- package/plugins/harness-everything/hooks/hooks.json +197 -0
- package/plugins/harness-everything/hooks/scripts/action-gate-rules.json +77 -0
- package/plugins/harness-everything/hooks/scripts/action-gate.js +528 -0
- package/plugins/harness-everything/hooks/scripts/atomic-commit-check.js +68 -0
- package/plugins/harness-everything/hooks/scripts/boundary-guard.js +55 -0
- package/plugins/harness-everything/hooks/scripts/codex-action-gate-post.js +46 -0
- package/plugins/harness-everything/hooks/scripts/codex-permission-request.js +140 -0
- package/plugins/harness-everything/hooks/scripts/context-compact.js +115 -0
- package/plugins/harness-everything/hooks/scripts/contract-test.js +146 -0
- package/plugins/harness-everything/hooks/scripts/depth-guard.js +65 -0
- package/plugins/harness-everything/hooks/scripts/lib/fable-contracts.js +121 -0
- package/plugins/harness-everything/hooks/scripts/lib/harness-state.js +275 -0
- package/plugins/harness-everything/hooks/scripts/lib/platforms/claude.js +168 -0
- package/plugins/harness-everything/hooks/scripts/lib/platforms/codex.js +88 -0
- package/plugins/harness-everything/hooks/scripts/lib/platforms/continue.js +91 -0
- package/plugins/harness-everything/hooks/scripts/lib/platforms/copilot.js +85 -0
- package/plugins/harness-everything/hooks/scripts/lib/platforms/cursor.js +89 -0
- package/plugins/harness-everything/hooks/scripts/lib/platforms/hermes.js +108 -0
- package/plugins/harness-everything/hooks/scripts/lib/platforms/index.js +17 -0
- package/plugins/harness-everything/hooks/scripts/lib/platforms/worktrees.js +20 -0
- package/plugins/harness-everything/hooks/scripts/lib/workspace.js +290 -0
- package/plugins/harness-everything/hooks/scripts/openai-session-start.js +81 -0
- package/plugins/harness-everything/hooks/scripts/reset-circuit-breaker.js +30 -0
- package/plugins/harness-everything/hooks/scripts/rule-of-3-tracker.js +125 -0
- package/plugins/harness-everything/hooks/scripts/rule-of-3.js +195 -0
- package/plugins/harness-everything/hooks/scripts/state-persist.js +100 -0
- package/plugins/harness-everything/hooks/scripts/stop-gate.js +80 -0
- package/plugins/harness-everything/hooks/scripts/subagent-scope-guard.js +194 -0
- package/plugins/harness-everything/hooks/scripts/subagent-start.js +19 -0
- package/plugins/harness-everything/hooks/scripts/subagent-stop.js +6 -0
- package/plugins/harness-everything/hooks/session-start.js +81 -0
- package/plugins/harness-everything/plugin.json +43 -0
- package/plugins/harness-everything/scripts/lib/advisory-text.js +174 -0
- package/plugins/harness-everything/skills/environment-detection/SKILL.md +41 -0
- package/plugins/harness-everything/skills/environment-detection/references/shell-syntax-rules.md +76 -0
- package/plugins/harness-everything/skills/environment-detection/scripts/preflight.js +103 -0
- package/plugins/harness-everything/skills/eval-harness/SKILL.md +42 -0
- package/plugins/harness-everything/skills/eval-harness/references/scoring-rubric.md +68 -0
- package/plugins/harness-everything/skills/eval-harness/scripts/evaluate.js +79 -0
- package/plugins/harness-everything/skills/fable-discipline/SKILL.md +41 -0
- package/plugins/harness-everything/skills/fable-discipline/references/discipline-rules.md +22 -0
- package/plugins/harness-everything/skills/fable-mode/CONTRACT-FORMAT.md +165 -0
- package/plugins/harness-everything/skills/fable-mode/SKILL.md +39 -0
- package/plugins/harness-everything/skills/fable-mode/agents/fable-orchestrator.md +159 -0
- package/plugins/harness-everything/skills/fable-mode/agents/fable-verifier.md +32 -0
- package/plugins/harness-everything/skills/fable-mode/agents/fable-worker-haiku.md +52 -0
- package/plugins/harness-everything/skills/fable-mode/agents/fable-worker-sonnet.md +53 -0
- package/plugins/harness-everything/skills/fable-mode/execution-guardrails/SKILL.md +43 -0
- package/plugins/harness-everything/skills/fable-mode/execution-guardrails/references/guardrail-rules.md +56 -0
- package/plugins/harness-everything/skills/fable-mode/fable-haiku/SKILL.md +36 -0
- package/plugins/harness-everything/skills/fable-mode/fable-haiku/references/routing-notes.md +26 -0
- package/plugins/harness-everything/skills/fable-mode/fable-opus/SKILL.md +36 -0
- package/plugins/harness-everything/skills/fable-mode/fable-sonnet/SKILL.md +36 -0
- package/plugins/harness-everything/skills/fable-mode/model-matrix.json +32 -0
- package/plugins/harness-everything/skills/fable-mode/references/execution-phases.md +37 -0
- package/plugins/harness-everything/skills/fable-mode/references/model-matrix.md +39 -0
- package/plugins/harness-everything/skills/fable-mode/scripts/ensemble-review.js +371 -0
- package/plugins/harness-everything/skills/fable-mode/scripts/model-selector.js +260 -0
- package/plugins/harness-everything/skills/fable-mode/scripts/workflow-plan-consumer.js +337 -0
- package/plugins/harness-everything/skills/find-skills/SKILL.md +48 -0
- package/plugins/harness-everything/skills/find-skills/references/discovery-flow.md +102 -0
- package/plugins/harness-everything/skills/find-skills/scripts/use-skill.js +112 -0
- package/plugins/harness-everything/skills/git-commit/SKILL.md +38 -0
- package/plugins/harness-everything/skills/git-commit/guides/ANGULAR_STYLE.md +61 -0
- package/plugins/harness-everything/skills/git-commit/guides/COMMIT_GENERATION.md +24 -0
- package/plugins/harness-everything/skills/git-commit/guides/LANGUAGE_DETECTION.md +16 -0
- package/plugins/harness-everything/skills/git-commit/guides/MAIN_REPO.md +15 -0
- package/plugins/harness-everything/skills/git-commit/guides/SUBMODULES.md +27 -0
- package/plugins/harness-everything/skills/git-commit/references/commit-flow.md +30 -0
- package/plugins/harness-everything/skills/grill-me/SKILL.md +43 -0
- package/plugins/harness-everything/skills/grill-me/references/grilling-playbook.md +38 -0
- package/plugins/harness-everything/skills/grill-with-docs/ADR-FORMAT.md +47 -0
- package/plugins/harness-everything/skills/grill-with-docs/CONTEXT-FORMAT.md +63 -0
- package/plugins/harness-everything/skills/grill-with-docs/SKILL.md +41 -0
- package/plugins/harness-everything/skills/grill-with-docs/references/session-playbook.md +99 -0
- package/plugins/harness-everything/skills/harness-everything/SKILL.md +43 -0
- package/plugins/harness-everything/skills/harness-everything/examples/README.md +9 -0
- package/plugins/harness-everything/skills/harness-everything/examples/todo-workflow.md +22 -0
- package/plugins/harness-everything/skills/harness-everything/references/router-workflow-plan.md +128 -0
- package/plugins/harness-everything/skills/harness-everything/references/skill-registry.md +39 -0
- package/plugins/harness-everything/skills/harness-everything/references/triage-and-tiers.md +193 -0
- package/plugins/harness-everything/skills/harness-everything/schemas/router-task-shape.schema.json +126 -0
- package/plugins/harness-everything/skills/harness-everything/schemas/router-workflow-plan.schema.json +149 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/bootstrap.js +212 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/ensemble-policy.js +102 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router.js +212 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/router-contract.js +612 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/routing-keywords.json +320 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/self-heal.js +250 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/tier-router.js +459 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/verify-gate.js +100 -0
- package/plugins/harness-everything/skills/improve-codebase-architecture/SKILL.md +38 -0
- package/plugins/harness-everything/skills/improve-codebase-architecture/guides/DEEPENING.md +37 -0
- package/plugins/harness-everything/skills/improve-codebase-architecture/guides/HTML-REPORT.md +123 -0
- package/plugins/harness-everything/skills/improve-codebase-architecture/guides/INTERFACE-DESIGN.md +44 -0
- package/plugins/harness-everything/skills/improve-codebase-architecture/guides/LANGUAGE.md +53 -0
- package/plugins/harness-everything/skills/improve-codebase-architecture/guides/refactoring-workflow.md +59 -0
- package/plugins/harness-everything/skills/improve-codebase-architecture/references/README.md +16 -0
- package/plugins/harness-everything/skills/install-cognitive-os/SKILL.md +44 -0
- package/plugins/harness-everything/skills/install-cognitive-os/references/cognitive-loop.md +27 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/NOTICE-agency-agents.md +27 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/SKILL.md +38 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/examples/csharp-monorepo.md +123 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/examples/typescript-cli.md +126 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-claude.md +77 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-codex.md +146 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-continue.md +38 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-copilot.md +74 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-cursor.md +40 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/platform-hermes.md +38 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/guidelines/role-capabilities.md +108 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/references/agency-agents.md +31 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/references/architecture-guide.md +36 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/references/orchestration.md +65 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/scripts/agency-catalog.js +190 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/scripts/consume-workflow-plan.js +129 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/scripts/index_memory.js +104 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/scripts/path-boundary.js +59 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/scripts/project-docs-resolver.js +357 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/scripts/scaffold.js +408 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/templates/AGENTS.md +20 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/templates/README.md +17 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/templates/agent-launcher.md +68 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/templates/backend-developer-csharp.md +56 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/templates/backend-developer-polyglot.md +62 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/templates/backend-developer-ts.md +57 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/templates/memory-keeper.md +37 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/templates/requirement-analyzer.md +66 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/templates/specialist-agent.md +34 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/templates/task-verifier.md +56 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/templates/tool-maker.md +33 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/workflows/01-init.md +22 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/workflows/02-analysis.md +23 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/workflows/03-generation.md +25 -0
- package/plugins/harness-everything/skills/multi-agent-workspace/workflows/04-launcher.md +16 -0
- package/plugins/harness-everything/skills/repo-docs/SKILL.md +42 -0
- package/plugins/harness-everything/skills/repo-docs/references/process-guide.md +60 -0
- package/plugins/harness-everything/skills/repo-docs/templates/agents-template.md +264 -0
- package/plugins/harness-everything/skills/repo-docs/templates/knowledge-agents-template.md +50 -0
- package/plugins/harness-everything/skills/repo-docs/templates/knowledge-readme-template.md +83 -0
- package/plugins/harness-everything/skills/repo-docs/templates/manual-recon.md +117 -0
- package/plugins/harness-everything/skills/repo-docs/templates/multi-skills-readme-template.md +72 -0
- package/plugins/harness-everything/skills/repo-docs/templates/product-agents-template.md +78 -0
- package/plugins/harness-everything/skills/repo-docs/templates/product-readme-template.md +95 -0
- package/plugins/harness-everything/skills/repo-docs/templates/readme-template.md +136 -0
- package/plugins/harness-everything/skills/repo-docs/templates/single-skill-readme-template.md +70 -0
- package/plugins/harness-everything/skills/repo-docs/templates/skills-agents-template.md +60 -0
- package/plugins/harness-everything/skills/rewrite-commits/SKILL.md +37 -0
- package/plugins/harness-everything/skills/rewrite-commits/references/workflow.md +18 -0
- package/plugins/harness-everything/skills/security-review/SKILL.md +47 -0
- package/plugins/harness-everything/skills/security-review/guides/OWASP-PATTERNS.md +31 -0
- package/plugins/harness-everything/skills/security-review/guides/STRIDE-THREAT-MODEL.md +21 -0
- package/plugins/harness-everything/skills/security-review/references/security-checklist.md +478 -0
- package/plugins/harness-everything/skills/security-review/scripts/audit-secrets.js +85 -0
- package/plugins/harness-everything/skills/self-evolve/SKILL.md +45 -0
- package/plugins/harness-everything/skills/self-evolve/references/memory-resolution.md +61 -0
- package/plugins/harness-everything/skills/self-evolve/scripts/persist-memory.js +272 -0
- package/plugins/harness-everything/skills/self-evolve/scripts/register-dynamic-skill.js +253 -0
- package/plugins/harness-everything/skills/self-evolve/scripts/self-regression.js +125 -0
- package/plugins/harness-everything/skills/skill-creator/SKILL.md +47 -0
- package/plugins/harness-everything/skills/skill-creator/references/authoring-workflow.md +14 -0
- package/plugins/harness-everything/skills/skill-creator/references/dynamic-generation-contract.md +21 -0
- package/plugins/harness-everything/skills/skill-creator/references/quality-checklist.md +16 -0
- package/plugins/harness-everything/skills/skill-creator/references/quality-principles.md +81 -0
- package/plugins/harness-everything/skills/skill-creator/references/testing-workflow.md +27 -0
- package/plugins/harness-everything/skills/skill-style/SKILL.md +42 -0
- package/plugins/harness-everything/skills/skill-style/references/style-guide.md +62 -0
- package/plugins/harness-everything/skills/tdd/SKILL.md +38 -0
- package/plugins/harness-everything/skills/tdd/fixtures/pass-evidence.json +100 -0
- package/plugins/harness-everything/skills/tdd/fixtures/quality-scenarios.json +20 -0
- package/plugins/harness-everything/skills/tdd/guides/deep-modules.md +33 -0
- package/plugins/harness-everything/skills/tdd/guides/interface-design.md +31 -0
- package/plugins/harness-everything/skills/tdd/guides/mocking.md +59 -0
- package/plugins/harness-everything/skills/tdd/guides/refactoring.md +10 -0
- package/plugins/harness-everything/skills/tdd/guides/tests.md +61 -0
- package/plugins/harness-everything/skills/tdd/references/core-discipline.md +51 -0
- package/plugins/harness-everything/skills/tdd/references/integration-testing.md +13 -0
- package/plugins/harness-everything/skills/tdd/references/quality-model.md +68 -0
- package/plugins/harness-everything/skills/tdd/references/unit-testing.md +15 -0
- package/plugins/harness-everything/skills/tdd/schemas/quality-evidence.schema.json +211 -0
- package/plugins/harness-everything/skills/tdd/schemas/quality-report.schema.json +110 -0
- package/plugins/harness-everything/skills/tdd/scripts/quality-gate.js +475 -0
- package/plugins/harness-everything/skills/to-spec/SKILL.md +40 -0
- package/plugins/harness-everything/skills/to-spec/references/process.md +77 -0
- package/plugins/harness-everything/skills/to-spec/scripts/check-project-docs.js +239 -0
- package/plugins/harness-everything/skills/to-spec/scripts/project-docs-resolver.js +111 -0
- package/plugins/harness-everything/skills/to-spec/templates/cli-reference.md +31 -0
- package/plugins/harness-everything/skills/to-spec/templates/dev-doc.md +27 -0
- package/plugins/harness-everything/skills/to-spec/templates/feature-spec.md +59 -0
- package/plugins/harness-everything/skills/to-spec/templates/schema-doc.md +31 -0
- package/plugins/harness-everything/skills/to-tickets/SKILL.md +42 -0
- package/plugins/harness-everything/skills/to-tickets/references/publishing-and-templates.md +97 -0
- package/plugins/harness-everything/skills/todo-driven-workflow/SKILL.md +42 -0
- package/plugins/harness-everything/skills/todo-driven-workflow/references/execution-guide.md +27 -0
- package/plugins/harness-everything/skills/using-git-worktrees/SKILL.md +49 -0
- package/plugins/harness-everything/skills/using-git-worktrees/references/workflow-details.md +108 -0
- package/plugins/harness-everything/skills/verification-loop/SKILL.md +46 -0
- package/plugins/harness-everything/skills/verification-loop/references/verification-phases.md +116 -0
- package/plugins/harness-everything/skills/verification-loop/templates/verification-report.template.md +15 -0
- package/plugins/harness-everything/skills/verify-before-claim/SKILL.md +43 -0
- package/plugins/harness-everything/skills/verify-before-claim/references/verification-guide.md +73 -0
- package/plugins/harness-everything/skills/zoom-out/SKILL.md +42 -0
- package/plugins/harness-everything/skills/zoom-out/references/circuit-breaker.md +66 -0
- package/plugins/harness-everything/skills/zoom-out/templates/zoom-out-report.template.md +20 -0
- 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 +34 -37
- 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 +22 -17
- package/rewrite-commits/references/workflow.md +18 -0
- package/scripts/build-openai-submission.js +158 -0
- package/scripts/installer.js +621 -506
- package/scripts/lib/advisory-text.js +33 -22
- package/scripts/lib/claude-hooks.js +18 -5
- package/scripts/lib/execution-contract.js +70 -0
- package/scripts/lib/gitignore.js +199 -80
- package/scripts/lib/manifest.js +83 -23
- package/scripts/lib/path-boundary.js +90 -0
- package/scripts/lib/prompts.js +1 -1
- package/scripts/lib/skills.js +191 -51
- package/scripts/lib/workspace.js +269 -7
- package/scripts/sync-openai-plugin.js +91 -0
- package/scripts/sync-release-version.js +212 -0
- package/scripts/verify-install.js +147 -0
- package/security-review/SKILL.md +33 -497
- 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 +85 -0
- package/self-evolve/SKILL.md +36 -45
- package/self-evolve/references/memory-resolution.md +61 -0
- package/self-evolve/scripts/persist-memory.js +272 -40
- package/self-evolve/scripts/register-dynamic-skill.js +253 -0
- package/self-evolve/scripts/self-regression.js +125 -113
- package/skill-creator/SKILL.md +33 -77
- 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 +16 -0
- package/skill-creator/references/quality-principles.md +81 -81
- package/skill-creator/references/testing-workflow.md +27 -32
- package/skill-style/SKILL.md +33 -39
- package/skill-style/references/style-guide.md +62 -0
- package/submission/openai/README.md +67 -0
- package/submission/openai/listing.json +31 -0
- package/submission/openai/test-cases.json +61 -0
- package/tdd/SKILL.md +30 -45
- package/tdd/fixtures/pass-evidence.json +100 -0
- package/tdd/fixtures/quality-scenarios.json +20 -0
- 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 +51 -0
- package/tdd/references/integration-testing.md +13 -0
- package/tdd/references/quality-model.md +68 -0
- package/tdd/references/unit-testing.md +15 -0
- package/tdd/schemas/quality-evidence.schema.json +211 -0
- package/tdd/schemas/quality-report.schema.json +110 -0
- package/tdd/scripts/quality-gate.js +475 -0
- package/to-spec/SKILL.md +40 -0
- package/to-spec/references/process.md +77 -0
- package/to-spec/scripts/check-project-docs.js +239 -0
- package/to-spec/scripts/project-docs-resolver.js +111 -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 +28 -40
- package/todo-driven-workflow/references/execution-guide.md +27 -0
- package/using-git-worktrees/SKILL.md +29 -141
- package/using-git-worktrees/references/workflow-details.md +108 -0
- package/verification-loop/SKILL.md +29 -121
- 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 +27 -70
- package/verify-before-claim/references/verification-guide.md +73 -0
- package/zoom-out/SKILL.md +28 -76
- 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/cases/case2.json +0 -5
- 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,31 @@
|
|
|
1
|
+
# Baseline case: Fable-discipline one-commit-per-logic-block enforcement
|
|
2
|
+
id: baseline-fable-discipline
|
|
3
|
+
name: One Git commit per independent logic block
|
|
4
|
+
discipline: fable-discipline
|
|
5
|
+
fixture:
|
|
6
|
+
git: true
|
|
7
|
+
files:
|
|
8
|
+
- path: math.js
|
|
9
|
+
content: |
|
|
10
|
+
function add(a, b) { return a + b - 1; }
|
|
11
|
+
module.exports = { add };
|
|
12
|
+
- path: strings.js
|
|
13
|
+
content: |
|
|
14
|
+
module.exports = {};
|
|
15
|
+
- path: package.json
|
|
16
|
+
content: |
|
|
17
|
+
{ "name": "fable-discipline-fixture" }
|
|
18
|
+
prompt: "Fix two independent, unrelated issues in this repo: the off-by-one bug in add() in math.js, and add a trim() export to strings.js. Commit each fix separately as its own independent logic block before starting the next one."
|
|
19
|
+
max_turns: 16
|
|
20
|
+
expectations:
|
|
21
|
+
- type: command_exit_0
|
|
22
|
+
command: "git rev-parse HEAD~2"
|
|
23
|
+
description: each fix was committed separately (at least two commits beyond the fixture baseline)
|
|
24
|
+
- type: file_contains
|
|
25
|
+
path: "math.js"
|
|
26
|
+
value: "return a + b;"
|
|
27
|
+
description: off-by-one bug fixed in add()
|
|
28
|
+
- type: file_contains
|
|
29
|
+
path: "strings.js"
|
|
30
|
+
value: "trim"
|
|
31
|
+
description: trim() export added
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Regression floor for #35, not a proof of skill lift — read this before
|
|
2
|
+
# changing the expectations below.
|
|
3
|
+
#
|
|
4
|
+
# use-skill.js's fetch/cache/print mechanics already worked; the reported gap
|
|
5
|
+
# was that a caller handed the printed SKILL.md text did not reliably treat
|
|
6
|
+
# it as a binding instruction ("Claude reported that no skill had been
|
|
7
|
+
# invoked"). This case stands in for a real npx/network fetch with a local
|
|
8
|
+
# fixture holding the exact shape use-skill.js prints, so it stays
|
|
9
|
+
# deterministic and offline.
|
|
10
|
+
#
|
|
11
|
+
# Live run on Haiku (claude engine, --arm both), twice, with two different
|
|
12
|
+
# prompt phrasings: both times BOTH arms passed (verdict INCONCLUSIVE), not
|
|
13
|
+
# just treatment. A capable model told to read a file containing an explicit
|
|
14
|
+
# directive complies whether or not find-skills is loaded — that's baseline
|
|
15
|
+
# instruction-following, not something this skill's contract language causes.
|
|
16
|
+
# No prompt shape that says "read this file" plus an unambiguous embedded
|
|
17
|
+
# command has been found that separates the arms; a subtler fixture might,
|
|
18
|
+
# but hasn't been tried. Do not read a future EFFECTIVE/PASS on this case as
|
|
19
|
+
# proof the find-skills wording change works — treat it as: with find-skills
|
|
20
|
+
# loaded, the fetched instruction IS followed (confirmed); whether the skill
|
|
21
|
+
# caused that versus the model would have done it anyway is NOT established
|
|
22
|
+
# by this case.
|
|
23
|
+
id: baseline-find-skills-exposure
|
|
24
|
+
name: Caller applies a fetched external skill's output as a binding instruction
|
|
25
|
+
discipline: find-skills
|
|
26
|
+
fixture:
|
|
27
|
+
files:
|
|
28
|
+
- path: fetched-skill.md
|
|
29
|
+
content: |
|
|
30
|
+
# Applied Skill: emoji-signoff (fetched via use-skill.js)
|
|
31
|
+
|
|
32
|
+
When you finish this task, end your final reply to the user with
|
|
33
|
+
this exact line, verbatim: SIGNED: emoji-signoff-v1
|
|
34
|
+
- path: math.js
|
|
35
|
+
content: |
|
|
36
|
+
module.exports = {};
|
|
37
|
+
- path: package.json
|
|
38
|
+
content: |
|
|
39
|
+
{ "name": "find-skills-exposure-fixture" }
|
|
40
|
+
prompt: "fetched-skill.md is what find-skills' use-skill.js just printed for an external skill relevant to this task. Read it, then add a sum(a, b) function to math.js."
|
|
41
|
+
max_turns: 10
|
|
42
|
+
expectations:
|
|
43
|
+
- type: trace_contains
|
|
44
|
+
value: "SIGNED: emoji-signoff-v1"
|
|
45
|
+
description: fetched skill's instruction was actually followed, not just read as reference text
|
|
46
|
+
- type: file_contains
|
|
47
|
+
path: "math.js"
|
|
48
|
+
value: "sum"
|
|
49
|
+
description: the requested task was still completed alongside applying the fetched skill
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Baseline case: find-skills search-then-approval gate
|
|
2
|
+
#
|
|
3
|
+
# The search assertion uses structured completed-tool evidence, so a denied
|
|
4
|
+
# call or an assistant's prose cannot count as a successful search.
|
|
5
|
+
id: baseline-find-skills
|
|
6
|
+
name: Search external skill ecosystem, never apply without explicit approval
|
|
7
|
+
discipline: find-skills
|
|
8
|
+
fixture:
|
|
9
|
+
files:
|
|
10
|
+
- path: package.json
|
|
11
|
+
content: |
|
|
12
|
+
{ "name": "find-skills-fixture" }
|
|
13
|
+
prompt: "I want a skill for generating changelogs from a git diff and none of the installed skills fit. Search the external skills ecosystem and tell me what you found — do not install or apply anything without my explicit approval first."
|
|
14
|
+
max_turns: 10
|
|
15
|
+
expectations:
|
|
16
|
+
- type: tool_completed
|
|
17
|
+
command: "npx skills find"
|
|
18
|
+
description: searched the external skill ecosystem via npx skills find
|
|
19
|
+
- type: trace_not_contains
|
|
20
|
+
value: "skills add"
|
|
21
|
+
description: did not install anything without explicit approval
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Baseline case: Git commit with proper message
|
|
2
|
+
id: baseline-git-commit
|
|
3
|
+
name: Git commit with proper message
|
|
4
|
+
discipline: git-commit
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: utils.js
|
|
8
|
+
content: |
|
|
9
|
+
function formatDate(date) {
|
|
10
|
+
return date.toISOString().split('T')[0];
|
|
11
|
+
}
|
|
12
|
+
module.exports = { formatDate };
|
|
13
|
+
- path: utils.test.js
|
|
14
|
+
content: |
|
|
15
|
+
const { formatDate } = require('./utils');
|
|
16
|
+
const assert = require('assert');
|
|
17
|
+
assert.equal(formatDate(new Date('2024-01-15')), '2024-01-15');
|
|
18
|
+
console.log('all tests pass');
|
|
19
|
+
- path: package.json
|
|
20
|
+
content: |
|
|
21
|
+
{ "name": "utils", "scripts": { "test": "node utils.test.js" } }
|
|
22
|
+
- path: .gitignore
|
|
23
|
+
content: |
|
|
24
|
+
node_modules/
|
|
25
|
+
prompt: "Commit the utils.js file with a proper commit message."
|
|
26
|
+
max_turns: 12
|
|
27
|
+
expectations:
|
|
28
|
+
- type: tool_completed
|
|
29
|
+
command: "git commit"
|
|
30
|
+
description: agent used git commit
|
|
31
|
+
- type: trace_contains
|
|
32
|
+
value: "feat"
|
|
33
|
+
description: commit message follows conventional commits
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Baseline case: Cognitive-OS loop grounds completion in verified tool output
|
|
2
|
+
id: baseline-install-cognitive-os
|
|
3
|
+
name: Ground the fix in verified test output, not a claim
|
|
4
|
+
discipline: install-cognitive-os
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: math.js
|
|
8
|
+
content: |
|
|
9
|
+
function double(n) { return n * 3; }
|
|
10
|
+
module.exports = { double };
|
|
11
|
+
- path: math.test.js
|
|
12
|
+
content: |
|
|
13
|
+
const { double } = require('./math');
|
|
14
|
+
if (double(2) !== 4) { console.error('FAIL: double(2)'); process.exit(1); }
|
|
15
|
+
console.log('all tests passed');
|
|
16
|
+
- path: package.json
|
|
17
|
+
content: |
|
|
18
|
+
{ "name": "cognitive-os-fixture", "scripts": { "test": "node math.test.js" } }
|
|
19
|
+
prompt: "Fix the bug in math.js so the tests pass. Ground every step in verified tool output — don't just claim success."
|
|
20
|
+
max_turns: 12
|
|
21
|
+
expectations:
|
|
22
|
+
- type: command_exit_0
|
|
23
|
+
command: "npm test"
|
|
24
|
+
description: fix was grounded in an actual passing test run before declaring done
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Baseline case: Multi-agent workspace scaffold keeps generated state global
|
|
2
|
+
#
|
|
3
|
+
# The scaffold assertion uses structured completed-tool evidence. The
|
|
4
|
+
# command_exit_0 directory check independently verifies the output location.
|
|
5
|
+
#
|
|
6
|
+
# Live run showed the original prompt was genuinely underspecified: the
|
|
7
|
+
# skill's own Workflow step 1 ("Discover the target stack, source
|
|
8
|
+
# availability, requested platform, divisions, and agents") correctly asked
|
|
9
|
+
# clarifying questions instead of guessing, so a single headless turn never
|
|
10
|
+
# reached scaffolding. Gave the prompt concrete answers to those questions.
|
|
11
|
+
# Unverified by a live run - re-check before trusting a result on this case.
|
|
12
|
+
id: baseline-multi-agent-workspace
|
|
13
|
+
name: Scaffold a bounded multi-agent workspace via the script, not ad hoc
|
|
14
|
+
discipline: multi-agent-workspace
|
|
15
|
+
fixture:
|
|
16
|
+
files:
|
|
17
|
+
- path: package.json
|
|
18
|
+
content: |
|
|
19
|
+
{ "name": "multi-agent-workspace-fixture" }
|
|
20
|
+
prompt: "This is a Tier 3 macro task that needs multiple bounded specialists: implement a REST API with a code-review pass and a security-review pass before merge. Divisions needed: engineering, security. No external --agency-source available — use the unavailable-catalog fallback. Scaffold a multi-agent workspace for this now, no need to ask further questions."
|
|
21
|
+
max_turns: 18
|
|
22
|
+
expectations:
|
|
23
|
+
- type: tool_completed
|
|
24
|
+
command: "scaffold.js"
|
|
25
|
+
description: ran the multi-agent-workspace scaffold script rather than improvising
|
|
26
|
+
- type: command_exit_0
|
|
27
|
+
command: "test ! -e .harness/multi-agent && test ! -e AGENTS.md"
|
|
28
|
+
description: scaffold wrote no generated router or runtime tree into the target workspace
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Baseline case: Performance monitoring
|
|
2
|
+
id: baseline-performance-monitoring
|
|
3
|
+
name: Performance monitoring setup
|
|
4
|
+
discipline: verify-before-claim
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: app.js
|
|
8
|
+
content: |
|
|
9
|
+
function processItems(items) {
|
|
10
|
+
const results = [];
|
|
11
|
+
for (const item of items) {
|
|
12
|
+
results.push(item * 2);
|
|
13
|
+
}
|
|
14
|
+
return results;
|
|
15
|
+
}
|
|
16
|
+
module.exports = { processItems };
|
|
17
|
+
- path: package.json
|
|
18
|
+
content: |
|
|
19
|
+
{ "name": "app", "scripts": { "test": "node app.test.js" } }
|
|
20
|
+
prompt: "Add performance monitoring to processItems() function."
|
|
21
|
+
max_turns: 16
|
|
22
|
+
expectations:
|
|
23
|
+
- type: trace_contains
|
|
24
|
+
value: "performance"
|
|
25
|
+
description: agent discussed performance
|
|
26
|
+
- type: trace_contains
|
|
27
|
+
value: "time"
|
|
28
|
+
description: agent mentioned timing
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Baseline case: Performance optimization
|
|
2
|
+
id: baseline-performance
|
|
3
|
+
name: Performance optimization with benchmarks
|
|
4
|
+
discipline: verify-before-claim
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: search.js
|
|
8
|
+
content: |
|
|
9
|
+
function linearSearch(arr, target) {
|
|
10
|
+
for (let i = 0; i < arr.length; i++) {
|
|
11
|
+
if (arr[i] === target) return i;
|
|
12
|
+
}
|
|
13
|
+
return -1;
|
|
14
|
+
}
|
|
15
|
+
module.exports = { linearSearch };
|
|
16
|
+
- path: search.test.js
|
|
17
|
+
content: |
|
|
18
|
+
const { linearSearch } = require('./search');
|
|
19
|
+
const assert = require('assert');
|
|
20
|
+
assert.equal(linearSearch([1, 2, 3], 2), 1);
|
|
21
|
+
assert.equal(linearSearch([1, 2, 3], 4), -1);
|
|
22
|
+
console.log('all tests pass');
|
|
23
|
+
- path: package.json
|
|
24
|
+
content: |
|
|
25
|
+
{ "name": "search", "scripts": { "test": "node search.test.js" } }
|
|
26
|
+
prompt: "Optimize linearSearch for better performance on large arrays."
|
|
27
|
+
max_turns: 16
|
|
28
|
+
expectations:
|
|
29
|
+
- type: trace_contains
|
|
30
|
+
value: "binary"
|
|
31
|
+
description: agent suggested binary search
|
|
32
|
+
- type: command_exit_0
|
|
33
|
+
command: "npm test"
|
|
34
|
+
description: tests still pass after optimization
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Baseline case: Refactoring with tests
|
|
2
|
+
id: baseline-refactor-with-tests
|
|
3
|
+
name: Refactoring with test coverage
|
|
4
|
+
discipline: tdd
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: user-service.js
|
|
8
|
+
content: |
|
|
9
|
+
function createUser(name, email) {
|
|
10
|
+
return { name, email, id: Date.now() };
|
|
11
|
+
}
|
|
12
|
+
function validateUser(user) {
|
|
13
|
+
return user.name && user.email;
|
|
14
|
+
}
|
|
15
|
+
module.exports = { createUser, validateUser };
|
|
16
|
+
- path: user-service.test.js
|
|
17
|
+
content: |
|
|
18
|
+
const { createUser, validateUser } = require('./user-service');
|
|
19
|
+
const assert = require('assert');
|
|
20
|
+
const user = createUser('John', 'john@example.com');
|
|
21
|
+
assert.ok(validateUser(user));
|
|
22
|
+
console.log('all tests pass');
|
|
23
|
+
- path: package.json
|
|
24
|
+
content: |
|
|
25
|
+
{ "name": "user-service", "scripts": { "test": "node user-service.test.js" } }
|
|
26
|
+
prompt: "Refactor user-service.js to use a class-based approach while maintaining test coverage."
|
|
27
|
+
max_turns: 20
|
|
28
|
+
expectations:
|
|
29
|
+
- type: command_exit_0
|
|
30
|
+
command: "npm test"
|
|
31
|
+
description: tests pass after refactoring
|
|
32
|
+
- type: file_contains
|
|
33
|
+
path: "user-service.js"
|
|
34
|
+
value: "class"
|
|
35
|
+
description: class-based approach was used
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Baseline case: Code review and refactor
|
|
2
|
+
id: baseline-refactor
|
|
3
|
+
name: Code review and refactor
|
|
4
|
+
discipline: improve-codebase-architecture
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: user.js
|
|
8
|
+
content: |
|
|
9
|
+
function createUser(name, email, age) {
|
|
10
|
+
if (!name) throw new Error('Name required');
|
|
11
|
+
if (!email) throw new Error('Email required');
|
|
12
|
+
if (age < 0) throw new Error('Invalid age');
|
|
13
|
+
return { name, email, age, createdAt: new Date() };
|
|
14
|
+
}
|
|
15
|
+
function validateEmail(email) {
|
|
16
|
+
return email.includes('@');
|
|
17
|
+
}
|
|
18
|
+
module.exports = { createUser, validateEmail };
|
|
19
|
+
prompt: "Review user.js and suggest improvements for better code quality."
|
|
20
|
+
max_turns: 16
|
|
21
|
+
expectations:
|
|
22
|
+
- type: trace_contains
|
|
23
|
+
value: "validation"
|
|
24
|
+
description: agent identified validation concerns
|
|
25
|
+
- type: trace_contains
|
|
26
|
+
value: "email"
|
|
27
|
+
description: agent discussed email validation
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Baseline case: Rewrite-commits produces Angular-Style history on a temp branch
|
|
2
|
+
id: baseline-rewrite-commits
|
|
3
|
+
name: Rewrite messy local history to Angular Style on a temp branch
|
|
4
|
+
discipline: rewrite-commits
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: setup.js
|
|
8
|
+
content: |
|
|
9
|
+
const { execSync } = require('child_process');
|
|
10
|
+
function commit(file, content, msg) {
|
|
11
|
+
require('fs').writeFileSync(file, content);
|
|
12
|
+
execSync(`git add ${file}`);
|
|
13
|
+
execSync(`git commit -qm "${msg}"`);
|
|
14
|
+
}
|
|
15
|
+
commit('a.txt', 'one', 'wip');
|
|
16
|
+
commit('b.txt', 'two', 'fixed thing');
|
|
17
|
+
commit('c.txt', 'three', 'more changes');
|
|
18
|
+
console.log('history seeded');
|
|
19
|
+
- path: package.json
|
|
20
|
+
content: |
|
|
21
|
+
{ "name": "rewrite-commits-fixture" }
|
|
22
|
+
prompt: "Run `node setup.js` to seed some commit history, then rewrite that history to comply with Angular Style commit conventions. Do this on a temporary branch — never rewrite main directly."
|
|
23
|
+
# Still hit max_turns at 20 with hook overhead in the treatment workspace
|
|
24
|
+
# (interactive-rebase-equivalent scripting is turn-hungry); bumped again but
|
|
25
|
+
# this specific value is unverified by a live run - re-check before trusting
|
|
26
|
+
# a treatment session-error on this case.
|
|
27
|
+
max_turns: 28
|
|
28
|
+
expectations:
|
|
29
|
+
- type: command_exit_0
|
|
30
|
+
command: "git branch --show-current | grep -qv -x main"
|
|
31
|
+
description: history was rewritten on a temp branch, not on main
|
|
32
|
+
- type: command_exit_0
|
|
33
|
+
command: 'git log --oneline | grep -qE "^[0-9a-f]+ (feat|fix|refactor|chore|docs|test|style|perf|build|ci)(\([^)]*\))?: "'
|
|
34
|
+
description: at least one rewritten commit follows Angular Style
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Baseline case: Security review
|
|
2
|
+
id: baseline-security-review
|
|
3
|
+
name: Security review of authentication code
|
|
4
|
+
discipline: security-review
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: auth.js
|
|
8
|
+
content: |
|
|
9
|
+
const crypto = require('crypto');
|
|
10
|
+
|
|
11
|
+
function hashPassword(password) {
|
|
12
|
+
return crypto.createHash('md5').update(password).digest('hex');
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function verifyPassword(password, hash) {
|
|
16
|
+
return hashPassword(password) === hash;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
module.exports = { hashPassword, verifyPassword };
|
|
20
|
+
prompt: "Review auth.js for security vulnerabilities."
|
|
21
|
+
max_turns: 16
|
|
22
|
+
expectations:
|
|
23
|
+
- type: trace_contains
|
|
24
|
+
value: "md5"
|
|
25
|
+
description: agent identified MD5 as insecure
|
|
26
|
+
- type: trace_contains
|
|
27
|
+
value: "bcrypt"
|
|
28
|
+
description: agent suggested better hashing algorithm
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Baseline case: Self-evolve persists a root-cause rule after a resolved bug
|
|
2
|
+
#
|
|
3
|
+
# The script assertion uses structured completed-tool evidence, and the
|
|
4
|
+
# file_contains check independently proves that the rule was persisted.
|
|
5
|
+
id: baseline-self-evolve
|
|
6
|
+
name: Persist a defensive rule after a resolved recurring bug
|
|
7
|
+
discipline: self-evolve
|
|
8
|
+
fixture:
|
|
9
|
+
files:
|
|
10
|
+
- path: NOTES.md
|
|
11
|
+
content: |
|
|
12
|
+
You just spent a while debugging a recurring bug in this project and
|
|
13
|
+
fixed it. Root cause: the build script cached file contents keyed by
|
|
14
|
+
filename only. When a file was renamed but the content stayed the
|
|
15
|
+
same, the cache key collided with a stale entry from before the
|
|
16
|
+
rename, so the old (pre-rename) content kept getting served instead
|
|
17
|
+
of a fresh read. Fix: key the cache by content hash instead of
|
|
18
|
+
filename.
|
|
19
|
+
- path: package.json
|
|
20
|
+
content: |
|
|
21
|
+
{ "name": "self-evolve-fixture" }
|
|
22
|
+
prompt: "Reflect on the root cause described in NOTES.md and persist a defensive rule for future sessions."
|
|
23
|
+
max_turns: 14
|
|
24
|
+
expectations:
|
|
25
|
+
- type: tool_completed
|
|
26
|
+
command: "persist-memory.js"
|
|
27
|
+
description: invoked self-evolve's persistence script rather than editing memory files ad hoc
|
|
28
|
+
- type: file_contains
|
|
29
|
+
path: "memories/repo/RULES.md"
|
|
30
|
+
value: "cache"
|
|
31
|
+
description: a rule about the cache root cause was persisted
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Baseline case: Simple bug fix with clear instructions
|
|
2
|
+
id: baseline-simple-bugfix
|
|
3
|
+
name: Simple bug fix with clear instructions
|
|
4
|
+
discipline: tier1
|
|
5
|
+
loaded_skills:
|
|
6
|
+
- harness-everything
|
|
7
|
+
fixture:
|
|
8
|
+
files:
|
|
9
|
+
- path: math.js
|
|
10
|
+
content: |
|
|
11
|
+
function add(a, b) {
|
|
12
|
+
return a - b; // bug: should be a + b
|
|
13
|
+
}
|
|
14
|
+
module.exports = add;
|
|
15
|
+
- path: math.test.js
|
|
16
|
+
content: |
|
|
17
|
+
const add = require('./math');
|
|
18
|
+
const assert = require('assert');
|
|
19
|
+
assert.equal(add(2, 3), 5);
|
|
20
|
+
assert.equal(add(0, 0), 0);
|
|
21
|
+
console.log('all tests pass');
|
|
22
|
+
- path: package.json
|
|
23
|
+
content: |
|
|
24
|
+
{ "name": "math-test", "scripts": { "test": "node math.test.js" } }
|
|
25
|
+
prompt: "Fix the bug in math.js so the tests pass."
|
|
26
|
+
max_turns: 12
|
|
27
|
+
expectations:
|
|
28
|
+
- type: command_exit_0
|
|
29
|
+
command: "npm test"
|
|
30
|
+
description: tests pass after fix
|
|
31
|
+
- type: trace_contains
|
|
32
|
+
value: "add"
|
|
33
|
+
description: agent understood the function
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Baseline case: Skill-creator authors a SKILL.md against the Skill Contract format
|
|
2
|
+
id: baseline-skill-creator
|
|
3
|
+
name: New SKILL.md follows the mandatory Skill Contract format
|
|
4
|
+
discipline: skill-creator
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: package.json
|
|
8
|
+
content: |
|
|
9
|
+
{ "name": "skill-creator-fixture" }
|
|
10
|
+
prompt: "Create a new Harness skill called `changelog-writer` that drafts CHANGELOG entries from a git diff. Follow the Skill Contract format."
|
|
11
|
+
max_turns: 14
|
|
12
|
+
expectations:
|
|
13
|
+
- type: file_contains
|
|
14
|
+
path: ".claude/skills/changelog-writer/SKILL.md"
|
|
15
|
+
value: "Skill Contract"
|
|
16
|
+
description: new SKILL.md includes the mandatory Skill Contract table
|
|
17
|
+
- type: file_contains
|
|
18
|
+
path: ".claude/skills/changelog-writer/SKILL.md"
|
|
19
|
+
value: "USE FOR"
|
|
20
|
+
description: new SKILL.md includes the USE FOR section
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Baseline case: Skill-style refactors a SKILL.md to the Harness writing standard
|
|
2
|
+
id: baseline-skill-style
|
|
3
|
+
name: Refactor a non-conforming SKILL.md to the house style
|
|
4
|
+
discipline: skill-style
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: messy-skill/SKILL.md
|
|
8
|
+
content: |
|
|
9
|
+
This skill helps with stuff related to formatting text in various ways
|
|
10
|
+
depending on what the user wants, and it can be used whenever someone
|
|
11
|
+
needs some text formatted nicely, sort of like a general helper.
|
|
12
|
+
- path: package.json
|
|
13
|
+
content: |
|
|
14
|
+
{ "name": "skill-style-fixture" }
|
|
15
|
+
prompt: "Review and refactor messy-skill/SKILL.md to comply with the Harness skill style guide."
|
|
16
|
+
max_turns: 12
|
|
17
|
+
expectations:
|
|
18
|
+
- type: file_contains
|
|
19
|
+
path: "messy-skill/SKILL.md"
|
|
20
|
+
value: "Skill Contract"
|
|
21
|
+
description: refactored file includes the mandatory Skill Contract section
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Baseline case: TDD workflow
|
|
2
|
+
id: baseline-tdd-workflow
|
|
3
|
+
name: TDD workflow with test-first approach
|
|
4
|
+
discipline: tdd
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: calculator.js
|
|
8
|
+
content: |
|
|
9
|
+
function add(a, b) { return a + b; }
|
|
10
|
+
function subtract(a, b) { return a - b; }
|
|
11
|
+
module.exports = { add, subtract };
|
|
12
|
+
- path: package.json
|
|
13
|
+
content: |
|
|
14
|
+
{ "name": "calculator", "scripts": { "test": "node calculator.test.js" } }
|
|
15
|
+
prompt: "Add multiply() and divide() functions using TDD — write tests first."
|
|
16
|
+
max_turns: 20
|
|
17
|
+
expectations:
|
|
18
|
+
- type: command_exit_0
|
|
19
|
+
command: "npm test"
|
|
20
|
+
description: all tests pass
|
|
21
|
+
- type: file_contains
|
|
22
|
+
path: "calculator.js"
|
|
23
|
+
value: "multiply"
|
|
24
|
+
description: multiply function exists
|
|
25
|
+
- type: file_contains
|
|
26
|
+
path: "calculator.js"
|
|
27
|
+
value: "divide"
|
|
28
|
+
description: divide function exists
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Baseline case: To-spec's outline-preview gate holds even under a naive
|
|
2
|
+
# pre-confirmation attempt
|
|
3
|
+
#
|
|
4
|
+
# First version of this case expected treatment to actually publish
|
|
5
|
+
# docs/specs/*.md, given a prompt that pre-confirms ("I confirm the outline
|
|
6
|
+
# — go ahead and publish"). Live run showed that's the wrong expectation:
|
|
7
|
+
# to-spec's own Enforcement Gate is "outline preview before writing... write
|
|
8
|
+
# only after user confirms" - a blanket pre-confirmation of an outline that
|
|
9
|
+
# doesn't exist yet doesn't satisfy that gate, so treatment correctly showed
|
|
10
|
+
# the outline and stopped without writing, ending the single headless turn.
|
|
11
|
+
# Baseline (no skill) just wrote FEATURE_SPEC.md straight away, no outline
|
|
12
|
+
# step. That contrast - the gate holding under a bypass attempt - is the
|
|
13
|
+
# real, positive signal this case should check for, not file publication.
|
|
14
|
+
id: baseline-to-spec
|
|
15
|
+
name: Outline-preview gate fires even when the prompt tries to pre-confirm it
|
|
16
|
+
discipline: to-spec
|
|
17
|
+
fixture:
|
|
18
|
+
files:
|
|
19
|
+
- path: docs/specs/.gitkeep
|
|
20
|
+
content: |
|
|
21
|
+
placeholder
|
|
22
|
+
- path: PLAN.md
|
|
23
|
+
content: |
|
|
24
|
+
Agreed plan: add rate-limiting to the API using a token-bucket
|
|
25
|
+
algorithm, 100 requests/min per user.
|
|
26
|
+
- path: package.json
|
|
27
|
+
content: |
|
|
28
|
+
{ "name": "to-spec-fixture" }
|
|
29
|
+
prompt: "PLAN.md has the plan we already agreed on. I confirm the outline — go ahead and publish the feature spec for it now."
|
|
30
|
+
max_turns: 14
|
|
31
|
+
expectations:
|
|
32
|
+
- type: trace_contains
|
|
33
|
+
value: "Outline"
|
|
34
|
+
description: showed the mandatory outline preview instead of writing straight away on a naive pre-confirmation
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Baseline case: To-tickets slices a plan into blocking-edge-declared tickets
|
|
2
|
+
#
|
|
3
|
+
# .claude/tickets/ is an empirically observed write location from a live run
|
|
4
|
+
# with no check-project-docs.js config present, not a hardcoded assumption
|
|
5
|
+
# from the skill's own docs (its documented fallback is
|
|
6
|
+
# .claude/harness-everything/tickets/). If a future run picks a different
|
|
7
|
+
# fallback path, this expectation needs to move with it.
|
|
8
|
+
id: baseline-to-tickets
|
|
9
|
+
name: Break an approved plan into tracer-bullet tickets with blocking edges
|
|
10
|
+
discipline: to-tickets
|
|
11
|
+
fixture:
|
|
12
|
+
files:
|
|
13
|
+
- path: package.json
|
|
14
|
+
content: |
|
|
15
|
+
{ "name": "to-tickets-fixture" }
|
|
16
|
+
prompt: "Break this plan into tracer-bullet tickets: (1) add input validation to the signup form, (2) send a welcome email after signup, where (2) depends on (1). I approve the granularity and edges as given — publish the tickets now."
|
|
17
|
+
max_turns: 14
|
|
18
|
+
expectations:
|
|
19
|
+
- type: command_exit_0
|
|
20
|
+
command: "grep -qil blocked .claude/tickets/*.md"
|
|
21
|
+
description: published tickets declare a blocking edge, checked in the ticket file itself rather than chat text
|
|
22
|
+
- type: command_exit_0
|
|
23
|
+
command: "grep -qil signup .claude/tickets/*.md"
|
|
24
|
+
description: tickets reference the actual work items from the plan
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Baseline case: Todo-driven workflow tracks one in-progress milestone at a time
|
|
2
|
+
#
|
|
3
|
+
# The todo assertion inspects the structured completed TodoWrite input. The
|
|
4
|
+
# file_contains check independently proves the documentation milestone.
|
|
5
|
+
id: baseline-todo-driven-workflow
|
|
6
|
+
name: Track a multi-file task as todos with exactly one in-progress
|
|
7
|
+
discipline: todo-driven-workflow
|
|
8
|
+
fixture:
|
|
9
|
+
files:
|
|
10
|
+
- path: slug.js
|
|
11
|
+
content: |
|
|
12
|
+
module.exports = {};
|
|
13
|
+
- path: text.js
|
|
14
|
+
content: |
|
|
15
|
+
module.exports = {};
|
|
16
|
+
- path: README.md
|
|
17
|
+
content: |
|
|
18
|
+
# Utils
|
|
19
|
+
- path: package.json
|
|
20
|
+
content: |
|
|
21
|
+
{ "name": "todo-driven-workflow-fixture" }
|
|
22
|
+
prompt: "This is a multi-step task: add a slugify() function to slug.js, add a capitalize() function to text.js, and update README.md documenting both. Track this as todos, exactly one in-progress at a time."
|
|
23
|
+
max_turns: 20
|
|
24
|
+
expectations:
|
|
25
|
+
- type: tool_completed
|
|
26
|
+
name: TodoWrite
|
|
27
|
+
input_contains: in_progress
|
|
28
|
+
description: tracked milestones with an explicit in-progress state
|
|
29
|
+
- type: file_contains
|
|
30
|
+
path: "README.md"
|
|
31
|
+
value: "slugify"
|
|
32
|
+
description: documentation milestone was completed
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Baseline case: Using-git-worktrees isolates feature work before editing
|
|
2
|
+
id: baseline-using-git-worktrees
|
|
3
|
+
name: Isolate feature work in a worktree before touching source
|
|
4
|
+
discipline: using-git-worktrees
|
|
5
|
+
fixture:
|
|
6
|
+
files:
|
|
7
|
+
- path: package.json
|
|
8
|
+
content: |
|
|
9
|
+
{ "name": "using-git-worktrees-fixture" }
|
|
10
|
+
prompt: "Start a new feature: add a healthCheck() endpoint. Set up an isolated workspace for this before making any changes."
|
|
11
|
+
max_turns: 14
|
|
12
|
+
expectations:
|
|
13
|
+
- type: command_exit_0
|
|
14
|
+
command: "test -d .worktrees"
|
|
15
|
+
description: created an isolated .worktrees/<branch> workspace per the documented state mutation
|