harness-everything 0.30.10 → 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 (134) 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 +24 -4
  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/pr-303-review-2026-10-13/README.md +81 -0
  9. package/benchmarks/results/pr-303-review-2026-10-13/ci/run.json +1330 -0
  10. package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/mechanism-35-clean-env.log +1 -0
  11. package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/mechanism-35-inherited-flag.log +34 -0
  12. package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/verify-gate-captured.json +46 -0
  13. package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/verify-gate-diagnosis.md +13 -0
  14. package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/verify-gate.json +46 -0
  15. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/summary.json +57 -0
  16. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-collision.log +8 -0
  17. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-consistency.log +624 -0
  18. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-docs-capabilities.log +131 -0
  19. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-platform-compatibility.log +9 -0
  20. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-plugin-openai.log +6 -0
  21. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-plugin-submission.log +5 -0
  22. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-references.log +6 -0
  23. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-release.log +73 -0
  24. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-repo-contract.log +5 -0
  25. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-routing-invariants.log +785 -0
  26. package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-routing-skills.log +44 -0
  27. package/benchmarks/results/pr-303-review-2026-10-13/gates/final-fast/summary.json +12 -0
  28. package/benchmarks/results/pr-303-review-2026-10-13/gates/final-fast/test-consistency.log +624 -0
  29. package/benchmarks/results/pr-303-review-2026-10-13/gates/final-fast/test-release.log +73 -0
  30. package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/summary.json +79 -0
  31. package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/test-mechanism.log +1737 -0
  32. package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/test-mutations.log +16 -0
  33. package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/test.log +3297 -0
  34. package/benchmarks/results/pr-303-review-2026-10-13/manifest.json +319 -0
  35. package/benchmarks/results/pr-303-review-2026-10-13/regression/binding-resolution-green.log +36 -0
  36. package/benchmarks/results/pr-303-review-2026-10-13/regression/determinism.json +174 -0
  37. package/benchmarks/results/pr-303-review-2026-10-13/regression/quality-evidence.json +314 -0
  38. package/benchmarks/results/pr-303-review-2026-10-13/regression/quality-report.json +638 -0
  39. package/benchmarks/results/pr-303-review-2026-10-13/regression/red.log +240 -0
  40. package/benchmarks/results/pr-303-review-2026-10-13/regression/untyped-fable-probe.json +22 -0
  41. package/benchmarks/results/pr-303-review-2026-10-13/regression/workflow-obligations-green.log +254 -0
  42. package/benchmarks/results/pr-303-review-2026-10-13/verification/mechanism-35-clean-env-fixed.log +1 -0
  43. package/benchmarks/results/pr-303-review-2026-10-13/verification/mechanism-35-inherited-flag-fixed.log +1 -0
  44. package/benchmarks/results/pr-303-review-2026-10-13/verification/nested-test.meta.json +8 -0
  45. package/benchmarks/results/pr-303-review-2026-10-13/verification/nested-test.stderr.log +90 -0
  46. package/benchmarks/results/pr-303-review-2026-10-13/verification/nested-test.stdout.log +3186 -0
  47. package/benchmarks/results/pr-303-review-2026-10-13/verification/verify-gate-final.json +46 -0
  48. package/bin/cli.js +1 -1
  49. package/ci/invariant-routing.test.js +7 -4
  50. package/ci/mechanism-2ag-router-worktree-contract.test.js +2 -2
  51. package/ci/mechanism-2ai-workspace-fingerprint-batch.test.js +2 -1
  52. package/ci/mechanism-2an-workflow-obligations.test.js +352 -3
  53. package/ci/mechanism-2aq-fable-stage-bindings.test.js +168 -0
  54. package/ci/mechanism-2ar-binding-resolution.test.js +211 -0
  55. package/ci/mechanism-35-verification-contract.test.js +1 -1
  56. package/ci/mutation-check.js +2 -0
  57. package/ci/mutation-loader.js +4 -0
  58. package/ci/openai-plugin-package.test.js +7 -5
  59. package/ci/prompt-contract-regressions.test.js +7 -6
  60. package/ci/router-workflow-plan.test.js +109 -14
  61. package/ci/skill-routing-check.js +44 -15
  62. package/ci/workflow-plan-consumers.test.js +41 -1
  63. package/docs/architecture.md +10 -10
  64. package/docs/enforcement-locks.md +1 -1
  65. package/docs/mechanism-first-skill-mesh.md +12 -11
  66. package/docs/openai-plugin.md +1 -1
  67. package/docs/philosophy.md +7 -6
  68. package/docs/platform-capabilities.md +7 -5
  69. package/docs/routing.md +16 -17
  70. package/docs/system-one-observations.md +1 -1
  71. package/docs/system-one-routing.md +10 -7
  72. package/docs/system-one-suggestion-gates.md +5 -5
  73. package/docs/workflow-runtime.md +6 -2
  74. package/docs/workflows/harness-everything.md +14 -14
  75. package/evals/harness-everything/tasks/positive-tier1.yaml +1 -1
  76. package/evals/harness-everything/tasks/positive-tier2.yaml +1 -1
  77. package/evals/harness-everything/tasks/positive-tier3.yaml +1 -1
  78. package/fable-mode/CONTRACT-FORMAT.md +4 -1
  79. package/fable-mode/SKILL.md +6 -8
  80. package/fable-mode/agents/fable-orchestrator.md +10 -3
  81. package/fable-mode/execution-guardrails/SKILL.md +1 -1
  82. package/fable-mode/fable-haiku/SKILL.md +1 -1
  83. package/fable-mode/fable-opus/SKILL.md +1 -1
  84. package/fable-mode/fable-sonnet/SKILL.md +1 -1
  85. package/fable-mode/scripts/workflow-plan-consumer.js +101 -2
  86. package/harness-everything/SKILL.md +8 -7
  87. package/harness-everything/references/router-workflow-plan.md +11 -6
  88. package/harness-everything/references/triage-and-tiers.md +21 -23
  89. package/harness-everything/schemas/router-workflow-plan.schema.json +2 -0
  90. package/harness-everything/scripts/kernel-router-core.js +52 -55
  91. package/harness-everything/scripts/kernel-router.js +48 -5
  92. package/harness-everything/scripts/router-contract-core.js +7 -7
  93. package/harness-everything/scripts/router-contract.js +1 -3
  94. package/harness-everything/scripts/routing-keywords.json +417 -121
  95. package/harness-everything/scripts/tier-router.js +64 -113
  96. package/hooks/scripts/contract-test.js +29 -3
  97. package/hooks/scripts/lib/binding-resolver.js +76 -0
  98. package/hooks/scripts/lib/fable-contracts.js +1 -1
  99. package/hooks/scripts/lib/workflow-obligations.js +292 -7
  100. package/hooks/scripts/lib/workflow-runtime.js +8 -1
  101. package/hooks/scripts/workflow-disposition.js +116 -2
  102. package/opencode-plugin/plugin.json +1 -1
  103. package/package.json +1 -1
  104. package/plugins/harness-everything/.codex-plugin/plugin.json +1 -1
  105. package/plugins/harness-everything/hooks/scripts/contract-test.js +29 -3
  106. package/plugins/harness-everything/hooks/scripts/lib/binding-resolver.js +76 -0
  107. package/plugins/harness-everything/hooks/scripts/lib/fable-contracts.js +1 -1
  108. package/plugins/harness-everything/hooks/scripts/lib/workflow-obligations.js +292 -7
  109. package/plugins/harness-everything/hooks/scripts/lib/workflow-runtime.js +8 -1
  110. package/plugins/harness-everything/hooks/scripts/workflow-disposition.js +116 -2
  111. package/plugins/harness-everything/plugin.json +1 -1
  112. package/plugins/harness-everything/scripts/lib/advisory-text.js +2 -2
  113. package/plugins/harness-everything/scripts/lib/generated-skills.js +78 -0
  114. package/plugins/harness-everything/skills/fable-mode/CONTRACT-FORMAT.md +4 -1
  115. package/plugins/harness-everything/skills/fable-mode/SKILL.md +6 -8
  116. package/plugins/harness-everything/skills/fable-mode/agents/fable-orchestrator.md +10 -3
  117. package/plugins/harness-everything/skills/fable-mode/execution-guardrails/SKILL.md +1 -1
  118. package/plugins/harness-everything/skills/fable-mode/fable-haiku/SKILL.md +1 -1
  119. package/plugins/harness-everything/skills/fable-mode/fable-opus/SKILL.md +1 -1
  120. package/plugins/harness-everything/skills/fable-mode/fable-sonnet/SKILL.md +1 -1
  121. package/plugins/harness-everything/skills/fable-mode/scripts/workflow-plan-consumer.js +101 -2
  122. package/plugins/harness-everything/skills/harness-everything/SKILL.md +8 -7
  123. package/plugins/harness-everything/skills/harness-everything/references/router-workflow-plan.md +11 -6
  124. package/plugins/harness-everything/skills/harness-everything/references/triage-and-tiers.md +21 -23
  125. package/plugins/harness-everything/skills/harness-everything/schemas/router-workflow-plan.schema.json +2 -0
  126. package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router-core.js +52 -55
  127. package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router.js +48 -5
  128. package/plugins/harness-everything/skills/harness-everything/scripts/router-contract-core.js +7 -7
  129. package/plugins/harness-everything/skills/harness-everything/scripts/router-contract.js +1 -3
  130. package/plugins/harness-everything/skills/harness-everything/scripts/routing-keywords.json +417 -121
  131. package/plugins/harness-everything/skills/harness-everything/scripts/tier-router.js +64 -113
  132. package/sbom.cdx.json +7 -7
  133. package/scripts/lib/advisory-text.js +2 -2
  134. package/scripts/lib/generated-skills.js +78 -0
@@ -0,0 +1,319 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "pr": "https://github.com/dyphn1/Harness-everything/pull/303",
4
+ "evidenceCommit": "788ea75b7ab69af678734c87ef3cba920b0b892f",
5
+ "finalSourceTree": "8f6c2c942d3f6c1af6ca4332b8ba1f2529b5cc95",
6
+ "directGateTreeBeforeFixtureCorrection": "09ff1e72d936ce56d58b1cbde6ae44cd6486fd39",
7
+ "transformations": [
8
+ "Replace local workspace, temporary-directory and user-home paths with placeholders.",
9
+ "Normalize text to UTF-8 without BOM and LF.",
10
+ "Reformat JSON without changing non-path values.",
11
+ "Remove trailing spaces/tabs and blank EOF lines from captured .log files; preserve content and internal blank lines."
12
+ ],
13
+ "files": [
14
+ {
15
+ "path": "regression/red.log",
16
+ "source": "harness-issue303-binding-declarations-red.log",
17
+ "phase": "binding-regression",
18
+ "originalSha256": "78c0227964222e3f4b3704de301ce761b89252c554911ffa4192c83ff4dde5cd",
19
+ "publishedSha256": "e7b6aedaafbd3b20a7f8758505bf462903e4cb1a887e7e5edf8f7b44f1a2d569",
20
+ "publishedBytes": 16487
21
+ },
22
+ {
23
+ "path": "regression/workflow-obligations-green.log",
24
+ "source": "harness-issue303-workflow-obligations-green.log",
25
+ "phase": "binding-regression",
26
+ "originalSha256": "635ad4681e12ccbd01322dea194b19bd308c39ea2789a0839ed6f91409e3e953",
27
+ "publishedSha256": "e804227295dda359d12e0b22d4639dc901ccec5e8d1d2682e8a3a4e404f5caa0",
28
+ "publishedBytes": 17663
29
+ },
30
+ {
31
+ "path": "regression/binding-resolution-green.log",
32
+ "source": "harness-issue303-binding-resolution-green.log",
33
+ "phase": "binding-regression",
34
+ "originalSha256": "f3afd23d462c3d09a1ce6c0cb303c1d8046894554d7d5431fd6798896e9c517c",
35
+ "publishedSha256": "1262bf223f24fc087c7080e38f16a7eb942fbe1d2dd5a0f6138cdc4a37ba237c",
36
+ "publishedBytes": 2274
37
+ },
38
+ {
39
+ "path": "regression/determinism.json",
40
+ "source": "harness-issue303-green-determinism.json",
41
+ "phase": "binding-regression",
42
+ "originalSha256": "c407cd7ddc541bc79b146d690a2fb86e1f36d1fc316534c9e61b4fe8aa2705af",
43
+ "publishedSha256": "ebceb1eb1f88d065652455174d40b6e7594a93b142959eff719ce75b4bdf9e52",
44
+ "publishedBytes": 5802
45
+ },
46
+ {
47
+ "path": "regression/quality-evidence.json",
48
+ "source": "harness-issue303-quality-evidence.json",
49
+ "phase": "binding-regression",
50
+ "originalSha256": "f98a0d9a2adeda084fa7512efa2e94694f9ea3f932e3bfa6dbc90235c0ce9b67",
51
+ "publishedSha256": "f98a0d9a2adeda084fa7512efa2e94694f9ea3f932e3bfa6dbc90235c0ce9b67",
52
+ "publishedBytes": 11383
53
+ },
54
+ {
55
+ "path": "regression/quality-report.json",
56
+ "source": "harness-issue303-quality-report.json",
57
+ "phase": "binding-regression",
58
+ "originalSha256": "edd05382031c1097ad4b1302561abfd1507581f4e559d735452e318c9d8458ef",
59
+ "publishedSha256": "edd05382031c1097ad4b1302561abfd1507581f4e559d735452e318c9d8458ef",
60
+ "publishedBytes": 21802
61
+ },
62
+ {
63
+ "path": "regression/untyped-fable-probe.json",
64
+ "source": "harness-pr303-final-contracts/untyped-fable-probe.json",
65
+ "phase": "integrated-before-fixture-fix",
66
+ "originalSha256": "fafbc548813273fe5f6bbdba86b078927eb9d29a7d245544dca59928c16f2ddf",
67
+ "publishedSha256": "fafbc548813273fe5f6bbdba86b078927eb9d29a7d245544dca59928c16f2ddf",
68
+ "publishedBytes": 582
69
+ },
70
+ {
71
+ "path": "gates/heavy/summary.json",
72
+ "source": "harness-pr303-final-heavy/summary.json",
73
+ "phase": "retrospective-summary",
74
+ "originalSha256": "2a48f951783e9e21f44e4ce63ce1bce4aeaf5806cbcd27b10d1d84497309d00e",
75
+ "publishedSha256": "3b93ba86170f2a4dccaf577f77f4af6b033bf4dc5c86e93dedab957aa2c41c22",
76
+ "publishedBytes": 2482
77
+ },
78
+ {
79
+ "path": "gates/heavy/test.log",
80
+ "source": "harness-pr303-final-heavy/test.log",
81
+ "phase": "integrated-before-fixture-fix",
82
+ "originalSha256": "398be165bc6e92a05f0cb1bab1f5f3d52f28e396f05b8fd281f27db35138394b",
83
+ "publishedSha256": "d2465e5a2ebe82a3c0d6b49d1c182a6f80dfa39b08122dd9a75d3af4dde4dfc6",
84
+ "publishedBytes": 210986
85
+ },
86
+ {
87
+ "path": "gates/heavy/test-mutations.log",
88
+ "source": "harness-pr303-final-heavy/test-mutations.log",
89
+ "phase": "integrated-before-fixture-fix",
90
+ "originalSha256": "d3ed04bfeddddf7352962e031af16e7a0b618b935572f5742b2e380ac254773b",
91
+ "publishedSha256": "f8d5df88e573774362c9f6e0e1f3636b4bf5a81e507edfb0b0209c6d740d3ca2",
92
+ "publishedBytes": 1257
93
+ },
94
+ {
95
+ "path": "gates/heavy/test-mechanism.log",
96
+ "source": "harness-pr303-final-heavy/test-mechanism.log",
97
+ "phase": "integrated-before-fixture-fix",
98
+ "originalSha256": "42328b18e6bc982a0ca86e8088b6daa876d66b7fc9cd471fcbddf7505ca69444",
99
+ "publishedSha256": "6d581d6b1a9a00b9f13097869ea240ed5fc71fd791fddae1414b3601ae97fce1",
100
+ "publishedBytes": 106226
101
+ },
102
+ {
103
+ "path": "gates/contracts/summary.json",
104
+ "source": "harness-pr303-final-contracts/summary.json",
105
+ "phase": "integrated-before-fixture-fix",
106
+ "originalSha256": "e2f28f2c615dc676ec5f16dc250ca1f0108d40c799ab86a5d530b2a6ebfa0c06",
107
+ "publishedSha256": "595de9a32a8760d4cfbd39cbed34b0b8cec32912d0d8748fa039d9f7cdebf99a",
108
+ "publishedBytes": 1526
109
+ },
110
+ {
111
+ "path": "gates/contracts/test-consistency.log",
112
+ "source": "harness-pr303-final-contracts/test-consistency.log",
113
+ "phase": "integrated-before-fixture-fix",
114
+ "originalSha256": "60d50d37d5d28fa438840a1703cf4308442d4aa9aa924ae69ddb1e747ff2e8b3",
115
+ "publishedSha256": "a8fd3443667656958ffd05f3a46961e6b0ec919dd466b75e46f3b704bb8aac29",
116
+ "publishedBytes": 37174
117
+ },
118
+ {
119
+ "path": "gates/contracts/test-repo-contract.log",
120
+ "source": "harness-pr303-final-contracts/test-repo-contract.log",
121
+ "phase": "integrated-before-fixture-fix",
122
+ "originalSha256": "839adc8ba7de1780d5efefaddb6ac555c663ecc4f46e8f75ad9a290088a2423a",
123
+ "publishedSha256": "3918c1d02ee865c7f46867381baabc98832372cc7e9c7fda3bc3c9b3c3f975ca",
124
+ "publishedBytes": 217
125
+ },
126
+ {
127
+ "path": "gates/contracts/test-docs-capabilities.log",
128
+ "source": "harness-pr303-final-contracts/test-docs-capabilities.log",
129
+ "phase": "integrated-before-fixture-fix",
130
+ "originalSha256": "fdbfcca3eede1b4734bad899b5f8b6a5df6956139b63d2250252027bb044a581",
131
+ "publishedSha256": "f752740c5256c6f9729b6119840b4652b7e43223c14246825d3e2bef7cf97573",
132
+ "publishedBytes": 7537
133
+ },
134
+ {
135
+ "path": "gates/contracts/test-references.log",
136
+ "source": "harness-pr303-final-contracts/test-references.log",
137
+ "phase": "integrated-before-fixture-fix",
138
+ "originalSha256": "dbfb35c40feb197bb54a9e2f1be0fbf85556720933ad546b8b0c6de133e83a49",
139
+ "publishedSha256": "ee4acf640ef00c738bb66af6c3346cc801d8299b0f5ece341c72aa81f8cfec53",
140
+ "publishedBytes": 161
141
+ },
142
+ {
143
+ "path": "gates/contracts/test-release.log",
144
+ "source": "harness-pr303-final-contracts/test-release.log",
145
+ "phase": "integrated-before-fixture-fix",
146
+ "originalSha256": "bad510bab76026d6aa6a351b9d4ef6515cb7c83eca6ed0a9c5f770f31a65c3fa",
147
+ "publishedSha256": "a57b5323608ecff2c4b6153b1d4137cfa6cbb667e15cd026bc551b0e7c378fcc",
148
+ "publishedBytes": 5689
149
+ },
150
+ {
151
+ "path": "gates/contracts/test-collision.log",
152
+ "source": "harness-pr303-final-contracts/test-collision.log",
153
+ "phase": "integrated-before-fixture-fix",
154
+ "originalSha256": "fcfb23c788b50a92616b3dc70f77e90dadf523c2cb0e25016d449e5b02f9eb97",
155
+ "publishedSha256": "8a3a3124837242bbea274e15ab8f61abfabf71e8134ca29d1203b9d53b237846",
156
+ "publishedBytes": 167
157
+ },
158
+ {
159
+ "path": "gates/contracts/test-routing-skills.log",
160
+ "source": "harness-pr303-final-contracts/test-routing-skills.log",
161
+ "phase": "integrated-before-fixture-fix",
162
+ "originalSha256": "bab15b187538c592cca1606254381fc946a539b1d197158fa3ea6b7a0439e061",
163
+ "publishedSha256": "8b4ac739b39aadb63c3c9396506af487ffc3cb11da66ef02ac8f27f81f205be3",
164
+ "publishedBytes": 3920
165
+ },
166
+ {
167
+ "path": "gates/contracts/test-routing-invariants.log",
168
+ "source": "harness-pr303-final-contracts/test-routing-invariants.log",
169
+ "phase": "integrated-before-fixture-fix",
170
+ "originalSha256": "8de9a89b9a31a89705a26b7fade7ee0c20eafd21de5a070b7ccee65691c2653a",
171
+ "publishedSha256": "db568983fc9d5e4863b35559d12d11e16c7f5513f9bd622199c27549a81aaca0",
172
+ "publishedBytes": 56231
173
+ },
174
+ {
175
+ "path": "gates/contracts/test-plugin-openai.log",
176
+ "source": "harness-pr303-final-contracts/test-plugin-openai.log",
177
+ "phase": "integrated-before-fixture-fix",
178
+ "originalSha256": "f8a46befdf3f63c15369fe2225d32615404aeaa06c56ffd5a08aeb9b618e9fc2",
179
+ "publishedSha256": "bf0c601214aae1268445bc1971fcdb8f43fb10150974c1c1673d416485e854c6",
180
+ "publishedBytes": 303
181
+ },
182
+ {
183
+ "path": "gates/contracts/test-plugin-submission.log",
184
+ "source": "harness-pr303-final-contracts/test-plugin-submission.log",
185
+ "phase": "integrated-before-fixture-fix",
186
+ "originalSha256": "6b0d61ed007ba77cfdbaa9662aeb706859646a3c5ad315d15a9562604677caea",
187
+ "publishedSha256": "81b3d8dbd7f0e325a9c29139fc39f24064667f8ee2492ddd9742b687256cc8b8",
188
+ "publishedBytes": 201
189
+ },
190
+ {
191
+ "path": "gates/contracts/test-platform-compatibility.log",
192
+ "source": "harness-pr303-final-contracts/test-platform-compatibility.log",
193
+ "phase": "integrated-before-fixture-fix",
194
+ "originalSha256": "8ce621c56b4cee6ab6bfddf1c6e635df33c8e10e825bf5a0f36a84691ea3a0dd",
195
+ "publishedSha256": "59eb50fe70cb0c06fba3cfd6b3b5ca51e748c96bd1bc07a2e77b24d3e14789ee",
196
+ "publishedBytes": 441
197
+ },
198
+ {
199
+ "path": "gates/final-fast/summary.json",
200
+ "source": "harness-pr303-final-tree-8f6c2c-fast-gates/summary.json",
201
+ "phase": "final-source-tree",
202
+ "originalSha256": "464614ddac7bc29b9e52768440739e16d407daf6bc33b50814b8dc7271b38bf9",
203
+ "publishedSha256": "eb30209c2200896a903e884719506c74ae4dbe96e1a5b13e5683a2d9d54e3be1",
204
+ "publishedBytes": 287
205
+ },
206
+ {
207
+ "path": "gates/final-fast/test-consistency.log",
208
+ "source": "harness-pr303-final-tree-8f6c2c-fast-gates/test-consistency.log",
209
+ "phase": "final-source-tree",
210
+ "originalSha256": "60d50d37d5d28fa438840a1703cf4308442d4aa9aa924ae69ddb1e747ff2e8b3",
211
+ "publishedSha256": "a8fd3443667656958ffd05f3a46961e6b0ec919dd466b75e46f3b704bb8aac29",
212
+ "publishedBytes": 37174
213
+ },
214
+ {
215
+ "path": "gates/final-fast/test-release.log",
216
+ "source": "harness-pr303-final-tree-8f6c2c-fast-gates/test-release.log",
217
+ "phase": "final-source-tree",
218
+ "originalSha256": "61bf9aefab0a5771e504c39b5e52bb2d376477cecd901a73749e3649df14e55b",
219
+ "publishedSha256": "c79fa6631771e6526824ca8e63a43d8b4dfd2963846f93909f658d595e7d8482",
220
+ "publishedBytes": 5689
221
+ },
222
+ {
223
+ "path": "verification/verify-gate-final.json",
224
+ "source": "harness-pr303-final-heavy/verify-gate-final.json",
225
+ "phase": "final-source-tree",
226
+ "originalSha256": "fb3ec5635eb654d30865b249d1fdbeddfac46ab2bbdf9960f93ebf969278c748",
227
+ "publishedSha256": "c804853a12adb2afafacb02982f219ea120edd2dd6c535a03f39530300d4adcf",
228
+ "publishedBytes": 1060
229
+ },
230
+ {
231
+ "path": "verification/nested-test.stdout.log",
232
+ "source": "harness-pr303-final-heavy/nested-test.stdout.log",
233
+ "phase": "final-source-tree",
234
+ "originalSha256": "dc082a18a7e50ebd13fdafc08bf51ba2611d347eb3f2d18413713df83b93245b",
235
+ "publishedSha256": "688b8795350357e41ea462e7bdd34713e6347db9acf8b4dcbcef1a265358db47",
236
+ "publishedBytes": 203407
237
+ },
238
+ {
239
+ "path": "verification/nested-test.stderr.log",
240
+ "source": "harness-pr303-final-heavy/nested-test.stderr.log",
241
+ "phase": "final-source-tree",
242
+ "originalSha256": "73c6deb966cc324ebc3981c55f038fe30916348f42301ce74985229fdd3043fa",
243
+ "publishedSha256": "8a4ccc0f6bfa773e698462abf23341997c5c1df0907fdea6f995fe4e0df4bccf",
244
+ "publishedBytes": 7307
245
+ },
246
+ {
247
+ "path": "verification/nested-test.meta.json",
248
+ "source": "harness-pr303-final-heavy/nested-test.meta.json",
249
+ "phase": "final-source-tree",
250
+ "originalSha256": "fe53bff2e58cce5b9418aee485a5f8cc573d8ff92527f102b7640b821f1c170e",
251
+ "publishedSha256": "819d51c45b93d81f5543eaf47c65ed45898909881a5435fda4c07b782c9a9f7d",
252
+ "publishedBytes": 117
253
+ },
254
+ {
255
+ "path": "verification/mechanism-35-clean-env-fixed.log",
256
+ "source": "harness-pr303-final-heavy/mechanism-35-clean-env-fixed.log",
257
+ "phase": "final-source-tree",
258
+ "originalSha256": "ba0174d76e6eca4fb951940d85de886e3c101df6cac39e4f40c8830a57476511",
259
+ "publishedSha256": "38cda46cb6a065fb164850f6b2193a4c90e516e6621f1480cd9f913a84490718",
260
+ "publishedBytes": 137
261
+ },
262
+ {
263
+ "path": "verification/mechanism-35-inherited-flag-fixed.log",
264
+ "source": "harness-pr303-final-heavy/mechanism-35-inherited-flag-fixed.log",
265
+ "phase": "final-source-tree",
266
+ "originalSha256": "ba0174d76e6eca4fb951940d85de886e3c101df6cac39e4f40c8830a57476511",
267
+ "publishedSha256": "38cda46cb6a065fb164850f6b2193a4c90e516e6621f1480cd9f913a84490718",
268
+ "publishedBytes": 137
269
+ },
270
+ {
271
+ "path": "diagnostics/verify-gate.json",
272
+ "source": "harness-pr303-final-heavy/verify-gate.json",
273
+ "phase": "failed-attempt-or-reproduction",
274
+ "originalSha256": "8208c5b685e0eb3af8452179682496dc14732ca01e4dadc04ab17a28b35ac5f5",
275
+ "publishedSha256": "41417f0a170d6ef180bc79ce35a7e2f8e5f59bf5f0b5955025224a7a5fa5d9e9",
276
+ "publishedBytes": 980
277
+ },
278
+ {
279
+ "path": "diagnostics/verify-gate-captured.json",
280
+ "source": "harness-pr303-final-heavy/verify-gate-captured.json",
281
+ "phase": "failed-attempt-or-reproduction",
282
+ "originalSha256": "ec7cfc0eb2cd4e2ce7b63a100cf83fb9a32b30810ff1fd84969f1f54024c1972",
283
+ "publishedSha256": "2a3c29b132ae411caa927347879b5fd3c7b247165c7b80b015a81ad51ecb68de",
284
+ "publishedBytes": 980
285
+ },
286
+ {
287
+ "path": "diagnostics/verify-gate-diagnosis.md",
288
+ "source": "harness-pr303-final-heavy/verify-gate-diagnosis.md",
289
+ "phase": "failed-attempt-or-reproduction",
290
+ "originalSha256": "449f2322c15e2dac0f5cdcc02b9b2f7d15edca183bff62837c3c756d617e185a",
291
+ "publishedSha256": "bcb5d6c172c62a20def96ff97b5940c9b09b999fe0e4533bda60800be0b465d0",
292
+ "publishedBytes": 1160
293
+ },
294
+ {
295
+ "path": "diagnostics/mechanism-35-inherited-flag.log",
296
+ "source": "harness-pr303-final-heavy/mechanism-35-inherited-flag.log",
297
+ "phase": "failed-attempt-or-reproduction",
298
+ "originalSha256": "c3f5495879af612d0b65bfc1facfe7dba581f147a97831e5d4645404e216d2c9",
299
+ "publishedSha256": "3ec341a19b76402d895cabcd6c6a27489cfc1c7778c18e3e7fbdf0c89b3bb50a",
300
+ "publishedBytes": 1223
301
+ },
302
+ {
303
+ "path": "diagnostics/mechanism-35-clean-env.log",
304
+ "source": "harness-pr303-final-heavy/mechanism-35-clean-env.log",
305
+ "phase": "failed-attempt-or-reproduction",
306
+ "originalSha256": "ba0174d76e6eca4fb951940d85de886e3c101df6cac39e4f40c8830a57476511",
307
+ "publishedSha256": "38cda46cb6a065fb164850f6b2193a4c90e516e6621f1480cd9f913a84490718",
308
+ "publishedBytes": 137
309
+ },
310
+ {
311
+ "path": "ci/run.json",
312
+ "source": "harness-pr303-ci-run.json",
313
+ "phase": "github-ci",
314
+ "originalSha256": "b3854ccd23605bf6111c6473e648fe996105bd253392ed9e660f92850f818556",
315
+ "publishedSha256": "6a5b71ddb76d3509ab7cdc6597edf936acd3bb0e27a1495091788e3aa20523a0",
316
+ "publishedBytes": 43222
317
+ }
318
+ ]
319
+ }
@@ -0,0 +1,36 @@
1
+ === PR #303 binding resolution ===
2
+ PASS Tier 2 route persists for declared-path coverage
3
+ PASS plan with a missing declared path is still recorded
4
+ PASS a declared path with no file is recorded as missing, not available
5
+ PASS a declared path that exists resolves to its readable file
6
+ PASS workflow starts with a visible missing binding
7
+ PASS a missing required binding cannot be marked loaded
8
+ PASS the failed load leaves the required binding visibly unavailable
9
+ PASS the step cannot pass while its required binding is unresolved
10
+ PASS an existing optional binding can be loaded
11
+ PASS repository/Claude plugin layout resolves tdd/SKILL.md at the package root
12
+ PASS Codex plugin package ships the binding resolver
13
+ PASS Codex plugin layout resolves tdd/SKILL.md under its skills/ root
14
+ PASS a path absent from workspace and package roots is missing
15
+ PASS fixture precondition: Harness ships docs/architecture.md
16
+ PASS a missing workspace reference does not resolve to the Harness package copy
17
+ PASS a skill id naming its own SKILL.md still resolves from the package
18
+ PASS a registered id at an unregistered path is treated as a workspace reference
19
+ PASS Tier 2 route persists in a client workspace
20
+ PASS client plan declares a workspace reference that collides with a Harness file
21
+ PASS step flow records the colliding workspace reference as missing
22
+ PASS client workflow starts
23
+ PASS step flow cannot load the Harness copy as the workspace reference
24
+ PASS stage flow records the colliding workspace reference as missing
25
+ PASS router runs against a workspace with a generated-skill manifest
26
+ PASS matching self-evolved skill surfaces as a metadata-only id
27
+ PASS router does not disclose the generated skill path or text
28
+ PASS unrelated prompts do not surface the generated skill
29
+ PASS Tier 2 route persists in the generated-skill workspace
30
+ PASS a step can declare the generated skill id as a binding
31
+ PASS the generated binding is not disclosed before its step is active
32
+ PASS built-in TDD binding resolves from the package root outside the Harness repo
33
+ PASS the generated binding becomes available with its SKILL.md once its step is active
34
+ PASS the active generated binding can be loaded
35
+
36
+ PASS: PR #303 binding resolution (0 failures)
@@ -0,0 +1,174 @@
1
+ {
2
+ "generatedBy": "harness-issue303-green-determinism.js",
3
+ "cwd": "<workspace>",
4
+ "scenarios": [
5
+ {
6
+ "id": "typed-required-null",
7
+ "routeExit": 0,
8
+ "baselineSessionFileHashes": {
9
+ "workflow-obligations.json": "dbc03590ec7bbd9745cfd5aa45fd4f1757c827beb243e0c98149a272d3e2caa7",
10
+ "workflow-run.json": "5aa69cd0e787811f4b88bc3379d77ba85d403f5d8b298287d554ccce572f579c"
11
+ },
12
+ "runs": [
13
+ {
14
+ "id": "run-1",
15
+ "input": [
16
+ {
17
+ "id": "req-review",
18
+ "stepType": "review",
19
+ "summary": "Review the change",
20
+ "acceptance": "the change is reviewed",
21
+ "requiredBindings": null
22
+ },
23
+ {
24
+ "id": "req-verify",
25
+ "stepType": "verification",
26
+ "summary": "Verify the change",
27
+ "acceptance": "objective evidence is recorded"
28
+ }
29
+ ],
30
+ "exitStatus": 2,
31
+ "errorCategory": "validation-error",
32
+ "output": {
33
+ "stdout": "",
34
+ "stderr": "[Workflow Disposition] req-review.requiredBindings must be an array\n"
35
+ },
36
+ "sideEffects": {
37
+ "createdFiles": [],
38
+ "changedFiles": [],
39
+ "deletedFiles": [],
40
+ "persistentState": {
41
+ "sessionFilesEqualToBefore": true,
42
+ "sessionFileHashes": {
43
+ "workflow-obligations.json": "dbc03590ec7bbd9745cfd5aa45fd4f1757c827beb243e0c98149a272d3e2caa7",
44
+ "workflow-run.json": "5aa69cd0e787811f4b88bc3379d77ba85d403f5d8b298287d554ccce572f579c"
45
+ }
46
+ },
47
+ "events": [],
48
+ "logs": [],
49
+ "externalCalls": []
50
+ }
51
+ },
52
+ {
53
+ "id": "run-2",
54
+ "input": [
55
+ {
56
+ "id": "req-review",
57
+ "stepType": "review",
58
+ "summary": "Review the change",
59
+ "acceptance": "the change is reviewed",
60
+ "requiredBindings": null
61
+ },
62
+ {
63
+ "id": "req-verify",
64
+ "stepType": "verification",
65
+ "summary": "Verify the change",
66
+ "acceptance": "objective evidence is recorded"
67
+ }
68
+ ],
69
+ "exitStatus": 2,
70
+ "errorCategory": "validation-error",
71
+ "output": {
72
+ "stdout": "",
73
+ "stderr": "[Workflow Disposition] req-review.requiredBindings must be an array\n"
74
+ },
75
+ "sideEffects": {
76
+ "createdFiles": [],
77
+ "changedFiles": [],
78
+ "deletedFiles": [],
79
+ "persistentState": {
80
+ "sessionFilesEqualToBefore": true,
81
+ "sessionFileHashes": {
82
+ "workflow-obligations.json": "dbc03590ec7bbd9745cfd5aa45fd4f1757c827beb243e0c98149a272d3e2caa7",
83
+ "workflow-run.json": "5aa69cd0e787811f4b88bc3379d77ba85d403f5d8b298287d554ccce572f579c"
84
+ }
85
+ },
86
+ "events": [],
87
+ "logs": [],
88
+ "externalCalls": []
89
+ }
90
+ }
91
+ ],
92
+ "identical": true
93
+ },
94
+ {
95
+ "id": "untyped-optional-object",
96
+ "routeExit": 0,
97
+ "baselineSessionFileHashes": {
98
+ "workflow-obligations.json": "7241ba0c1664d3349285c55edeaf915171d30b4013af8390f0281a87210a32af",
99
+ "workflow-run.json": "c84c795cdc35d4b57eb064cb1ded7d932ee06fede4a987dda9463180a4d5a3a1"
100
+ },
101
+ "runs": [
102
+ {
103
+ "id": "run-1",
104
+ "input": [
105
+ {
106
+ "id": "req-review",
107
+ "summary": "Review the change",
108
+ "acceptance": "the change is reviewed",
109
+ "optionalBindings": {
110
+ "id": "ignored"
111
+ }
112
+ }
113
+ ],
114
+ "exitStatus": 2,
115
+ "errorCategory": "validation-error",
116
+ "output": {
117
+ "stdout": "",
118
+ "stderr": "[Workflow Disposition] req-review.optionalBindings must be an array\n"
119
+ },
120
+ "sideEffects": {
121
+ "createdFiles": [],
122
+ "changedFiles": [],
123
+ "deletedFiles": [],
124
+ "persistentState": {
125
+ "sessionFilesEqualToBefore": true,
126
+ "sessionFileHashes": {
127
+ "workflow-obligations.json": "7241ba0c1664d3349285c55edeaf915171d30b4013af8390f0281a87210a32af",
128
+ "workflow-run.json": "c84c795cdc35d4b57eb064cb1ded7d932ee06fede4a987dda9463180a4d5a3a1"
129
+ }
130
+ },
131
+ "events": [],
132
+ "logs": [],
133
+ "externalCalls": []
134
+ }
135
+ },
136
+ {
137
+ "id": "run-2",
138
+ "input": [
139
+ {
140
+ "id": "req-review",
141
+ "summary": "Review the change",
142
+ "acceptance": "the change is reviewed",
143
+ "optionalBindings": {
144
+ "id": "ignored"
145
+ }
146
+ }
147
+ ],
148
+ "exitStatus": 2,
149
+ "errorCategory": "validation-error",
150
+ "output": {
151
+ "stdout": "",
152
+ "stderr": "[Workflow Disposition] req-review.optionalBindings must be an array\n"
153
+ },
154
+ "sideEffects": {
155
+ "createdFiles": [],
156
+ "changedFiles": [],
157
+ "deletedFiles": [],
158
+ "persistentState": {
159
+ "sessionFilesEqualToBefore": true,
160
+ "sessionFileHashes": {
161
+ "workflow-obligations.json": "7241ba0c1664d3349285c55edeaf915171d30b4013af8390f0281a87210a32af",
162
+ "workflow-run.json": "c84c795cdc35d4b57eb064cb1ded7d932ee06fede4a987dda9463180a4d5a3a1"
163
+ }
164
+ },
165
+ "events": [],
166
+ "logs": [],
167
+ "externalCalls": []
168
+ }
169
+ }
170
+ ],
171
+ "identical": true
172
+ }
173
+ ]
174
+ }