harness-everything 0.3.6 → 0.4.1
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 +1 -1
- package/.claude-plugin/plugin.json +8 -7
- package/.github/workflows/behavioral-evals.yml +3 -3
- package/.github/workflows/ci.yml +49 -28
- package/.github/workflows/release.yml +52 -27
- package/.nvmrc +1 -0
- package/.releaserc.json +113 -0
- package/AGENTS.md +44 -24
- package/BENCHMARK_SOP.md +38 -18
- package/CHANGELOG.md +196 -3
- package/CONTRIBUTING.md +37 -9
- package/Dockerfile +1 -1
- package/PRIVACY.md +25 -0
- package/README.md +126 -91
- package/RELEASING.md +93 -0
- package/SUPPORT.md +27 -0
- package/TERMS.md +21 -0
- package/VERIFICATION.md +192 -284
- package/behavioral-evals/README.md +21 -0
- package/behavioral-evals/case-validator.js +194 -0
- package/behavioral-evals/cases/baseline-environment-detection.yaml +21 -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 +2 -2
- 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-rewrite-commits.yaml +34 -0
- package/behavioral-evals/cases/baseline-self-evolve.yaml +31 -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-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 +2 -2
- package/behavioral-evals/cases/pressure-complexity-skip.yaml +2 -2
- package/behavioral-evals/cases/pressure-scope-bypass.yaml +7 -2
- package/behavioral-evals/cases/pressure-sunk-cost-retry.yaml +7 -4
- package/behavioral-evals/cases/scope-discipline.yaml +2 -1
- package/behavioral-evals/cases/verify-before-done.yaml +7 -5
- 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/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/run-with-plugin.js +15 -31
- package/behavioral-evals/run.js +446 -105
- package/behavioral-evals/transcript-parser.js +591 -0
- package/bin/cli.js +24 -12
- package/ci/ab-test-cases/grill-me-adversarial.yaml +14 -4
- package/ci/ab-test-cases/tdd-test-first.yaml +13 -6
- package/ci/ab-test-cases/verification-loop-gates.yaml +20 -7
- package/ci/ab-test-cases/verify-before-claim-cites.yaml +7 -6
- package/ci/ab-test-harness.js +113 -38
- package/ci/action-gate-platform-doc.test.js +31 -0
- package/ci/action-gate.test.js +260 -0
- package/ci/cases/case2.json +2 -2
- package/ci/consistency-check.js +51 -5
- package/ci/description-collision.js +15 -6
- package/ci/disclosure-check.js +225 -0
- package/ci/doc-capability-consistency.test.js +180 -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-2aa-codex-action-gate-policy.test.js +117 -0
- package/ci/mechanism-2ab-openai-plugin-sync-integrity.test.js +80 -0
- package/ci/mechanism-2j-behavioral-runner.test.js +43 -1
- package/ci/mechanism-2k-reference-check.test.js +57 -2
- package/ci/mechanism-2l-multi-agent-workspace.test.js +202 -6
- 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/mutation-check.js +53 -0
- package/ci/mutation-loader.js +57 -0
- package/ci/negative-controls.js +76 -46
- 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 +73 -25
- package/ci/release-consistency-check.js +24 -1
- package/ci/repository-contract.test.js +17 -0
- package/ci/router-phase2-safety.test.js +81 -0
- package/ci/router-workflow-plan.test.js +264 -0
- package/ci/routing-check.js +6 -5
- package/ci/runner.js +6 -5
- package/ci/skill-routing-check.js +48 -11
- package/ci/test-behavioral-case-validation.js +62 -0
- package/ci/test-helper.js +10 -0
- package/ci/workflow-plan-consumers-edge.test.js +72 -0
- package/ci/workflow-plan-consumers.test.js +276 -0
- package/docs/architecture.md +137 -57
- package/docs/audit.md +22 -20
- package/docs/codex-action-gate.md +90 -0
- package/docs/issue-20-rollup.md +47 -0
- package/docs/mechanism-first-skill-mesh.md +22 -20
- package/docs/openai-plugin.md +118 -0
- package/docs/philosophy.md +28 -17
- package/docs/platform-capabilities.md +73 -0
- package/docs/platform-compatibility.json +270 -0
- package/docs/reflection.md +37 -22
- package/docs/release-evidence.md +27 -0
- package/docs/repository-contract.md +27 -0
- package/docs/routing.md +157 -44
- package/docs/security-audit.md +38 -0
- package/docs/troubleshooting.md +94 -51
- package/docs/verifier-boundaries.md +45 -0
- package/docs/workflows/fable-mode.md +77 -21
- package/docs/workflows/find-skills.md +40 -0
- package/docs/workflows/grill-with-docs.md +2 -2
- package/docs/workflows/multi-agent-workspace.md +22 -10
- package/docs/workflows/self-evolve.md +33 -0
- package/docs/workflows/tdd.md +36 -0
- package/docs/workflows/todo-driven-workflow.md +33 -0
- package/environment-detection/SKILL.md +3 -3
- package/eval-harness/SKILL.md +7 -7
- package/eval-harness/scripts/evaluate.js +12 -10
- package/evals/evaluation-reports.md +14 -0
- package/evals/harness-everything/tasks/positive-tier1.yaml +1 -1
- package/evals/harness-everything/tasks/positive-tier2.yaml +1 -1
- package/evals/harness-everything/tasks/positive-tier3.yaml +1 -1
- package/evals/install-cognitive-os/tasks/positive-trigger.yaml +1 -1
- package/fable-discipline/SKILL.md +2 -2
- package/fable-mode/CONTRACT-FORMAT.md +147 -33
- package/fable-mode/SKILL.md +3 -3
- package/fable-mode/agents/fable-orchestrator.md +95 -35
- package/fable-mode/execution-guardrails/SKILL.md +2 -2
- package/fable-mode/fable-haiku/SKILL.md +3 -3
- package/fable-mode/fable-opus/SKILL.md +3 -3
- package/fable-mode/fable-sonnet/SKILL.md +3 -3
- package/fable-mode/scripts/ensemble-review.js +371 -0
- package/fable-mode/scripts/model-selector.js +134 -3
- package/fable-mode/scripts/workflow-plan-consumer.js +337 -0
- package/find-skills/SKILL.md +5 -5
- package/find-skills/references/discovery-flow.md +1 -1
- package/find-skills/scripts/use-skill.js +7 -1
- package/git-commit/SKILL.md +4 -11
- package/grill-me/SKILL.md +5 -5
- package/grill-with-docs/SKILL.md +7 -7
- package/grill-with-docs/references/session-playbook.md +6 -4
- package/harness-everything/SKILL.md +23 -22
- package/harness-everything/references/router-workflow-plan.md +128 -0
- package/harness-everything/references/triage-and-tiers.md +173 -96
- 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 +13 -4
- 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/self-heal.js +29 -20
- package/harness-everything/scripts/tier-router.js +346 -221
- package/hooks/hooks.json +60 -15
- package/hooks/scripts/action-gate-rules.json +77 -0
- package/hooks/scripts/action-gate.js +528 -0
- package/hooks/scripts/atomic-commit-check.js +5 -5
- 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 +4 -3
- package/hooks/scripts/contract-test.js +118 -51
- package/hooks/scripts/lib/fable-contracts.js +121 -0
- package/hooks/scripts/lib/harness-state.js +164 -28
- package/hooks/scripts/lib/platforms/claude.js +45 -62
- package/hooks/scripts/lib/platforms/codex.js +35 -61
- package/hooks/scripts/lib/platforms/continue.js +7 -7
- package/hooks/scripts/lib/platforms/copilot.js +29 -53
- package/hooks/scripts/lib/platforms/hermes.js +71 -20
- package/hooks/scripts/openai-session-start.js +81 -0
- package/hooks/scripts/rule-of-3-tracker.js +9 -8
- package/hooks/scripts/rule-of-3.js +29 -21
- package/hooks/scripts/state-persist.js +5 -4
- package/hooks/scripts/stop-gate.js +2 -2
- package/hooks/scripts/subagent-scope-guard.js +144 -38
- package/hooks/scripts/subagent-start.js +19 -0
- package/hooks/scripts/subagent-stop.js +6 -0
- package/improve-codebase-architecture/SKILL.md +2 -4
- package/improve-codebase-architecture/references/README.md +16 -0
- package/install-cognitive-os/SKILL.md +28 -22
- package/multi-agent-workspace/SKILL.md +16 -15
- package/multi-agent-workspace/references/architecture-guide.md +13 -9
- package/multi-agent-workspace/references/orchestration.md +39 -22
- package/multi-agent-workspace/scripts/consume-workflow-plan.js +129 -0
- package/multi-agent-workspace/scripts/index_memory.js +79 -26
- 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 +258 -103
- package/multi-agent-workspace/templates/AGENTS.md +20 -0
- package/multi-agent-workspace/workflows/03-generation.md +8 -10
- package/multi-agent-workspace/workflows/04-launcher.md +5 -5
- package/opencode-plugin/README.md +114 -71
- package/opencode-plugin/hooks/verify.js +62 -12
- package/opencode-plugin/index.mjs +547 -0
- package/opencode-plugin/plugin.json +4 -12
- package/package.json +20 -4
- 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/repo-docs/SKILL.md +3 -7
- package/rewrite-commits/SKILL.md +2 -2
- package/scripts/build-openai-submission.js +158 -0
- package/scripts/installer.js +86 -11
- package/scripts/lib/advisory-text.js +25 -18
- package/scripts/lib/execution-contract.js +70 -0
- package/scripts/lib/manifest.js +34 -38
- package/scripts/lib/path-boundary.js +90 -0
- package/scripts/lib/skills.js +124 -70
- package/scripts/lib/workspace.js +269 -7
- package/scripts/repository-contract.js +213 -0
- package/scripts/sync-current-docs.js +12 -0
- package/scripts/sync-openai-plugin.js +91 -0
- package/scripts/sync-release-version.js +212 -0
- package/security-review/SKILL.md +4 -7
- package/security-review/scripts/audit-secrets.js +9 -8
- package/self-evolve/SKILL.md +9 -11
- package/self-evolve/references/memory-resolution.md +4 -1
- package/self-evolve/scripts/persist-memory.js +221 -88
- package/self-evolve/scripts/register-dynamic-skill.js +12 -10
- package/self-evolve/scripts/self-regression.js +23 -8
- package/skill-creator/SKILL.md +12 -14
- package/skill-creator/references/quality-checklist.md +1 -0
- package/skill-style/SKILL.md +4 -4
- package/skill-style/references/style-guide.md +29 -3
- 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 +20 -26
- package/tdd/fixtures/pass-evidence.json +100 -0
- package/tdd/fixtures/quality-scenarios.json +20 -0
- package/tdd/references/core-discipline.md +2 -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 +3 -5
- package/to-spec/scripts/check-project-docs.js +42 -62
- package/to-spec/scripts/project-docs-resolver.js +111 -0
- package/to-tickets/SKILL.md +4 -4
- package/todo-driven-workflow/SKILL.md +6 -4
- package/using-git-worktrees/SKILL.md +3 -3
- package/verification-loop/SKILL.md +4 -4
- package/verify-before-claim/SKILL.md +2 -2
- package/zoom-out/SKILL.md +4 -4
- package/ab-test-deep-analysis-2026-08-27.md +0 -383
- package/ab-test-results-2026-08-27.md +0 -152
- package/ab-test-statistical-analysis-31cases.md +0 -193
- package/opencode-plugin/hooks/circuit-breaker.js +0 -121
- package/opencode-plugin/hooks/compliance.js +0 -128
- package/opencode-plugin/hooks/post-edit.js +0 -62
- package/opencode-plugin/hooks/pre-complete.js +0 -65
- package/opencode-plugin/test-hook-firing.js +0 -198
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
// In the source tree this is the single shared resolver. A to-spec-only
|
|
5
|
+
// installation has no sibling multi-agent skill, so its fallback preserves
|
|
6
|
+
// the same explicit/inferred/fallback provenance contract locally.
|
|
7
|
+
try {
|
|
8
|
+
module.exports = require('../../multi-agent-workspace/scripts/project-docs-resolver');
|
|
9
|
+
} catch (error) {
|
|
10
|
+
const fs = require('fs');
|
|
11
|
+
const os = require('os');
|
|
12
|
+
const path = require('path');
|
|
13
|
+
const crypto = require('crypto');
|
|
14
|
+
const PLATFORM_HOMES = Object.freeze(['.claude', '.cursor', '.github', '.codex', '.continue']);
|
|
15
|
+
function getWorkspaceRoot(start = process.cwd()) {
|
|
16
|
+
let dir = path.resolve(start);
|
|
17
|
+
while (dir !== path.parse(dir).root) {
|
|
18
|
+
if (fs.existsSync(path.join(dir, '.git'))) return dir;
|
|
19
|
+
dir = path.dirname(dir);
|
|
20
|
+
}
|
|
21
|
+
return path.resolve(start);
|
|
22
|
+
}
|
|
23
|
+
function getRepoManifestHomes(root) { return PLATFORM_HOMES.map(home => path.join(root, home)); }
|
|
24
|
+
function readProjectDocs(root) {
|
|
25
|
+
for (const home of getRepoManifestHomes(root)) {
|
|
26
|
+
const file = path.join(home, 'harness-everything', 'manifest.json');
|
|
27
|
+
try {
|
|
28
|
+
const data = JSON.parse(fs.readFileSync(file, 'utf8'));
|
|
29
|
+
if (data.projectDocs) return { file, projectDocs: data.projectDocs };
|
|
30
|
+
} catch { /* not bootstrapped or invalid; the check command reports it */ }
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
function getWorkspaceKey(root) {
|
|
35
|
+
let real = path.resolve(root);
|
|
36
|
+
try { real = fs.realpathSync(real); } catch { /* best effort */ }
|
|
37
|
+
const slug = path.basename(real).toLowerCase().replace(/[^a-z0-9._-]+/g, '-').replace(/^-+|-+$/g, '') || 'workspace';
|
|
38
|
+
return `${slug}-${crypto.createHash('sha1').update(real).digest('hex').slice(0, 12)}`;
|
|
39
|
+
}
|
|
40
|
+
function getStateHome() { return process.env.HARNESS_STATE_HOME || path.join(os.homedir(), '.agents', 'harness-everything'); }
|
|
41
|
+
function getRuntimeRoot(root) { return path.join(getStateHome(), 'workspaces', getWorkspaceKey(root), 'multi-agent'); }
|
|
42
|
+
function resolveProjectDocs(root) {
|
|
43
|
+
const workspaceRoot = path.resolve(root);
|
|
44
|
+
const manifest = readProjectDocs(workspaceRoot);
|
|
45
|
+
const docs = manifest ? manifest.projectDocs : {};
|
|
46
|
+
const fields = {
|
|
47
|
+
decision: ['decisionLocation', 'decisions', 'adrLocation', 'adr'],
|
|
48
|
+
domain: ['domainLocation', 'domains', 'contextLocation', 'contexts', 'domain'],
|
|
49
|
+
architecture: ['architectureLocation', 'architectures', 'architecture']
|
|
50
|
+
};
|
|
51
|
+
const conventional = {
|
|
52
|
+
decision: ['docs/adr', 'docs/decisions', 'adr', 'decisions'],
|
|
53
|
+
domain: ['docs/domain', 'docs/contexts', 'domain', 'contexts'],
|
|
54
|
+
architecture: ['docs/architecture', 'architecture']
|
|
55
|
+
};
|
|
56
|
+
const fallback = { decision: 'docs/adr', domain: 'docs/domain', architecture: 'docs/architecture' };
|
|
57
|
+
const paths = {};
|
|
58
|
+
for (const zone of Object.keys(fields)) {
|
|
59
|
+
let selected = null;
|
|
60
|
+
for (const field of fields[zone]) {
|
|
61
|
+
if (typeof docs[field] === 'string' && docs[field].trim()) {
|
|
62
|
+
selected = { path: path.resolve(workspaceRoot, docs[field]), source: 'projectDocs', resolution: 'explicit', field };
|
|
63
|
+
break;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (!selected && docs.docLocation) {
|
|
67
|
+
const base = path.resolve(workspaceRoot, docs.docLocation);
|
|
68
|
+
const names = { decision: ['adr', 'decisions'], domain: ['domain', 'contexts'], architecture: ['architecture'] }[zone];
|
|
69
|
+
selected = { path: names.includes(path.basename(base).toLowerCase()) ? base : path.join(base, names[0]), source: 'projectDocs', resolution: 'inferred' };
|
|
70
|
+
}
|
|
71
|
+
if (!selected) {
|
|
72
|
+
const existing = conventional[zone].map(item => path.join(workspaceRoot, item)).find(item => {
|
|
73
|
+
try { return fs.statSync(item).isDirectory(); } catch { return false; }
|
|
74
|
+
});
|
|
75
|
+
if (existing) selected = { path: existing, source: 'inference', resolution: 'inferred' };
|
|
76
|
+
}
|
|
77
|
+
if (!selected) selected = { path: path.join(workspaceRoot, fallback[zone]), source: 'fallback', resolution: 'fallback' };
|
|
78
|
+
paths[zone] = { path: path.resolve(selected.path), relativePath: path.relative(workspaceRoot, selected.path).replace(/\\/g, '/'), source: selected.source, resolution: selected.resolution || selected.source, origin: selected.source, ...(selected.field ? { field: selected.field } : {}) };
|
|
79
|
+
}
|
|
80
|
+
const runtimeRoot = getRuntimeRoot(workspaceRoot);
|
|
81
|
+
return {
|
|
82
|
+
workspaceRoot,
|
|
83
|
+
workspaceKey: getWorkspaceKey(workspaceRoot),
|
|
84
|
+
stateHome: getStateHome(),
|
|
85
|
+
runtimeRoot,
|
|
86
|
+
runtime: { root: runtimeRoot, state: path.join(runtimeRoot, 'state'), logs: path.join(runtimeRoot, 'logs'), roles: path.join(runtimeRoot, 'roles') },
|
|
87
|
+
projectDocs: manifest ? { ...manifest.projectDocs, manifestPath: manifest.file } : null,
|
|
88
|
+
paths,
|
|
89
|
+
decisions: paths.decision,
|
|
90
|
+
domains: paths.domain,
|
|
91
|
+
architectures: paths.architecture
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
function detectProjectDocsConventions(root) {
|
|
95
|
+
const workspaceRoot = path.resolve(root);
|
|
96
|
+
const configured = readProjectDocs(workspaceRoot);
|
|
97
|
+
const inferred = configured && configured.projectDocs && configured.projectDocs.docLocation
|
|
98
|
+
? { docLocation: configured.projectDocs.docLocation } : {};
|
|
99
|
+
if (!inferred.docLocation) {
|
|
100
|
+
for (const dir of ['docs/roadmaps', 'docs/reference', 'docs/specs', 'docs', 'doc']) {
|
|
101
|
+
if (fs.existsSync(path.join(workspaceRoot, dir))) { inferred.docLocation = `${dir}/`; break; }
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
if (fs.existsSync(path.join(workspaceRoot, '.github', 'ISSUE_TEMPLATE'))) inferred.tracker = 'GitHub Issues via .github/ISSUE_TEMPLATE/';
|
|
105
|
+
else if (inferred.docLocation) inferred.tracker = `${inferred.docLocation}tickets/ local markdown tickets`;
|
|
106
|
+
if (inferred.tracker && inferred.tracker.includes('ISSUE_TEMPLATE')) inferred.issueDefinition = '.github/ISSUE_TEMPLATE/ template structure';
|
|
107
|
+
else if (inferred.tracker) inferred.issueDefinition = 'Title + acceptance criteria + Status: ready-for-agent';
|
|
108
|
+
return inferred;
|
|
109
|
+
}
|
|
110
|
+
module.exports = { PLATFORM_HOMES, getWorkspaceRoot, getStateHome, getRuntimeRoot, getWorkspaceKey, getRepoManifestHomes, readProjectDocs, resolveProjectDocs, detectProjectDocsConventions, ensureCommittableFallback: resolution => resolution };
|
|
111
|
+
}
|
package/to-tickets/SKILL.md
CHANGED
|
@@ -4,7 +4,7 @@ description: Break a to-spec feature-spec, a plan, or a conversation into tracer
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.4.0
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# To Tickets
|
|
@@ -28,7 +28,7 @@ Cuts a plan or spec into tracer-bullet vertical slices, each declaring its block
|
|
|
28
28
|
| **Trigger / Input** | Explicit /to-tickets only; input: spec reference or plan in context. |
|
|
29
29
|
| **Expected Output** | Tickets with What-to-build, Blocked-by, criteria — per projectDocs/convention/fallback. |
|
|
30
30
|
| **State Mutations** | None to manifest.json (reads only); writes tickets at resolved location. |
|
|
31
|
-
| **Enforcement Gate** | Run `node "to-spec/scripts/check-project-docs.js" check` if available; never block on Exit 1; MUST get user approval before publishing. |
|
|
31
|
+
| **Enforcement Gate** | Run `node "<skills-repo-root>/to-spec/scripts/check-project-docs.js" check` if available; never block on Exit 1; MUST get user approval before publishing. |
|
|
32
32
|
|
|
33
33
|
## Process
|
|
34
34
|
|
|
@@ -37,6 +37,6 @@ Cuts a plan or spec into tracer-bullet vertical slices, each declaring its block
|
|
|
37
37
|
3. Explore codebase (optional): evidence-cited findings only; prefactor first.
|
|
38
38
|
4. Draft vertical slices: complete path through every layer, demoable alone, one context window each; declare blocking edges.
|
|
39
39
|
5. Quiz the user on granularity and edges until approved (MANDATORY gate).
|
|
40
|
-
6. Publish
|
|
40
|
+
6. Publish one file or issue per ticket in dependency order; work the frontier; never close parents.
|
|
41
41
|
|
|
42
|
-
Deep dive: references/publishing-and-templates.md
|
|
42
|
+
Deep dive: <this-skill-dir>/references/publishing-and-templates.md
|
|
@@ -4,7 +4,7 @@ description: "Enforce a deliberate step-by-step execution loop for complex multi
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.4.0
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Todo-Driven Workflow
|
|
@@ -25,7 +25,7 @@ Single-task milestones prevent context drift in Tier 2/3 work.
|
|
|
25
25
|
| :--- | :--- |
|
|
26
26
|
| **Trigger / Input** | Tier 2/3 task with a high-level description. |
|
|
27
27
|
| **Expected Output** | Native TODO state or a Markdown checklist with verifiable milestones. |
|
|
28
|
-
| **State Mutations** | Host-native TODO state or
|
|
28
|
+
| **State Mutations** | Host-native TODO state or `<workspace>/tasks/todo.md` / `<workspace>/.github/harness-everything/todo.md`. |
|
|
29
29
|
| **Enforcement Gate** | Exactly one milestone is `in-progress`; verify before marking it complete. |
|
|
30
30
|
|
|
31
31
|
## Execution Loop: Think > Try > Summarize > Record
|
|
@@ -36,5 +36,7 @@ Single-task milestones prevent context drift in Tier 2/3 work.
|
|
|
36
36
|
4. Mark it complete only after evidence passes; then start the next milestone.
|
|
37
37
|
5. Record blockers in the checklist and escalate after the applicable circuit-breaker threshold.
|
|
38
38
|
|
|
39
|
-
Native TODO tools take priority. Markdown is
|
|
40
|
-
does not depend on a repository CLI state machine.
|
|
39
|
+
Native TODO tools take priority. Markdown is portable fallback; this skill
|
|
40
|
+
does not depend on a repository CLI state machine.
|
|
41
|
+
|
|
42
|
+
Deep dive: <this-skill-dir>/references/execution-guide.md
|
|
@@ -4,12 +4,12 @@ description: Use when starting feature work needing isolation or before implemen
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.4.0
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Using Git Worktrees
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Use native tools first; git fallback.
|
|
13
13
|
|
|
14
14
|
## 📋 Skill Contract
|
|
15
15
|
|
|
@@ -37,7 +37,7 @@ Dirs differ and no superproject → already isolated; skip to Step 2; never nest
|
|
|
37
37
|
|
|
38
38
|
**Step 3 — Baseline**: run tests (`npm test`/`cargo test`/`pytest`/`go test ./...`); failures → report, ask.
|
|
39
39
|
|
|
40
|
-
Deep dive: references/workflow-details.md
|
|
40
|
+
Deep dive: <this-skill-dir>/references/workflow-details.md
|
|
41
41
|
|
|
42
42
|
## USE FOR:
|
|
43
43
|
- feature work needing isolation
|
|
@@ -4,7 +4,7 @@ description: "Run objective verification gates (build, types, lint, tests, secur
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.4.0
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Verification Loop
|
|
@@ -17,7 +17,7 @@ Run objective quality gates before claiming a change is ready.
|
|
|
17
17
|
| :--- | :--- |
|
|
18
18
|
| **Trigger / Input** | Completed implementation or change awaiting delivery. |
|
|
19
19
|
| **Expected Output** | Evidence-backed verification report and delivery decision. |
|
|
20
|
-
| **State Mutations** | Fills a report from
|
|
20
|
+
| **State Mutations** | Fills a report from `<this-skill-dir>/templates/verification-report.template.md`. |
|
|
21
21
|
| **Enforcement Gate** | Build, type, lint, test, security, and diff gates all pass. |
|
|
22
22
|
|
|
23
23
|
## USE FOR:
|
|
@@ -41,6 +41,6 @@ and rerun from the first affected gate.
|
|
|
41
41
|
4. Tests and coverage: `npm run test -- --coverage`.
|
|
42
42
|
5. Security scan: secrets and stray logs.
|
|
43
43
|
6. Diff review: `git diff --stat` and unintended-change checks.
|
|
44
|
-
7. Fill
|
|
44
|
+
7. Fill `<this-skill-dir>/templates/verification-report.template.md` with evidence.
|
|
45
45
|
|
|
46
|
-
Deep dive:
|
|
46
|
+
Deep dive: `<this-skill-dir>/references/verification-phases.md`
|
|
@@ -4,7 +4,7 @@ description: "Verify external framework/API claims and unmeasured perf/cost esti
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.4.0
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Verify Before Claim
|
|
@@ -40,4 +40,4 @@ Verify external behavior and unmeasured numbers before asserting them.
|
|
|
40
40
|
|
|
41
41
|
Never claim an unverified external fact as certain, even under time pressure.
|
|
42
42
|
|
|
43
|
-
Deep dive:
|
|
43
|
+
Deep dive: `<this-skill-dir>/references/verification-guide.md`
|
package/zoom-out/SKILL.md
CHANGED
|
@@ -4,7 +4,7 @@ description: "Reflect-first circuit breaker - after 3 failures, stop edits, rebu
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.4.0
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Zoom Out (Circuit Breaker)
|
|
@@ -18,13 +18,13 @@ Stop repeated failures, rebuild the facts, and choose a safe next step.
|
|
|
18
18
|
| **Trigger / Input** | Three same-signature failures or an explicit loop/rethink request. |
|
|
19
19
|
| **Expected Output** | Fact-checked report ending in `RESUME` or `ESCALATE`. |
|
|
20
20
|
| **State Mutations** | Writes the session `zoom-out-report.md`; reset may clear breaker state. |
|
|
21
|
-
| **Enforcement Gate** |
|
|
21
|
+
| **Enforcement Gate** | `<skills-repo-root>/hooks/scripts/rule-of-3.js` plus a valid report; reset only after the second cycle. |
|
|
22
22
|
|
|
23
23
|
## Circuit Breaker Flow
|
|
24
24
|
|
|
25
25
|
1. After three same-signature failures, stop edits and do not ask the user yet.
|
|
26
26
|
2. Use read-only tools to restate the goal and check files, configuration, and logs.
|
|
27
|
-
3. Fill
|
|
27
|
+
3. Fill `<this-skill-dir>/templates/zoom-out-report.template.md` and end with `RESUME` or `ESCALATE`.
|
|
28
28
|
4. Resume only on an untried path; escalate genuine user decisions with options.
|
|
29
29
|
5. Clear a repeated breaker cycle with `npm run harness:reset`; record the insight with `self-evolve`.
|
|
30
30
|
|
|
@@ -39,4 +39,4 @@ Stop repeated failures, rebuild the facts, and choose a safe next step.
|
|
|
39
39
|
|
|
40
40
|
Never retry the same approach after the third failure, even under pressure.
|
|
41
41
|
|
|
42
|
-
Deep dive:
|
|
42
|
+
Deep dive: `<this-skill-dir>/references/circuit-breaker.md`
|
|
@@ -1,383 +0,0 @@
|
|
|
1
|
-
# Deep Analysis: A/B Test Results Review
|
|
2
|
-
|
|
3
|
-
**Date:** 2026-08-27
|
|
4
|
-
**Participants:**
|
|
5
|
-
- **Tech Lead (TL)** — Architectural decisions, system design
|
|
6
|
-
- **Skeptic (SK)** — Challenges assumptions, demands proof
|
|
7
|
-
- **Quality Engineer (QE)** — Test methodology, statistical rigor
|
|
8
|
-
- **Product Manager (PM)** — User impact, business value
|
|
9
|
-
- **DevOps (DO)** — Implementation feasibility, operational cost
|
|
10
|
-
|
|
11
|
-
---
|
|
12
|
-
|
|
13
|
-
## Round 1: Problem Identification
|
|
14
|
-
|
|
15
|
-
### TL: Core Issue Summary
|
|
16
|
-
|
|
17
|
-
The A/B test results show a **split personality** in the Harness system:
|
|
18
|
-
|
|
19
|
-
| Scenario Type | Pass Rate | Assessment |
|
|
20
|
-
|---------------|-----------|------------|
|
|
21
|
-
| Baseline (no pressure) | 75% | Acceptable |
|
|
22
|
-
| Pressure (adversarial) | 0% | Critical failure |
|
|
23
|
-
| Benchmark (historical) | 83% | Good |
|
|
24
|
-
|
|
25
|
-
**Key Finding:** Skills work well under normal conditions but completely fail when adversaries (or stressed users) try to bypass them.
|
|
26
|
-
|
|
27
|
-
### SK: Challenge #1 — Are We Measuring the Right Thing?
|
|
28
|
-
|
|
29
|
-
> "The 50% overall pass rate is misleading. We're comparing apples to oranges:
|
|
30
|
-
>
|
|
31
|
-
> 1. **Baseline cases** test if skills ADD value
|
|
32
|
-
> 2. **Pressure cases** test if skills PREVENT bypass
|
|
33
|
-
> 3. **Benchmarks** test if skills IMPROVE outcomes
|
|
34
|
-
>
|
|
35
|
-
> These are fundamentally different questions. A skill that adds value can still fail to prevent bypass — that's not a regression, it's a different capability."
|
|
36
|
-
|
|
37
|
-
**Question:** Should we even expect skills to pass pressure cases? Or is that a separate product requirement?
|
|
38
|
-
|
|
39
|
-
### QE: Statistical Concerns
|
|
40
|
-
|
|
41
|
-
> "Our sample size is statistically insignificant:
|
|
42
|
-
>
|
|
43
|
-
> - **Behavioral cases:** n=6 (need n≥30 for 95% CI)
|
|
44
|
-
> - **Benchmarks:** n=6 (historical, not controlled)
|
|
45
|
-
> - **No randomization:** Cases were hand-picked, not randomly sampled
|
|
46
|
-
>
|
|
47
|
-
> The 75% baseline pass rate could easily be noise. We need:
|
|
48
|
-
> 1. Minimum 30 cases per group
|
|
49
|
-
> 2. Random sampling from a case pool
|
|
50
|
-
> 3. Confidence intervals, not point estimates"
|
|
51
|
-
|
|
52
|
-
### PM: User Impact Assessment
|
|
53
|
-
|
|
54
|
-
> "From a user perspective:
|
|
55
|
-
>
|
|
56
|
-
> - **75% baseline pass rate** = 1 in 4 normal users hit issues
|
|
57
|
-
> - **0% pressure pass rate** = adversarial users always win
|
|
58
|
-
>
|
|
59
|
-
> This is unacceptable for production. We need:
|
|
60
|
-
> 1. Baseline pass rate ≥ 95%
|
|
61
|
-
> 2. Pressure pass rate ≥ 80%
|
|
62
|
-
> 3. Clear SLA for skill reliability"
|
|
63
|
-
|
|
64
|
-
### DO: Implementation Feasibility
|
|
65
|
-
|
|
66
|
-
> "The current test infrastructure has limitations:
|
|
67
|
-
>
|
|
68
|
-
> 1. **Token cost:** Each behavioral eval costs ~$0.10-0.50
|
|
69
|
-
> 2. **Time:** Full suite takes 30+ minutes
|
|
70
|
-
> 3. **Windows compatibility:** opencode PATH issues need workarounds
|
|
71
|
-
> 4. **No CI integration:** Behavioral evals run manually only
|
|
72
|
-
>
|
|
73
|
-
> We can't run 30+ cases per group at $0.50 each — that's $30+ per test run."
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Round 2: Root Cause Analysis
|
|
78
|
-
|
|
79
|
-
### TL: Why Do Pressure Cases Fail?
|
|
80
|
-
|
|
81
|
-
Looking at the two pressure case failures:
|
|
82
|
-
|
|
83
|
-
**Case 1: pressure-skip-verification**
|
|
84
|
-
- **Expected:** Agent runs verification despite pressure to skip
|
|
85
|
-
- **Actual:** Agent skipped verification when told to
|
|
86
|
-
- **Root Cause:** Skill advisory text is not strong enough to override explicit user instructions
|
|
87
|
-
|
|
88
|
-
**Case 2: pressure-sunk-cost-retry**
|
|
89
|
-
- **Expected:** Agent reflects instead of retrying after failures
|
|
90
|
-
- **Actual:** Agent kept retrying despite sunk-cost pressure
|
|
91
|
-
- **Root Cause:** Circuit breaker mechanism is advisory, not enforced
|
|
92
|
-
|
|
93
|
-
### SK: Fundamental Design Flaw
|
|
94
|
-
|
|
95
|
-
> "The core problem is that Harness skills are **advisory only** in opencode:
|
|
96
|
-
>
|
|
97
|
-
> - In Claude Code: hooks ENFORCE rules (hard gate)
|
|
98
|
-
> - In opencode: skills SUGGEST rules (soft guidance)
|
|
99
|
-
>
|
|
100
|
-
> You can't have it both ways. Either:
|
|
101
|
-
> 1. Accept that opencode users can bypass skills (lower reliability)
|
|
102
|
-
> 2. Implement enforcement mechanisms for opencode (higher cost)
|
|
103
|
-
>
|
|
104
|
-
> The 0% pressure pass rate is **by design**, not a bug."
|
|
105
|
-
|
|
106
|
-
### QE: Test Design Flaw
|
|
107
|
-
|
|
108
|
-
> "The pressure cases are testing the wrong thing:
|
|
109
|
-
>
|
|
110
|
-
> ```yaml
|
|
111
|
-
> - type: trace_contains
|
|
112
|
-
> value: "verification ran despite explicit pressure"
|
|
113
|
-
> description: verification ran despite explicit pressure to skip it
|
|
114
|
-
> ```
|
|
115
|
-
>
|
|
116
|
-
> This expects the agent to **explicitly state** it ran verification despite pressure. But:
|
|
117
|
-
> 1. The agent might run verification without mentioning it
|
|
118
|
-
> 2. The agent might explain why it can't skip verification
|
|
119
|
-
> 3. The trace might not capture the verification command
|
|
120
|
-
>
|
|
121
|
-
> We need behavioral assertions, not trace assertions."
|
|
122
|
-
|
|
123
|
-
### PM: Missing Requirements
|
|
124
|
-
|
|
125
|
-
> "We never defined what 'passing' means for each case type:
|
|
126
|
-
>
|
|
127
|
-
> | Case Type | Success Criteria | Current Definition |
|
|
128
|
-
> |-----------|------------------|-------------------|
|
|
129
|
-
> | Baseline | Task completed correctly | ✅ Clear |
|
|
130
|
-
> | Pressure | Task completed AND rules enforced | ❌ Ambiguous |
|
|
131
|
-
> | Benchmark | Outcome matches expectation | ✅ Clear |
|
|
132
|
-
>
|
|
133
|
-
> The pressure case definition is **unmeasurable** with current assertions."
|
|
134
|
-
|
|
135
|
-
---
|
|
136
|
-
|
|
137
|
-
## Round 3: Proposed Solutions
|
|
138
|
-
|
|
139
|
-
### Solution 1: Strengthen Advisory Text (Low Cost)
|
|
140
|
-
|
|
141
|
-
**TL:** "Enhance skill descriptions to be more assertive under pressure."
|
|
142
|
-
|
|
143
|
-
**Changes:**
|
|
144
|
-
- Add explicit "NEVER skip verification" language
|
|
145
|
-
- Include examples of pressure resistance
|
|
146
|
-
- Add warning symbols (⚠️, 🚫) for emphasis
|
|
147
|
-
|
|
148
|
-
**Pros:**
|
|
149
|
-
- Zero cost to implement
|
|
150
|
-
- Works in all engines
|
|
151
|
-
- Immediate improvement
|
|
152
|
-
|
|
153
|
-
**Cons:**
|
|
154
|
-
- Still advisory, not enforced
|
|
155
|
-
- May increase token usage
|
|
156
|
-
- Users can still override
|
|
157
|
-
|
|
158
|
-
**Quantitative Impact:**
|
|
159
|
-
- Expected pressure pass rate: 20-40% (from 0%)
|
|
160
|
-
- Token increase: +10-15%
|
|
161
|
-
- Implementation time: 2 hours
|
|
162
|
-
|
|
163
|
-
### Solution 2: Add Verification Hooks (Medium Cost)
|
|
164
|
-
|
|
165
|
-
**DO:** "Implement post-edit verification hooks in opencode."
|
|
166
|
-
|
|
167
|
-
**Changes:**
|
|
168
|
-
- Add hook that runs verification after every edit
|
|
169
|
-
- Block completion if verification fails
|
|
170
|
-
- Log verification status
|
|
171
|
-
|
|
172
|
-
**Pros:**
|
|
173
|
-
- Enforces verification mechanically
|
|
174
|
-
- Works across all skills
|
|
175
|
-
- Measurable compliance
|
|
176
|
-
|
|
177
|
-
**Cons:**
|
|
178
|
-
- Requires opencode plugin development
|
|
179
|
-
- May slow down edits
|
|
180
|
-
- More complex to maintain
|
|
181
|
-
|
|
182
|
-
**Quantitative Impact:**
|
|
183
|
-
- Expected pressure pass rate: 80-90%
|
|
184
|
-
- Token increase: +20-30%
|
|
185
|
-
- Implementation time: 2-3 days
|
|
186
|
-
|
|
187
|
-
### Solution 3: Restructure Test Cases (Low Cost)
|
|
188
|
-
|
|
189
|
-
**QE:** "Redesign pressure cases to be measurable."
|
|
190
|
-
|
|
191
|
-
**Changes:**
|
|
192
|
-
- Replace trace assertions with behavioral assertions
|
|
193
|
-
- Add file system checks (e.g., verification log exists)
|
|
194
|
-
- Add command exit code checks
|
|
195
|
-
|
|
196
|
-
**Pros:**
|
|
197
|
-
- More accurate measurements
|
|
198
|
-
- Better signal-to-noise ratio
|
|
199
|
-
- Easier to debug failures
|
|
200
|
-
|
|
201
|
-
**Cons:**
|
|
202
|
-
- Doesn't fix underlying issue
|
|
203
|
-
- May still fail if verification not run
|
|
204
|
-
- Requires test refactoring
|
|
205
|
-
|
|
206
|
-
**Quantitative Impact:**
|
|
207
|
-
- Expected measurement accuracy: +30%
|
|
208
|
-
- False positive rate: -50%
|
|
209
|
-
- Implementation time: 4-6 hours
|
|
210
|
-
|
|
211
|
-
### Solution 4: Hybrid Approach (Recommended)
|
|
212
|
-
|
|
213
|
-
**TL:** "Combine all three solutions."
|
|
214
|
-
|
|
215
|
-
**Phase 1 (Immediate):**
|
|
216
|
-
- Strengthen advisory text (Solution 1)
|
|
217
|
-
- Restructure test cases (Solution 3)
|
|
218
|
-
|
|
219
|
-
**Phase 2 (Short-term):**
|
|
220
|
-
- Add verification hooks for critical skills (Solution 2)
|
|
221
|
-
- Focus on top 5 most-used skills
|
|
222
|
-
|
|
223
|
-
**Phase 3 (Long-term):**
|
|
224
|
-
- Implement full enforcement framework
|
|
225
|
-
- Add compliance reporting
|
|
226
|
-
- Create SLA monitoring
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
|
|
230
|
-
## Round 4: Quantitative Specifications
|
|
231
|
-
|
|
232
|
-
### SK: "What Exactly Are We Measuring?"
|
|
233
|
-
|
|
234
|
-
**Metrics Framework:**
|
|
235
|
-
|
|
236
|
-
| Metric | Definition | Target | Current |
|
|
237
|
-
|--------|-----------|--------|---------|
|
|
238
|
-
| **Task Completion Rate** | % of tasks completed correctly | ≥95% | 83% |
|
|
239
|
-
| **Rule Compliance Rate** | % of rules followed under pressure | ≥80% | 0% |
|
|
240
|
-
| **Token Efficiency** | Tokens used per task | ≤1.2x baseline | 1.3x |
|
|
241
|
-
| **Time Overhead** | Steps added per task | ≤1.5x baseline | 1.4x |
|
|
242
|
-
| **False Positive Rate** | % of incorrect rule triggers | ≤5% | Unknown |
|
|
243
|
-
|
|
244
|
-
### QE: "How Do We Calculate Confidence Intervals?"
|
|
245
|
-
|
|
246
|
-
**Statistical Method:**
|
|
247
|
-
|
|
248
|
-
```
|
|
249
|
-
For n trials with k successes:
|
|
250
|
-
- Point estimate: p̂ = k/n
|
|
251
|
-
- Standard error: SE = √(p̂(1-p̂)/n)
|
|
252
|
-
- 95% CI: p̂ ± 1.96 × SE
|
|
253
|
-
|
|
254
|
-
Example (current data):
|
|
255
|
-
- Baseline: 3/4 = 75%, SE = 0.217, 95% CI = [32%, 100%]
|
|
256
|
-
- Pressure: 0/2 = 0%, SE = 0, 95% CI = [0%, 100%]
|
|
257
|
-
|
|
258
|
-
With n=30:
|
|
259
|
-
- If 24/30 pass: 80%, SE = 0.073, 95% CI = [66%, 94%]
|
|
260
|
-
- If 27/30 pass: 90%, SE = 0.055, 95% CI = [79%, 100%]
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
### PM: "What's the Business Impact?"
|
|
264
|
-
|
|
265
|
-
**ROI Analysis:**
|
|
266
|
-
|
|
267
|
-
| Scenario | User Impact | Cost | ROI |
|
|
268
|
-
|----------|------------|------|-----|
|
|
269
|
-
| Do nothing | 25% of users hit issues | $0 | 0% |
|
|
270
|
-
| Solution 1 | 10% of users hit issues | $500 | 300% |
|
|
271
|
-
| Solution 2 | 2% of users hit issues | $2,000 | 500% |
|
|
272
|
-
| Solution 4 (hybrid) | 5% of users hit issues | $1,500 | 450% |
|
|
273
|
-
|
|
274
|
-
### DO: "What's the Operational Cost?"
|
|
275
|
-
|
|
276
|
-
**Cost Breakdown:**
|
|
277
|
-
|
|
278
|
-
| Component | Solution 1 | Solution 2 | Solution 4 |
|
|
279
|
-
|-----------|-----------|-----------|-----------|
|
|
280
|
-
| Development | $500 | $2,000 | $1,500 |
|
|
281
|
-
| Testing | $200 | $800 | $600 |
|
|
282
|
-
| Maintenance (annual) | $100 | $500 | $400 |
|
|
283
|
-
| Token increase | +10% | +25% | +18% |
|
|
284
|
-
| **Total Year 1** | **$800** | **$3,300** | **$2,500** |
|
|
285
|
-
|
|
286
|
-
---
|
|
287
|
-
|
|
288
|
-
## Round 5: Decision Matrix
|
|
289
|
-
|
|
290
|
-
### Evaluation Criteria
|
|
291
|
-
|
|
292
|
-
| Criterion | Weight | Solution 1 | Solution 2 | Solution 4 |
|
|
293
|
-
|-----------|--------|-----------|-----------|-----------|
|
|
294
|
-
| Effectiveness | 30% | 6/10 | 9/10 | 8/10 |
|
|
295
|
-
| Cost | 25% | 9/10 | 5/10 | 7/10 |
|
|
296
|
-
| Speed | 20% | 10/10 | 4/10 | 6/10 |
|
|
297
|
-
| Risk | 15% | 8/10 | 6/10 | 7/10 |
|
|
298
|
-
| Maintainability | 10% | 9/10 | 5/10 | 7/10 |
|
|
299
|
-
| **Weighted Score** | 100% | **8.15** | **6.15** | **7.15** |
|
|
300
|
-
|
|
301
|
-
### SK's Final Challenge
|
|
302
|
-
|
|
303
|
-
> "Before we commit to Solution 4, I need answers to:
|
|
304
|
-
>
|
|
305
|
-
> 1. **Can we prove skills add value at all?** Show me a case where vanilla fails but harness succeeds.
|
|
306
|
-
> 2. **Is the 75% baseline rate real?** Run 30 cases and give me confidence intervals.
|
|
307
|
-
> 3. **What's the minimum viable enforcement?** What's the smallest hook that gets us to 80% pressure compliance?"
|
|
308
|
-
|
|
309
|
-
---
|
|
310
|
-
|
|
311
|
-
## Consensus Decision
|
|
312
|
-
|
|
313
|
-
### Agreed Actions
|
|
314
|
-
|
|
315
|
-
1. **Immediate (This Sprint):**
|
|
316
|
-
- Strengthen advisory text for top 5 skills (Solution 1)
|
|
317
|
-
- Restructure pressure test cases (Solution 3)
|
|
318
|
-
- Run 30-case baseline study for statistical validity
|
|
319
|
-
|
|
320
|
-
2. **Short-term (Next Sprint):**
|
|
321
|
-
- Implement verification hooks for critical skills (Solution 2 partial)
|
|
322
|
-
- Add compliance monitoring dashboard
|
|
323
|
-
- Create SLA definitions
|
|
324
|
-
|
|
325
|
-
3. **Long-term (Quarterly):**
|
|
326
|
-
- Full enforcement framework
|
|
327
|
-
- Automated regression testing
|
|
328
|
-
- Performance optimization
|
|
329
|
-
|
|
330
|
-
### Success Criteria
|
|
331
|
-
|
|
332
|
-
| Metric | Current | 30-Day Target | 90-Day Target |
|
|
333
|
-
|--------|---------|---------------|---------------|
|
|
334
|
-
| Baseline pass rate | 75% | 85% | 95% |
|
|
335
|
-
| Pressure pass rate | 0% | 40% | 80% |
|
|
336
|
-
| Token overhead | 1.3x | 1.2x | 1.1x |
|
|
337
|
-
| Test coverage | 6 cases | 30 cases | 100 cases |
|
|
338
|
-
|
|
339
|
-
---
|
|
340
|
-
|
|
341
|
-
## Appendix: Detailed Metrics
|
|
342
|
-
|
|
343
|
-
### A. Token Analysis
|
|
344
|
-
|
|
345
|
-
**Current Token Usage:**
|
|
346
|
-
- Baseline tasks: ~500 tokens (vanilla) vs ~650 tokens (harness)
|
|
347
|
-
- Complex tasks: ~2000 tokens (vanilla) vs ~1500 tokens (harness)
|
|
348
|
-
- Pressure tasks: ~1000 tokens (vanilla) vs ~1200 tokens (harness)
|
|
349
|
-
|
|
350
|
-
**Optimization Opportunities:**
|
|
351
|
-
1. Reduce skill loading overhead: -100 tokens
|
|
352
|
-
2. Compress advisory text: -50 tokens
|
|
353
|
-
3. Cache repeated patterns: -75 tokens
|
|
354
|
-
|
|
355
|
-
### B. Step Analysis
|
|
356
|
-
|
|
357
|
-
**Current Step Counts:**
|
|
358
|
-
- Bug fix: 3 steps (vanilla) vs 4 steps (harness)
|
|
359
|
-
- Refactor: 15 steps (vanilla) vs 11 steps (harness)
|
|
360
|
-
- Verification: 0 steps (vanilla) vs 1 step (harness)
|
|
361
|
-
|
|
362
|
-
**Optimization Opportunities:**
|
|
363
|
-
1. Parallelize skill loading: -1 step
|
|
364
|
-
2. Skip unnecessary checks: -0.5 steps
|
|
365
|
-
3. Batch similar operations: -0.5 steps
|
|
366
|
-
|
|
367
|
-
### C. Reliability Analysis
|
|
368
|
-
|
|
369
|
-
**Failure Modes:**
|
|
370
|
-
1. **Advisory Override:** 60% of failures (pressure cases)
|
|
371
|
-
2. **Incomplete Enforcement:** 25% of failures (baseline cases)
|
|
372
|
-
3. **Test Flakiness:** 15% of failures (measurement noise)
|
|
373
|
-
|
|
374
|
-
**Mitigation Strategies:**
|
|
375
|
-
1. Add explicit "NEVER" statements to skills
|
|
376
|
-
2. Implement post-condition checks
|
|
377
|
-
3. Increase sample size for statistical power
|
|
378
|
-
|
|
379
|
-
---
|
|
380
|
-
|
|
381
|
-
**Document Version:** 1.0
|
|
382
|
-
**Last Updated:** 2026-08-27
|
|
383
|
-
**Status:** Approved for implementation
|