harness-everything 0.30.9 → 0.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (150) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/AGENTS.md +1 -1
  4. package/CHANGELOG.md +34 -0
  5. package/README.md +8 -9
  6. package/VERIFICATION.md +1 -1
  7. package/benchmarks/results/live-host/claude-2026-10-08-issue-297/README.md +27 -0
  8. package/benchmarks/results/live-host/codex-2026-10-13/README.md +55 -0
  9. package/benchmarks/results/live-host/codex-2026-10-13/observation-records.json +88 -0
  10. package/benchmarks/results/pr-303-review-2026-10-13/README.md +81 -0
  11. package/benchmarks/results/pr-303-review-2026-10-13/ci/run.json +1330 -0
  12. package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/mechanism-35-clean-env.log +1 -0
  13. package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/mechanism-35-inherited-flag.log +34 -0
  14. package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/verify-gate-captured.json +46 -0
  15. package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/verify-gate-diagnosis.md +13 -0
  16. package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/verify-gate.json +46 -0
  17. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/summary.json +57 -0
  18. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-collision.log +8 -0
  19. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-consistency.log +624 -0
  20. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-docs-capabilities.log +131 -0
  21. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-platform-compatibility.log +9 -0
  22. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-plugin-openai.log +6 -0
  23. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-plugin-submission.log +5 -0
  24. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-references.log +6 -0
  25. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-release.log +73 -0
  26. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-repo-contract.log +5 -0
  27. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-routing-invariants.log +785 -0
  28. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-routing-skills.log +44 -0
  29. package/benchmarks/results/pr-303-review-2026-10-13/gates/final-fast/summary.json +12 -0
  30. package/benchmarks/results/pr-303-review-2026-10-13/gates/final-fast/test-consistency.log +624 -0
  31. package/benchmarks/results/pr-303-review-2026-10-13/gates/final-fast/test-release.log +73 -0
  32. package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/summary.json +79 -0
  33. package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/test-mechanism.log +1737 -0
  34. package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/test-mutations.log +16 -0
  35. package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/test.log +3297 -0
  36. package/benchmarks/results/pr-303-review-2026-10-13/manifest.json +319 -0
  37. package/benchmarks/results/pr-303-review-2026-10-13/regression/binding-resolution-green.log +36 -0
  38. package/benchmarks/results/pr-303-review-2026-10-13/regression/determinism.json +174 -0
  39. package/benchmarks/results/pr-303-review-2026-10-13/regression/quality-evidence.json +314 -0
  40. package/benchmarks/results/pr-303-review-2026-10-13/regression/quality-report.json +638 -0
  41. package/benchmarks/results/pr-303-review-2026-10-13/regression/red.log +240 -0
  42. package/benchmarks/results/pr-303-review-2026-10-13/regression/untyped-fable-probe.json +22 -0
  43. package/benchmarks/results/pr-303-review-2026-10-13/regression/workflow-obligations-green.log +254 -0
  44. package/benchmarks/results/pr-303-review-2026-10-13/verification/mechanism-35-clean-env-fixed.log +1 -0
  45. package/benchmarks/results/pr-303-review-2026-10-13/verification/mechanism-35-inherited-flag-fixed.log +1 -0
  46. package/benchmarks/results/pr-303-review-2026-10-13/verification/nested-test.meta.json +8 -0
  47. package/benchmarks/results/pr-303-review-2026-10-13/verification/nested-test.stderr.log +90 -0
  48. package/benchmarks/results/pr-303-review-2026-10-13/verification/nested-test.stdout.log +3186 -0
  49. package/benchmarks/results/pr-303-review-2026-10-13/verification/verify-gate-final.json +46 -0
  50. package/bin/cli.js +1 -1
  51. package/ci/doc-capability-consistency.test.js +11 -1
  52. package/ci/invariant-routing.test.js +7 -4
  53. package/ci/mechanism-2ag-router-worktree-contract.test.js +2 -2
  54. package/ci/mechanism-2ai-workspace-fingerprint-batch.test.js +2 -1
  55. package/ci/mechanism-2al-codex-hooks-compat.test.js +19 -0
  56. package/ci/mechanism-2am-observations-session-import.test.js +221 -0
  57. package/ci/mechanism-2an-workflow-obligations.test.js +352 -3
  58. package/ci/mechanism-2ao-plugin-sync.test.js +129 -4
  59. package/ci/mechanism-2aq-fable-stage-bindings.test.js +168 -0
  60. package/ci/mechanism-2ar-binding-resolution.test.js +211 -0
  61. package/ci/mechanism-2w-platform-compatibility.test.js +12 -0
  62. package/ci/mechanism-34-observations.test.js +64 -0
  63. package/ci/mechanism-35-verification-contract.test.js +1 -1
  64. package/ci/mutation-check.js +2 -0
  65. package/ci/mutation-loader.js +4 -0
  66. package/ci/openai-plugin-package.test.js +7 -5
  67. package/ci/prompt-contract-regressions.test.js +7 -6
  68. package/ci/router-workflow-plan.test.js +109 -14
  69. package/ci/skill-routing-check.js +44 -15
  70. package/ci/workflow-plan-consumers.test.js +41 -1
  71. package/docs/architecture.md +10 -10
  72. package/docs/enforcement-locks.md +1 -1
  73. package/docs/mechanism-first-skill-mesh.md +12 -11
  74. package/docs/openai-plugin.md +1 -1
  75. package/docs/philosophy.md +7 -6
  76. package/docs/platform-capabilities.md +14 -12
  77. package/docs/platform-compatibility.json +5 -5
  78. package/docs/routing.md +16 -17
  79. package/docs/system-one-observations.md +36 -9
  80. package/docs/system-one-routing.md +10 -7
  81. package/docs/system-one-suggestion-gates.md +5 -5
  82. package/docs/workflow-runtime.md +6 -2
  83. package/docs/workflows/harness-everything.md +14 -14
  84. package/evals/harness-everything/tasks/positive-tier1.yaml +1 -1
  85. package/evals/harness-everything/tasks/positive-tier2.yaml +1 -1
  86. package/evals/harness-everything/tasks/positive-tier3.yaml +1 -1
  87. package/fable-mode/CONTRACT-FORMAT.md +4 -1
  88. package/fable-mode/SKILL.md +6 -8
  89. package/fable-mode/agents/fable-orchestrator.md +10 -3
  90. package/fable-mode/execution-guardrails/SKILL.md +1 -1
  91. package/fable-mode/fable-haiku/SKILL.md +1 -1
  92. package/fable-mode/fable-opus/SKILL.md +1 -1
  93. package/fable-mode/fable-sonnet/SKILL.md +1 -1
  94. package/fable-mode/scripts/workflow-plan-consumer.js +101 -2
  95. package/harness-everything/SKILL.md +8 -7
  96. package/harness-everything/references/router-workflow-plan.md +11 -6
  97. package/harness-everything/references/triage-and-tiers.md +21 -23
  98. package/harness-everything/schemas/router-workflow-plan.schema.json +2 -0
  99. package/harness-everything/scripts/kernel-router-core.js +52 -55
  100. package/harness-everything/scripts/kernel-router.js +48 -5
  101. package/harness-everything/scripts/router-contract-core.js +7 -7
  102. package/harness-everything/scripts/router-contract.js +1 -3
  103. package/harness-everything/scripts/routing-keywords.json +417 -121
  104. package/harness-everything/scripts/tier-router.js +64 -113
  105. package/hooks/scripts/contract-test.js +29 -3
  106. package/hooks/scripts/lib/binding-resolver.js +76 -0
  107. package/hooks/scripts/lib/fable-contracts.js +1 -1
  108. package/hooks/scripts/lib/observations.js +88 -12
  109. package/hooks/scripts/lib/workflow-obligations.js +292 -7
  110. package/hooks/scripts/lib/workflow-runtime.js +8 -1
  111. package/hooks/scripts/workflow-disposition.js +116 -2
  112. package/opencode-plugin/plugin.json +1 -1
  113. package/package.json +1 -1
  114. package/plugins/harness-everything/.codex-plugin/plugin.json +1 -1
  115. package/plugins/harness-everything/hooks/scripts/contract-test.js +29 -3
  116. package/plugins/harness-everything/hooks/scripts/lib/binding-resolver.js +76 -0
  117. package/plugins/harness-everything/hooks/scripts/lib/fable-contracts.js +1 -1
  118. package/plugins/harness-everything/hooks/scripts/lib/observations.js +88 -12
  119. package/plugins/harness-everything/hooks/scripts/lib/workflow-obligations.js +292 -7
  120. package/plugins/harness-everything/hooks/scripts/lib/workflow-runtime.js +8 -1
  121. package/plugins/harness-everything/hooks/scripts/workflow-disposition.js +116 -2
  122. package/plugins/harness-everything/plugin.json +1 -1
  123. package/plugins/harness-everything/scripts/lib/advisory-text.js +2 -2
  124. package/plugins/harness-everything/scripts/lib/generated-skills.js +78 -0
  125. package/plugins/harness-everything/skills/fable-mode/CONTRACT-FORMAT.md +4 -1
  126. package/plugins/harness-everything/skills/fable-mode/SKILL.md +6 -8
  127. package/plugins/harness-everything/skills/fable-mode/agents/fable-orchestrator.md +10 -3
  128. package/plugins/harness-everything/skills/fable-mode/execution-guardrails/SKILL.md +1 -1
  129. package/plugins/harness-everything/skills/fable-mode/fable-haiku/SKILL.md +1 -1
  130. package/plugins/harness-everything/skills/fable-mode/fable-opus/SKILL.md +1 -1
  131. package/plugins/harness-everything/skills/fable-mode/fable-sonnet/SKILL.md +1 -1
  132. package/plugins/harness-everything/skills/fable-mode/scripts/workflow-plan-consumer.js +101 -2
  133. package/plugins/harness-everything/skills/harness-everything/SKILL.md +8 -7
  134. package/plugins/harness-everything/skills/harness-everything/references/router-workflow-plan.md +11 -6
  135. package/plugins/harness-everything/skills/harness-everything/references/triage-and-tiers.md +21 -23
  136. package/plugins/harness-everything/skills/harness-everything/schemas/router-workflow-plan.schema.json +2 -0
  137. package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router-core.js +52 -55
  138. package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router.js +48 -5
  139. package/plugins/harness-everything/skills/harness-everything/scripts/router-contract-core.js +7 -7
  140. package/plugins/harness-everything/skills/harness-everything/scripts/router-contract.js +1 -3
  141. package/plugins/harness-everything/skills/harness-everything/scripts/routing-keywords.json +417 -121
  142. package/plugins/harness-everything/skills/harness-everything/scripts/tier-router.js +64 -113
  143. package/sbom.cdx.json +7 -7
  144. package/scripts/codex-hooks-compat.js +39 -14
  145. package/scripts/lib/advisory-text.js +2 -2
  146. package/scripts/lib/generated-skills.js +78 -0
  147. package/scripts/plugin-sync.js +100 -29
  148. package/scripts/system-one-observations-export.js +29 -2
  149. package/scripts/system-one-observations-import-codex-sessions.js +307 -0
  150. package/scripts/system-one-observations-review.js +11 -1
@@ -0,0 +1,314 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "requirements": [
4
+ {
5
+ "requirementId": "REQ-303-BINDING-DECLARATION-TYPE",
6
+ "testProfile": "integration",
7
+ "source": {
8
+ "type": "SPEC",
9
+ "path": "docs/workflow-runtime.md",
10
+ "section": "Fable and worktrees",
11
+ "status": "AUTHORITATIVE"
12
+ },
13
+ "sourceConformance": "PASS",
14
+ "sourceValidity": "VALID",
15
+ "sourceNotes": "Present declaration type contract is verified across both fields and typed/untyped fragments; omitted and empty arrays are accepted.",
16
+ "dimensions": {
17
+ "positiveParameters": {
18
+ "applicable": true,
19
+ "checks": [
20
+ {
21
+ "id": "positive-arrays",
22
+ "class": "supported-parameter-class",
23
+ "status": "PASS",
24
+ "evidence": "ci/mechanism-2an-workflow-obligations.test.js:193-211: explicit empty arrays and omitted arrays plan successfully"
25
+ }
26
+ ]
27
+ },
28
+ "negativeParameters": {
29
+ "applicable": true,
30
+ "checks": [
31
+ {
32
+ "id": "negative-non-array-declarations",
33
+ "class": "rejected-parameter-class",
34
+ "status": "PASS",
35
+ "evidence": "ci/mechanism-2an-workflow-obligations.test.js:152-188: null, object, string, boolean, and number for both fields in typed and untyped fragments"
36
+ }
37
+ ]
38
+ },
39
+ "inputCompleteness": {
40
+ "applicable": true,
41
+ "checks": [
42
+ {
43
+ "id": "input-optional",
44
+ "class": "optional",
45
+ "status": "PASS",
46
+ "evidence": "ci/mechanism-2an-workflow-obligations.test.js:193-211: declarations omitted"
47
+ },
48
+ {
49
+ "id": "input-omitted",
50
+ "class": "omitted",
51
+ "status": "PASS",
52
+ "evidence": "ci/mechanism-2an-workflow-obligations.test.js:193-211: declarations omitted"
53
+ },
54
+ {
55
+ "id": "input-empty",
56
+ "class": "empty",
57
+ "status": "PASS",
58
+ "evidence": "ci/mechanism-2an-workflow-obligations.test.js:193-211: both declarations explicitly []"
59
+ },
60
+ {
61
+ "id": "input-null",
62
+ "class": "null",
63
+ "status": "PASS",
64
+ "evidence": "ci/mechanism-2an-workflow-obligations.test.js:152-188: both fields tested with null"
65
+ },
66
+ {
67
+ "id": "input-required",
68
+ "class": "required",
69
+ "status": "N/A",
70
+ "reason": "Binding declarations are optional by the authoritative contract."
71
+ },
72
+ {
73
+ "id": "input-min",
74
+ "class": "min",
75
+ "status": "N/A",
76
+ "reason": "The declarations have no minimum array length; empty arrays are explicitly supported."
77
+ },
78
+ {
79
+ "id": "input-max",
80
+ "class": "max",
81
+ "status": "N/A",
82
+ "reason": "The authoritative contract defines no maximum binding-array length."
83
+ },
84
+ {
85
+ "id": "input-boundary",
86
+ "class": "boundary",
87
+ "status": "N/A",
88
+ "reason": "No numeric or length boundary is defined for binding declarations."
89
+ }
90
+ ]
91
+ },
92
+ "outputCompleteness": {
93
+ "applicable": true,
94
+ "checks": [
95
+ {
96
+ "id": "output-side-effect",
97
+ "class": "side-effect",
98
+ "status": "PASS",
99
+ "evidence": "ci/mechanism-2an-workflow-obligations.test.js:152-188: rejected plans preserve both workflow and obligation JSON state"
100
+ },
101
+ {
102
+ "id": "output-value",
103
+ "class": "value",
104
+ "status": "N/A",
105
+ "reason": "Rejected plan command has no stdout payload by contract."
106
+ },
107
+ {
108
+ "id": "output-type",
109
+ "class": "type",
110
+ "status": "N/A",
111
+ "reason": "Rejected plan command has no stdout payload by contract."
112
+ },
113
+ {
114
+ "id": "output-schema",
115
+ "class": "schema",
116
+ "status": "N/A",
117
+ "reason": "Rejected plan command has no stdout payload by contract."
118
+ },
119
+ {
120
+ "id": "output-required-field",
121
+ "class": "required-field",
122
+ "status": "N/A",
123
+ "reason": "Rejected plan command has no stdout payload by contract."
124
+ },
125
+ {
126
+ "id": "output-no-extra",
127
+ "class": "prohibited-extra-field",
128
+ "status": "N/A",
129
+ "reason": "Rejected plan command has no stdout payload by contract."
130
+ }
131
+ ]
132
+ },
133
+ "errorHandling": {
134
+ "applicable": true,
135
+ "checks": [
136
+ {
137
+ "id": "error-type",
138
+ "class": "error-type",
139
+ "status": "PASS",
140
+ "evidence": "The repeated plan-command probe exits 2 for a declaration validation error."
141
+ },
142
+ {
143
+ "id": "error-message",
144
+ "class": "message",
145
+ "status": "PASS",
146
+ "evidence": "The repeated plan-command probe names req-review.requiredBindings and requires an array."
147
+ },
148
+ {
149
+ "id": "error-cleanup",
150
+ "class": "state-cleanup",
151
+ "status": "PASS",
152
+ "evidence": "The repeated plan-command probe preserves the pre-plan session file hashes."
153
+ },
154
+ {
155
+ "id": "error-rollback",
156
+ "class": "rollback",
157
+ "status": "PASS",
158
+ "evidence": "The rejected plan does not alter workflow or obligation state."
159
+ },
160
+ {
161
+ "id": "error-no-output",
162
+ "class": "no-unintended-output",
163
+ "status": "PASS",
164
+ "evidence": "The repeated plan-command probe has empty stdout."
165
+ },
166
+ {
167
+ "id": "error-code",
168
+ "class": "error-code",
169
+ "status": "N/A",
170
+ "reason": "The authoritative contract specifies rejection but no stable machine-readable error code."
171
+ }
172
+ ]
173
+ },
174
+ "unexpectedInput": {
175
+ "applicable": true,
176
+ "checks": [
177
+ {
178
+ "id": "unexpected-type",
179
+ "class": "wrong-type",
180
+ "status": "PASS",
181
+ "evidence": "ci/mechanism-2an-workflow-obligations.test.js:152-188: null, object, string, boolean, and number"
182
+ },
183
+ {
184
+ "id": "unexpected-malformed",
185
+ "class": "malformed",
186
+ "status": "N/A",
187
+ "reason": "The targeted defect concerns valid JSON with a declaration of the wrong type."
188
+ },
189
+ {
190
+ "id": "unexpected-unknown",
191
+ "class": "unknown",
192
+ "status": "N/A",
193
+ "reason": "Unknown declaration names are outside this contract."
194
+ },
195
+ {
196
+ "id": "unexpected-extra",
197
+ "class": "extra",
198
+ "status": "N/A",
199
+ "reason": "Extra object properties are outside this contract."
200
+ },
201
+ {
202
+ "id": "unexpected-unsupported",
203
+ "class": "unsupported",
204
+ "status": "N/A",
205
+ "reason": "Unsupported enum values are outside this contract."
206
+ },
207
+ {
208
+ "id": "unexpected-range",
209
+ "class": "out-of-range",
210
+ "status": "N/A",
211
+ "reason": "No binding declaration range is defined."
212
+ },
213
+ {
214
+ "id": "unexpected-duplicate",
215
+ "class": "duplicate",
216
+ "status": "N/A",
217
+ "reason": "Duplicate declaration semantics are outside this type-validation contract."
218
+ }
219
+ ]
220
+ },
221
+ "determinism": {
222
+ "applicable": true,
223
+ "runs": [
224
+ {
225
+ "id": "run-1",
226
+ "input": [
227
+ {
228
+ "id": "req-review",
229
+ "stepType": "review",
230
+ "summary": "Review the change",
231
+ "acceptance": "the change is reviewed",
232
+ "requiredBindings": null
233
+ },
234
+ {
235
+ "id": "req-verify",
236
+ "stepType": "verification",
237
+ "summary": "Verify the change",
238
+ "acceptance": "objective evidence is recorded"
239
+ }
240
+ ],
241
+ "exitStatus": 2,
242
+ "errorCategory": "validation-error",
243
+ "output": {
244
+ "stdout": "",
245
+ "stderr": "[Workflow Disposition] req-review.requiredBindings must be an array\n"
246
+ },
247
+ "sideEffects": {
248
+ "createdFiles": [],
249
+ "changedFiles": [],
250
+ "deletedFiles": [],
251
+ "persistentState": {
252
+ "sessionFilesEqualToBefore": true,
253
+ "sessionFileHashes": {
254
+ "workflow-obligations.json": "dbc03590ec7bbd9745cfd5aa45fd4f1757c827beb243e0c98149a272d3e2caa7",
255
+ "workflow-run.json": "5aa69cd0e787811f4b88bc3379d77ba85d403f5d8b298287d554ccce572f579c"
256
+ }
257
+ },
258
+ "events": [],
259
+ "logs": [],
260
+ "externalCalls": []
261
+ }
262
+ },
263
+ {
264
+ "id": "run-2",
265
+ "input": [
266
+ {
267
+ "id": "req-review",
268
+ "stepType": "review",
269
+ "summary": "Review the change",
270
+ "acceptance": "the change is reviewed",
271
+ "requiredBindings": null
272
+ },
273
+ {
274
+ "id": "req-verify",
275
+ "stepType": "verification",
276
+ "summary": "Verify the change",
277
+ "acceptance": "objective evidence is recorded"
278
+ }
279
+ ],
280
+ "exitStatus": 2,
281
+ "errorCategory": "validation-error",
282
+ "output": {
283
+ "stdout": "",
284
+ "stderr": "[Workflow Disposition] req-review.requiredBindings must be an array\n"
285
+ },
286
+ "sideEffects": {
287
+ "createdFiles": [],
288
+ "changedFiles": [],
289
+ "deletedFiles": [],
290
+ "persistentState": {
291
+ "sessionFilesEqualToBefore": true,
292
+ "sessionFileHashes": {
293
+ "workflow-obligations.json": "dbc03590ec7bbd9745cfd5aa45fd4f1757c827beb243e0c98149a272d3e2caa7",
294
+ "workflow-run.json": "5aa69cd0e787811f4b88bc3379d77ba85d403f5d8b298287d554ccce572f579c"
295
+ }
296
+ },
297
+ "events": [],
298
+ "logs": [],
299
+ "externalCalls": []
300
+ }
301
+ }
302
+ ],
303
+ "normalizations": []
304
+ },
305
+ "sourceTraceability": {
306
+ "applicable": true
307
+ }
308
+ },
309
+ "skippedTests": [],
310
+ "flakyTests": [],
311
+ "naDeclarations": []
312
+ }
313
+ ]
314
+ }