harness-everything 0.16.0 → 0.16.2

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.
Files changed (111) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/AGENTS.md +2 -2
  4. package/CHANGELOG.md +14 -0
  5. package/README.md +7 -7
  6. package/VERIFICATION.md +3 -3
  7. package/behavioral-evals/PAIRED-BENCHMARK.md +3 -3
  8. package/behavioral-evals/README.md +38 -32
  9. package/behavioral-evals/opencode-hardlock-live.js +6 -290
  10. package/behavioral-evals/opencode-reflection-gate-live.js +342 -0
  11. package/behavioral-evals/paired-benchmark.js +3 -3
  12. package/ci/consistency-check.js +20 -0
  13. package/ci/invariant-routing.test.js +58 -158
  14. package/ci/mechanism-2a-rule-of-3.test.js +73 -138
  15. package/ci/mechanism-2ac-atomic-commit-check.test.js +2 -2
  16. package/ci/mechanism-2af-worktree-isolation.test.js +38 -196
  17. package/ci/mechanism-2ah-workflow-lifecycle.test.js +20 -831
  18. package/ci/mechanism-2ai-workspace-fingerprint-batch.test.js +3 -4
  19. package/ci/mechanism-2b-boundary-guard.test.js +6 -16
  20. package/ci/mechanism-2e-scope-guard.test.js +8 -24
  21. package/ci/mechanism-2f-stop-gate.test.js +21 -75
  22. package/ci/mechanism-2n-opencode-plugin.test.js +13 -28
  23. package/ci/mechanism-31-opencode-hardlock-evidence.test.js +43 -99
  24. package/ci/openai-plugin-package.test.js +8 -8
  25. package/ci/openai-plugin-runtime.test.js +2 -2
  26. package/ci/router-workflow-plan.test.js +25 -6
  27. package/ci/self-evolve-loop.test.js +4 -1
  28. package/ci/workflow-execution-contract.test.js +51 -129
  29. package/ci/workflow-plan-consumers-edge.test.js +1 -1
  30. package/ci/workflow-plan-consumers.test.js +6 -6
  31. package/docs/architecture.md +21 -21
  32. package/docs/enforcement-locks.md +41 -102
  33. package/docs/mechanism-first-skill-mesh.md +2 -2
  34. package/docs/philosophy.md +2 -2
  35. package/docs/platform-capabilities.md +3 -3
  36. package/docs/routing.md +14 -14
  37. package/docs/workflow-runtime.md +80 -110
  38. package/evals/harness-everything/tasks/positive-tier1.yaml +1 -1
  39. package/evals/harness-everything/tasks/positive-tier2.yaml +1 -1
  40. package/evals/harness-everything/tasks/positive-tier3.yaml +1 -1
  41. package/evals/using-git-worktrees/tasks/positive-trigger.yaml +1 -1
  42. package/fable-mode/SKILL.md +1 -1
  43. package/fable-mode/agents/fable-orchestrator.md +7 -6
  44. package/fable-mode/execution-guardrails/SKILL.md +1 -1
  45. package/fable-mode/fable-haiku/SKILL.md +1 -1
  46. package/fable-mode/fable-opus/SKILL.md +1 -1
  47. package/fable-mode/fable-sonnet/SKILL.md +1 -1
  48. package/fable-mode/scripts/workflow-plan-consumer.js +4 -3
  49. package/harness-everything/SKILL.md +11 -11
  50. package/harness-everything/references/router-workflow-plan.md +2 -2
  51. package/harness-everything/references/triage-and-tiers.md +11 -11
  52. package/harness-everything/scripts/kernel-router-core.js +5 -5
  53. package/harness-everything/scripts/kernel-router.js +16 -21
  54. package/harness-everything/scripts/router-contract-core.js +1 -1
  55. package/hooks/hooks.json +10 -23
  56. package/hooks/scripts/atomic-commit-check.js +1 -1
  57. package/hooks/scripts/boundary-guard.js +4 -4
  58. package/hooks/scripts/contract-test.js +8 -11
  59. package/hooks/scripts/depth-guard.js +2 -2
  60. package/hooks/scripts/lib/workflow-runtime.js +24 -402
  61. package/hooks/scripts/rule-of-3-tracker.js +28 -31
  62. package/hooks/scripts/rule-of-3.js +4 -28
  63. package/hooks/scripts/state-persist.js +36 -136
  64. package/hooks/scripts/stop-gate.js +15 -48
  65. package/hooks/scripts/subagent-scope-guard.js +8 -8
  66. package/hooks/scripts/workflow-disposition.js +2 -10
  67. package/hooks/scripts/workflow-gate.js +33 -84
  68. package/hooks/scripts/workflow-mutation-denied.js +3 -15
  69. package/hooks/scripts/workflow-stop-gate.js +23 -38
  70. package/opencode-plugin/README.md +10 -13
  71. package/opencode-plugin/index.mjs +14 -30
  72. package/opencode-plugin/plugin.json +1 -1
  73. package/package.json +3 -2
  74. package/plugins/harness-everything/.codex-plugin/plugin.json +1 -1
  75. package/plugins/harness-everything/hooks/hooks.json +3 -3
  76. package/plugins/harness-everything/hooks/scripts/atomic-commit-check.js +1 -1
  77. package/plugins/harness-everything/hooks/scripts/boundary-guard.js +4 -4
  78. package/plugins/harness-everything/hooks/scripts/contract-test.js +8 -11
  79. package/plugins/harness-everything/hooks/scripts/depth-guard.js +2 -2
  80. package/plugins/harness-everything/hooks/scripts/lib/workflow-runtime.js +24 -402
  81. package/plugins/harness-everything/hooks/scripts/rule-of-3-tracker.js +28 -31
  82. package/plugins/harness-everything/hooks/scripts/rule-of-3.js +4 -28
  83. package/plugins/harness-everything/hooks/scripts/state-persist.js +36 -136
  84. package/plugins/harness-everything/hooks/scripts/stop-gate.js +15 -48
  85. package/plugins/harness-everything/hooks/scripts/subagent-scope-guard.js +8 -8
  86. package/plugins/harness-everything/hooks/scripts/workflow-disposition.js +2 -10
  87. package/plugins/harness-everything/hooks/scripts/workflow-gate.js +33 -84
  88. package/plugins/harness-everything/hooks/scripts/workflow-mutation-denied.js +3 -15
  89. package/plugins/harness-everything/hooks/scripts/workflow-stop-gate.js +23 -38
  90. package/plugins/harness-everything/plugin.json +1 -1
  91. package/plugins/harness-everything/scripts/lib/advisory-text.js +16 -29
  92. package/plugins/harness-everything/skills/fable-mode/SKILL.md +1 -1
  93. package/plugins/harness-everything/skills/fable-mode/agents/fable-orchestrator.md +7 -6
  94. package/plugins/harness-everything/skills/fable-mode/execution-guardrails/SKILL.md +1 -1
  95. package/plugins/harness-everything/skills/fable-mode/fable-haiku/SKILL.md +1 -1
  96. package/plugins/harness-everything/skills/fable-mode/fable-opus/SKILL.md +1 -1
  97. package/plugins/harness-everything/skills/fable-mode/fable-sonnet/SKILL.md +1 -1
  98. package/plugins/harness-everything/skills/fable-mode/scripts/workflow-plan-consumer.js +4 -3
  99. package/plugins/harness-everything/skills/harness-everything/SKILL.md +11 -11
  100. package/plugins/harness-everything/skills/harness-everything/references/router-workflow-plan.md +2 -2
  101. package/plugins/harness-everything/skills/harness-everything/references/triage-and-tiers.md +11 -11
  102. package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router-core.js +5 -5
  103. package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router.js +16 -21
  104. package/plugins/harness-everything/skills/harness-everything/scripts/router-contract-core.js +1 -1
  105. package/plugins/harness-everything/skills/using-git-worktrees/SKILL.md +5 -5
  106. package/plugins/harness-everything/skills/zoom-out/SKILL.md +3 -3
  107. package/plugins/harness-everything/skills/zoom-out/references/circuit-breaker.md +4 -4
  108. package/scripts/lib/advisory-text.js +16 -29
  109. package/using-git-worktrees/SKILL.md +5 -5
  110. package/zoom-out/SKILL.md +3 -3
  111. package/zoom-out/references/circuit-breaker.md +4 -4
@@ -7,35 +7,23 @@ const MARKER = "Harness OS Guidance (Advisory)";
7
7
 
8
8
  const advisoryInstructions = [
9
9
  `\n# ${MARKER}`,
10
- `This surface cannot be assumed to mechanically enforce every Harness lifecycle transition.`,
11
- `Treat the workflow contract below as required agent behavior, while keeping enforcement`,
12
- `claims bounded by the host's verified capabilities.`,
10
+ `Harness is an observer/router/reminder layer on this surface; do not treat its workflow guidance as a hard scheduler.`,
13
11
  ``,
14
- `## 🚦 MANDATORY ENTRY TRIAGE & WORKFLOW ROUTING`,
15
- `For every software/project prompt, load the \`harness-everything\` skill and establish the routing contract before mutation:`,
16
- `1. Run \`npx github:dyphn1/Harness-everything next "<Brief summary of user's prompt>"\`. If terminal execution is unavailable, apply the same contract from the skill instead of skipping routing.`,
17
- `2. For EVERY suggested skill, read its complete \`SKILL.md\` entry and resolve applicability from \`USE FOR\`, \`DO NOT USE FOR\`, workflow/basic flow, and hard rules. A name, description, router summary, or "routine/simple/already clear" judgement is not enough to omit it.`,
18
- `3. The selected workflow topology is mandatory once applicable. Execute it to resolution; choose tools, reasoning, implementation technique, and decomposition freely inside it. Do not replace it with a direct path because you believe you can solve the task without the workflow.`,
19
- `4. If the selected workflow genuinely cannot cover part of the task, record an explicit escape for the uncovered scope with evidence. Covered obligations remain mandatory. Host-capability loss must be surfaced, not silently converted into optional execution.`,
20
- `5. Surface a compact checkpoint near the first progress update:`,
21
- ` \`\`\`markdown`,
22
- ` ## 🚦 Harness OS Routing Checkpoint`,
23
- ` - **Active Tier**: Tier 1 | Tier 2 | Tier 3 | unclassified`,
24
- ` - **Strategy**: <selected/deferred strategy>`,
25
- ` - **Workflow State**: <active | deferred | blocked | escaped>`,
26
- ` - **Required Invariants**: <router invariants>`,
27
- ` - **Suggested Skills**: <deduplicated suggestions or none>`,
28
- ` - **Applicability**: <use | not-applicable + reason | unresolved/unavailable>`,
29
- ` - **Escape**: <none | reason + uncovered scope + evidence>`,
30
- ` \`\`\``,
12
+ `## 🚦 ENTRY TRIAGE & WORKFLOW GUIDANCE`,
13
+ `For software/project work, load the \`harness-everything\` skill and establish routing context before broad mutation:`,
14
+ `1. Run \`npx github:dyphn1/Harness-everything next "<Brief summary of user's prompt>"\` when terminal execution is available.`,
15
+ `2. For EVERY suggested skill, read its complete \`SKILL.md\` entry and evaluate applicability from \`USE FOR\`, \`DO NOT USE FOR\`, and its basic flow.`,
16
+ `3. Treat the selected workflow topology and numeric limits as planning guidance, not a lock. Choose, combine, reorder, or skip steps when evidence supports it.`,
17
+ `4. Prefer objective verification before declaring done and worktree isolation for broad/Tier-3 mutation.`,
18
+ `5. Surface a compact routing checkpoint with tier, strategy, suggested skills, and any relevant warnings.`,
31
19
  ``,
32
20
  `## 🤖 COGNITIVE COMPLIANCE`,
33
- `- **No universal skill pipeline**: do not force every task through TODO/TDD/Fable. The router selects the smallest sufficient topology; suggested skills are resolved for applicability.`,
34
- `- **Applicable skill flow**: reading a skill is not permission to discard it when its workflow actually applies.`,
35
- `- **Pre-completion verification**: before declaring done, run \`npx github:dyphn1/Harness-everything verify\` in the project root and fix failures. An instruction-only host may not block you mechanically, but the requirement remains part of the contract.`,
36
- `- **Rule of 3**: after 3 same-signature failures, stop micro-retrying and use a fresh diagnosis / zoom-out.`,
21
+ `- **No universal skill pipeline**: do not force every task through TODO/TDD/Fable.`,
22
+ `- **Rule of 3**: after 3 same-signature failures, stop micro-retrying and use a fresh diagnosis / zoom-out. This reflection boundary may block mutation until completed.`,
23
+ `- **Permission boundaries are separate**: explicit host/user approval for destructive or external actions remains authoritative.`,
24
+ `- **Verification is evidence, not a cage**: missing evidence should trigger a reminder, not a persistent workflow lock.`,
37
25
  `- **Environment discovery**: discover OS, shell, package manager/runtime, and host capability before relying on them.`,
38
- `- **Memory / self-evolve**: persist only verified reusable lessons; use escape/replan/recovery evidence to improve workflow coverage rather than bypassing the active workflow.`,
26
+ `- **Memory / self-evolve**: persist only verified reusable lessons.`,
39
27
  `- **Prefer editing**: prefer targeted edits and logically complete commits over broad rewrites.`,
40
28
  ``
41
29
  ].join('\n');
@@ -149,10 +137,9 @@ function buildCodexGlobalContent() {
149
137
  `- Discover the environment and host capabilities before relying on them.`,
150
138
  `- For software/project work, run \`npx github:dyphn1/Harness-everything next "<summary>"\` before mutation and surface the routing checkpoint.`,
151
139
  `- Read every suggested skill's complete \`SKILL.md\` entry before resolving applicability; do not omit it from metadata or confidence alone.`,
152
- `- Execute the selected workflow topology to resolution. The model controls HOW inside the topology, not WHETHER the selected topology exists.`,
153
- `- Do not impose a universal TODO/TDD/Fable sequence; use the smallest selected topology plus applicable skills.`,
154
- `- Escape only for genuinely uncovered workflow scope and record reason + scope + evidence.`,
155
- `- Before declaring done, run \`npx github:dyphn1/Harness-everything verify\` and fix failures.`,
140
+ `- Use the selected workflow topology as planning guidance; the model may adapt or skip steps with an explicit evidence-based reason.`,
141
+ `- Do not impose a universal TODO/TDD/Fable sequence; use the smallest useful topology plus applicable skills.`,
142
+ `- Prefer objective verification before declaring done; missing verification is a reminder, not a persistent lock.`,
156
143
  `- After 3 same-signature failures, stop retrying and use a fresh diagnosis / zoom-out.`,
157
144
  `- Prefer targeted edits and logically complete commits.`,
158
145
  ``
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: using-git-worktrees
3
- description: Use when starting feature work needing isolation or before implementation plans - ensures an isolated workspace via native tools or git worktree fallback
3
+ description: Use when starting feature work needing isolation or before implementation plans - recommends an isolated workspace via native tools or git worktree fallback
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Miya Daniel
7
- version: 0.8.1
7
+ version: 0.16.1
8
8
  ---
9
9
 
10
10
  # Using Git Worktrees
@@ -13,7 +13,7 @@ Use native worktree support first; raw Git is the fallback.
13
13
 
14
14
  ## Contract
15
15
 
16
- - **Major workflow mode** — Tier 3 / Fable-class engineering must be isolated before source/artifact mutation. Reuse an existing linked worktree or create one. If isolation cannot be established, stop `BLOCKED`; never fall back to the primary working tree.
16
+ - **Major workflow guidance** — Tier 3 / Fable-class engineering is safer in a linked worktree before broad source/artifact mutation. Reuse one or create one when practical.
17
17
  - **Ordinary mode** — isolation-needing feature work may honor an explicit user preference to stay in place.
18
18
  - Never nest a worktree inside an already isolated worktree.
19
19
 
@@ -28,11 +28,11 @@ git rev-parse --show-superproject-working-tree
28
28
  ```
29
29
  Different git/common dirs and no superproject => already isolated; continue to Step 2. A submodule is a normal repo for this check.
30
30
 
31
- **Step 1 — Create/enter**: prefer native `EnterWorktree`, `/worktree`, or `--worktree`. Otherwise use `git worktree add "$path" -b "$BRANCH_NAME"`. For major mode, choose an already-ignored or external/sibling path so setup does not require modifying the primary tree first. Creation/entry failure => `BLOCKED`. Only ordinary mode may continue in place after an explicit decline/unsupported environment.
31
+ **Step 1 — Create/enter**: prefer native `EnterWorktree`, `/worktree`, or `--worktree`. Otherwise use `git worktree add "$path" -b "$BRANCH_NAME"`. Prefer an already-ignored or external/sibling path. If creation/entry fails, report it and continue only with explicit awareness of the isolation risk.
32
32
 
33
33
  **Step 2 — Setup**: install project dependencies as needed.
34
34
 
35
- **Step 3 — Baseline**: run the relevant tests/build in the isolated tree before implementation; existing failures must be surfaced before mutation proceeds.
35
+ **Step 3 — Baseline**: run relevant tests/build before implementation when useful; surface existing failures before relying on the baseline.
36
36
 
37
37
  Deep dive: <this-skill-dir>/references/workflow-details.md
38
38
 
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.4.0
7
+ version: 0.16.2
8
8
  ---
9
9
 
10
10
  # Zoom Out (Circuit Breaker)
@@ -18,7 +18,7 @@ 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** | `<skills-repo-root>/hooks/scripts/rule-of-3.js` plus a valid report; reset only after the second cycle. |
21
+ | **Enforcement Gate** | `<skills-repo-root>/hooks/scripts/rule-of-3.js` plus a valid report; a later three-failure cycle requests another reflection. |
22
22
 
23
23
  ## Circuit Breaker Flow
24
24
 
@@ -26,7 +26,7 @@ Stop repeated failures, rebuild the facts, and choose a safe next step.
26
26
  2. Use read-only tools to restate the goal and check files, configuration, and logs.
27
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
- 5. Clear a repeated breaker cycle with `npm run harness:reset`; record the insight with `self-evolve`.
29
+ 5. If three more matching failures occur, run another zoom-out cycle. `npm run harness:reset` is only an optional manual state clear; record the insight with `self-evolve`.
30
30
 
31
31
  ## USE FOR:
32
32
  - "you are stuck in a loop"
@@ -21,7 +21,7 @@ flowchart TD
21
21
 
22
22
  Resume --> Resolved{5. Problem Cracking Succeeds?}
23
23
  Resolved -- Yes --> SelfEvolve[Call self-evolve to Persist Insight]
24
- Resolved -- No (3 More Failures) --> Escalate
24
+ Resolved -- No (3 More Matching Failures) --> CeaseFire
25
25
  ```
26
26
 
27
27
  ## 1. Triggers
@@ -50,7 +50,7 @@ A complete report automatically releases the circuit breaker on hook-enabled sys
50
50
  ## 5. Phase 4 — Decision Gate: Resume or Escalate
51
51
 
52
52
  - **RESUME**: Selected when the fresh diagnosis identifies a clear, untried path within existing authority.
53
- - **ESCALATE**: Reserved for true decision points belonging to the user (conflicting requirements, destructive migration, missing credentials/access, or repeated breaker trips).
53
+ - **ESCALATE**: Reserved for true decision points belonging to the user (conflicting requirements, destructive migration, missing credentials/access, or repeated breaker trips that expose a genuine decision or access gap).
54
54
  Hand the human a **decision**, not a plea:
55
55
 
56
56
  > "Goal: [...]. I falsified paths X, Y, Z — verified facts: [...].
@@ -61,6 +61,6 @@ Hand the human a **decision**, not a plea:
61
61
  Banned: "I have tried everything and failed, please help." That reports incapability, not a decision.
62
62
 
63
63
  ## 7. Recovery
64
- - **Self-recovery path**: a valid report ending in `RESUME` releases the breaker — reload the appropriate execution mode (`tdd`, `fable-mode`) and execute the new diagnosis. If the SAME failure signature accumulates 3 more failures, the breaker hard-locks and the decision goes to the human.
65
- - **Human path**: after the human answers an `ESCALATE`, or clears a hard lock (`npm run harness:reset` in their own terminal, or a new session / `/clear`), continue under their direction.
64
+ - **Self-recovery path**: a valid report ending in `RESUME` releases the breaker — reload the appropriate execution mode (`tdd`, `fable-mode`) and execute the new diagnosis. If the SAME failure signature accumulates 3 more failures, start another zoom-out/reflection cycle.
65
+ - **Human path**: after the human answers an `ESCALATE`, continue under their direction. `npm run harness:reset` (or a new session / `/clear`) is an optional manual state clear for recovery or maintenance; it is not required merely because the breaker re-tripped.
66
66
  - Either way, once the problem is ultimately cracked, feed the insight to `self-evolve`.