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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/AGENTS.md +1 -1
- package/CHANGELOG.md +24 -4
- package/README.md +8 -9
- package/VERIFICATION.md +1 -1
- package/benchmarks/results/live-host/claude-2026-10-08-issue-297/README.md +27 -0
- package/benchmarks/results/pr-303-review-2026-10-13/README.md +81 -0
- package/benchmarks/results/pr-303-review-2026-10-13/ci/run.json +1330 -0
- package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/mechanism-35-clean-env.log +1 -0
- package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/mechanism-35-inherited-flag.log +34 -0
- package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/verify-gate-captured.json +46 -0
- package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/verify-gate-diagnosis.md +13 -0
- package/benchmarks/results/pr-303-review-2026-10-13/diagnostics/verify-gate.json +46 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/summary.json +57 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-collision.log +8 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-consistency.log +624 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-docs-capabilities.log +131 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-platform-compatibility.log +9 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-plugin-openai.log +6 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-plugin-submission.log +5 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-references.log +6 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-release.log +73 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-repo-contract.log +5 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-routing-invariants.log +785 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/contracts/test-routing-skills.log +44 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/final-fast/summary.json +12 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/final-fast/test-consistency.log +624 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/final-fast/test-release.log +73 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/summary.json +79 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/test-mechanism.log +1737 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/test-mutations.log +16 -0
- package/benchmarks/results/pr-303-review-2026-10-13/gates/heavy/test.log +3297 -0
- package/benchmarks/results/pr-303-review-2026-10-13/manifest.json +319 -0
- package/benchmarks/results/pr-303-review-2026-10-13/regression/binding-resolution-green.log +36 -0
- package/benchmarks/results/pr-303-review-2026-10-13/regression/determinism.json +174 -0
- package/benchmarks/results/pr-303-review-2026-10-13/regression/quality-evidence.json +314 -0
- package/benchmarks/results/pr-303-review-2026-10-13/regression/quality-report.json +638 -0
- package/benchmarks/results/pr-303-review-2026-10-13/regression/red.log +240 -0
- package/benchmarks/results/pr-303-review-2026-10-13/regression/untyped-fable-probe.json +22 -0
- package/benchmarks/results/pr-303-review-2026-10-13/regression/workflow-obligations-green.log +254 -0
- package/benchmarks/results/pr-303-review-2026-10-13/verification/mechanism-35-clean-env-fixed.log +1 -0
- package/benchmarks/results/pr-303-review-2026-10-13/verification/mechanism-35-inherited-flag-fixed.log +1 -0
- package/benchmarks/results/pr-303-review-2026-10-13/verification/nested-test.meta.json +8 -0
- package/benchmarks/results/pr-303-review-2026-10-13/verification/nested-test.stderr.log +90 -0
- package/benchmarks/results/pr-303-review-2026-10-13/verification/nested-test.stdout.log +3186 -0
- package/benchmarks/results/pr-303-review-2026-10-13/verification/verify-gate-final.json +46 -0
- package/bin/cli.js +1 -1
- package/ci/invariant-routing.test.js +7 -4
- package/ci/mechanism-2ag-router-worktree-contract.test.js +2 -2
- package/ci/mechanism-2ai-workspace-fingerprint-batch.test.js +2 -1
- package/ci/mechanism-2an-workflow-obligations.test.js +352 -3
- package/ci/mechanism-2aq-fable-stage-bindings.test.js +168 -0
- package/ci/mechanism-2ar-binding-resolution.test.js +211 -0
- package/ci/mechanism-35-verification-contract.test.js +1 -1
- package/ci/mutation-check.js +2 -0
- package/ci/mutation-loader.js +4 -0
- package/ci/openai-plugin-package.test.js +7 -5
- package/ci/prompt-contract-regressions.test.js +7 -6
- package/ci/router-workflow-plan.test.js +109 -14
- package/ci/skill-routing-check.js +44 -15
- package/ci/workflow-plan-consumers.test.js +41 -1
- package/docs/architecture.md +10 -10
- package/docs/enforcement-locks.md +1 -1
- package/docs/mechanism-first-skill-mesh.md +12 -11
- package/docs/openai-plugin.md +1 -1
- package/docs/philosophy.md +7 -6
- package/docs/platform-capabilities.md +7 -5
- package/docs/routing.md +16 -17
- package/docs/system-one-observations.md +1 -1
- package/docs/system-one-routing.md +10 -7
- package/docs/system-one-suggestion-gates.md +5 -5
- package/docs/workflow-runtime.md +6 -2
- package/docs/workflows/harness-everything.md +14 -14
- 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/fable-mode/CONTRACT-FORMAT.md +4 -1
- package/fable-mode/SKILL.md +6 -8
- package/fable-mode/agents/fable-orchestrator.md +10 -3
- package/fable-mode/execution-guardrails/SKILL.md +1 -1
- package/fable-mode/fable-haiku/SKILL.md +1 -1
- package/fable-mode/fable-opus/SKILL.md +1 -1
- package/fable-mode/fable-sonnet/SKILL.md +1 -1
- package/fable-mode/scripts/workflow-plan-consumer.js +101 -2
- package/harness-everything/SKILL.md +8 -7
- package/harness-everything/references/router-workflow-plan.md +11 -6
- package/harness-everything/references/triage-and-tiers.md +21 -23
- package/harness-everything/schemas/router-workflow-plan.schema.json +2 -0
- package/harness-everything/scripts/kernel-router-core.js +52 -55
- package/harness-everything/scripts/kernel-router.js +48 -5
- package/harness-everything/scripts/router-contract-core.js +7 -7
- package/harness-everything/scripts/router-contract.js +1 -3
- package/harness-everything/scripts/routing-keywords.json +417 -121
- package/harness-everything/scripts/tier-router.js +64 -113
- package/hooks/scripts/contract-test.js +29 -3
- package/hooks/scripts/lib/binding-resolver.js +76 -0
- package/hooks/scripts/lib/fable-contracts.js +1 -1
- package/hooks/scripts/lib/workflow-obligations.js +292 -7
- package/hooks/scripts/lib/workflow-runtime.js +8 -1
- package/hooks/scripts/workflow-disposition.js +116 -2
- package/opencode-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/plugins/harness-everything/.codex-plugin/plugin.json +1 -1
- package/plugins/harness-everything/hooks/scripts/contract-test.js +29 -3
- package/plugins/harness-everything/hooks/scripts/lib/binding-resolver.js +76 -0
- package/plugins/harness-everything/hooks/scripts/lib/fable-contracts.js +1 -1
- package/plugins/harness-everything/hooks/scripts/lib/workflow-obligations.js +292 -7
- package/plugins/harness-everything/hooks/scripts/lib/workflow-runtime.js +8 -1
- package/plugins/harness-everything/hooks/scripts/workflow-disposition.js +116 -2
- package/plugins/harness-everything/plugin.json +1 -1
- package/plugins/harness-everything/scripts/lib/advisory-text.js +2 -2
- package/plugins/harness-everything/scripts/lib/generated-skills.js +78 -0
- package/plugins/harness-everything/skills/fable-mode/CONTRACT-FORMAT.md +4 -1
- package/plugins/harness-everything/skills/fable-mode/SKILL.md +6 -8
- package/plugins/harness-everything/skills/fable-mode/agents/fable-orchestrator.md +10 -3
- package/plugins/harness-everything/skills/fable-mode/execution-guardrails/SKILL.md +1 -1
- package/plugins/harness-everything/skills/fable-mode/fable-haiku/SKILL.md +1 -1
- package/plugins/harness-everything/skills/fable-mode/fable-opus/SKILL.md +1 -1
- package/plugins/harness-everything/skills/fable-mode/fable-sonnet/SKILL.md +1 -1
- package/plugins/harness-everything/skills/fable-mode/scripts/workflow-plan-consumer.js +101 -2
- package/plugins/harness-everything/skills/harness-everything/SKILL.md +8 -7
- package/plugins/harness-everything/skills/harness-everything/references/router-workflow-plan.md +11 -6
- package/plugins/harness-everything/skills/harness-everything/references/triage-and-tiers.md +21 -23
- package/plugins/harness-everything/skills/harness-everything/schemas/router-workflow-plan.schema.json +2 -0
- package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router-core.js +52 -55
- package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router.js +48 -5
- package/plugins/harness-everything/skills/harness-everything/scripts/router-contract-core.js +7 -7
- package/plugins/harness-everything/skills/harness-everything/scripts/router-contract.js +1 -3
- package/plugins/harness-everything/skills/harness-everything/scripts/routing-keywords.json +417 -121
- package/plugins/harness-everything/skills/harness-everything/scripts/tier-router.js +64 -113
- package/sbom.cdx.json +7 -7
- package/scripts/lib/advisory-text.js +2 -2
- package/scripts/lib/generated-skills.js +78 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
=== Issue #85 requirements-first workflow contract ===
|
|
2
|
+
PASS Tier 2 route persists successfully
|
|
3
|
+
PASS Tier 2 receives a preliminary iterative-single route
|
|
4
|
+
PASS selected Tier 2 workflow begins pending
|
|
5
|
+
PASS persisted workflow records semantic-contract mode rather than advisory-workflow
|
|
6
|
+
PASS Tier 2 immediately materializes a planning contract
|
|
7
|
+
PASS planning starts with decompose then compose
|
|
8
|
+
PASS requirements begin empty instead of being invented by the router
|
|
9
|
+
PASS router topology is recorded only as candidate strategy
|
|
10
|
+
PASS workflow start refuses to pretend planning is complete
|
|
11
|
+
PASS failed start leaves workflow pending
|
|
12
|
+
PASS unresolved planning does not hard-block ordinary tools
|
|
13
|
+
PASS Stop remains fail-open while planning is unresolved
|
|
14
|
+
PASS unresolved planning cannot silently become satisfied
|
|
15
|
+
PASS decomposition gap is visible
|
|
16
|
+
PASS workflow-composition gap is visible
|
|
17
|
+
PASS new single-agent plans cannot bypass active step typing
|
|
18
|
+
PASS requirements and workflow selection are recorded before execution
|
|
19
|
+
PASS requirement fragments are machine-readable
|
|
20
|
+
PASS workflow choice is explicitly confirmed after decomposition
|
|
21
|
+
PASS decompose obligation resolves from requirement fragments
|
|
22
|
+
PASS compose obligation resolves from workflow-selection evidence
|
|
23
|
+
PASS start activates the confirmed non-Fable workflow
|
|
24
|
+
PASS confirmed workflow becomes running
|
|
25
|
+
PASS planning contract advances to execution phase
|
|
26
|
+
PASS execution adds execute/verify without losing planning evidence
|
|
27
|
+
PASS execution obligation accepts bounded evidence-backed escape
|
|
28
|
+
PASS verification obligation cannot be escaped
|
|
29
|
+
PASS verification obligation can record explicit blocked evidence
|
|
30
|
+
PASS blocked obligation still reminds without trapping Stop
|
|
31
|
+
PASS blocked obligation keeps workflow unresolved rather than satisfied
|
|
32
|
+
PASS blocked verification remains visible
|
|
33
|
+
PASS verification can later resolve to pass with evidence
|
|
34
|
+
PASS behavior-change binding resolves before its active step passes
|
|
35
|
+
PASS behavior-change step advances after TDD binding resolution
|
|
36
|
+
PASS verification skill resolves only when the verification step becomes active
|
|
37
|
+
PASS verification step passes with objective evidence
|
|
38
|
+
PASS objective verification milestone is observed after the earlier mutation
|
|
39
|
+
PASS resolved workflow Stop remains fail-open
|
|
40
|
+
PASS planning + execution + verification allow satisfied
|
|
41
|
+
PASS satisfied workflow has no unresolved obligations
|
|
42
|
+
PASS Tier 2 route persists for active-step binding coverage
|
|
43
|
+
|
|
44
|
+
=== Binding declaration validation ===
|
|
45
|
+
PASS invalid requiredBindings null fixture route persists (typed)
|
|
46
|
+
node : FAIL plan rejects requiredBindings null (typed requirement)
|
|
47
|
+
位於 線路:3 字元:1
|
|
48
|
+
+ node ci/mechanism-2an-workflow-obligations.test.js *> $logPath
|
|
49
|
+
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
50
|
+
+ CategoryInfo : NotSpecified: ( FAIL plan rej...ed requirement):String) [], RemoteException
|
|
51
|
+
+ FullyQualifiedErrorId : NativeCommandError
|
|
52
|
+
|
|
53
|
+
FAIL rejection identifies requiredBindings for null (typed requirement)
|
|
54
|
+
PASS rejected requiredBindings null plan leaves workflow state unchanged (typed)
|
|
55
|
+
FAIL rejected requiredBindings null plan leaves obligation state unchanged (typed)
|
|
56
|
+
PASS invalid requiredBindings null fixture route persists (untyped)
|
|
57
|
+
PASS plan rejects requiredBindings null (untyped requirement)
|
|
58
|
+
FAIL rejection identifies requiredBindings for null (untyped requirement)
|
|
59
|
+
PASS rejected requiredBindings null plan leaves workflow state unchanged (untyped)
|
|
60
|
+
PASS rejected requiredBindings null plan leaves obligation state unchanged (untyped)
|
|
61
|
+
PASS invalid requiredBindings object fixture route persists (typed)
|
|
62
|
+
FAIL plan rejects requiredBindings object (typed requirement)
|
|
63
|
+
FAIL rejection identifies requiredBindings for object (typed requirement)
|
|
64
|
+
PASS rejected requiredBindings object plan leaves workflow state unchanged (typed)
|
|
65
|
+
FAIL rejected requiredBindings object plan leaves obligation state unchanged (typed)
|
|
66
|
+
PASS invalid requiredBindings object fixture route persists (untyped)
|
|
67
|
+
PASS plan rejects requiredBindings object (untyped requirement)
|
|
68
|
+
FAIL rejection identifies requiredBindings for object (untyped requirement)
|
|
69
|
+
PASS rejected requiredBindings object plan leaves workflow state unchanged (untyped)
|
|
70
|
+
PASS rejected requiredBindings object plan leaves obligation state unchanged (untyped)
|
|
71
|
+
PASS invalid requiredBindings string fixture route persists (typed)
|
|
72
|
+
FAIL plan rejects requiredBindings string (typed requirement)
|
|
73
|
+
FAIL rejection identifies requiredBindings for string (typed requirement)
|
|
74
|
+
PASS rejected requiredBindings string plan leaves workflow state unchanged (typed)
|
|
75
|
+
FAIL rejected requiredBindings string plan leaves obligation state unchanged (typed)
|
|
76
|
+
PASS invalid requiredBindings string fixture route persists (untyped)
|
|
77
|
+
PASS plan rejects requiredBindings string (untyped requirement)
|
|
78
|
+
FAIL rejection identifies requiredBindings for string (untyped requirement)
|
|
79
|
+
PASS rejected requiredBindings string plan leaves workflow state unchanged (untyped)
|
|
80
|
+
PASS rejected requiredBindings string plan leaves obligation state unchanged (untyped)
|
|
81
|
+
PASS invalid requiredBindings boolean fixture route persists (typed)
|
|
82
|
+
FAIL plan rejects requiredBindings boolean (typed requirement)
|
|
83
|
+
FAIL rejection identifies requiredBindings for boolean (typed requirement)
|
|
84
|
+
PASS rejected requiredBindings boolean plan leaves workflow state unchanged (typed)
|
|
85
|
+
FAIL rejected requiredBindings boolean plan leaves obligation state unchanged (typed)
|
|
86
|
+
PASS invalid requiredBindings boolean fixture route persists (untyped)
|
|
87
|
+
PASS plan rejects requiredBindings boolean (untyped requirement)
|
|
88
|
+
FAIL rejection identifies requiredBindings for boolean (untyped requirement)
|
|
89
|
+
PASS rejected requiredBindings boolean plan leaves workflow state unchanged (untyped)
|
|
90
|
+
PASS rejected requiredBindings boolean plan leaves obligation state unchanged (untyped)
|
|
91
|
+
PASS invalid requiredBindings number fixture route persists (typed)
|
|
92
|
+
FAIL plan rejects requiredBindings number (typed requirement)
|
|
93
|
+
FAIL rejection identifies requiredBindings for number (typed requirement)
|
|
94
|
+
PASS rejected requiredBindings number plan leaves workflow state unchanged (typed)
|
|
95
|
+
FAIL rejected requiredBindings number plan leaves obligation state unchanged (typed)
|
|
96
|
+
PASS invalid requiredBindings number fixture route persists (untyped)
|
|
97
|
+
PASS plan rejects requiredBindings number (untyped requirement)
|
|
98
|
+
FAIL rejection identifies requiredBindings for number (untyped requirement)
|
|
99
|
+
PASS rejected requiredBindings number plan leaves workflow state unchanged (untyped)
|
|
100
|
+
PASS rejected requiredBindings number plan leaves obligation state unchanged (untyped)
|
|
101
|
+
PASS invalid optionalBindings null fixture route persists (typed)
|
|
102
|
+
FAIL plan rejects optionalBindings null (typed requirement)
|
|
103
|
+
FAIL rejection identifies optionalBindings for null (typed requirement)
|
|
104
|
+
PASS rejected optionalBindings null plan leaves workflow state unchanged (typed)
|
|
105
|
+
FAIL rejected optionalBindings null plan leaves obligation state unchanged (typed)
|
|
106
|
+
PASS invalid optionalBindings null fixture route persists (untyped)
|
|
107
|
+
PASS plan rejects optionalBindings null (untyped requirement)
|
|
108
|
+
FAIL rejection identifies optionalBindings for null (untyped requirement)
|
|
109
|
+
PASS rejected optionalBindings null plan leaves workflow state unchanged (untyped)
|
|
110
|
+
PASS rejected optionalBindings null plan leaves obligation state unchanged (untyped)
|
|
111
|
+
PASS invalid optionalBindings object fixture route persists (typed)
|
|
112
|
+
FAIL plan rejects optionalBindings object (typed requirement)
|
|
113
|
+
FAIL rejection identifies optionalBindings for object (typed requirement)
|
|
114
|
+
PASS rejected optionalBindings object plan leaves workflow state unchanged (typed)
|
|
115
|
+
FAIL rejected optionalBindings object plan leaves obligation state unchanged (typed)
|
|
116
|
+
PASS invalid optionalBindings object fixture route persists (untyped)
|
|
117
|
+
PASS plan rejects optionalBindings object (untyped requirement)
|
|
118
|
+
FAIL rejection identifies optionalBindings for object (untyped requirement)
|
|
119
|
+
PASS rejected optionalBindings object plan leaves workflow state unchanged (untyped)
|
|
120
|
+
PASS rejected optionalBindings object plan leaves obligation state unchanged (untyped)
|
|
121
|
+
PASS invalid optionalBindings string fixture route persists (typed)
|
|
122
|
+
FAIL plan rejects optionalBindings string (typed requirement)
|
|
123
|
+
FAIL rejection identifies optionalBindings for string (typed requirement)
|
|
124
|
+
PASS rejected optionalBindings string plan leaves workflow state unchanged (typed)
|
|
125
|
+
FAIL rejected optionalBindings string plan leaves obligation state unchanged (typed)
|
|
126
|
+
PASS invalid optionalBindings string fixture route persists (untyped)
|
|
127
|
+
PASS plan rejects optionalBindings string (untyped requirement)
|
|
128
|
+
FAIL rejection identifies optionalBindings for string (untyped requirement)
|
|
129
|
+
PASS rejected optionalBindings string plan leaves workflow state unchanged (untyped)
|
|
130
|
+
PASS rejected optionalBindings string plan leaves obligation state unchanged (untyped)
|
|
131
|
+
PASS invalid optionalBindings boolean fixture route persists (typed)
|
|
132
|
+
FAIL plan rejects optionalBindings boolean (typed requirement)
|
|
133
|
+
FAIL rejection identifies optionalBindings for boolean (typed requirement)
|
|
134
|
+
PASS rejected optionalBindings boolean plan leaves workflow state unchanged (typed)
|
|
135
|
+
FAIL rejected optionalBindings boolean plan leaves obligation state unchanged (typed)
|
|
136
|
+
PASS invalid optionalBindings boolean fixture route persists (untyped)
|
|
137
|
+
PASS plan rejects optionalBindings boolean (untyped requirement)
|
|
138
|
+
FAIL rejection identifies optionalBindings for boolean (untyped requirement)
|
|
139
|
+
PASS rejected optionalBindings boolean plan leaves workflow state unchanged (untyped)
|
|
140
|
+
PASS rejected optionalBindings boolean plan leaves obligation state unchanged (untyped)
|
|
141
|
+
PASS invalid optionalBindings number fixture route persists (typed)
|
|
142
|
+
FAIL plan rejects optionalBindings number (typed requirement)
|
|
143
|
+
FAIL rejection identifies optionalBindings for number (typed requirement)
|
|
144
|
+
PASS rejected optionalBindings number plan leaves workflow state unchanged (typed)
|
|
145
|
+
FAIL rejected optionalBindings number plan leaves obligation state unchanged (typed)
|
|
146
|
+
PASS invalid optionalBindings number fixture route persists (untyped)
|
|
147
|
+
PASS plan rejects optionalBindings number (untyped requirement)
|
|
148
|
+
FAIL rejection identifies optionalBindings for number (untyped requirement)
|
|
149
|
+
PASS rejected optionalBindings number plan leaves workflow state unchanged (untyped)
|
|
150
|
+
PASS rejected optionalBindings number plan leaves obligation state unchanged (untyped)
|
|
151
|
+
PASS empty-array binding fixture route persists
|
|
152
|
+
PASS plan accepts omitted and explicit empty binding arrays
|
|
153
|
+
PASS omitted binding arrays remain empty after normalization
|
|
154
|
+
PASS explicit empty binding arrays remain empty after normalization
|
|
155
|
+
PASS normalized ordered steps are recorded in the existing requirements contract
|
|
156
|
+
PASS typed steps preserve request order
|
|
157
|
+
PASS behavior-change step materializes required TDD binding
|
|
158
|
+
PASS verification step owns its verification-loop binding
|
|
159
|
+
PASS commit step materializes required git-commit binding
|
|
160
|
+
PASS typed-step plan cannot omit the mandatory verification step
|
|
161
|
+
PASS start accepts a confirmed typed-step workflow
|
|
162
|
+
PASS start returns the first ordered step as active
|
|
163
|
+
PASS start returns concrete commands for resolving the active binding and passing the step
|
|
164
|
+
PASS review starts without TDD and surfaces only its optional binding
|
|
165
|
+
PASS active optional binding includes its load path
|
|
166
|
+
PASS start does not disclose future-step bindings
|
|
167
|
+
PASS future-step binding cannot be resolved before its step becomes active
|
|
168
|
+
PASS active step is persisted in workflow-obligations state
|
|
169
|
+
PASS typed-step workflows do not reintroduce global suggested-skill pushes
|
|
170
|
+
PASS active step cannot pass before surfaced optional bindings are resolved
|
|
171
|
+
PASS active optional binding can be loaded with evidence
|
|
172
|
+
PASS optional binding cannot be marked not-needed without evidence
|
|
173
|
+
PASS active optional binding can be marked not-needed with evidence
|
|
174
|
+
PASS review step can pass after its surfaced optional binding is resolved
|
|
175
|
+
PASS review advance returns only the behavior-change step and its required TDD binding
|
|
176
|
+
PASS behavior-change output includes its TDD path but keeps later bindings hidden
|
|
177
|
+
PASS behavior-change cannot pass before required TDD binding is resolved
|
|
178
|
+
PASS required TDD binding resolves with load evidence
|
|
179
|
+
PASS resolved behavior-change advances to the mandatory verification step
|
|
180
|
+
PASS verification binding is disclosed only when verification becomes active
|
|
181
|
+
PASS verification binding resolves at its own step
|
|
182
|
+
PASS verification step advances to commit only after its binding resolves
|
|
183
|
+
PASS commit binding is disclosed only when the commit step becomes active
|
|
184
|
+
PASS required git-commit binding resolves at the commit step
|
|
185
|
+
PASS advancing the last step leaves no active-step bindings
|
|
186
|
+
PASS completed typed steps resolve their aggregate execute and verify obligations with linked evidence
|
|
187
|
+
PASS all typed steps can satisfy the workflow without separate aggregate dispositions
|
|
188
|
+
PASS satisfied typed-step workflow has no unresolved obligations
|
|
189
|
+
PASS verification-only workflow route persists
|
|
190
|
+
PASS verification-only typed plan is accepted
|
|
191
|
+
PASS verification-only typed plan starts at its verification step
|
|
192
|
+
PASS empty typed execution group resolves as explicit verification-only evidence
|
|
193
|
+
PASS verification-only step resolves its required binding
|
|
194
|
+
PASS verification-only step passes with objective evidence
|
|
195
|
+
PASS verification-only workflow can satisfy without an execution step
|
|
196
|
+
PASS verification-only completion also resolves the aggregate verify obligation
|
|
197
|
+
PASS route persists for unknown-required-binding coverage
|
|
198
|
+
PASS unknown required binding is accepted into the auditable contract
|
|
199
|
+
PASS start surfaces rather than silently discarding an unknown required binding
|
|
200
|
+
PASS unknown required binding remains visible as pending/unavailable
|
|
201
|
+
PASS unknown required binding cannot be falsely marked loaded
|
|
202
|
+
PASS step with unknown required binding cannot pass
|
|
203
|
+
PASS unknown required binding does not hard-block ordinary tools
|
|
204
|
+
PASS missing binding keeps Stop fail-open while workflow remains unresolved
|
|
205
|
+
PASS Stop reports the unresolved unknown binding
|
|
206
|
+
PASS custom-reference workflow route persists
|
|
207
|
+
PASS step contracts accept an explicit skill/reference path
|
|
208
|
+
PASS custom reference path is normalized and disclosed only at its active step
|
|
209
|
+
PASS explicit reference binding can resolve with evidence
|
|
210
|
+
PASS active step can pass after its explicit reference binding is resolved
|
|
211
|
+
PASS unsafe-reference workflow route persists
|
|
212
|
+
PASS step bindings reject paths that traverse outside repository scope
|
|
213
|
+
PASS drive-reference workflow route persists
|
|
214
|
+
PASS step bindings reject Windows drive-relative paths
|
|
215
|
+
PASS second Tier 2 route persists for replan discriminator
|
|
216
|
+
PASS initial route records normalized knowledge signals
|
|
217
|
+
PASS post-decomposition workflow can be recomposed through the router contract
|
|
218
|
+
PASS recomposed workflow receives an explicit confirmed disposition
|
|
219
|
+
PASS requested and router-confirmed post-decomposition strategy are preserved
|
|
220
|
+
PASS recomposed plan becomes the pending execution contract
|
|
221
|
+
PASS strategy recomposition preserves the original knowledge signals
|
|
222
|
+
PASS recomposed workflow cannot become satisfied before its selected topology starts
|
|
223
|
+
PASS recomposed Fable topology proceeds to its native stage-contract requirement
|
|
224
|
+
PASS recomposed planning state still does not recreate a tool lock
|
|
225
|
+
PASS prohibition fixture routes successfully
|
|
226
|
+
PASS prohibited post-decomposition choice is evaluated by router policy
|
|
227
|
+
PASS original user prohibition survives recomposition
|
|
228
|
+
PASS requirements remain valid while only the prohibited workflow choice stays unresolved
|
|
229
|
+
PASS Tier 3 Fable candidate persists successfully
|
|
230
|
+
PASS Tier 3 keeps Fable as preliminary candidate
|
|
231
|
+
PASS Fable also requires requirements/workflow planning before stage execution
|
|
232
|
+
PASS Fable cannot enter stage execution before planning contract resolves
|
|
233
|
+
PASS Tier 1 route persists successfully
|
|
234
|
+
PASS clear bounded Tier 1 intent has no decomposition overhead
|
|
235
|
+
PASS Tier 1 direct Stop remains lightweight
|
|
236
|
+
PASS Tier 1 remains a minimal direct path
|
|
237
|
+
PASS #190 mutation-probe lock remains retired
|
|
238
|
+
PASS #190 hard budget state remains retired
|
|
239
|
+
|
|
240
|
+
FAIL: issue #85 requirements-first workflow contract (40 failures)
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"scenarios": [
|
|
3
|
+
{
|
|
4
|
+
"field": "requiredBindings",
|
|
5
|
+
"routeExit": 0,
|
|
6
|
+
"routeStrategy": "fable-staged",
|
|
7
|
+
"planExit": 2,
|
|
8
|
+
"stdout": "",
|
|
9
|
+
"stderr": "[Workflow Disposition] req-untyped.requiredBindings must be an array\n",
|
|
10
|
+
"persistentStateUnchanged": true
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"field": "optionalBindings",
|
|
14
|
+
"routeExit": 0,
|
|
15
|
+
"routeStrategy": "fable-staged",
|
|
16
|
+
"planExit": 2,
|
|
17
|
+
"stdout": "",
|
|
18
|
+
"stderr": "[Workflow Disposition] req-untyped.optionalBindings must be an array\n",
|
|
19
|
+
"persistentStateUnchanged": true
|
|
20
|
+
}
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
=== Issue #85 requirements-first workflow contract ===
|
|
2
|
+
PASS Tier 2 route persists successfully
|
|
3
|
+
PASS Tier 2 receives a preliminary iterative-single route
|
|
4
|
+
PASS selected Tier 2 workflow begins pending
|
|
5
|
+
PASS persisted workflow records semantic-contract mode rather than advisory-workflow
|
|
6
|
+
PASS Tier 2 immediately materializes a planning contract
|
|
7
|
+
PASS planning starts with decompose then compose
|
|
8
|
+
PASS requirements begin empty instead of being invented by the router
|
|
9
|
+
PASS router topology is recorded only as candidate strategy
|
|
10
|
+
PASS workflow start refuses to pretend planning is complete
|
|
11
|
+
PASS failed start leaves workflow pending
|
|
12
|
+
PASS unresolved planning does not hard-block ordinary tools
|
|
13
|
+
PASS Stop remains fail-open while planning is unresolved
|
|
14
|
+
PASS unresolved planning cannot silently become satisfied
|
|
15
|
+
PASS decomposition gap is visible
|
|
16
|
+
PASS workflow-composition gap is visible
|
|
17
|
+
PASS new single-agent plans cannot bypass active step typing
|
|
18
|
+
PASS requirements and workflow selection are recorded before execution
|
|
19
|
+
PASS requirement fragments are machine-readable
|
|
20
|
+
PASS workflow choice is explicitly confirmed after decomposition
|
|
21
|
+
PASS decompose obligation resolves from requirement fragments
|
|
22
|
+
PASS compose obligation resolves from workflow-selection evidence
|
|
23
|
+
PASS start activates the confirmed non-Fable workflow
|
|
24
|
+
PASS confirmed workflow becomes running
|
|
25
|
+
PASS planning contract advances to execution phase
|
|
26
|
+
PASS execution adds execute/verify without losing planning evidence
|
|
27
|
+
PASS execution obligation accepts bounded evidence-backed escape
|
|
28
|
+
PASS verification obligation cannot be escaped
|
|
29
|
+
PASS verification obligation can record explicit blocked evidence
|
|
30
|
+
PASS blocked obligation still reminds without trapping Stop
|
|
31
|
+
PASS blocked obligation keeps workflow unresolved rather than satisfied
|
|
32
|
+
PASS blocked verification remains visible
|
|
33
|
+
PASS verification can later resolve to pass with evidence
|
|
34
|
+
PASS behavior-change binding resolves before its active step passes
|
|
35
|
+
PASS behavior-change step advances after TDD binding resolution
|
|
36
|
+
PASS verification skill resolves only when the verification step becomes active
|
|
37
|
+
PASS verification step passes with objective evidence
|
|
38
|
+
PASS objective verification milestone is observed after the earlier mutation
|
|
39
|
+
PASS resolved workflow Stop remains fail-open
|
|
40
|
+
PASS planning + execution + verification allow satisfied
|
|
41
|
+
PASS satisfied workflow has no unresolved obligations
|
|
42
|
+
PASS Tier 2 route persists for active-step binding coverage
|
|
43
|
+
|
|
44
|
+
=== Binding declaration validation ===
|
|
45
|
+
PASS invalid requiredBindings null fixture route persists (typed)
|
|
46
|
+
PASS plan exits 2 for requiredBindings null (typed requirement)
|
|
47
|
+
PASS rejected requiredBindings null plan writes no stdout (typed)
|
|
48
|
+
PASS rejection identifies requiredBindings for null (typed requirement)
|
|
49
|
+
PASS rejected requiredBindings null plan leaves workflow state unchanged (typed)
|
|
50
|
+
PASS rejected requiredBindings null plan leaves obligation state unchanged (typed)
|
|
51
|
+
PASS invalid requiredBindings null fixture route persists (untyped)
|
|
52
|
+
PASS plan exits 2 for requiredBindings null (untyped requirement)
|
|
53
|
+
PASS rejected requiredBindings null plan writes no stdout (untyped)
|
|
54
|
+
PASS rejection identifies requiredBindings for null (untyped requirement)
|
|
55
|
+
PASS rejected requiredBindings null plan leaves workflow state unchanged (untyped)
|
|
56
|
+
PASS rejected requiredBindings null plan leaves obligation state unchanged (untyped)
|
|
57
|
+
PASS invalid requiredBindings object fixture route persists (typed)
|
|
58
|
+
PASS plan exits 2 for requiredBindings object (typed requirement)
|
|
59
|
+
PASS rejected requiredBindings object plan writes no stdout (typed)
|
|
60
|
+
PASS rejection identifies requiredBindings for object (typed requirement)
|
|
61
|
+
PASS rejected requiredBindings object plan leaves workflow state unchanged (typed)
|
|
62
|
+
PASS rejected requiredBindings object plan leaves obligation state unchanged (typed)
|
|
63
|
+
PASS invalid requiredBindings object fixture route persists (untyped)
|
|
64
|
+
PASS plan exits 2 for requiredBindings object (untyped requirement)
|
|
65
|
+
PASS rejected requiredBindings object plan writes no stdout (untyped)
|
|
66
|
+
PASS rejection identifies requiredBindings for object (untyped requirement)
|
|
67
|
+
PASS rejected requiredBindings object plan leaves workflow state unchanged (untyped)
|
|
68
|
+
PASS rejected requiredBindings object plan leaves obligation state unchanged (untyped)
|
|
69
|
+
PASS invalid requiredBindings string fixture route persists (typed)
|
|
70
|
+
PASS plan exits 2 for requiredBindings string (typed requirement)
|
|
71
|
+
PASS rejected requiredBindings string plan writes no stdout (typed)
|
|
72
|
+
PASS rejection identifies requiredBindings for string (typed requirement)
|
|
73
|
+
PASS rejected requiredBindings string plan leaves workflow state unchanged (typed)
|
|
74
|
+
PASS rejected requiredBindings string plan leaves obligation state unchanged (typed)
|
|
75
|
+
PASS invalid requiredBindings string fixture route persists (untyped)
|
|
76
|
+
PASS plan exits 2 for requiredBindings string (untyped requirement)
|
|
77
|
+
PASS rejected requiredBindings string plan writes no stdout (untyped)
|
|
78
|
+
PASS rejection identifies requiredBindings for string (untyped requirement)
|
|
79
|
+
PASS rejected requiredBindings string plan leaves workflow state unchanged (untyped)
|
|
80
|
+
PASS rejected requiredBindings string plan leaves obligation state unchanged (untyped)
|
|
81
|
+
PASS invalid requiredBindings boolean fixture route persists (typed)
|
|
82
|
+
PASS plan exits 2 for requiredBindings boolean (typed requirement)
|
|
83
|
+
PASS rejected requiredBindings boolean plan writes no stdout (typed)
|
|
84
|
+
PASS rejection identifies requiredBindings for boolean (typed requirement)
|
|
85
|
+
PASS rejected requiredBindings boolean plan leaves workflow state unchanged (typed)
|
|
86
|
+
PASS rejected requiredBindings boolean plan leaves obligation state unchanged (typed)
|
|
87
|
+
PASS invalid requiredBindings boolean fixture route persists (untyped)
|
|
88
|
+
PASS plan exits 2 for requiredBindings boolean (untyped requirement)
|
|
89
|
+
PASS rejected requiredBindings boolean plan writes no stdout (untyped)
|
|
90
|
+
PASS rejection identifies requiredBindings for boolean (untyped requirement)
|
|
91
|
+
PASS rejected requiredBindings boolean plan leaves workflow state unchanged (untyped)
|
|
92
|
+
PASS rejected requiredBindings boolean plan leaves obligation state unchanged (untyped)
|
|
93
|
+
PASS invalid requiredBindings number fixture route persists (typed)
|
|
94
|
+
PASS plan exits 2 for requiredBindings number (typed requirement)
|
|
95
|
+
PASS rejected requiredBindings number plan writes no stdout (typed)
|
|
96
|
+
PASS rejection identifies requiredBindings for number (typed requirement)
|
|
97
|
+
PASS rejected requiredBindings number plan leaves workflow state unchanged (typed)
|
|
98
|
+
PASS rejected requiredBindings number plan leaves obligation state unchanged (typed)
|
|
99
|
+
PASS invalid requiredBindings number fixture route persists (untyped)
|
|
100
|
+
PASS plan exits 2 for requiredBindings number (untyped requirement)
|
|
101
|
+
PASS rejected requiredBindings number plan writes no stdout (untyped)
|
|
102
|
+
PASS rejection identifies requiredBindings for number (untyped requirement)
|
|
103
|
+
PASS rejected requiredBindings number plan leaves workflow state unchanged (untyped)
|
|
104
|
+
PASS rejected requiredBindings number plan leaves obligation state unchanged (untyped)
|
|
105
|
+
PASS invalid optionalBindings null fixture route persists (typed)
|
|
106
|
+
PASS plan exits 2 for optionalBindings null (typed requirement)
|
|
107
|
+
PASS rejected optionalBindings null plan writes no stdout (typed)
|
|
108
|
+
PASS rejection identifies optionalBindings for null (typed requirement)
|
|
109
|
+
PASS rejected optionalBindings null plan leaves workflow state unchanged (typed)
|
|
110
|
+
PASS rejected optionalBindings null plan leaves obligation state unchanged (typed)
|
|
111
|
+
PASS invalid optionalBindings null fixture route persists (untyped)
|
|
112
|
+
PASS plan exits 2 for optionalBindings null (untyped requirement)
|
|
113
|
+
PASS rejected optionalBindings null plan writes no stdout (untyped)
|
|
114
|
+
PASS rejection identifies optionalBindings for null (untyped requirement)
|
|
115
|
+
PASS rejected optionalBindings null plan leaves workflow state unchanged (untyped)
|
|
116
|
+
PASS rejected optionalBindings null plan leaves obligation state unchanged (untyped)
|
|
117
|
+
PASS invalid optionalBindings object fixture route persists (typed)
|
|
118
|
+
PASS plan exits 2 for optionalBindings object (typed requirement)
|
|
119
|
+
PASS rejected optionalBindings object plan writes no stdout (typed)
|
|
120
|
+
PASS rejection identifies optionalBindings for object (typed requirement)
|
|
121
|
+
PASS rejected optionalBindings object plan leaves workflow state unchanged (typed)
|
|
122
|
+
PASS rejected optionalBindings object plan leaves obligation state unchanged (typed)
|
|
123
|
+
PASS invalid optionalBindings object fixture route persists (untyped)
|
|
124
|
+
PASS plan exits 2 for optionalBindings object (untyped requirement)
|
|
125
|
+
PASS rejected optionalBindings object plan writes no stdout (untyped)
|
|
126
|
+
PASS rejection identifies optionalBindings for object (untyped requirement)
|
|
127
|
+
PASS rejected optionalBindings object plan leaves workflow state unchanged (untyped)
|
|
128
|
+
PASS rejected optionalBindings object plan leaves obligation state unchanged (untyped)
|
|
129
|
+
PASS invalid optionalBindings string fixture route persists (typed)
|
|
130
|
+
PASS plan exits 2 for optionalBindings string (typed requirement)
|
|
131
|
+
PASS rejected optionalBindings string plan writes no stdout (typed)
|
|
132
|
+
PASS rejection identifies optionalBindings for string (typed requirement)
|
|
133
|
+
PASS rejected optionalBindings string plan leaves workflow state unchanged (typed)
|
|
134
|
+
PASS rejected optionalBindings string plan leaves obligation state unchanged (typed)
|
|
135
|
+
PASS invalid optionalBindings string fixture route persists (untyped)
|
|
136
|
+
PASS plan exits 2 for optionalBindings string (untyped requirement)
|
|
137
|
+
PASS rejected optionalBindings string plan writes no stdout (untyped)
|
|
138
|
+
PASS rejection identifies optionalBindings for string (untyped requirement)
|
|
139
|
+
PASS rejected optionalBindings string plan leaves workflow state unchanged (untyped)
|
|
140
|
+
PASS rejected optionalBindings string plan leaves obligation state unchanged (untyped)
|
|
141
|
+
PASS invalid optionalBindings boolean fixture route persists (typed)
|
|
142
|
+
PASS plan exits 2 for optionalBindings boolean (typed requirement)
|
|
143
|
+
PASS rejected optionalBindings boolean plan writes no stdout (typed)
|
|
144
|
+
PASS rejection identifies optionalBindings for boolean (typed requirement)
|
|
145
|
+
PASS rejected optionalBindings boolean plan leaves workflow state unchanged (typed)
|
|
146
|
+
PASS rejected optionalBindings boolean plan leaves obligation state unchanged (typed)
|
|
147
|
+
PASS invalid optionalBindings boolean fixture route persists (untyped)
|
|
148
|
+
PASS plan exits 2 for optionalBindings boolean (untyped requirement)
|
|
149
|
+
PASS rejected optionalBindings boolean plan writes no stdout (untyped)
|
|
150
|
+
PASS rejection identifies optionalBindings for boolean (untyped requirement)
|
|
151
|
+
PASS rejected optionalBindings boolean plan leaves workflow state unchanged (untyped)
|
|
152
|
+
PASS rejected optionalBindings boolean plan leaves obligation state unchanged (untyped)
|
|
153
|
+
PASS invalid optionalBindings number fixture route persists (typed)
|
|
154
|
+
PASS plan exits 2 for optionalBindings number (typed requirement)
|
|
155
|
+
PASS rejected optionalBindings number plan writes no stdout (typed)
|
|
156
|
+
PASS rejection identifies optionalBindings for number (typed requirement)
|
|
157
|
+
PASS rejected optionalBindings number plan leaves workflow state unchanged (typed)
|
|
158
|
+
PASS rejected optionalBindings number plan leaves obligation state unchanged (typed)
|
|
159
|
+
PASS invalid optionalBindings number fixture route persists (untyped)
|
|
160
|
+
PASS plan exits 2 for optionalBindings number (untyped requirement)
|
|
161
|
+
PASS rejected optionalBindings number plan writes no stdout (untyped)
|
|
162
|
+
PASS rejection identifies optionalBindings for number (untyped requirement)
|
|
163
|
+
PASS rejected optionalBindings number plan leaves workflow state unchanged (untyped)
|
|
164
|
+
PASS rejected optionalBindings number plan leaves obligation state unchanged (untyped)
|
|
165
|
+
PASS empty-array binding fixture route persists
|
|
166
|
+
PASS plan accepts omitted and explicit empty binding arrays
|
|
167
|
+
PASS omitted binding arrays remain empty after normalization
|
|
168
|
+
PASS explicit empty binding arrays remain empty after normalization
|
|
169
|
+
PASS normalized ordered steps are recorded in the existing requirements contract
|
|
170
|
+
PASS typed steps preserve request order
|
|
171
|
+
PASS behavior-change step materializes required TDD binding
|
|
172
|
+
PASS verification step owns its verification-loop binding
|
|
173
|
+
PASS commit step materializes required git-commit binding
|
|
174
|
+
PASS typed-step plan cannot omit the mandatory verification step
|
|
175
|
+
PASS start accepts a confirmed typed-step workflow
|
|
176
|
+
PASS start returns the first ordered step as active
|
|
177
|
+
PASS start returns concrete commands for resolving the active binding and passing the step
|
|
178
|
+
PASS review starts without TDD and surfaces only its optional binding
|
|
179
|
+
PASS active optional binding includes its load path
|
|
180
|
+
PASS start does not disclose future-step bindings
|
|
181
|
+
PASS future-step binding cannot be resolved before its step becomes active
|
|
182
|
+
PASS active step is persisted in workflow-obligations state
|
|
183
|
+
PASS typed-step workflows do not reintroduce global suggested-skill pushes
|
|
184
|
+
PASS active step cannot pass before surfaced optional bindings are resolved
|
|
185
|
+
PASS active optional binding can be loaded with evidence
|
|
186
|
+
PASS optional binding cannot be marked not-needed without evidence
|
|
187
|
+
PASS active optional binding can be marked not-needed with evidence
|
|
188
|
+
PASS review step can pass after its surfaced optional binding is resolved
|
|
189
|
+
PASS review advance returns only the behavior-change step and its required TDD binding
|
|
190
|
+
PASS behavior-change output includes its TDD path but keeps later bindings hidden
|
|
191
|
+
PASS behavior-change cannot pass before required TDD binding is resolved
|
|
192
|
+
PASS required TDD binding resolves with load evidence
|
|
193
|
+
PASS resolved behavior-change advances to the mandatory verification step
|
|
194
|
+
PASS verification binding is disclosed only when verification becomes active
|
|
195
|
+
PASS verification binding resolves at its own step
|
|
196
|
+
PASS verification step advances to commit only after its binding resolves
|
|
197
|
+
PASS commit binding is disclosed only when the commit step becomes active
|
|
198
|
+
PASS required git-commit binding resolves at the commit step
|
|
199
|
+
PASS advancing the last step leaves no active-step bindings
|
|
200
|
+
PASS completed typed steps resolve their aggregate execute and verify obligations with linked evidence
|
|
201
|
+
PASS all typed steps can satisfy the workflow without separate aggregate dispositions
|
|
202
|
+
PASS satisfied typed-step workflow has no unresolved obligations
|
|
203
|
+
PASS verification-only workflow route persists
|
|
204
|
+
PASS verification-only typed plan is accepted
|
|
205
|
+
PASS verification-only typed plan starts at its verification step
|
|
206
|
+
PASS empty typed execution group resolves as explicit verification-only evidence
|
|
207
|
+
PASS verification-only step resolves its required binding
|
|
208
|
+
PASS verification-only step passes with objective evidence
|
|
209
|
+
PASS verification-only workflow can satisfy without an execution step
|
|
210
|
+
PASS verification-only completion also resolves the aggregate verify obligation
|
|
211
|
+
PASS route persists for unknown-required-binding coverage
|
|
212
|
+
PASS unknown required binding is accepted into the auditable contract
|
|
213
|
+
PASS start surfaces rather than silently discarding an unknown required binding
|
|
214
|
+
PASS unknown required binding remains visible as pending/unavailable
|
|
215
|
+
PASS unknown required binding cannot be falsely marked loaded
|
|
216
|
+
PASS step with unknown required binding cannot pass
|
|
217
|
+
PASS unknown required binding does not hard-block ordinary tools
|
|
218
|
+
PASS missing binding keeps Stop fail-open while workflow remains unresolved
|
|
219
|
+
PASS Stop reports the unresolved unknown binding
|
|
220
|
+
PASS custom-reference workflow route persists
|
|
221
|
+
PASS step contracts accept an explicit skill/reference path
|
|
222
|
+
PASS custom reference path is normalized and disclosed only at its active step
|
|
223
|
+
PASS explicit reference binding can resolve with evidence
|
|
224
|
+
PASS active step can pass after its explicit reference binding is resolved
|
|
225
|
+
PASS unsafe-reference workflow route persists
|
|
226
|
+
PASS step bindings reject paths that traverse outside repository scope
|
|
227
|
+
PASS drive-reference workflow route persists
|
|
228
|
+
PASS step bindings reject Windows drive-relative paths
|
|
229
|
+
PASS second Tier 2 route persists for replan discriminator
|
|
230
|
+
PASS initial route records normalized knowledge signals
|
|
231
|
+
PASS post-decomposition workflow can be recomposed through the router contract
|
|
232
|
+
PASS recomposed workflow receives an explicit confirmed disposition
|
|
233
|
+
PASS requested and router-confirmed post-decomposition strategy are preserved
|
|
234
|
+
PASS recomposed plan becomes the pending execution contract
|
|
235
|
+
PASS strategy recomposition preserves the original knowledge signals
|
|
236
|
+
PASS recomposed workflow cannot become satisfied before its selected topology starts
|
|
237
|
+
PASS recomposed Fable topology proceeds to its native stage-contract requirement
|
|
238
|
+
PASS recomposed planning state still does not recreate a tool lock
|
|
239
|
+
PASS prohibition fixture routes successfully
|
|
240
|
+
PASS prohibited post-decomposition choice is evaluated by router policy
|
|
241
|
+
PASS original user prohibition survives recomposition
|
|
242
|
+
PASS requirements remain valid while only the prohibited workflow choice stays unresolved
|
|
243
|
+
PASS Tier 3 Fable candidate persists successfully
|
|
244
|
+
PASS Tier 3 keeps Fable as preliminary candidate
|
|
245
|
+
PASS Fable also requires requirements/workflow planning before stage execution
|
|
246
|
+
PASS Fable cannot enter stage execution before planning contract resolves
|
|
247
|
+
PASS Tier 1 route persists successfully
|
|
248
|
+
PASS clear bounded Tier 1 intent has no decomposition overhead
|
|
249
|
+
PASS Tier 1 direct Stop remains lightweight
|
|
250
|
+
PASS Tier 1 remains a minimal direct path
|
|
251
|
+
PASS #190 mutation-probe lock remains retired
|
|
252
|
+
PASS #190 hard budget state remains retired
|
|
253
|
+
|
|
254
|
+
PASS: issue #85 requirements-first workflow contract (0 failures)
|
package/benchmarks/results/pr-303-review-2026-10-13/verification/mechanism-35-clean-env-fixed.log
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Issue #242 verification contract: taxonomy, discovery, execution safety, multi-root scope, hook recognition, and Stop evidence verified.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Issue #242 verification contract: taxonomy, discovery, execution safety, multi-root scope, hook recognition, and Stop evidence verified.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
[CRITICAL] RULE OF 3 CIRCUIT BREAKER TRIGGERED!
|
|
2
|
+
The same failure signature has now occurred 3 times.
|
|
3
|
+
Error Signature: 84edbe719770818783c799972ef28e77
|
|
4
|
+
|
|
5
|
+
Mutating tools (Bash/PowerShell/Edit/Write/apply_patch) are locked - not because you
|
|
6
|
+
must wait for a human, but because you must stop drilling and rebuild the
|
|
7
|
+
full picture first. Do NOT ask the Human Partner yet.
|
|
8
|
+
|
|
9
|
+
ACTION REQUIRED (reflect first):
|
|
10
|
+
1. CEASE FIRE. No new fix attempts, no variations of the last one.
|
|
11
|
+
2. Load the 'zoom-out' skill and follow its Reflect & Fact-Check protocol.
|
|
12
|
+
3. Using READ-ONLY tools (Read/Grep/Glob - still available), re-verify the
|
|
13
|
+
assumption behind each failed attempt against the actual code/logs/docs.
|
|
14
|
+
4. Write your findings to '<temp>\harness-mechanism-state-Fl2Oxr\workspaces\harness-everything-issue-297-6eb1109f6a2a\state\sessions\__mechanism_test__\zoom-out-report.md' (the ONLY write
|
|
15
|
+
allowed right now) with sections: ## Goal, ## Failed Attempts,
|
|
16
|
+
## Verified Facts, ## Diagnosis, ## Decision (ending RESUME: or ESCALATE:).
|
|
17
|
+
|
|
18
|
+
A valid report releases this breaker automatically. Escalate to the Human
|
|
19
|
+
Partner ONLY if your Decision concludes a genuinely human call is needed
|
|
20
|
+
(requirement conflict, architecture trade-off, destructive action, missing
|
|
21
|
+
access) - and then present options with a recommendation, not apologies.
|
|
22
|
+
[CRITICAL] RULE OF 3 CIRCUIT BREAKER TRIGGERED!
|
|
23
|
+
The same failure signature has now occurred 3 times.
|
|
24
|
+
Error Signature: mech-test
|
|
25
|
+
|
|
26
|
+
Mutating tools (Bash/PowerShell/Edit/Write/apply_patch) are locked - not because you
|
|
27
|
+
must wait for a human, but because you must stop drilling and rebuild the
|
|
28
|
+
full picture first. Do NOT ask the Human Partner yet.
|
|
29
|
+
|
|
30
|
+
ACTION REQUIRED (reflect first):
|
|
31
|
+
1. CEASE FIRE. No new fix attempts, no variations of the last one.
|
|
32
|
+
2. Load the 'zoom-out' skill and follow its Reflect & Fact-Check protocol.
|
|
33
|
+
3. Using READ-ONLY tools (Read/Grep/Glob - still available), re-verify the
|
|
34
|
+
assumption behind each failed attempt against the actual code/logs/docs.
|
|
35
|
+
4. Write your findings to '<temp>\harness-mechanism-state-Fl2Oxr\workspaces\harness-everything-issue-297-6eb1109f6a2a\state\sessions\__mechanism_test__\zoom-out-report.md' (the ONLY write
|
|
36
|
+
allowed right now) with sections: ## Goal, ## Failed Attempts,
|
|
37
|
+
## Verified Facts, ## Diagnosis, ## Decision (ending RESUME: or ESCALATE:).
|
|
38
|
+
|
|
39
|
+
A valid report releases this breaker automatically. Escalate to the Human
|
|
40
|
+
Partner ONLY if your Decision concludes a genuinely human call is needed
|
|
41
|
+
(requirement conflict, architecture trade-off, destructive action, missing
|
|
42
|
+
access) - and then present options with a recommendation, not apologies.
|
|
43
|
+
[CRITICAL] RULE OF 3 CIRCUIT BREAKER TRIGGERED!
|
|
44
|
+
The same failure signature has now occurred 3 times.
|
|
45
|
+
Error Signature: ca808a9df9b7d8c531929ca6ea04a324
|
|
46
|
+
|
|
47
|
+
Mutating tools (Bash/PowerShell/Edit/Write/apply_patch) are locked - not because you
|
|
48
|
+
must wait for a human, but because you must stop drilling and rebuild the
|
|
49
|
+
full picture first. Do NOT ask the Human Partner yet.
|
|
50
|
+
|
|
51
|
+
ACTION REQUIRED (reflect first):
|
|
52
|
+
1. CEASE FIRE. No new fix attempts, no variations of the last one.
|
|
53
|
+
2. Load the 'zoom-out' skill and follow its Reflect & Fact-Check protocol.
|
|
54
|
+
3. Using READ-ONLY tools (Read/Grep/Glob - still available), re-verify the
|
|
55
|
+
assumption behind each failed attempt against the actual code/logs/docs.
|
|
56
|
+
4. Write your findings to '<temp>\harness-mechanism-state-Fl2Oxr\workspaces\harness-everything-issue-297-6eb1109f6a2a\state\sessions\__mechanism_test__\zoom-out-report.md' (the ONLY write
|
|
57
|
+
allowed right now) with sections: ## Goal, ## Failed Attempts,
|
|
58
|
+
## Verified Facts, ## Diagnosis, ## Decision (ending RESUME: or ESCALATE:).
|
|
59
|
+
|
|
60
|
+
A valid report releases this breaker automatically. Escalate to the Human
|
|
61
|
+
Partner ONLY if your Decision concludes a genuinely human call is needed
|
|
62
|
+
(requirement conflict, architecture trade-off, destructive action, missing
|
|
63
|
+
access) - and then present options with a recommendation, not apologies.
|
|
64
|
+
(node:29656) [DEP0190] DeprecationWarning: Passing args to a child process with shell option true can lead to security vulnerabilities, as the arguments are not escaped, only concatenated.
|
|
65
|
+
(Use `node --trace-deprecation ...` to show where the warning was created)
|
|
66
|
+
⚠️ Preserved existing agent without overwrite: <workspace>\.mechanism-test-manifest-ws\agents\fable-orchestrator.md
|
|
67
|
+
⚠️ Preserved existing agent without overwrite: <workspace>\.mechanism-test-manifest-ws\agents\fable-orchestrator.md
|
|
68
|
+
⚠️ Preserved pre-existing identical agent without claiming ownership: <workspace>\.mechanism-test-manifest-ws\agents\fable-verifier.md
|
|
69
|
+
Harness: ignoring corrupt circuit-breaker state at "<workspace>\.mechanism-test-opencode-home\.agents\harness-everything\workspaces\.mechanism-test-opencode-workspace-f1d77c78973a\state\sessions\corrupt\circuit-breaker.json" and starting fresh.
|
|
70
|
+
warning: in the working copy of '.claude-plugin/marketplace.json', LF will be replaced by CRLF the next time Git touches it
|
|
71
|
+
warning: in the working copy of '.claude-plugin/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
72
|
+
warning: in the working copy of 'alpha/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
73
|
+
warning: in the working copy of 'alpha/nested/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
74
|
+
warning: in the working copy of 'beta/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
75
|
+
warning: in the working copy of 'opencode-plugin/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
76
|
+
warning: in the working copy of 'package-lock.json', LF will be replaced by CRLF the next time Git touches it
|
|
77
|
+
warning: in the working copy of 'package.json', LF will be replaced by CRLF the next time Git touches it
|
|
78
|
+
warning: in the working copy of 'plugins/harness-everything/.codex-plugin/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
79
|
+
warning: in the working copy of 'plugins/harness-everything/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
80
|
+
warning: in the working copy of '.claude-plugin/marketplace.json', LF will be replaced by CRLF the next time Git touches it
|
|
81
|
+
warning: in the working copy of '.claude-plugin/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
82
|
+
warning: in the working copy of 'alpha/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
83
|
+
warning: in the working copy of 'alpha/nested/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
84
|
+
warning: in the working copy of 'beta/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
85
|
+
warning: in the working copy of 'opencode-plugin/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
86
|
+
warning: in the working copy of 'package-lock.json', LF will be replaced by CRLF the next time Git touches it
|
|
87
|
+
warning: in the working copy of 'package.json', LF will be replaced by CRLF the next time Git touches it
|
|
88
|
+
warning: in the working copy of 'plugins/harness-everything/.codex-plugin/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
89
|
+
warning: in the working copy of 'plugins/harness-everything/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
90
|
+
warning: in the working copy of 'alpha/behavior.txt', LF will be replaced by CRLF the next time Git touches it
|