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,73 @@
|
|
|
1
|
+
# Platform Capability Matrix
|
|
2
|
+
|
|
3
|
+
This is the repository-wide source of truth for current platform integration, installation, and enforcement claims. The machine-readable matrix is [platform-compatibility.json](platform-compatibility.json); this page explains its evidence boundaries and the most important operator-facing paths.
|
|
4
|
+
|
|
5
|
+
## Evidence policy
|
|
6
|
+
|
|
7
|
+
The matrix separates standalone Agent Skills from plugin support, bundled skills, lifecycle hooks, project/global scope, install/uninstall symmetry, assets/references, update/sync, and live-host verification. A package or deterministic mechanism test cannot be promoted to `Live verified` without a preserved real-host session, import report, or portal artifact.
|
|
8
|
+
|
|
9
|
+
Statuses are intentionally explicit:
|
|
10
|
+
|
|
11
|
+
- `Supported`: official/native host support and a verified Harness path.
|
|
12
|
+
- `Mechanism verified`: the repository package, adapter, or installer contract passes; a real host run is not confirmed.
|
|
13
|
+
- `Live verified`: preserved evidence shows a real host session or portal operation.
|
|
14
|
+
- `Partial`: only part of the capability is available or verified.
|
|
15
|
+
- `Unsupported`: official host documentation explicitly rules out the capability.
|
|
16
|
+
- `Unknown`: the capability or its current host behavior was not established.
|
|
17
|
+
|
|
18
|
+
All current `liveHostVerification` rows are `Unknown`. This checkout contains deterministic package and installer evidence, but no fresh host-session artifacts, managed-workspace import report, or public OpenAI approval record.
|
|
19
|
+
|
|
20
|
+
## Current capability summary
|
|
21
|
+
|
|
22
|
+
| Platform surface | Standalone skills | Plugin support | Hooks/lifecycle | Project scope | Global scope | Current evidence boundary |
|
|
23
|
+
| --- | --- | --- | --- | --- | --- | --- |
|
|
24
|
+
| Codex | `Supported` | `Mechanism verified` | `Mechanism verified` for the local OpenAI package, including session, prompt, supported-tool, subagent, and stop hooks | `.agents/skills/`, `AGENTS.md` | `~/.agents/skills/` | Local package hooks are mechanically checked; live loading and marketplace refresh remain `Unknown`. |
|
|
25
|
+
| ChatGPT / OpenAI Plugin | `Unknown` for a repository-local standalone path | `Mechanism verified` | `Partial`: local Work/Codex hooks are separate from ordinary Chat | Managed workspace marketplace | Not established | The public Skills-only bundle is mechanically reproducible; import, approval, and live behavior remain `Unknown`. |
|
|
26
|
+
| Claude Code | `Supported` | `Supported` | `Mechanism verified` for Harness configuration | `.claude/skills/` | `~/.claude/skills/` | Native Claude surfaces are documented and package/installer checks pass; fresh-host execution is not preserved here. |
|
|
27
|
+
| OpenCode | `Supported` | `Mechanism verified` | `Mechanism verified` against `tool.execute.*` and `session.idle` | `.opencode/skills/`, `.agents/skills/`, `.opencode/plugins/` | `~/.config/opencode/skills/`, `~/.agents/skills/`, `~/.config/opencode/plugins/` | The real adapter API is tested, but live plugin loading remains unverified. |
|
|
28
|
+
| GitHub Copilot agent surfaces | `Supported` | `Unknown` for a Harness-specific plugin install | `Unknown` | `.github/skills/`, `.agents/skills/`, repository instructions | `~/.copilot/skills/`, `~/.agents/skills/` | GitHub Agent Skills paths and installer behavior are checked; no live Copilot session or plugin install is preserved. |
|
|
29
|
+
| Cursor | `Supported` | `Mechanism verified` for the portable package shape | `Unknown` for Harness | `.cursor/skills/`, `.agents/skills/` | `~/.cursor/skills/`, `~/.agents/skills/` | Official paths and package shape are checked; Cursor plugin loading and hooks remain unverified. |
|
|
30
|
+
| Continue.dev | `Unknown` for standalone `SKILL.md` discovery | `Unknown` | `Unknown` | `.continue/rules/` is documented; `.continue/skills/` is only an installer candidate | `~/.continue/skills/` is only an installer candidate | The reviewed official docs establish rules, not an Agent Skills host contract. |
|
|
31
|
+
| Hermes Agent | `Supported` | `Unknown` | `Unknown` | `.hermes/skills/` or trusted `.agents/skills/` | `~/.hermes/skills/` | Skill installation and ownership are tested; project loading still follows Hermes trust, and no live session is preserved. |
|
|
32
|
+
|
|
33
|
+
The full ten-dimension entries and official source URLs are in [platform-compatibility.json](platform-compatibility.json). “Supported” in the standalone-skills column refers to the host’s documented skill surface plus the repository’s verified path contract; it does not mean that a live Harness session was run on every platform.
|
|
34
|
+
|
|
35
|
+
## Installer target contract
|
|
36
|
+
|
|
37
|
+
The general installer’s target paths are tested independently from host discovery. This prevents a successful file copy from being reported as proof that an agent will load the file.
|
|
38
|
+
|
|
39
|
+
| Installer target | Project scope | User/global scope | Host-support note |
|
|
40
|
+
| --- | --- | --- | --- |
|
|
41
|
+
| Claude Code | `.claude/skills/` | `~/.claude/skills/` | Official skill locations |
|
|
42
|
+
| Cursor | `.cursor/skills/` | `~/.agents/skills/` | Official Agent Skills compatibility path |
|
|
43
|
+
| GitHub Copilot agent surfaces | `.github/skills/` | `~/.agents/skills/` | Official project/global Agent Skills paths |
|
|
44
|
+
| Codex | `.agents/skills/` | `~/.agents/skills/` | Official Agent Skills paths; `AGENTS.md` is separate instruction context |
|
|
45
|
+
| Continue.dev | `.continue/skills/` | `~/.continue/skills/` | Installer adapter candidate; host discovery is `Unknown` from reviewed official docs |
|
|
46
|
+
| Hermes Agent | `.agents/skills/` | `~/.hermes/skills/` | Project loading is subject to Hermes trust |
|
|
47
|
+
|
|
48
|
+
These targets apply to both default link mode and explicit `--copy` mode. A canonical store is only a deduplication detail; it cannot make an unsupported host path supported. Install/uninstall tests also protect user-owned files and cover Linux, Windows, and macOS round-trip fixtures.
|
|
49
|
+
|
|
50
|
+
## Codex / local OpenAI plugin boundary
|
|
51
|
+
|
|
52
|
+
Codex has two paths that must not be collapsed:
|
|
53
|
+
|
|
54
|
+
1. The general `--codex` installer writes advisory `AGENTS.md` plus repo-scoped skills under `.agents/skills/`.
|
|
55
|
+
2. The local OpenAI plugin at `plugins/harness-everything/` packages the skills plus lifecycle hooks for session start, prompt routing, supported local tool calls, subagent lifecycle, and stop verification. Those hooks are mechanically checked, but no live plugin/session artifact is committed.
|
|
56
|
+
|
|
57
|
+
The package is tested at the mechanism layer and remains subject to the host’s hook review/trust flow. A fresh host session is still required before claiming that a particular ChatGPT/Codex installation loaded and fired the hooks.
|
|
58
|
+
|
|
59
|
+
The public OpenAI Skills-only plugin is narrower again. Its ZIP contains the packaged `skills/` tree and referenced files, but not the local `.codex-plugin` lifecycle hooks. Public submission readiness is therefore a package/form contract, not evidence of public-directory approval or live hook execution.
|
|
60
|
+
|
|
61
|
+
## Install/uninstall ownership boundary
|
|
62
|
+
|
|
63
|
+
The general installer merges shared files only through Harness-owned markers and removes only manifest-tracked artifacts. Malformed configuration and pre-existing user-owned files fail closed. Install/uninstall round-trip coverage protects user skills and runs on Linux, Windows, and macOS fixtures.
|
|
64
|
+
|
|
65
|
+
## OpenCode boundary
|
|
66
|
+
|
|
67
|
+
The OpenCode adapter uses the documented plugin API and has deterministic mechanism coverage. That proves the implementation contract only. **Live plugin loading remains unverified** until a real OpenCode session artifact demonstrates that the host loaded and fired the module.
|
|
68
|
+
|
|
69
|
+
## Official sources
|
|
70
|
+
|
|
71
|
+
The matrix records the official documentation reviewed for each platform. Important source families include [OpenAI plugin packaging](https://developers.openai.com/plugins/build/plugins), [OpenAI public submission](https://developers.openai.com/plugins/deploy/submission), [Codex skills](https://learn.chatgpt.com/docs/build-skills), [Codex hooks](https://learn.chatgpt.com/docs/hooks), [Claude skills](https://code.claude.com/docs/en/skills), [OpenCode skills](https://opencode.ai/docs/skills), [GitHub Copilot Agent Skills](https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills), [Cursor skills](https://cursor.com/docs/skills), [Continue rules](https://docs.continue.dev/customize/rules), and [Hermes skills](https://hermes-agent.nousresearch.com/docs/user-guide/features/skills).
|
|
72
|
+
|
|
73
|
+
When a platform behavior changes, update this page, `docs/platform-compatibility.json`, and every affected current-state surface in the same change. `npm run test:docs:capabilities` and the compatibility mechanism suite enforce the repository-side contract; they do not replace manual live-host evidence.
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": "harness-platform-compatibility-v1",
|
|
3
|
+
"last_reviewed": "2026-09-14",
|
|
4
|
+
"status_vocabulary": {
|
|
5
|
+
"Supported": "An official or native mechanism exists and the Harness behavior is verified.",
|
|
6
|
+
"Mechanism verified": "Harness package, adapter, or installer checks pass, but a real host run is not confirmed.",
|
|
7
|
+
"Live verified": "A real host session or portal operation produced preserved evidence.",
|
|
8
|
+
"Partial": "Only part of the capability is available or verified.",
|
|
9
|
+
"Unsupported": "The host explicitly does not provide the required mechanism.",
|
|
10
|
+
"Unknown": "The capability was not verified or the official documentation does not establish it."
|
|
11
|
+
},
|
|
12
|
+
"dimensions": [
|
|
13
|
+
"standaloneSkills",
|
|
14
|
+
"pluginSupport",
|
|
15
|
+
"bundledSkills",
|
|
16
|
+
"hooksLifecycle",
|
|
17
|
+
"projectScope",
|
|
18
|
+
"globalScope",
|
|
19
|
+
"installUninstallSymmetry",
|
|
20
|
+
"assetsReferences",
|
|
21
|
+
"updateSync",
|
|
22
|
+
"liveHostVerification"
|
|
23
|
+
],
|
|
24
|
+
"installer_targets": {
|
|
25
|
+
"codex": {
|
|
26
|
+
"project": ".agents/skills",
|
|
27
|
+
"global": "~/.agents/skills",
|
|
28
|
+
"host_discovery_status": "Supported"
|
|
29
|
+
},
|
|
30
|
+
"chatgpt-openai-plugin": {
|
|
31
|
+
"project": "managed workspace marketplace",
|
|
32
|
+
"global": "not established",
|
|
33
|
+
"host_discovery_status": "Unknown"
|
|
34
|
+
},
|
|
35
|
+
"claude-code": {
|
|
36
|
+
"project": ".claude/skills",
|
|
37
|
+
"global": "~/.claude/skills",
|
|
38
|
+
"host_discovery_status": "Supported"
|
|
39
|
+
},
|
|
40
|
+
"opencode": {
|
|
41
|
+
"project": ".opencode/skills or .agents/skills",
|
|
42
|
+
"global": "~/.config/opencode/skills or ~/.agents/skills",
|
|
43
|
+
"host_discovery_status": "Supported"
|
|
44
|
+
},
|
|
45
|
+
"github-copilot": {
|
|
46
|
+
"project": ".github/skills",
|
|
47
|
+
"global": "~/.agents/skills",
|
|
48
|
+
"host_discovery_status": "Supported"
|
|
49
|
+
},
|
|
50
|
+
"cursor": {
|
|
51
|
+
"project": ".cursor/skills",
|
|
52
|
+
"global": "~/.agents/skills",
|
|
53
|
+
"host_discovery_status": "Supported"
|
|
54
|
+
},
|
|
55
|
+
"continue": {
|
|
56
|
+
"project": ".continue/skills",
|
|
57
|
+
"global": "~/.continue/skills",
|
|
58
|
+
"host_discovery_status": "Unknown"
|
|
59
|
+
},
|
|
60
|
+
"hermes": {
|
|
61
|
+
"project": ".agents/skills",
|
|
62
|
+
"global": "~/.hermes/skills",
|
|
63
|
+
"host_discovery_status": "Supported"
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
"action_gate": {
|
|
67
|
+
"policy_version": 1,
|
|
68
|
+
"mechanism_status": "Mechanism verified",
|
|
69
|
+
"rule_table": "hooks/scripts/action-gate-rules.json",
|
|
70
|
+
"audit_scope": "workspace-keyed global state / per-session action-gate records",
|
|
71
|
+
"hosts": {
|
|
72
|
+
"claude-code": {
|
|
73
|
+
"ask_decision": "Mechanism verified",
|
|
74
|
+
"permission_mode_matrix": "Mechanism verified",
|
|
75
|
+
"fallback": "defer-to-host",
|
|
76
|
+
"notes": "By default a matched command returns no permission decision, so the session's permission mode, rules and auto-mode classifier decide. The hooks reference documents that a hook ask forces a prompt even in auto mode (#107). Deterministic tests verify the deferred result for every permission_mode value and the ask JSON of the opt-in HARNESS_ACTION_GATE_POLICY=always-ask. Live evidence (2026-09-15, plugin 0.3.8-beta, auto mode) showed the earlier forced ask prompting the user; the deferred behavior has no preserved live evidence yet."
|
|
77
|
+
},
|
|
78
|
+
"codex": {
|
|
79
|
+
"ask_decision": "Unsupported",
|
|
80
|
+
"permission_mode_matrix": "Unknown",
|
|
81
|
+
"fallback": "exit-2-block",
|
|
82
|
+
"notes": "Current Codex PreToolUse parses permissionDecision=ask but does not support it; Codex reports the hook failure and continues the tool call. Harness therefore uses exit 2 for matched destructive actions rather than relying on ask semantics."
|
|
83
|
+
},
|
|
84
|
+
"chatgpt-openai-plugin": {
|
|
85
|
+
"ask_decision": "Unknown",
|
|
86
|
+
"permission_mode_matrix": "Unknown",
|
|
87
|
+
"fallback": "exit-2-block",
|
|
88
|
+
"notes": "Public skills-only distribution does not include local lifecycle hooks; local plugin hook semantics remain a separate host capability."
|
|
89
|
+
},
|
|
90
|
+
"other": {
|
|
91
|
+
"ask_decision": "Unknown",
|
|
92
|
+
"permission_mode_matrix": "Unknown",
|
|
93
|
+
"fallback": "exit-2-block",
|
|
94
|
+
"notes": "A matched action fails closed until that host has a Harness-verified ask-style decision contract."
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
"platforms": [
|
|
99
|
+
{
|
|
100
|
+
"id": "codex",
|
|
101
|
+
"name": "Codex",
|
|
102
|
+
"official_sources": [
|
|
103
|
+
"https://learn.chatgpt.com/docs/build-skills",
|
|
104
|
+
"https://learn.chatgpt.com/docs/build-plugins",
|
|
105
|
+
"https://learn.chatgpt.com/docs/hooks",
|
|
106
|
+
"https://learn.chatgpt.com/docs/agent-configuration/agents-md"
|
|
107
|
+
],
|
|
108
|
+
"capabilities": {
|
|
109
|
+
"standaloneSkills": {"status": "Supported", "paths": {"project": [".agents/skills"], "global": ["~/.agents/skills"]}},
|
|
110
|
+
"pluginSupport": {"status": "Mechanism verified", "paths": {"manifest": ["plugin.json", ".codex-plugin/plugin.json"]}},
|
|
111
|
+
"bundledSkills": {"status": "Mechanism verified", "notes": "The local package contains a root skills/ tree."},
|
|
112
|
+
"hooksLifecycle": {"status": "Mechanism verified", "notes": "Codex-supported SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, SubagentStart, SubagentStop, and Stop are covered by package checks; the plugin intentionally does not declare unsupported PostToolUseFailure. Non-managed hooks still require trust."},
|
|
113
|
+
"projectScope": {"status": "Mechanism verified", "paths": {"skills": [".agents/skills"], "instructions": ["AGENTS.md"]}},
|
|
114
|
+
"globalScope": {"status": "Mechanism verified", "paths": {"skills": ["~/.agents/skills"]}},
|
|
115
|
+
"installUninstallSymmetry": {"status": "Mechanism verified", "notes": "Harness installer round-trip checks cover owned files and user-owned collisions."},
|
|
116
|
+
"assetsReferences": {"status": "Mechanism verified", "notes": "Packaged skill references are checked and remain inside the package."},
|
|
117
|
+
"updateSync": {"status": "Unknown", "notes": "A real marketplace refresh has not been run in a Codex host."},
|
|
118
|
+
"liveHostVerification": {"status": "Unknown", "notes": "No preserved Codex plugin/session artifact is committed."}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "chatgpt-openai-plugin",
|
|
123
|
+
"name": "ChatGPT / OpenAI Plugin",
|
|
124
|
+
"official_sources": [
|
|
125
|
+
"https://help.openai.com/en/articles/20001256-plugins-in-codex",
|
|
126
|
+
"https://help.openai.com/en/articles/20001504-importing-and-syncing-plugin-marketplaces-from-github",
|
|
127
|
+
"https://developers.openai.com/plugins/build/plugins",
|
|
128
|
+
"https://developers.openai.com/plugins/deploy/submission"
|
|
129
|
+
],
|
|
130
|
+
"capabilities": {
|
|
131
|
+
"standaloneSkills": {"status": "Unknown", "notes": "The reviewed OpenAI docs establish plugin skills and personal skills, not a repository-local standalone path for ChatGPT."},
|
|
132
|
+
"pluginSupport": {"status": "Mechanism verified", "paths": {"marketplace": [".agents/plugins/marketplace.json", ".claude-plugin/marketplace.json"], "manifest": ["plugin.json", ".codex-plugin/plugin.json"]}},
|
|
133
|
+
"bundledSkills": {"status": "Mechanism verified", "notes": "The public submission builder produces a skills-only ZIP."},
|
|
134
|
+
"hooksLifecycle": {"status": "Partial", "notes": "Local Codex/ChatGPT Work hooks are separate from ordinary Chat, and the public skills-only bundle excludes local hooks."},
|
|
135
|
+
"projectScope": {"status": "Partial", "notes": "GitHub marketplace import is a managed-workspace flow; local project installation is not live verified."},
|
|
136
|
+
"globalScope": {"status": "Unknown", "notes": "No public evidence establishes a user-global scope for this package."},
|
|
137
|
+
"installUninstallSymmetry": {"status": "Unknown", "notes": "No live install/uninstall report has been preserved."},
|
|
138
|
+
"assetsReferences": {"status": "Mechanism verified", "notes": "The skills-only builder includes referenced skill files and excludes host hooks."},
|
|
139
|
+
"updateSync": {"status": "Mechanism verified", "notes": "The repository has supported marketplace manifests; GitHub Sync now remains a manual live check."},
|
|
140
|
+
"liveHostVerification": {"status": "Unknown", "notes": "No import report, fresh-workspace smoke log, or public approval artifact is committed."}
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"id": "claude-code",
|
|
145
|
+
"name": "Claude Code",
|
|
146
|
+
"official_sources": [
|
|
147
|
+
"https://code.claude.com/docs/en/skills",
|
|
148
|
+
"https://code.claude.com/docs/en/plugins",
|
|
149
|
+
"https://code.claude.com/docs/en/plugin-evals",
|
|
150
|
+
"https://code.claude.com/docs/en/hooks",
|
|
151
|
+
"https://code.claude.com/docs/en/permissions"
|
|
152
|
+
],
|
|
153
|
+
"capabilities": {
|
|
154
|
+
"standaloneSkills": {"status": "Supported", "paths": {"project": [".claude/skills"], "global": ["~/.claude/skills"]}},
|
|
155
|
+
"pluginSupport": {"status": "Supported", "paths": {"manifest": [".claude-plugin/plugin.json"], "skills": ["skills/"]}},
|
|
156
|
+
"bundledSkills": {"status": "Mechanism verified", "notes": "The local Claude package layout and canonical skill copies are validated."},
|
|
157
|
+
"hooksLifecycle": {"status": "Mechanism verified", "notes": "Claude hook configuration and command contracts are covered by deterministic tests."},
|
|
158
|
+
"projectScope": {"status": "Mechanism verified", "paths": {"skills": [".claude/skills"], "hooks": [".claude/settings.json"]}},
|
|
159
|
+
"globalScope": {"status": "Mechanism verified", "paths": {"skills": ["~/.claude/skills"], "hooks": ["~/.claude/settings.json"]}},
|
|
160
|
+
"installUninstallSymmetry": {"status": "Mechanism verified", "notes": "Owned settings, skills, agents, and user files are covered by round-trip tests."},
|
|
161
|
+
"assetsReferences": {"status": "Mechanism verified", "notes": "Skill-local references, scripts, and templates are checked."},
|
|
162
|
+
"updateSync": {"status": "Unknown", "notes": "A live marketplace update has not been run in Claude Code."},
|
|
163
|
+
"liveHostVerification": {"status": "Unknown", "notes": "No fresh Claude Code plugin session artifact is committed for this revision."}
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"id": "opencode",
|
|
168
|
+
"name": "OpenCode",
|
|
169
|
+
"official_sources": [
|
|
170
|
+
"https://opencode.ai/docs/skills",
|
|
171
|
+
"https://opencode.ai/docs/plugins/"
|
|
172
|
+
],
|
|
173
|
+
"capabilities": {
|
|
174
|
+
"standaloneSkills": {"status": "Supported", "paths": {"project": [".opencode/skills", ".agents/skills", ".claude/skills"], "global": ["~/.config/opencode/skills", "~/.agents/skills", "~/.claude/skills"]}},
|
|
175
|
+
"pluginSupport": {"status": "Mechanism verified", "paths": {"project": [".opencode/plugins"], "global": ["~/.config/opencode/plugins"]}},
|
|
176
|
+
"bundledSkills": {"status": "Partial", "notes": "Harness provides a standalone enforcement module; it is not an OpenCode bundled-skill package."},
|
|
177
|
+
"hooksLifecycle": {"status": "Mechanism verified", "notes": "tool.execute.before, tool.execute.after, and session.idle are covered against the documented plugin API."},
|
|
178
|
+
"projectScope": {"status": "Mechanism verified", "paths": {"skills": [".opencode/skills", ".agents/skills"], "plugins": [".opencode/plugins"]}},
|
|
179
|
+
"globalScope": {"status": "Mechanism verified", "paths": {"skills": ["~/.config/opencode/skills", "~/.agents/skills"], "plugins": ["~/.config/opencode/plugins"]}},
|
|
180
|
+
"installUninstallSymmetry": {"status": "Unknown", "notes": "The adapter is manually copied; Harness does not own an OpenCode install/uninstall flow."},
|
|
181
|
+
"assetsReferences": {"status": "Mechanism verified", "notes": "The adapter is self-contained and skill references are separately checked."},
|
|
182
|
+
"updateSync": {"status": "Unknown", "notes": "No live OpenCode refresh or npm plugin update is preserved."},
|
|
183
|
+
"liveHostVerification": {"status": "Unknown", "notes": "The real OpenCode host has not loaded the module in a preserved session artifact."}
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"id": "github-copilot",
|
|
188
|
+
"name": "GitHub Copilot agent surfaces",
|
|
189
|
+
"official_sources": [
|
|
190
|
+
"https://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-cloud-agent/add-skills",
|
|
191
|
+
"https://docs.github.com/en/copilot/concepts/agents/about-agent-skills",
|
|
192
|
+
"https://docs.github.com/en/copilot/concepts/agents"
|
|
193
|
+
],
|
|
194
|
+
"capabilities": {
|
|
195
|
+
"standaloneSkills": {"status": "Supported", "paths": {"project": [".github/skills", ".agents/skills"], "global": ["~/.copilot/skills", "~/.agents/skills"]}},
|
|
196
|
+
"pluginSupport": {"status": "Unknown", "notes": "Copilot documents installable plugins, but this repository has no Copilot-specific plugin manifest or live install evidence."},
|
|
197
|
+
"bundledSkills": {"status": "Unknown", "notes": "The portable package is not verified in a Copilot plugin host."},
|
|
198
|
+
"hooksLifecycle": {"status": "Unknown", "notes": "Copilot plugin hooks are not part of the Harness package tested here."},
|
|
199
|
+
"projectScope": {"status": "Mechanism verified", "paths": {"skills": [".github/skills", ".agents/skills"], "instructions": [".github/copilot-instructions.md"]}},
|
|
200
|
+
"globalScope": {"status": "Mechanism verified", "paths": {"skills": ["~/.copilot/skills", "~/.agents/skills"]}},
|
|
201
|
+
"installUninstallSymmetry": {"status": "Mechanism verified", "notes": "Harness-owned project/global skill and instruction files have round-trip coverage."},
|
|
202
|
+
"assetsReferences": {"status": "Mechanism verified", "notes": "The Agent Skills layout permits referenced scripts/resources; repository references are checked."},
|
|
203
|
+
"updateSync": {"status": "Unknown", "notes": "No Copilot skill reload or plugin marketplace refresh has been run here."},
|
|
204
|
+
"liveHostVerification": {"status": "Unknown", "notes": "No Copilot agent session artifact is committed."}
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"id": "cursor",
|
|
209
|
+
"name": "Cursor",
|
|
210
|
+
"official_sources": [
|
|
211
|
+
"https://cursor.com/docs/skills",
|
|
212
|
+
"https://cursor.com/docs/plugins",
|
|
213
|
+
"https://prod.cursor.com/help/customization/rules"
|
|
214
|
+
],
|
|
215
|
+
"capabilities": {
|
|
216
|
+
"standaloneSkills": {"status": "Supported", "paths": {"project": [".agents/skills", ".cursor/skills"], "global": ["~/.agents/skills", "~/.cursor/skills"]}},
|
|
217
|
+
"pluginSupport": {"status": "Mechanism verified", "notes": "The package now includes a portable root plugin.json; Cursor-specific loading is not live verified."},
|
|
218
|
+
"bundledSkills": {"status": "Mechanism verified", "paths": {"skills": ["skills/<name>/SKILL.md"]}},
|
|
219
|
+
"hooksLifecycle": {"status": "Unknown", "notes": "Cursor plugin hooks use Cursor-specific components; Harness does not claim their execution."},
|
|
220
|
+
"projectScope": {"status": "Mechanism verified", "paths": {"skills": [".agents/skills", ".cursor/skills"], "rules": [".cursor/rules"]}},
|
|
221
|
+
"globalScope": {"status": "Mechanism verified", "paths": {"skills": ["~/.agents/skills", "~/.cursor/skills"]}},
|
|
222
|
+
"installUninstallSymmetry": {"status": "Unknown", "notes": "The Harness installer manages skill files, not Cursor's plugin marketplace installation."},
|
|
223
|
+
"assetsReferences": {"status": "Mechanism verified", "notes": "Portable skill files and referenced resources are present and checked."},
|
|
224
|
+
"updateSync": {"status": "Unknown", "notes": "No Cursor local-plugin reload or marketplace refresh has been run here."},
|
|
225
|
+
"liveHostVerification": {"status": "Unknown", "notes": "No Cursor session artifact is committed."}
|
|
226
|
+
}
|
|
227
|
+
},
|
|
228
|
+
{
|
|
229
|
+
"id": "continue",
|
|
230
|
+
"name": "Continue.dev",
|
|
231
|
+
"official_sources": [
|
|
232
|
+
"https://docs.continue.dev/customize/rules",
|
|
233
|
+
"https://docs.continue.dev/customize/deep-dives/rules"
|
|
234
|
+
],
|
|
235
|
+
"capabilities": {
|
|
236
|
+
"standaloneSkills": {"status": "Unknown", "notes": "The reviewed Continue documentation establishes .continue/rules, not an Agent Skills discovery path."},
|
|
237
|
+
"pluginSupport": {"status": "Unknown", "notes": "No compatible Continue plugin package or official plugin discovery path was verified."},
|
|
238
|
+
"bundledSkills": {"status": "Unknown", "notes": "The installer target .continue/skills is retained as an adapter candidate, not a host-supported claim."},
|
|
239
|
+
"hooksLifecycle": {"status": "Unknown", "notes": "No official lifecycle hook contract was identified in the reviewed Continue sources."},
|
|
240
|
+
"projectScope": {"status": "Mechanism verified", "paths": {"rules": [".continue/rules"]}},
|
|
241
|
+
"globalScope": {"status": "Unknown", "notes": "A global skill/plugin scope is not established by the reviewed sources."},
|
|
242
|
+
"installUninstallSymmetry": {"status": "Mechanism verified", "notes": "Harness rule-file ownership and collision behavior are tested; skill loading remains unknown."},
|
|
243
|
+
"assetsReferences": {"status": "Unknown", "notes": "No official Continue skill package contract was verified."},
|
|
244
|
+
"updateSync": {"status": "Unknown", "notes": "No Continue refresh mechanism was verified."},
|
|
245
|
+
"liveHostVerification": {"status": "Unknown", "notes": "No Continue session artifact is committed."}
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"id": "hermes",
|
|
250
|
+
"name": "Hermes Agent",
|
|
251
|
+
"official_sources": [
|
|
252
|
+
"https://hermes-agent.nousresearch.com/docs/user-guide/features/skills",
|
|
253
|
+
"https://hermes-agent.nousresearch.com/docs/developer-guide/creating-skills",
|
|
254
|
+
"https://hermes-agent.nousresearch.com/docs/guides/work-with-skills"
|
|
255
|
+
],
|
|
256
|
+
"capabilities": {
|
|
257
|
+
"standaloneSkills": {"status": "Supported", "paths": {"project": [".hermes/skills", ".agents/skills"], "global": ["~/.hermes/skills"]}},
|
|
258
|
+
"pluginSupport": {"status": "Unknown", "notes": "Hermes documents plugins as an extension surface, but no compatible Harness plugin package is verified."},
|
|
259
|
+
"bundledSkills": {"status": "Mechanism verified", "notes": "The installer writes the documented skill tree; project skills remain subject to Hermes trust."},
|
|
260
|
+
"hooksLifecycle": {"status": "Unknown", "notes": "No Hermes lifecycle hook contract is claimed by Harness."},
|
|
261
|
+
"projectScope": {"status": "Mechanism verified", "paths": {"skills": [".hermes/skills", ".agents/skills"], "trust": ["hermes skills trust"]}},
|
|
262
|
+
"globalScope": {"status": "Mechanism verified", "paths": {"skills": ["~/.hermes/skills"]}},
|
|
263
|
+
"installUninstallSymmetry": {"status": "Mechanism verified", "notes": "Harness-owned Hermes skill and detection-marker round trips are tested."},
|
|
264
|
+
"assetsReferences": {"status": "Mechanism verified", "notes": "Skill-local references and scripts are retained in the installed tree and checked."},
|
|
265
|
+
"updateSync": {"status": "Unknown", "notes": "Hermes bundled-skill update behavior is documented, but Harness source refresh is not live verified."},
|
|
266
|
+
"liveHostVerification": {"status": "Unknown", "notes": "No Hermes session artifact is committed."}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
]
|
|
270
|
+
}
|
package/docs/reflection.md
CHANGED
|
@@ -1,48 +1,63 @@
|
|
|
1
1
|
# Harness Reflection, Memory & Self-Evolution
|
|
2
2
|
|
|
3
|
-
AI models
|
|
3
|
+
AI models can forget lessons learned in previous coding sessions. When a bug is solved, a later session may encounter the same environment quirk or framework gotcha and repeat the same mistake.
|
|
4
4
|
|
|
5
|
-
Harness
|
|
5
|
+
Harness addresses this with two deliberately separate concepts:
|
|
6
|
+
|
|
7
|
+
1. **Runtime session state** — checkpoints/WAL-style state on integration surfaces that actually package the corresponding lifecycle/tool hooks.
|
|
8
|
+
2. **Durable workspace learning** — `self-evolve` can persist a verified lesson as a concise rule or reusable generated skill when that persistence is justified.
|
|
9
|
+
|
|
10
|
+
Do not infer runtime-state parity from shared skill text. The current platform boundary is documented in [platform-capabilities.md](platform-capabilities.md).
|
|
6
11
|
|
|
7
12
|
---
|
|
8
13
|
|
|
9
|
-
##
|
|
14
|
+
## Runtime Transaction State & Session Handoff
|
|
15
|
+
|
|
16
|
+
The Claude Code hook path uses `hooks/scripts/state-persist.js` and `bootstrap.js` to maintain bounded runtime state and recover useful context across supported sessions.
|
|
10
17
|
|
|
11
|
-
|
|
18
|
+
On a surface that packages those mechanisms:
|
|
12
19
|
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
20
|
+
* **Outcome capture:** supported tool outcomes/milestones can update the session transaction state.
|
|
21
|
+
* **Handoff checkpoint:** a session checkpoint can record pending/failed state for later recovery.
|
|
22
|
+
* **Session-start recovery:** a compatible session-start hook can surface that checkpoint back to the agent.
|
|
23
|
+
|
|
24
|
+
This is a runtime integration feature, not a property of every Harness skill installation. The **Codex / local OpenAI plugin** packages the session/prompt hooks plus the supported-tool `state-persist.js` / circuit-breaker / `PostToolUse` runtime and stop/subagent adapters. That is mechanism-tested package coverage, not proof that a live host loaded every hook. The public OpenAI **Skills-only** artifact has no local `.codex-plugin` lifecycle hooks at all.
|
|
16
25
|
|
|
17
26
|
---
|
|
18
27
|
|
|
19
28
|
## Long-term Memory & Workspace Rules
|
|
20
29
|
|
|
21
|
-
When a complex issue—such as an environment-specific bug,
|
|
30
|
+
When a complex issue — such as an environment-specific bug, unique framework quirk, or custom build requirement — is successfully resolved, the agent may use `self-evolve` to decide whether the verified lesson deserves durable persistence:
|
|
31
|
+
|
|
32
|
+
1. **Deep Reflection:** establish the actual root cause and supporting evidence rather than persisting a guess.
|
|
33
|
+
2. **Rule Generation:** abstract the lesson into a concise rule when a simple local reminder is enough.
|
|
34
|
+
3. **Memory vs. Dynamic Skill Judgment:** decide whether the insight is a simple localized tip or a reusable multi-step procedure. Packaging every lesson as a skill would create unnecessary context and maintenance cost.
|
|
35
|
+
* **Simple Rule (default path):** persist to authorized local workspace rules via `persist-memory.js`.
|
|
36
|
+
* **Dynamic Skill (exception path):** create a standalone `SKILL.md` that satisfies `skill-creator`'s Dynamic Skill Generation Contract and register it through the supported manifest workflow so routing can surface it later.
|
|
37
|
+
4. **Validation Before Persistence:** persistence is allowed only after the relevant validation/self-regression checks establish that the artifact is structurally valid and does not break the repository contract.
|
|
22
38
|
|
|
23
|
-
|
|
24
|
-
2. **Rule Generation:** The model abstracts the learning into a concise rule (avoiding generic prompt prose).
|
|
25
|
-
3. **Memory vs. Dynamic Skill Judgment:** The model decides whether the insight is a simple, localized tip or a reusable, complex procedure — packaging every lesson as a skill would bloat context for no benefit, so this is a deliberate gate, not the default.
|
|
26
|
-
* **Simple Rule (default path):** Appended to local workspace rules (`RULES.md`, or a customized folder) via `persist-memory.js`.
|
|
27
|
-
* **Dynamic Skill (exception path):** Written as a standalone `SKILL.md` under `.claude/harness-everything/skills/generated/<name>/` per `skill-creator`'s Dynamic Skill Generation Contract (with `status: draft` lifecycle metadata and required `triggers:` keywords), then registered via `register-dynamic-skill.js` into `manifest.json`. From there, `tier-router.js` scans and auto-surfaces it in future sessions whenever its triggers match the prompt — closing the loop from "learned once" to "discovered automatically," not just recorded.
|
|
28
|
-
4. **Self-Regression Validation:** Before any new rule or dynamic skill is persisted, Harness executes the `self-regression.js` test suite. This ensures that the generated rules/skills do not conflict with existing core rules and that all script syntax is 100% correct, preventing behavior decay.
|
|
39
|
+
`self-evolve` is not assumed to auto-trigger on every completed task. It is a reusable persistence workflow the agent selects when a lesson is both verified and worth keeping.
|
|
29
40
|
|
|
30
41
|
---
|
|
31
42
|
|
|
32
|
-
## External Skills: A Deliberately
|
|
43
|
+
## External Skills: A Deliberately Different Loop for Third-Party Content
|
|
44
|
+
|
|
45
|
+
`self-evolve`-generated skills are workspace-authored content whose lifecycle Harness can validate and manage. `find-skills` solves a different problem: discovering third-party skills that may change independently of this repository.
|
|
33
46
|
|
|
34
|
-
|
|
47
|
+
Treating those two sources as the same trust tier would create silent drift. A fetched external skill can change upstream, be updated/removed outside Harness, or have metadata that no longer matches a cached copy.
|
|
35
48
|
|
|
36
|
-
|
|
49
|
+
For that reason, `find-skills` prefers live/ephemeral discovery rather than silently converting borrowed content into durable Harness memory. `find-skills/scripts/use-skill.js` wraps the external fetch/apply path behind a content-addressed temporary cache, avoiding repository or manifest pollution for one-off use. Permanent installation remains an explicit user choice rather than the default persistence path.
|
|
37
50
|
|
|
38
|
-
|
|
51
|
+
This separation keeps two questions distinct:
|
|
39
52
|
|
|
40
|
-
|
|
53
|
+
- **What did this workspace learn and intentionally persist?** → `self-evolve` / generated rules or skills.
|
|
54
|
+
- **What external expertise can this task borrow right now?** → `find-skills` / third-party discovery.
|
|
41
55
|
|
|
42
56
|
---
|
|
43
57
|
|
|
44
58
|
## The Benefits of Self-Evolution
|
|
45
59
|
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
60
|
+
* **Immunization:** verified recurring lessons can become durable workspace guidance.
|
|
61
|
+
* **Team Alignment:** project-owned rules/skills can be reviewed and shared through the repository's normal change process.
|
|
62
|
+
* **Token Efficiency:** durable, concise knowledge can reduce repeated rediscovery without pretending every session has universal background memory.
|
|
63
|
+
* **Clear evidence boundary:** session runtime state, durable project knowledge, and third-party borrowed skills remain separate mechanisms with separate trust and lifecycle rules.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# Release evidence
|
|
2
|
+
|
|
3
|
+
This is the repository-facing record of release observations. It separates a release that was actually published from a version that is only prepared in source control. Add a dated row after collecting all four observations in [RELEASING.md](../RELEASING.md).
|
|
4
|
+
|
|
5
|
+
## Observed release
|
|
6
|
+
|
|
7
|
+
The following evidence was collected on 2026-09-07 before the issue #20 integration work:
|
|
8
|
+
|
|
9
|
+
| Version | Registry observation | GitHub release | Workflow run | Gate and publish result |
|
|
10
|
+
| --- | --- | --- | --- | --- |
|
|
11
|
+
| 0.3.6 | `npm view harness-everything version dist-tags --json`: version and latest are `0.3.6` | `v0.3.6`, published 2026-09-01T03:50:44Z | [33466676632](https://github.com/dyphn1/Harness-everything/actions/runs/33466676632), commit `5aa74119d08ff241a7d6fe8f163a6a0d40c3c932` | `gate=success`, `publish=success` |
|
|
12
|
+
|
|
13
|
+
The source capture for this row is the local review artifact `.git/issue-review-20260907/release-evidence.md`. That review artifact is not expected to be present in every checkout; it is historical evidence, not a release artifact shipped in the npm package.
|
|
14
|
+
|
|
15
|
+
## Current review boundary
|
|
16
|
+
|
|
17
|
+
This file is an evidence ledger, not a source of truth for the current package version. Historical rows stay unchanged until all four observations for a newer release are deliberately collected. Current release/runtime configuration must be read from Git history, package metadata, the release workflow, and [repository-contract.md](repository-contract.md), rather than from prose such as the retired `0.3.7-beta` review note.
|
|
18
|
+
|
|
19
|
+
A GitHub tag or source version alone is not enough to add a completed row here; keep using `not observed` when registry, workflow, or publication evidence has not been checked.
|
|
20
|
+
|
|
21
|
+
## Evidence entry template
|
|
22
|
+
|
|
23
|
+
Copy this row for each future release and replace every placeholder with command output or a directly inspectable URL:
|
|
24
|
+
|
|
25
|
+
| `<version>` | `npm view ...`: `<registry version and dist-tags>` | [`v<version>`](https://github.com/dyphn1/Harness-everything/releases) published `<UTC timestamp>` | [`<run-id>`](https://github.com/dyphn1/Harness-everything/actions) commit `<full SHA>` | `gate=<conclusion>`, `publish=<conclusion>` |
|
|
26
|
+
|
|
27
|
+
If a command fails or a field cannot be checked, record `not observed` instead of converting the missing observation into a success claim.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<!-- GENERATED by scripts/repository-contract.js. Run `npm run docs:sync` after workflow/runtime changes. -->
|
|
2
|
+
# Repository runtime and workflow contract
|
|
3
|
+
|
|
4
|
+
This page is generated from checked-in runtime and workflow sources. Do not edit it by hand. Historical audit/evidence documents are intentionally outside this current-state contract.
|
|
5
|
+
|
|
6
|
+
## Runtime
|
|
7
|
+
|
|
8
|
+
- Minimum supported Node.js: **22** (from `package.json#engines.node`: `>=22`)
|
|
9
|
+
- Primary development/CI Node.js: **24** (from `.nvmrc`)
|
|
10
|
+
- Docker verification Node.js: **24** (from `Dockerfile`)
|
|
11
|
+
|
|
12
|
+
## GitHub Actions runtime majors
|
|
13
|
+
|
|
14
|
+
- `actions/checkout`: v7
|
|
15
|
+
- `actions/setup-node`: v7
|
|
16
|
+
|
|
17
|
+
## Active workflows
|
|
18
|
+
|
|
19
|
+
| Workflow | Node.js versions | Explicit triggers | npm quality gates |
|
|
20
|
+
| --- | --- | --- | --- |
|
|
21
|
+
| `behavioral-evals.yml` | 24 | schedule, workflow_dispatch | n/a |
|
|
22
|
+
| `ci.yml` | 22, 24 | workflow_call | `test`, `test:mutations`, `test:consistency`, `test:references`, `test:release`, `test:collision`, `test:plugin:openai`, `test:plugin:submission`, `test:platform:compatibility` |
|
|
23
|
+
| `release.yml` | 24 | workflow_dispatch | n/a |
|
|
24
|
+
|
|
25
|
+
## Drift prevention
|
|
26
|
+
|
|
27
|
+
`npm run test:repo-contract` fails when runtime sources disagree, an active workflow reintroduces an unsupported Node version/action major, the Node 22 compatibility floor is no longer exercised, or this generated document is stale.
|