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,3297 @@
|
|
|
1
|
+
|
|
2
|
+
> harness-everything@0.30.10 test
|
|
3
|
+
> node self-evolve/scripts/self-regression.js
|
|
4
|
+
|
|
5
|
+
=================================================
|
|
6
|
+
Harness OS - Self-Regression Test Suite
|
|
7
|
+
=================================================
|
|
8
|
+
|
|
9
|
+
[Phase 1] Static Syntax Check...
|
|
10
|
+
PASS syntax: 234 JavaScript file(s)
|
|
11
|
+
|
|
12
|
+
[Phase 1b] CLI Command Smoke Test...
|
|
13
|
+
PASS `harness next` produced routing + invariant contract.
|
|
14
|
+
PASS `harness verify` exited 0 on a skipped check.
|
|
15
|
+
|
|
16
|
+
[Phase 2] Routing Verification Check...
|
|
17
|
+
=== Harness Tier Verification Framework ===
|
|
18
|
+
This framework simulates routing prompts to verify trigger rates.
|
|
19
|
+
|
|
20
|
+
[Testing] Refactoring large module
|
|
21
|
+
Prompt: "We need to refactor the entire authentication architecture"
|
|
22
|
+
Expected Tier: Tier 3
|
|
23
|
+
-> Result: PASS (Got Tier 3)
|
|
24
|
+
|
|
25
|
+
[Testing] Small feature
|
|
26
|
+
Prompt: "Add a small feature to validate phone numbers"
|
|
27
|
+
Expected Tier: Tier 2
|
|
28
|
+
-> Result: PASS (Got Tier 2)
|
|
29
|
+
|
|
30
|
+
[Testing] One README typo
|
|
31
|
+
Prompt: "Update one README typo"
|
|
32
|
+
Expected Tier: Tier 1
|
|
33
|
+
-> Result: PASS (Got Tier 1)
|
|
34
|
+
|
|
35
|
+
[Testing] Chinese full skill audit
|
|
36
|
+
Prompt: "請逐一評估所有 skill 的內容、檔案結構與版本,並用數據比較是否仍然有效"
|
|
37
|
+
Expected Tier: Tier 3
|
|
38
|
+
-> Result: PASS (Got Tier 3)
|
|
39
|
+
|
|
40
|
+
[Testing] Small bugfix without matched routing signal
|
|
41
|
+
Prompt: "Fix the typo in the login screen"
|
|
42
|
+
Expected Tier: Unclassified
|
|
43
|
+
-> Result: PASS (Got Unclassified)
|
|
44
|
+
|
|
45
|
+
[Testing] API implementation with tests
|
|
46
|
+
Prompt: "Implement the new payment API and write integration tests"
|
|
47
|
+
Expected Tier: Tier 2
|
|
48
|
+
-> Result: PASS (Got Tier 2)
|
|
49
|
+
|
|
50
|
+
[Testing] Chinese prompt - API with tests
|
|
51
|
+
Prompt: "幫我實作新的付款 API 並寫整合測試"
|
|
52
|
+
Expected Tier: Tier 2
|
|
53
|
+
-> Result: PASS (Got Tier 2)
|
|
54
|
+
|
|
55
|
+
[Testing] Chinese prompt - architectural refactor
|
|
56
|
+
Prompt: "重構整個認證模組的架構"
|
|
57
|
+
Expected Tier: Tier 3
|
|
58
|
+
-> Result: PASS (Got Tier 3)
|
|
59
|
+
|
|
60
|
+
[Testing] Full skill efficacy audit
|
|
61
|
+
Prompt: "Evaluate every skill in this Harness repository and verify whether each one is still useful using data"
|
|
62
|
+
Expected Tier: Tier 3
|
|
63
|
+
-> Result: PASS (Got Tier 3)
|
|
64
|
+
|
|
65
|
+
[Testing] All-skill stale reference review
|
|
66
|
+
Prompt: "Review all skills for stale references and compare the installed file tree with the release"
|
|
67
|
+
Expected Tier: Tier 3
|
|
68
|
+
-> Result: PASS (Got Tier 3)
|
|
69
|
+
|
|
70
|
+
[Testing] Controlled A/B benchmark
|
|
71
|
+
Prompt: "Run a controlled A/B benchmark of the agent with and without the Harness skills and report confidence intervals"
|
|
72
|
+
Expected Tier: Tier 3
|
|
73
|
+
-> Result: PASS (Got Tier 3)
|
|
74
|
+
|
|
75
|
+
[Testing] Repository version audit
|
|
76
|
+
Prompt: "Audit this repository version and fix four issues across routing, benchmarks, pressure cases, and missing files"
|
|
77
|
+
Expected Tier: Tier 3
|
|
78
|
+
-> Result: PASS (Got Tier 3)
|
|
79
|
+
|
|
80
|
+
--- Summary: 12 passed, 0 failed ---
|
|
81
|
+
PASS routing matrix
|
|
82
|
+
PASS fable-mode/execution-guardrails/SKILL.md: routing=internal
|
|
83
|
+
PASS fable-mode/fable-haiku/SKILL.md: routing=parent
|
|
84
|
+
PASS fable-mode/fable-opus/SKILL.md: routing=parent
|
|
85
|
+
PASS fable-mode/fable-sonnet/SKILL.md: routing=parent
|
|
86
|
+
PASS environment-detection/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
87
|
+
PASS eval-harness/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
88
|
+
PASS fable-discipline/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
89
|
+
PASS fable-mode/positive-haiku-mode.yaml: skill-specific relevance proven without pre-step path leaks
|
|
90
|
+
PASS fable-mode/positive-opus-mode.yaml: skill-specific relevance proven without pre-step path leaks
|
|
91
|
+
PASS fable-mode/positive-sonnet-mode.yaml: skill-specific relevance proven without pre-step path leaks
|
|
92
|
+
PASS fable-mode/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
93
|
+
PASS find-skills/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
94
|
+
PASS git-commit/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
95
|
+
PASS grill-me/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
96
|
+
PASS grill-with-docs/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
97
|
+
PASS harness-everything/positive-tier1.yaml: skill-specific relevance proven without pre-step path leaks
|
|
98
|
+
PASS harness-everything/positive-tier2.yaml: skill-specific relevance proven without pre-step path leaks
|
|
99
|
+
PASS harness-everything/positive-tier3.yaml: skill-specific relevance proven without pre-step path leaks
|
|
100
|
+
PASS improve-codebase-architecture/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
101
|
+
PASS install-cognitive-os/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
102
|
+
PASS multi-agent-workspace/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
103
|
+
PASS repo-docs/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
104
|
+
PASS rewrite-commits/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
105
|
+
PASS security-review/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
106
|
+
PASS self-evolve/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
107
|
+
PASS skill-creator/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
108
|
+
PASS skill-style/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
109
|
+
PASS tdd/positive-bugfix.yaml: skill-specific relevance proven without pre-step path leaks
|
|
110
|
+
PASS tdd/positive-feature.yaml: skill-specific relevance proven without pre-step path leaks
|
|
111
|
+
PASS tdd/positive-refactor.yaml: skill-specific relevance proven without pre-step path leaks
|
|
112
|
+
PASS to-spec/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
113
|
+
PASS to-tickets/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
114
|
+
PASS todo-driven-workflow/positive-multi-step.yaml: skill-specific relevance proven without pre-step path leaks
|
|
115
|
+
PASS todo-driven-workflow/positive-refactor-flow.yaml: skill-specific relevance proven without pre-step path leaks
|
|
116
|
+
PASS using-git-worktrees/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
117
|
+
PASS verification-loop/positive-pre-ship.yaml: skill-specific relevance proven without pre-step path leaks
|
|
118
|
+
PASS verify-before-claim/positive-trigger.yaml: skill-specific relevance proven without pre-step path leaks
|
|
119
|
+
PASS zoom-out/positive-repeated-failure.yaml: skill-specific relevance proven without pre-step path leaks
|
|
120
|
+
|
|
121
|
+
Positive skill-eval coverage: 34 case(s) checked across 26 direct skills; 4 nested skill(s) classified.
|
|
122
|
+
PASS skill route coverage
|
|
123
|
+
=== Semantic Contract-Strength Routing Contract ===
|
|
124
|
+
PASS kernel router exits successfully
|
|
125
|
+
PASS classifier result is preserved
|
|
126
|
+
PASS Tier 2 selects iterative-single workflow
|
|
127
|
+
PASS iterative work exposes loop-awareness instead of a hard budget
|
|
128
|
+
PASS active-step binding resolution is explicitly mandatory
|
|
129
|
+
PASS orchestration policy preserves semantic MUST obligations
|
|
130
|
+
PASS kernel separates semantic contract from non-blocking observation
|
|
131
|
+
PASS worktree isolation disposition is a semantic MUST
|
|
132
|
+
PASS old planning-guidance label is absent
|
|
133
|
+
PASS old worktree hard-block wording is absent
|
|
134
|
+
PASS future step knowledge stays undisclosed
|
|
135
|
+
PASS required binding gaps remain visible without adding a lock
|
|
136
|
+
PASS global read-every-suggestion invariant is removed
|
|
137
|
+
PASS workflow plan carries mandatory user-visible status invariant
|
|
138
|
+
PASS kernel emits the mandatory unified status contract
|
|
139
|
+
PASS kernel status contract includes readable Markdown field ### 🚦 Harness Status
|
|
140
|
+
PASS kernel status contract includes readable Markdown field - **Current:**
|
|
141
|
+
PASS kernel status contract includes readable Markdown field - **Read / Evidence:**
|
|
142
|
+
PASS kernel status contract includes readable Markdown field - **Next:**
|
|
143
|
+
PASS kernel status contract includes readable Markdown field - **Risk / Blocked:**
|
|
144
|
+
PASS routing checkpoint is marked internal rather than user-facing
|
|
145
|
+
PASS legacy duplicate-visible checkpoint label is absent
|
|
146
|
+
PASS kernel tells agents to split dense evidence into nested bullets
|
|
147
|
+
PASS kernel separates semantic MUST from mechanical blocking
|
|
148
|
+
PASS Tier 3 routing exits successfully
|
|
149
|
+
PASS macro task remains Tier 3
|
|
150
|
+
PASS Tier 3 keeps the worktree isolation invariant
|
|
151
|
+
PASS Tier 3 does not push a global worktree skill path
|
|
152
|
+
PASS Tier 3 requires an isolation disposition without a hard lock
|
|
153
|
+
PASS Harness skill separates required obligations from adaptable tactics
|
|
154
|
+
PASS Harness skill names the only intentional blocking boundaries
|
|
155
|
+
PASS Harness skill requires the readable unified user-visible status
|
|
156
|
+
PASS Harness skill mirror matches
|
|
157
|
+
PASS worktree skill requires isolation disposition but permits degraded fallback
|
|
158
|
+
PASS worktree creation failure is not a cognitive blocked state
|
|
159
|
+
PASS worktree skill mirror matches
|
|
160
|
+
PASS triage reference uses contract-first policy
|
|
161
|
+
PASS triage defines the mandatory unified status contract
|
|
162
|
+
PASS triage mirror matches
|
|
163
|
+
PASS current doc docs/routing.md preserves explicit semantic strength
|
|
164
|
+
PASS current doc docs/architecture.md preserves explicit semantic strength
|
|
165
|
+
PASS current doc docs/philosophy.md preserves explicit semantic strength
|
|
166
|
+
PASS current doc docs/routing.md defines mandatory user-visible status
|
|
167
|
+
PASS current doc docs/architecture.md defines mandatory user-visible status
|
|
168
|
+
PASS current doc docs/workflow-runtime.md defines mandatory user-visible status
|
|
169
|
+
PASS philosophy defines canonical MUST/SHOULD/MAY strength
|
|
170
|
+
PASS contract-strength audit classifies Route before software/project execution
|
|
171
|
+
PASS contract-strength audit classifies Resolve active required skill/reference bindings before their step
|
|
172
|
+
PASS contract-strength audit classifies Resolve selected-topology invariants/stages/checks/synthesis/verification
|
|
173
|
+
PASS contract-strength audit classifies Discover relevant environment/host facts
|
|
174
|
+
PASS contract-strength audit classifies Resolve Tier-3/Fable isolation before broad mutation
|
|
175
|
+
PASS contract-strength audit classifies Numeric iteration/revision/replan/worker values
|
|
176
|
+
PASS contract-strength audit classifies Durable memory writes
|
|
177
|
+
PASS old ambiguous philosophy wording is removed
|
|
178
|
+
PASS instruction-only installer preserves MUST/MAY semantics
|
|
179
|
+
PASS instruction-only installers carry the readable mandatory status contract
|
|
180
|
+
PASS installer text preserves Rule-of-3 and permission boundaries
|
|
181
|
+
PASS OpenAI advisory mirror matches
|
|
182
|
+
PASS repository agent contract is contract-first
|
|
183
|
+
PASS repository agent contract requires readable unified user-visible status
|
|
184
|
+
PASS repository worktree rule requires disposition without hard lock
|
|
185
|
+
PASS architecture skill aligns rollback with the third same-signature failure
|
|
186
|
+
PASS architecture skill no longer waits beyond the Rule-of-3 threshold
|
|
187
|
+
PASS architecture skill mirror matches
|
|
188
|
+
PASS environment discovery is a conditional semantic MUST
|
|
189
|
+
PASS environment skill mirror matches
|
|
190
|
+
PASS commit skill separates staged-diff MUST from split SHOULD
|
|
191
|
+
PASS git-commit skill mirror matches
|
|
192
|
+
PASS Claude packages workflow reminder hook
|
|
193
|
+
PASS Claude preserves Rule-of-3 boundary
|
|
194
|
+
PASS Claude preserves action permission gate
|
|
195
|
+
|
|
196
|
+
PASS: semantic contract-strength routing contract (0 failures)
|
|
197
|
+
PASS invariant-first routing contract
|
|
198
|
+
=== Router Workflow Plan Contract — Phase 2 ===
|
|
199
|
+
PASS direct-single: tier router exits successfully
|
|
200
|
+
PASS direct-single: structured contract exists
|
|
201
|
+
PASS direct-single: contract validates (no errors)
|
|
202
|
+
PASS one-file trivial task remains tier1
|
|
203
|
+
PASS one-file trivial task selects direct-single
|
|
204
|
+
PASS direct-single is a selected strategy
|
|
205
|
+
PASS every selected workflow carries the user-visible status invariant
|
|
206
|
+
PASS every selected workflow carries conditional environment-alignment MUST
|
|
207
|
+
PASS direct-single does not require a workspace
|
|
208
|
+
PASS direct-single does not parallelize
|
|
209
|
+
PASS iterative-single: tier router exits successfully
|
|
210
|
+
PASS iterative-single: structured contract exists
|
|
211
|
+
PASS iterative-single: contract validates (no errors)
|
|
212
|
+
PASS ordinary test-first bug fix is tier2
|
|
213
|
+
PASS ordinary bug fix selects iterative-single
|
|
214
|
+
PASS iterative-single retains a MAY iteration planning value
|
|
215
|
+
PASS workflow exposes a MAY revision planning value
|
|
216
|
+
PASS workflow exposes a MAY replan planning value
|
|
217
|
+
PASS workflow exposes a MAY worker planning value
|
|
218
|
+
PASS iterative-single carries objective verification invariant
|
|
219
|
+
PASS iterative-single carries semantic loop-awareness obligation while numeric counts remain MAY
|
|
220
|
+
PASS test-related keywords become normalized step input signals
|
|
221
|
+
PASS selected topology no longer pushes a global skill list
|
|
222
|
+
PASS knowledge signals do not directly select documents
|
|
223
|
+
PASS ordinary iterative work cannot write durable memory
|
|
224
|
+
PASS binding ids remain step-local rather than workflow invariants
|
|
225
|
+
PASS self-evolve persistence: tier router exits successfully
|
|
226
|
+
PASS self-evolve persistence: structured contract exists
|
|
227
|
+
PASS self-evolve persistence: contract validates (no errors)
|
|
228
|
+
PASS bounded explicit persistence request receives a selected workflow
|
|
229
|
+
PASS explicit persistence request authorizes only self-evolve durable write
|
|
230
|
+
PASS durable memory route carries runtime authorization invariant
|
|
231
|
+
PASS memory authorization does not add a global self-evolve suggestion
|
|
232
|
+
PASS persistence intent is recorded in task shape
|
|
233
|
+
PASS memory prohibition: tier router exits successfully
|
|
234
|
+
PASS memory prohibition: structured contract exists
|
|
235
|
+
PASS memory prohibition: contract validates (no errors)
|
|
236
|
+
PASS explicit memory prohibition overrides persistence intent
|
|
237
|
+
PASS memory prohibition conflict is auditable
|
|
238
|
+
PASS bounded operation: Audit this SKILL.md only.: tier router exits successfully
|
|
239
|
+
PASS bounded operation: Audit this SKILL.md only.: structured contract exists
|
|
240
|
+
PASS bounded operation: Audit this SKILL.md only.: contract validates (no errors)
|
|
241
|
+
PASS bounded operation verb does not force Tier 3: Audit this SKILL.md only.
|
|
242
|
+
PASS bounded operation verb does not emit macro-scope-signal: Audit this SKILL.md only.
|
|
243
|
+
PASS bounded operation records macroScope=false: Audit this SKILL.md only.
|
|
244
|
+
PASS bounded operation: Compare these two functions.: tier router exits successfully
|
|
245
|
+
PASS bounded operation: Compare these two functions.: structured contract exists
|
|
246
|
+
PASS bounded operation: Compare these two functions.: contract validates (no errors)
|
|
247
|
+
PASS bounded operation verb does not force Tier 3: Compare these two functions.
|
|
248
|
+
PASS bounded operation verb does not emit macro-scope-signal: Compare these two functions.
|
|
249
|
+
PASS bounded operation records macroScope=false: Compare these two functions.
|
|
250
|
+
PASS bounded operation: Benchmark this parser function.: tier router exits successfully
|
|
251
|
+
PASS bounded operation: Benchmark this parser function.: structured contract exists
|
|
252
|
+
PASS bounded operation: Benchmark this parser function.: contract validates (no errors)
|
|
253
|
+
PASS bounded operation verb does not force Tier 3: Benchmark this parser function.
|
|
254
|
+
PASS bounded operation verb does not emit macro-scope-signal: Benchmark this parser function.
|
|
255
|
+
PASS bounded operation records macroScope=false: Benchmark this parser function.
|
|
256
|
+
PASS controlled A/B benchmark: tier router exits successfully
|
|
257
|
+
PASS controlled A/B benchmark: structured contract exists
|
|
258
|
+
PASS controlled A/B benchmark: contract validates (no errors)
|
|
259
|
+
PASS structured A/B benchmark remains Tier 3
|
|
260
|
+
PASS structured A/B benchmark records macroScope=true
|
|
261
|
+
PASS structured A/B benchmark keeps macro-scope-signal
|
|
262
|
+
PASS Tier 3 keyword rationale: tier router exits successfully
|
|
263
|
+
PASS Tier 3 keyword rationale: structured contract exists
|
|
264
|
+
PASS Tier 3 keyword rationale: contract validates (no errors)
|
|
265
|
+
PASS new feature remains Tier 3
|
|
266
|
+
PASS new feature records tier3-keyword
|
|
267
|
+
PASS Tier 3 keyword rationale names the actual trigger class
|
|
268
|
+
PASS Tier 3 keyword rationale does not claim unrelated macro signals
|
|
269
|
+
PASS fable-staged: tier router exits successfully
|
|
270
|
+
PASS fable-staged: structured contract exists
|
|
271
|
+
PASS fable-staged: contract validates (no errors)
|
|
272
|
+
PASS multi-stage architecture work is tier3
|
|
273
|
+
PASS dependent multi-stage work selects fable-staged
|
|
274
|
+
PASS dependent stages remain sequential
|
|
275
|
+
PASS fable-staged requires cold verification
|
|
276
|
+
PASS fable-staged carries mandatory isolation disposition
|
|
277
|
+
PASS fable-staged keeps its worktree isolation invariant
|
|
278
|
+
PASS fable topology does not globally push worktree/fable skills
|
|
279
|
+
PASS fable-parallel: tier router exits successfully
|
|
280
|
+
PASS fable-parallel: structured contract exists
|
|
281
|
+
PASS fable-parallel: contract validates (no errors)
|
|
282
|
+
PASS parallel task records independent dependency graph
|
|
283
|
+
PASS parallel audit records read-only write set
|
|
284
|
+
PASS independent read-only audits select fable-parallel
|
|
285
|
+
PASS fable-parallel exposes allowed=true
|
|
286
|
+
PASS parallel strategy requires synthesis barrier
|
|
287
|
+
PASS shared-write serialization: tier router exits successfully
|
|
288
|
+
PASS shared-write serialization: structured contract exists
|
|
289
|
+
PASS shared-write serialization: contract validates (no errors)
|
|
290
|
+
PASS same-file writers are recorded as overlapping
|
|
291
|
+
PASS same-file writers are serialized instead of fable-parallel
|
|
292
|
+
PASS overlapping writes cannot dispatch in parallel
|
|
293
|
+
PASS multi-agent workspace: tier router exits successfully
|
|
294
|
+
PASS multi-agent workspace: structured contract exists
|
|
295
|
+
PASS multi-agent workspace: contract validates (no errors)
|
|
296
|
+
PASS durable reusable specialists select workspace topology
|
|
297
|
+
PASS workspace topology marks workspace required
|
|
298
|
+
PASS workspace topology scopes reads through workspace index
|
|
299
|
+
PASS workspace memory writes remain proposals
|
|
300
|
+
PASS unclassified: tier router exits successfully
|
|
301
|
+
PASS unclassified: structured contract exists
|
|
302
|
+
PASS unclassified: contract validates (no errors)
|
|
303
|
+
PASS no matched signal remains unclassified
|
|
304
|
+
PASS unclassified does not silently select direct-single
|
|
305
|
+
PASS unclassified strategy selection is deferred
|
|
306
|
+
PASS deferred selection has deterministic reason code
|
|
307
|
+
PASS actionGate: tier router exits successfully
|
|
308
|
+
PASS actionGate: structured contract exists
|
|
309
|
+
PASS actionGate: contract validates (no errors)
|
|
310
|
+
PASS irreversible command intent requires actionGate independent of tier
|
|
311
|
+
PASS actionGate records irreversible-action
|
|
312
|
+
PASS actionGate closes at pending approval before execution
|
|
313
|
+
PASS actionGate adds pre-action invariant
|
|
314
|
+
PASS external side effect: tier router exits successfully
|
|
315
|
+
PASS external side effect: structured contract exists
|
|
316
|
+
PASS external side effect: contract validates (no errors)
|
|
317
|
+
PASS external side effect requires actionGate
|
|
318
|
+
PASS external side effect reason is explicit
|
|
319
|
+
PASS fable keyword trivial edit: tier router exits successfully
|
|
320
|
+
PASS fable keyword trivial edit: structured contract exists
|
|
321
|
+
PASS fable keyword trivial edit: contract validates (no errors)
|
|
322
|
+
PASS fable keyword does not force Tier 3 on a trivial README typo
|
|
323
|
+
PASS fable README typo remains direct-single
|
|
324
|
+
PASS explicit Fable profile: tier router exits successfully
|
|
325
|
+
PASS explicit Fable profile: structured contract exists
|
|
326
|
+
PASS explicit Fable profile: contract validates (no errors)
|
|
327
|
+
PASS explicit Fable request selects Fable topology
|
|
328
|
+
PASS legacy opus alias normalizes to orchestrator profile
|
|
329
|
+
PASS legacy alias remains auditable
|
|
330
|
+
PASS explicit Fable profile remains visible
|
|
331
|
+
PASS explicit Fable sonnect alias: tier router exits successfully
|
|
332
|
+
PASS explicit Fable sonnect alias: structured contract exists
|
|
333
|
+
PASS explicit Fable sonnect alias: contract validates (no errors)
|
|
334
|
+
PASS sonnect normalizes to reasoning profile
|
|
335
|
+
PASS raw sonnect alias remains auditable end-to-end
|
|
336
|
+
PASS router output preserves raw sonnect alias
|
|
337
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
338
|
+
PASS bounded Fable lookup: structured contract exists
|
|
339
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
340
|
+
PASS Could you please explain fable on sonnet? Return only JSON.: lookup remains a bounded Tier 1 operation
|
|
341
|
+
PASS Could you please explain fable on sonnet? Return only JSON.: lookup selects direct-single before loading references
|
|
342
|
+
PASS lookup does not delegate
|
|
343
|
+
PASS Could you please explain fable on sonnet? Return only JSON.: lookup selects only compact reference
|
|
344
|
+
PASS Could you please explain fable on sonnet? Return only JSON.: lookup omits unrelated keyword guides
|
|
345
|
+
PASS Could you please explain fable on sonnet? Return only JSON.: lookup does not send agent to selector implementation
|
|
346
|
+
PASS Could you please explain fable on sonnet? Return only JSON.: lookup contract is deterministic
|
|
347
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
348
|
+
PASS bounded Fable lookup: structured contract exists
|
|
349
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
350
|
+
PASS Please, explain fable on sonnet; return only JSON.: lookup remains a bounded Tier 1 operation
|
|
351
|
+
PASS Please, explain fable on sonnet; return only JSON.: lookup selects direct-single before loading references
|
|
352
|
+
PASS lookup does not delegate
|
|
353
|
+
PASS Please, explain fable on sonnet; return only JSON.: lookup selects only compact reference
|
|
354
|
+
PASS Please, explain fable on sonnet; return only JSON.: lookup omits unrelated keyword guides
|
|
355
|
+
PASS Please, explain fable on sonnet; return only JSON.: lookup does not send agent to selector implementation
|
|
356
|
+
PASS Please, explain fable on sonnet; return only JSON.: lookup contract is deterministic
|
|
357
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
358
|
+
PASS bounded Fable lookup: structured contract exists
|
|
359
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
360
|
+
PASS What is fable on opus? Return only JSON.: lookup remains a bounded Tier 1 operation
|
|
361
|
+
PASS What is fable on opus? Return only JSON.: lookup selects direct-single before loading references
|
|
362
|
+
PASS lookup does not delegate
|
|
363
|
+
PASS What is fable on opus? Return only JSON.: lookup selects only compact reference
|
|
364
|
+
PASS What is fable on opus? Return only JSON.: lookup omits unrelated keyword guides
|
|
365
|
+
PASS What is fable on opus? Return only JSON.: lookup does not send agent to selector implementation
|
|
366
|
+
PASS What is fable on opus? Return only JSON.: lookup contract is deterministic
|
|
367
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
368
|
+
PASS bounded Fable lookup: structured contract exists
|
|
369
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
370
|
+
PASS Explain what fable on sonnet means.Return only JSON.: lookup remains a bounded Tier 1 operation
|
|
371
|
+
PASS Explain what fable on sonnet means.Return only JSON.: lookup selects direct-single before loading references
|
|
372
|
+
PASS lookup does not delegate
|
|
373
|
+
PASS Explain what fable on sonnet means.Return only JSON.: lookup selects only compact reference
|
|
374
|
+
PASS Explain what fable on sonnet means.Return only JSON.: lookup omits unrelated keyword guides
|
|
375
|
+
PASS Explain what fable on sonnet means.Return only JSON.: lookup does not send agent to selector implementation
|
|
376
|
+
PASS Explain what fable on sonnet means.Return only JSON.: lookup contract is deterministic
|
|
377
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
378
|
+
PASS bounded Fable lookup: structured contract exists
|
|
379
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
380
|
+
PASS Could you please explain fable on sonnet as a compact JSON record.: lookup remains a bounded Tier 1 operation
|
|
381
|
+
PASS Could you please explain fable on sonnet as a compact JSON record.: lookup selects direct-single before loading references
|
|
382
|
+
PASS lookup does not delegate
|
|
383
|
+
PASS Could you please explain fable on sonnet as a compact JSON record.: lookup selects only compact reference
|
|
384
|
+
PASS Could you please explain fable on sonnet as a compact JSON record.: lookup omits unrelated keyword guides
|
|
385
|
+
PASS Could you please explain fable on sonnet as a compact JSON record.: lookup does not send agent to selector implementation
|
|
386
|
+
PASS Could you please explain fable on sonnet as a compact JSON record.: lookup contract is deterministic
|
|
387
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
388
|
+
PASS bounded Fable lookup: structured contract exists
|
|
389
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
390
|
+
PASS 說明 fable on sonnet,不必啟動任何流程,請只輸出 JSON。: lookup remains a bounded Tier 1 operation
|
|
391
|
+
PASS 說明 fable on sonnet,不必啟動任何流程,請只輸出 JSON。: lookup selects direct-single before loading references
|
|
392
|
+
PASS lookup does not delegate
|
|
393
|
+
PASS 說明 fable on sonnet,不必啟動任何流程,請只輸出 JSON。: lookup selects only compact reference
|
|
394
|
+
PASS 說明 fable on sonnet,不必啟動任何流程,請只輸出 JSON。: lookup omits unrelated keyword guides
|
|
395
|
+
PASS 說明 fable on sonnet,不必啟動任何流程,請只輸出 JSON。: lookup does not send agent to selector implementation
|
|
396
|
+
PASS 說明 fable on sonnet,不必啟動任何流程,請只輸出 JSON。: lookup contract is deterministic
|
|
397
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
398
|
+
PASS bounded Fable lookup: structured contract exists
|
|
399
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
400
|
+
PASS 解釋 fable on opus,無須進入任何階段,請回傳 JSON。: lookup remains a bounded Tier 1 operation
|
|
401
|
+
PASS 解釋 fable on opus,無須進入任何階段,請回傳 JSON。: lookup selects direct-single before loading references
|
|
402
|
+
PASS lookup does not delegate
|
|
403
|
+
PASS 解釋 fable on opus,無須進入任何階段,請回傳 JSON。: lookup selects only compact reference
|
|
404
|
+
PASS 解釋 fable on opus,無須進入任何階段,請回傳 JSON。: lookup omits unrelated keyword guides
|
|
405
|
+
PASS 解釋 fable on opus,無須進入任何階段,請回傳 JSON。: lookup does not send agent to selector implementation
|
|
406
|
+
PASS 解釋 fable on opus,無須進入任何階段,請回傳 JSON。: lookup contract is deterministic
|
|
407
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
408
|
+
PASS bounded Fable lookup: structured contract exists
|
|
409
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
410
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record.: lookup remains a bounded Tier 1 operation
|
|
411
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record.: lookup selects direct-single before loading references
|
|
412
|
+
PASS lookup does not delegate
|
|
413
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record.: lookup selects only compact reference
|
|
414
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record.: lookup omits unrelated keyword guides
|
|
415
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record.: lookup does not send agent to selector implementation
|
|
416
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record.: lookup contract is deterministic
|
|
417
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
418
|
+
PASS bounded Fable lookup: structured contract exists
|
|
419
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
420
|
+
PASS Resolve fable on haiku into a profile JSON record; no orchestration or delegation.: lookup remains a bounded Tier 1 operation
|
|
421
|
+
PASS Resolve fable on haiku into a profile JSON record; no orchestration or delegation.: lookup selects direct-single before loading references
|
|
422
|
+
PASS lookup does not delegate
|
|
423
|
+
PASS Resolve fable on haiku into a profile JSON record; no orchestration or delegation.: lookup selects only compact reference
|
|
424
|
+
PASS Resolve fable on haiku into a profile JSON record; no orchestration or delegation.: lookup omits unrelated keyword guides
|
|
425
|
+
PASS Resolve fable on haiku into a profile JSON record; no orchestration or delegation.: lookup does not send agent to selector implementation
|
|
426
|
+
PASS Resolve fable on haiku into a profile JSON record; no orchestration or delegation.: lookup contract is deterministic
|
|
427
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
428
|
+
PASS bounded Fable lookup: structured contract exists
|
|
429
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
430
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON。: lookup remains a bounded Tier 1 operation
|
|
431
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON。: lookup selects direct-single before loading references
|
|
432
|
+
PASS lookup does not delegate
|
|
433
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON。: lookup selects only compact reference
|
|
434
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON。: lookup omits unrelated keyword guides
|
|
435
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON。: lookup does not send agent to selector implementation
|
|
436
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON。: lookup contract is deterministic
|
|
437
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
438
|
+
PASS bounded Fable lookup: structured contract exists
|
|
439
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
440
|
+
PASS Explain what 'run fable on sonnect' means; return only JSON.: lookup remains a bounded Tier 1 operation
|
|
441
|
+
PASS Explain what 'run fable on sonnect' means; return only JSON.: lookup selects direct-single before loading references
|
|
442
|
+
PASS lookup does not delegate
|
|
443
|
+
PASS Explain what 'run fable on sonnect' means; return only JSON.: lookup selects only compact reference
|
|
444
|
+
PASS Explain what 'run fable on sonnect' means; return only JSON.: lookup omits unrelated keyword guides
|
|
445
|
+
PASS Explain what 'run fable on sonnect' means; return only JSON.: lookup does not send agent to selector implementation
|
|
446
|
+
PASS Explain what 'run fable on sonnect' means; return only JSON.: lookup contract is deterministic
|
|
447
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
448
|
+
PASS bounded Fable lookup: structured contract exists
|
|
449
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
450
|
+
PASS Explain fable on sonnet; return JSON with requestedProfile, effectiveProfile.: lookup remains a bounded Tier 1 operation
|
|
451
|
+
PASS Explain fable on sonnet; return JSON with requestedProfile, effectiveProfile.: lookup selects direct-single before loading references
|
|
452
|
+
PASS lookup does not delegate
|
|
453
|
+
PASS Explain fable on sonnet; return JSON with requestedProfile, effectiveProfile.: lookup selects only compact reference
|
|
454
|
+
PASS Explain fable on sonnet; return JSON with requestedProfile, effectiveProfile.: lookup omits unrelated keyword guides
|
|
455
|
+
PASS Explain fable on sonnet; return JSON with requestedProfile, effectiveProfile.: lookup does not send agent to selector implementation
|
|
456
|
+
PASS Explain fable on sonnet; return JSON with requestedProfile, effectiveProfile.: lookup contract is deterministic
|
|
457
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
458
|
+
PASS bounded Fable lookup: structured contract exists
|
|
459
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
460
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record with requestedProfile, effectiveProfile, profileAlias, assignedRole, runtimeModel, runtimeEffort. No orchestration or delegation.: lookup remains a bounded Tier 1 operation
|
|
461
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record with requestedProfile, effectiveProfile, profileAlias, assignedRole, runtimeModel, runtimeEffort. No orchestration or delegation.: lookup selects direct-single before loading references
|
|
462
|
+
PASS lookup does not delegate
|
|
463
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record with requestedProfile, effectiveProfile, profileAlias, assignedRole, runtimeModel, runtimeEffort. No orchestration or delegation.: lookup selects only compact reference
|
|
464
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record with requestedProfile, effectiveProfile, profileAlias, assignedRole, runtimeModel, runtimeEffort. No orchestration or delegation.: lookup omits unrelated keyword guides
|
|
465
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record with requestedProfile, effectiveProfile, profileAlias, assignedRole, runtimeModel, runtimeEffort. No orchestration or delegation.: lookup does not send agent to selector implementation
|
|
466
|
+
PASS Explain what 'fable on sonnect' means; return only a small JSON selection record with requestedProfile, effectiveProfile, profileAlias, assignedRole, runtimeModel, runtimeEffort. No orchestration or delegation.: lookup contract is deterministic
|
|
467
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
468
|
+
PASS bounded Fable lookup: structured contract exists
|
|
469
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
470
|
+
PASS Explain fable on haiku; output JSON with `requestedProfile`, `runtimeModel` and `runtimeEffort`.: lookup remains a bounded Tier 1 operation
|
|
471
|
+
PASS Explain fable on haiku; output JSON with `requestedProfile`, `runtimeModel` and `runtimeEffort`.: lookup selects direct-single before loading references
|
|
472
|
+
PASS lookup does not delegate
|
|
473
|
+
PASS Explain fable on haiku; output JSON with `requestedProfile`, `runtimeModel` and `runtimeEffort`.: lookup selects only compact reference
|
|
474
|
+
PASS Explain fable on haiku; output JSON with `requestedProfile`, `runtimeModel` and `runtimeEffort`.: lookup omits unrelated keyword guides
|
|
475
|
+
PASS Explain fable on haiku; output JSON with `requestedProfile`, `runtimeModel` and `runtimeEffort`.: lookup does not send agent to selector implementation
|
|
476
|
+
PASS Explain fable on haiku; output JSON with `requestedProfile`, `runtimeModel` and `runtimeEffort`.: lookup contract is deterministic
|
|
477
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
478
|
+
PASS bounded Fable lookup: structured contract exists
|
|
479
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
480
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON,包含 requestedProfile、effectiveProfile、runtimeEffort。: lookup remains a bounded Tier 1 operation
|
|
481
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON,包含 requestedProfile、effectiveProfile、runtimeEffort。: lookup selects direct-single before loading references
|
|
482
|
+
PASS lookup does not delegate
|
|
483
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON,包含 requestedProfile、effectiveProfile、runtimeEffort。: lookup selects only compact reference
|
|
484
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON,包含 requestedProfile、effectiveProfile、runtimeEffort。: lookup omits unrelated keyword guides
|
|
485
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON,包含 requestedProfile、effectiveProfile、runtimeEffort。: lookup does not send agent to selector implementation
|
|
486
|
+
PASS 解釋 fable on opus 的意思,只回傳 JSON,包含 requestedProfile、effectiveProfile、runtimeEffort。: lookup contract is deterministic
|
|
487
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
488
|
+
PASS bounded Fable lookup: structured contract exists
|
|
489
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
490
|
+
PASS Explain what 'use fable on opus' means; no execution or model switching.: lookup remains a bounded Tier 1 operation
|
|
491
|
+
PASS Explain what 'use fable on opus' means; no execution or model switching.: lookup selects direct-single before loading references
|
|
492
|
+
PASS lookup does not delegate
|
|
493
|
+
PASS Explain what 'use fable on opus' means; no execution or model switching.: lookup selects only compact reference
|
|
494
|
+
PASS Explain what 'use fable on opus' means; no execution or model switching.: lookup omits unrelated keyword guides
|
|
495
|
+
PASS Explain what 'use fable on opus' means; no execution or model switching.: lookup does not send agent to selector implementation
|
|
496
|
+
PASS Explain what 'use fable on opus' means; no execution or model switching.: lookup contract is deterministic
|
|
497
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
498
|
+
PASS bounded Fable lookup: structured contract exists
|
|
499
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
500
|
+
PASS Explain fable on sonnet; return JSON; no stages, delegation or execution.: lookup remains a bounded Tier 1 operation
|
|
501
|
+
PASS Explain fable on sonnet; return JSON; no stages, delegation or execution.: lookup selects direct-single before loading references
|
|
502
|
+
PASS lookup does not delegate
|
|
503
|
+
PASS Explain fable on sonnet; return JSON; no stages, delegation or execution.: lookup selects only compact reference
|
|
504
|
+
PASS Explain fable on sonnet; return JSON; no stages, delegation or execution.: lookup omits unrelated keyword guides
|
|
505
|
+
PASS Explain fable on sonnet; return JSON; no stages, delegation or execution.: lookup does not send agent to selector implementation
|
|
506
|
+
PASS Explain fable on sonnet; return JSON; no stages, delegation or execution.: lookup contract is deterministic
|
|
507
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
508
|
+
PASS bounded Fable lookup: structured contract exists
|
|
509
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
510
|
+
PASS 請說明 fable on sonnet 的意思,並只回傳含 requestedProfile 的 JSON。: lookup remains a bounded Tier 1 operation
|
|
511
|
+
PASS 請說明 fable on sonnet 的意思,並只回傳含 requestedProfile 的 JSON。: lookup selects direct-single before loading references
|
|
512
|
+
PASS lookup does not delegate
|
|
513
|
+
PASS 請說明 fable on sonnet 的意思,並只回傳含 requestedProfile 的 JSON。: lookup selects only compact reference
|
|
514
|
+
PASS 請說明 fable on sonnet 的意思,並只回傳含 requestedProfile 的 JSON。: lookup omits unrelated keyword guides
|
|
515
|
+
PASS 請說明 fable on sonnet 的意思,並只回傳含 requestedProfile 的 JSON。: lookup does not send agent to selector implementation
|
|
516
|
+
PASS 請說明 fable on sonnet 的意思,並只回傳含 requestedProfile 的 JSON。: lookup contract is deterministic
|
|
517
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
518
|
+
PASS bounded Fable lookup: structured contract exists
|
|
519
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
520
|
+
PASS Explain fable on sonnet, please return JSON.: lookup remains a bounded Tier 1 operation
|
|
521
|
+
PASS Explain fable on sonnet, please return JSON.: lookup selects direct-single before loading references
|
|
522
|
+
PASS lookup does not delegate
|
|
523
|
+
PASS Explain fable on sonnet, please return JSON.: lookup selects only compact reference
|
|
524
|
+
PASS Explain fable on sonnet, please return JSON.: lookup omits unrelated keyword guides
|
|
525
|
+
PASS Explain fable on sonnet, please return JSON.: lookup does not send agent to selector implementation
|
|
526
|
+
PASS Explain fable on sonnet, please return JSON.: lookup contract is deterministic
|
|
527
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
528
|
+
PASS bounded Fable lookup: structured contract exists
|
|
529
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
530
|
+
PASS Explain fable on sonnet and please return only JSON.: lookup remains a bounded Tier 1 operation
|
|
531
|
+
PASS Explain fable on sonnet and please return only JSON.: lookup selects direct-single before loading references
|
|
532
|
+
PASS lookup does not delegate
|
|
533
|
+
PASS Explain fable on sonnet and please return only JSON.: lookup selects only compact reference
|
|
534
|
+
PASS Explain fable on sonnet and please return only JSON.: lookup omits unrelated keyword guides
|
|
535
|
+
PASS Explain fable on sonnet and please return only JSON.: lookup does not send agent to selector implementation
|
|
536
|
+
PASS Explain fable on sonnet and please return only JSON.: lookup contract is deterministic
|
|
537
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
538
|
+
PASS bounded Fable lookup: structured contract exists
|
|
539
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
540
|
+
PASS 請說明 fable on sonnet,請只回傳 JSON。: lookup remains a bounded Tier 1 operation
|
|
541
|
+
PASS 請說明 fable on sonnet,請只回傳 JSON。: lookup selects direct-single before loading references
|
|
542
|
+
PASS lookup does not delegate
|
|
543
|
+
PASS 請說明 fable on sonnet,請只回傳 JSON。: lookup selects only compact reference
|
|
544
|
+
PASS 請說明 fable on sonnet,請只回傳 JSON。: lookup omits unrelated keyword guides
|
|
545
|
+
PASS 請說明 fable on sonnet,請只回傳 JSON。: lookup does not send agent to selector implementation
|
|
546
|
+
PASS 請說明 fable on sonnet,請只回傳 JSON。: lookup contract is deterministic
|
|
547
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
548
|
+
PASS bounded Fable lookup: structured contract exists
|
|
549
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
550
|
+
PASS Explain what “run fable on sonnect” means; return only JSON.: lookup remains a bounded Tier 1 operation
|
|
551
|
+
PASS Explain what “run fable on sonnect” means; return only JSON.: lookup selects direct-single before loading references
|
|
552
|
+
PASS lookup does not delegate
|
|
553
|
+
PASS Explain what “run fable on sonnect” means; return only JSON.: lookup selects only compact reference
|
|
554
|
+
PASS Explain what “run fable on sonnect” means; return only JSON.: lookup omits unrelated keyword guides
|
|
555
|
+
PASS Explain what “run fable on sonnect” means; return only JSON.: lookup does not send agent to selector implementation
|
|
556
|
+
PASS Explain what “run fable on sonnect” means; return only JSON.: lookup contract is deterministic
|
|
557
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
558
|
+
PASS bounded Fable lookup: structured contract exists
|
|
559
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
560
|
+
PASS Explain what ‘use fable on opus’ means.: lookup remains a bounded Tier 1 operation
|
|
561
|
+
PASS Explain what ‘use fable on opus’ means.: lookup selects direct-single before loading references
|
|
562
|
+
PASS lookup does not delegate
|
|
563
|
+
PASS Explain what ‘use fable on opus’ means.: lookup selects only compact reference
|
|
564
|
+
PASS Explain what ‘use fable on opus’ means.: lookup omits unrelated keyword guides
|
|
565
|
+
PASS Explain what ‘use fable on opus’ means.: lookup does not send agent to selector implementation
|
|
566
|
+
PASS Explain what ‘use fable on opus’ means.: lookup contract is deterministic
|
|
567
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
568
|
+
PASS bounded Fable lookup: structured contract exists
|
|
569
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
570
|
+
PASS Explain fable on sonnet; no model switching.: lookup remains a bounded Tier 1 operation
|
|
571
|
+
PASS Explain fable on sonnet; no model switching.: lookup selects direct-single before loading references
|
|
572
|
+
PASS lookup does not delegate
|
|
573
|
+
PASS Explain fable on sonnet; no model switching.: lookup selects only compact reference
|
|
574
|
+
PASS Explain fable on sonnet; no model switching.: lookup omits unrelated keyword guides
|
|
575
|
+
PASS Explain fable on sonnet; no model switching.: lookup does not send agent to selector implementation
|
|
576
|
+
PASS Explain fable on sonnet; no model switching.: lookup contract is deterministic
|
|
577
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
578
|
+
PASS bounded Fable lookup: structured contract exists
|
|
579
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
580
|
+
PASS Explain fable on sonnet; don't switch model or delegate.: lookup remains a bounded Tier 1 operation
|
|
581
|
+
PASS Explain fable on sonnet; don't switch model or delegate.: lookup selects direct-single before loading references
|
|
582
|
+
PASS lookup does not delegate
|
|
583
|
+
PASS Explain fable on sonnet; don't switch model or delegate.: lookup selects only compact reference
|
|
584
|
+
PASS Explain fable on sonnet; don't switch model or delegate.: lookup omits unrelated keyword guides
|
|
585
|
+
PASS Explain fable on sonnet; don't switch model or delegate.: lookup does not send agent to selector implementation
|
|
586
|
+
PASS Explain fable on sonnet; don't switch model or delegate.: lookup contract is deterministic
|
|
587
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
588
|
+
PASS bounded Fable lookup: structured contract exists
|
|
589
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
590
|
+
PASS Explain fable on sonnet; no stages and no delegation.: lookup remains a bounded Tier 1 operation
|
|
591
|
+
PASS Explain fable on sonnet; no stages and no delegation.: lookup selects direct-single before loading references
|
|
592
|
+
PASS lookup does not delegate
|
|
593
|
+
PASS Explain fable on sonnet; no stages and no delegation.: lookup selects only compact reference
|
|
594
|
+
PASS Explain fable on sonnet; no stages and no delegation.: lookup omits unrelated keyword guides
|
|
595
|
+
PASS Explain fable on sonnet; no stages and no delegation.: lookup does not send agent to selector implementation
|
|
596
|
+
PASS Explain fable on sonnet; no stages and no delegation.: lookup contract is deterministic
|
|
597
|
+
PASS bounded Fable lookup: tier router exits successfully
|
|
598
|
+
PASS bounded Fable lookup: structured contract exists
|
|
599
|
+
PASS bounded Fable lookup: contract validates (no errors)
|
|
600
|
+
PASS 解釋 fable on sonnet,不要委派或切換模型。: lookup remains a bounded Tier 1 operation
|
|
601
|
+
PASS 解釋 fable on sonnet,不要委派或切換模型。: lookup selects direct-single before loading references
|
|
602
|
+
PASS lookup does not delegate
|
|
603
|
+
PASS 解釋 fable on sonnet,不要委派或切換模型。: lookup selects only compact reference
|
|
604
|
+
PASS 解釋 fable on sonnet,不要委派或切換模型。: lookup omits unrelated keyword guides
|
|
605
|
+
PASS 解釋 fable on sonnet,不要委派或切換模型。: lookup does not send agent to selector implementation
|
|
606
|
+
PASS 解釋 fable on sonnet,不要委派或切換模型。: lookup contract is deterministic
|
|
607
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
608
|
+
PASS Fable execution boundary: structured contract exists
|
|
609
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
610
|
+
PASS execution/macro scope preserves staged topology
|
|
611
|
+
PASS mixed execution never records the bounded lookup reason
|
|
612
|
+
PASS execution retains isolation obligation
|
|
613
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
614
|
+
PASS Fable execution boundary: structured contract exists
|
|
615
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
616
|
+
PASS execution/macro scope preserves staged topology
|
|
617
|
+
PASS mixed execution never records the bounded lookup reason
|
|
618
|
+
PASS execution retains isolation obligation
|
|
619
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
620
|
+
PASS Fable execution boundary: structured contract exists
|
|
621
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
622
|
+
PASS execution/macro scope preserves staged topology
|
|
623
|
+
PASS mixed execution never records the bounded lookup reason
|
|
624
|
+
PASS execution retains isolation obligation
|
|
625
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
626
|
+
PASS Fable execution boundary: structured contract exists
|
|
627
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
628
|
+
PASS execution/macro scope preserves staged topology
|
|
629
|
+
PASS mixed execution never records the bounded lookup reason
|
|
630
|
+
PASS execution retains isolation obligation
|
|
631
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
632
|
+
PASS Fable execution boundary: structured contract exists
|
|
633
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
634
|
+
PASS execution/macro scope preserves staged topology
|
|
635
|
+
PASS mixed execution never records the bounded lookup reason
|
|
636
|
+
PASS execution retains isolation obligation
|
|
637
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
638
|
+
PASS Fable execution boundary: structured contract exists
|
|
639
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
640
|
+
PASS execution/macro scope preserves staged topology
|
|
641
|
+
PASS mixed execution never records the bounded lookup reason
|
|
642
|
+
PASS execution retains isolation obligation
|
|
643
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
644
|
+
PASS Fable execution boundary: structured contract exists
|
|
645
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
646
|
+
PASS execution/macro scope preserves staged topology
|
|
647
|
+
PASS mixed execution never records the bounded lookup reason
|
|
648
|
+
PASS execution retains isolation obligation
|
|
649
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
650
|
+
PASS Fable execution boundary: structured contract exists
|
|
651
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
652
|
+
PASS execution/macro scope preserves staged topology
|
|
653
|
+
PASS mixed execution never records the bounded lookup reason
|
|
654
|
+
PASS execution retains isolation obligation
|
|
655
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
656
|
+
PASS Fable execution boundary: structured contract exists
|
|
657
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
658
|
+
PASS execution/macro scope preserves staged topology
|
|
659
|
+
PASS mixed execution never records the bounded lookup reason
|
|
660
|
+
PASS execution retains isolation obligation
|
|
661
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
662
|
+
PASS Fable execution boundary: structured contract exists
|
|
663
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
664
|
+
PASS execution/macro scope preserves staged topology
|
|
665
|
+
PASS mixed execution never records the bounded lookup reason
|
|
666
|
+
PASS execution retains isolation obligation
|
|
667
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
668
|
+
PASS Fable execution boundary: structured contract exists
|
|
669
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
670
|
+
PASS execution/macro scope preserves staged topology
|
|
671
|
+
PASS mixed execution never records the bounded lookup reason
|
|
672
|
+
PASS execution retains isolation obligation
|
|
673
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
674
|
+
PASS Fable execution boundary: structured contract exists
|
|
675
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
676
|
+
PASS execution/macro scope preserves staged topology
|
|
677
|
+
PASS mixed execution never records the bounded lookup reason
|
|
678
|
+
PASS execution retains isolation obligation
|
|
679
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
680
|
+
PASS Fable execution boundary: structured contract exists
|
|
681
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
682
|
+
PASS execution/macro scope preserves staged topology
|
|
683
|
+
PASS mixed execution never records the bounded lookup reason
|
|
684
|
+
PASS execution retains isolation obligation
|
|
685
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
686
|
+
PASS Fable execution boundary: structured contract exists
|
|
687
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
688
|
+
PASS execution/macro scope preserves staged topology
|
|
689
|
+
PASS mixed execution never records the bounded lookup reason
|
|
690
|
+
PASS execution retains isolation obligation
|
|
691
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
692
|
+
PASS Fable execution boundary: structured contract exists
|
|
693
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
694
|
+
PASS execution/macro scope preserves staged topology
|
|
695
|
+
PASS mixed execution never records the bounded lookup reason
|
|
696
|
+
PASS execution retains isolation obligation
|
|
697
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
698
|
+
PASS Fable execution boundary: structured contract exists
|
|
699
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
700
|
+
PASS execution/macro scope preserves staged topology
|
|
701
|
+
PASS mixed execution never records the bounded lookup reason
|
|
702
|
+
PASS execution retains isolation obligation
|
|
703
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
704
|
+
PASS Fable execution boundary: structured contract exists
|
|
705
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
706
|
+
PASS execution/macro scope preserves staged topology
|
|
707
|
+
PASS mixed execution never records the bounded lookup reason
|
|
708
|
+
PASS execution retains isolation obligation
|
|
709
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
710
|
+
PASS Fable execution boundary: structured contract exists
|
|
711
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
712
|
+
PASS execution/macro scope preserves staged topology
|
|
713
|
+
PASS mixed execution never records the bounded lookup reason
|
|
714
|
+
PASS execution retains isolation obligation
|
|
715
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
716
|
+
PASS Fable execution boundary: structured contract exists
|
|
717
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
718
|
+
PASS execution/macro scope preserves staged topology
|
|
719
|
+
PASS mixed execution never records the bounded lookup reason
|
|
720
|
+
PASS execution retains isolation obligation
|
|
721
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
722
|
+
PASS Fable execution boundary: structured contract exists
|
|
723
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
724
|
+
PASS execution/macro scope preserves staged topology
|
|
725
|
+
PASS mixed execution never records the bounded lookup reason
|
|
726
|
+
PASS execution retains isolation obligation
|
|
727
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
728
|
+
PASS Fable execution boundary: structured contract exists
|
|
729
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
730
|
+
PASS execution/macro scope preserves staged topology
|
|
731
|
+
PASS mixed execution never records the bounded lookup reason
|
|
732
|
+
PASS execution retains isolation obligation
|
|
733
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
734
|
+
PASS Fable execution boundary: structured contract exists
|
|
735
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
736
|
+
PASS execution/macro scope preserves staged topology
|
|
737
|
+
PASS mixed execution never records the bounded lookup reason
|
|
738
|
+
PASS execution retains isolation obligation
|
|
739
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
740
|
+
PASS Fable execution boundary: structured contract exists
|
|
741
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
742
|
+
PASS execution/macro scope preserves staged topology
|
|
743
|
+
PASS mixed execution never records the bounded lookup reason
|
|
744
|
+
PASS execution retains isolation obligation
|
|
745
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
746
|
+
PASS Fable execution boundary: structured contract exists
|
|
747
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
748
|
+
PASS execution/macro scope preserves staged topology
|
|
749
|
+
PASS mixed execution never records the bounded lookup reason
|
|
750
|
+
PASS execution retains isolation obligation
|
|
751
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
752
|
+
PASS Fable execution boundary: structured contract exists
|
|
753
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
754
|
+
PASS execution/macro scope preserves staged topology
|
|
755
|
+
PASS mixed execution never records the bounded lookup reason
|
|
756
|
+
PASS execution retains isolation obligation
|
|
757
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
758
|
+
PASS Fable execution boundary: structured contract exists
|
|
759
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
760
|
+
PASS execution/macro scope preserves staged topology
|
|
761
|
+
PASS mixed execution never records the bounded lookup reason
|
|
762
|
+
PASS execution retains isolation obligation
|
|
763
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
764
|
+
PASS Fable execution boundary: structured contract exists
|
|
765
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
766
|
+
PASS execution/macro scope preserves staged topology
|
|
767
|
+
PASS mixed execution never records the bounded lookup reason
|
|
768
|
+
PASS execution retains isolation obligation
|
|
769
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
770
|
+
PASS Fable execution boundary: structured contract exists
|
|
771
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
772
|
+
PASS execution/macro scope preserves staged topology
|
|
773
|
+
PASS mixed execution never records the bounded lookup reason
|
|
774
|
+
PASS execution retains isolation obligation
|
|
775
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
776
|
+
PASS Fable execution boundary: structured contract exists
|
|
777
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
778
|
+
PASS execution/macro scope preserves staged topology
|
|
779
|
+
PASS mixed execution never records the bounded lookup reason
|
|
780
|
+
PASS execution retains isolation obligation
|
|
781
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
782
|
+
PASS Fable execution boundary: structured contract exists
|
|
783
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
784
|
+
PASS execution/macro scope preserves staged topology
|
|
785
|
+
PASS mixed execution never records the bounded lookup reason
|
|
786
|
+
PASS execution retains isolation obligation
|
|
787
|
+
PASS Fable execution boundary: tier router exits successfully
|
|
788
|
+
PASS Fable execution boundary: structured contract exists
|
|
789
|
+
PASS Fable execution boundary: contract validates (no errors)
|
|
790
|
+
PASS execution/macro scope preserves staged topology
|
|
791
|
+
PASS mixed execution never records the bounded lookup reason
|
|
792
|
+
PASS execution retains isolation obligation
|
|
793
|
+
PASS explicit strategy override: tier router exits successfully
|
|
794
|
+
PASS explicit strategy override: structured contract exists
|
|
795
|
+
PASS explicit strategy override: contract validates (no errors)
|
|
796
|
+
PASS explicit user strategy overrides derived Tier 3 topology
|
|
797
|
+
PASS explicit strategy override is recorded
|
|
798
|
+
PASS parallel prohibition: tier router exits successfully
|
|
799
|
+
PASS parallel prohibition: structured contract exists
|
|
800
|
+
PASS parallel prohibition: contract validates (no errors)
|
|
801
|
+
PASS explicit no-parallel prohibition serializes derived parallel work
|
|
802
|
+
PASS parallel prohibition is a visible reduced fallback
|
|
803
|
+
PASS parallel prohibition reason is recorded
|
|
804
|
+
PASS parallel capability fallback: tier router exits successfully
|
|
805
|
+
PASS parallel capability fallback: structured contract exists
|
|
806
|
+
PASS parallel capability fallback: contract validates (no errors)
|
|
807
|
+
PASS missing parallel capability serializes to fable-staged
|
|
808
|
+
PASS parallel capability fallback is visibly serialized
|
|
809
|
+
PASS missing parallel capability reason is recorded
|
|
810
|
+
PASS concurrency budget fallback: tier router exits successfully
|
|
811
|
+
PASS concurrency budget fallback: structured contract exists
|
|
812
|
+
PASS concurrency budget fallback: contract validates (no errors)
|
|
813
|
+
PASS concurrency=1 serializes fable-parallel
|
|
814
|
+
PASS concurrency budget reason is recorded
|
|
815
|
+
PASS workspace state block: tier router exits successfully
|
|
816
|
+
PASS workspace state block: structured contract exists
|
|
817
|
+
PASS workspace state block: contract validates (no errors)
|
|
818
|
+
PASS workspace requirement remains explicit when state is unavailable
|
|
819
|
+
PASS missing durable state blocks rather than silently downgrades
|
|
820
|
+
PASS workspace block reason is recorded
|
|
821
|
+
PASS runtime model capability advisory: tier router exits successfully
|
|
822
|
+
PASS runtime model capability advisory: structured contract exists
|
|
823
|
+
PASS runtime model capability advisory: contract validates (no errors)
|
|
824
|
+
PASS opus remains a behavior-profile alias
|
|
825
|
+
PASS runtime model availability does not block Fable profile selection
|
|
826
|
+
PASS router no longer treats a branded model as a Fable requirement
|
|
827
|
+
PASS actionGate capability block: tier router exits successfully
|
|
828
|
+
PASS actionGate capability block: structured contract exists
|
|
829
|
+
PASS actionGate capability block: contract validates (no errors)
|
|
830
|
+
PASS actionGate requirement survives missing hook capability
|
|
831
|
+
PASS known missing action-gate hook blocks side effect
|
|
832
|
+
PASS missing hook capability is visible
|
|
833
|
+
PASS overlapping keywords deduplicate normalized security input signals
|
|
834
|
+
PASS keyword matching does not print a document path
|
|
835
|
+
PASS keyword matching no longer pushes guide lists
|
|
836
|
+
PASS profile lookup clause splitting keeps filenames and dotted versions intact
|
|
837
|
+
PASS profile lookup clause splitting recognizes a no-space output clause boundary
|
|
838
|
+
PASS same normalized input produces byte-equivalent structured contracts
|
|
839
|
+
PASS degraded routing: tier router exits successfully
|
|
840
|
+
PASS degraded routing: structured contract exists
|
|
841
|
+
PASS degraded routing: contract validates (no errors)
|
|
842
|
+
PASS invalid routing config emits routingStatus=degraded
|
|
843
|
+
PASS invalid routing config never silently becomes Tier 1
|
|
844
|
+
PASS degraded routing does not select a strategy
|
|
845
|
+
PASS degraded strategy deferral is explicit
|
|
846
|
+
PASS kernel consumes selected/deferred structured contract successfully
|
|
847
|
+
PASS kernel emits the Phase 2 workflow-plan checkpoint
|
|
848
|
+
PASS kernel exposes deferred unclassified selection
|
|
849
|
+
PASS kernel does not expose a silent Tier 1 fallback for unmatched prompts
|
|
850
|
+
PASS host notification persistence failure stays fail-open
|
|
851
|
+
PASS host notification remains a routing no-op when state persistence fails
|
|
852
|
+
PASS host notification persistence failure remains visible as a reminder
|
|
853
|
+
PASS kernel consumes strategy from structured plan
|
|
854
|
+
PASS kernel prints dynamic semantic plan obligations
|
|
855
|
+
PASS kernel prints the user-visible status invariant
|
|
856
|
+
PASS kernel prints the canonical mandatory user-visible status contract
|
|
857
|
+
PASS kernel identifies knowledge signals as planning inputs
|
|
858
|
+
PASS initial router output waits for an active step before disclosing a skill path
|
|
859
|
+
PASS legacy read-every-suggestion invariant is removed
|
|
860
|
+
PASS retained workflow fixture routes successfully
|
|
861
|
+
PASS new selected workflow exposes its planning step
|
|
862
|
+
PASS retained workflow records typed requirements before execution
|
|
863
|
+
PASS retained workflow starts at its first typed step
|
|
864
|
+
PASS start returns concrete active binding and step disposition commands
|
|
865
|
+
PASS retained workflow advances to its active behavior-change step
|
|
866
|
+
PASS host notification retains the active workflow
|
|
867
|
+
PASS retained notification preserves only the active step and its binding
|
|
868
|
+
PASS retained notification surfaces the binding and step disposition syntax
|
|
869
|
+
PASS retained notification hides future-step bindings
|
|
870
|
+
PASS host notification avoids repeating the full workflow contract
|
|
871
|
+
PASS host notification does not replace or advance workflow state
|
|
872
|
+
PASS harness-everything/schemas/router-task-shape.schema.json is valid JSON Schema metadata
|
|
873
|
+
PASS harness-everything/schemas/router-workflow-plan.schema.json is valid JSON Schema metadata
|
|
874
|
+
|
|
875
|
+
PASS: router workflow plan phase 2 (0 failures)
|
|
876
|
+
PASS workflow-plan structured contract
|
|
877
|
+
=== Workflow Guidance Contract ===
|
|
878
|
+
PASS harness-everything/scripts/kernel-router.js parses as valid JavaScript
|
|
879
|
+
PASS hooks/scripts/workflow-gate.js parses as valid JavaScript
|
|
880
|
+
PASS hooks/scripts/workflow-stop-gate.js parses as valid JavaScript
|
|
881
|
+
PASS hooks/scripts/workflow-disposition.js parses as valid JavaScript
|
|
882
|
+
PASS hooks/scripts/state-persist.js parses as valid JavaScript
|
|
883
|
+
PASS hooks/scripts/rule-of-3.js parses as valid JavaScript
|
|
884
|
+
PASS hooks/scripts/rule-of-3-tracker.js parses as valid JavaScript
|
|
885
|
+
PASS iteration remains a MAY planning hint rather than blocking
|
|
886
|
+
PASS revision remains a MAY planning hint rather than blocking
|
|
887
|
+
PASS replan remains a MAY planning hint rather than blocking
|
|
888
|
+
PASS worker-acquire remains a MAY planning hint rather than blocking
|
|
889
|
+
PASS mutation probes reserve no capacity
|
|
890
|
+
PASS mutation probe registration is a no-op
|
|
891
|
+
PASS reset-budget API is retired compatibility only
|
|
892
|
+
PASS reset-budget is no longer a controller command
|
|
893
|
+
PASS runtime contains no mutation-probe lock
|
|
894
|
+
PASS runtime contains no budget-exhausted transition
|
|
895
|
+
PASS workflow gate has no probe/budget enforcement
|
|
896
|
+
PASS workflow gate emits reminders
|
|
897
|
+
PASS Rule of 3 uses fixed third-failure boundary
|
|
898
|
+
PASS Rule of 3 has no second-stage permanent hard lock
|
|
899
|
+
PASS Rule of 3 has no category-specific thresholds
|
|
900
|
+
PASS OpenCode has no permanent hard-lock action
|
|
901
|
+
PASS obsolete mutation-probe PermissionDenied hook is removed
|
|
902
|
+
PASS Fable independent verifier accepts edits older than verifier evidence
|
|
903
|
+
PASS Fable independent verifier is invalidated by newer handoff shell-edit evidence
|
|
904
|
+
|
|
905
|
+
PASS: workflow semantic contract mechanics (0 failures)
|
|
906
|
+
PASS workflow execution budget contract
|
|
907
|
+
=== Router Phase 2 Explicit-Parallel Safety ===
|
|
908
|
+
PASS unproven explicit parallel request does not crash routing
|
|
909
|
+
PASS unproven explicit parallel request emits a contract
|
|
910
|
+
PASS serialized explicit request validates (no errors)
|
|
911
|
+
PASS original explicit fable-parallel request remains recorded
|
|
912
|
+
PASS unproven parallel request serializes to fable-staged
|
|
913
|
+
PASS unproven parallel request exposes reduced fallback
|
|
914
|
+
PASS unproven parallel request exposes serialized fallback mode
|
|
915
|
+
PASS unproven parallel request records precondition reason
|
|
916
|
+
PASS overlapping explicit parallel request does not crash routing
|
|
917
|
+
PASS overlapping explicit parallel request emits a contract
|
|
918
|
+
PASS overlap evidence is machine-visible
|
|
919
|
+
PASS explicit parallel overlap serializes to staged
|
|
920
|
+
PASS overlap serialization has a deterministic reason
|
|
921
|
+
PASS validated explicit parallel request routes successfully
|
|
922
|
+
PASS validated explicit parallel request emits a contract
|
|
923
|
+
PASS validated explicit parallel contract passes (no errors)
|
|
924
|
+
PASS validated explicit parallel request keeps fable-parallel
|
|
925
|
+
PASS validated explicit parallel request enables parallelism
|
|
926
|
+
PASS validated explicit parallel request needs no fallback
|
|
927
|
+
PASS contradictory explicit request remains representable
|
|
928
|
+
PASS contradictory explicit request emits a contract
|
|
929
|
+
PASS blocked contradiction is still a valid audit contract (no errors)
|
|
930
|
+
PASS explicit strategy/prohibition conflict is blocked
|
|
931
|
+
PASS explicit contradiction records its reason
|
|
932
|
+
|
|
933
|
+
PASS: router phase 2 explicit-parallel safety (0 failures)
|
|
934
|
+
PASS explicit parallel safety contract
|
|
935
|
+
=== #85 Phase 3 Workflow Plan Consumers ===
|
|
936
|
+
PASS fixture selects fable-parallel
|
|
937
|
+
PASS fixture selects fable-staged
|
|
938
|
+
PASS fixture selects fable-multi-agent-workspace
|
|
939
|
+
PASS planId is deterministic and content-addressed
|
|
940
|
+
PASS parallel plan emits dependency-safe ready batches
|
|
941
|
+
PASS run manifest retains maxWorkers as an advisory planning hint
|
|
942
|
+
PASS run-scoped stage contract is written
|
|
943
|
+
PASS downstream stage has its own contract
|
|
944
|
+
PASS only dependency-ready Fable stages expose bindings
|
|
945
|
+
PASS unknown required binding remains visible and unresolved
|
|
946
|
+
PASS active optional reference path appears only on its ready stage
|
|
947
|
+
PASS future-stage binding paths stay hidden until dependencies pass
|
|
948
|
+
PASS a stage marked pass with unresolved bindings does not activate dependents
|
|
949
|
+
PASS downstream bindings appear only after every dependency passes
|
|
950
|
+
PASS current stage receives only its own declared binding path
|
|
951
|
+
PASS same router plan shares deterministic planId across executions
|
|
952
|
+
PASS same stageIds in concurrent runs never share mutable contract paths
|
|
953
|
+
PASS ready set is not hard-chunked by the advisory maxWorkers hint
|
|
954
|
+
PASS all dependency-ready stages remain dispatchable
|
|
955
|
+
PASS advisory worker guidance preserves every ready stage
|
|
956
|
+
PASS fable-staged serializes otherwise independent stages
|
|
957
|
+
PASS unknown dependency is rejected (broken: unresolved dependency missing)
|
|
958
|
+
PASS dependency cycle is rejected (cyclic stage dependency detected at a)
|
|
959
|
+
PASS binding paths reject traversal outside the repository (writeSet path escapes or ambiguously names repository scope: ../outside.md)
|
|
960
|
+
PASS binding paths reject Windows drive-relative names (writeSet paths must be repository-relative: C:outside.md)
|
|
961
|
+
PASS a stage binding cannot be both required and optional (duplicate-binding: binding cannot be both required and optional: same)
|
|
962
|
+
PASS parallel write-set overlap rejects dispatch (parallel write-set overlap: a:src/auth conflicts with b:src/auth/token.js)
|
|
963
|
+
PASS scope matcher accepts descendants of a declared path
|
|
964
|
+
PASS scope matcher uses path boundaries, not string prefixes
|
|
965
|
+
PASS workspace consumer preserves selected roles/provenance
|
|
966
|
+
PASS workspace consumer preserves existing memory index
|
|
967
|
+
PASS workspace handoff is correlated to router planId
|
|
968
|
+
PASS workspace handoff records shared runId
|
|
969
|
+
PASS router does not take ownership of role selection
|
|
970
|
+
PASS exact correlated stage check passes (no stderr)
|
|
971
|
+
PASS contract-test resolves exactly one run-scoped stage contract
|
|
972
|
+
PASS stage contract links run-scoped verification evidence
|
|
973
|
+
PASS verification evidence correlates plan/run/stage
|
|
974
|
+
PASS ambiguous same-command correlation is reported without blocking
|
|
975
|
+
PASS ambiguous-a remains unmodified after ambiguous check
|
|
976
|
+
PASS ambiguous-b remains unmodified after ambiguous check
|
|
977
|
+
PASS scope guard captures machine-readable write-set snapshot
|
|
978
|
+
PASS declared in-scope worker edit is attributed and accepted
|
|
979
|
+
PASS next burst starts from rolled-forward baseline
|
|
980
|
+
PASS undeclared worker edit is reported without blocking
|
|
981
|
+
PASS Fable contract documentation requires dependency/write-set declarations
|
|
982
|
+
PASS Fable orchestrator consumes structured plan and correlation ids
|
|
983
|
+
PASS workspace no longer independently chooses topology from task size
|
|
984
|
+
|
|
985
|
+
PASS: #85 Phase 3 workflow-plan consumers (0 failures)
|
|
986
|
+
PASS workflow-plan consumers
|
|
987
|
+
PASS fable-staged serializes overlapping writers instead of rejecting them
|
|
988
|
+
PASS scope matcher accepts already-normalized paths
|
|
989
|
+
PASS a cross-session check is reported without resolving the run contract
|
|
990
|
+
PASS cross-session check leaves the target contract unmodified
|
|
991
|
+
|
|
992
|
+
PASS: #85 Phase 3 edge contracts (0 failures)
|
|
993
|
+
PASS workflow-plan consumer edge contracts
|
|
994
|
+
=== #85 Phase 4 Bounded Parallel / Ensemble / Memory Evidence ===
|
|
995
|
+
PASS eligible high-uncertainty comparison routes successfully
|
|
996
|
+
PASS kernel exposes a bounded ensemble modifier
|
|
997
|
+
PASS kernel exposes disagreement-preserving synthesis
|
|
998
|
+
PASS kernel requires an independent ensemble verifier
|
|
999
|
+
PASS kernel exposes preserve-disagreement as a required invariant
|
|
1000
|
+
PASS creative negative control routes successfully
|
|
1001
|
+
PASS creative generation never adds ensemble-review
|
|
1002
|
+
PASS creative exclusion is machine-visible
|
|
1003
|
+
PASS mechanical negative control routes successfully
|
|
1004
|
+
PASS mechanical bulk work never adds ensemble-review
|
|
1005
|
+
PASS mechanical exclusion is machine-visible
|
|
1006
|
+
PASS ensemble prohibition routes successfully
|
|
1007
|
+
PASS explicit ensemble prohibition wins
|
|
1008
|
+
PASS ensemble prohibition reason is visible
|
|
1009
|
+
PASS ensemble task-shape detector records high-stakes comparable disagreement
|
|
1010
|
+
PASS known unavailable subagents suppress ensemble modifier
|
|
1011
|
+
PASS ensemble capability fallback is explicit
|
|
1012
|
+
PASS read-only Phase 4 fixture uses Phase 3 fable-parallel topology
|
|
1013
|
+
PASS ensemble bound has one deterministic router policy source
|
|
1014
|
+
PASS read-only fixture dispatches both independent stages in one validated batch
|
|
1015
|
+
PASS disjoint-write fixture dispatches in one validated batch
|
|
1016
|
+
PASS independent verifier can accept the strict-majority position
|
|
1017
|
+
PASS accepted synthesis still preserves the minority position
|
|
1018
|
+
PASS minority evidence remains attached to the synthesis
|
|
1019
|
+
PASS ensemble cannot claim improvement without paired #71 evidence
|
|
1020
|
+
PASS measurement envelope points to existing benchmark/telemetry owners
|
|
1021
|
+
PASS correctness and execution-cost metrics remain separate
|
|
1022
|
+
PASS well-formed paired evidence can explicitly unlock an improvement claim
|
|
1023
|
+
PASS incomplete paired evidence never unlocks an improvement claim
|
|
1024
|
+
PASS majority vote cannot override an objective verification failure
|
|
1025
|
+
PASS same model/prompt/evidence fingerprint is rejected as fake diversity
|
|
1026
|
+
PASS same-pool or non-independent verifier cannot gate ensemble output
|
|
1027
|
+
PASS ensemble synthesis writes run-scoped correlated evidence
|
|
1028
|
+
PASS ensemble evidence correlates planId and runId
|
|
1029
|
+
PASS memory screening fixture initializes a git workspace
|
|
1030
|
+
PASS ordinary workflow keeps memory.write=none
|
|
1031
|
+
PASS memory.write=none does not issue a write capability
|
|
1032
|
+
PASS forged/free-form authorization cannot bypass memory.write=none
|
|
1033
|
+
PASS explicit memory persistence route succeeds
|
|
1034
|
+
PASS explicit persistence route authorizes only self-evolve durable write
|
|
1035
|
+
PASS router emits a single-use workflow/session-bound memory capability
|
|
1036
|
+
PASS authorized reusable rule passes screening and persists
|
|
1037
|
+
PASS authorized memory rule is persisted in the resolved workspace
|
|
1038
|
+
PASS durable write creates machine-readable memory-index.json
|
|
1039
|
+
PASS persisted memory records source provenance
|
|
1040
|
+
PASS persisted memory records a deterministic content fingerprint
|
|
1041
|
+
PASS persisted memory records screening disposition
|
|
1042
|
+
PASS metadata records trusted session/workflow writer provenance
|
|
1043
|
+
PASS metadata records runtime-issued writer role/disposition
|
|
1044
|
+
PASS retention policy is persisted without deleting the human rule
|
|
1045
|
+
PASS single-use memory capability cannot authorize a second write
|
|
1046
|
+
PASS scoped retrieval returns relevant active memory as untrusted data
|
|
1047
|
+
PASS retrieval exposes the authority boundary explicitly
|
|
1048
|
+
PASS unrelated task memory is excluded even when another scope dimension matches
|
|
1049
|
+
PASS retrieval without task/requirement/role context returns no memory
|
|
1050
|
+
PASS expired memory is excluded from default scoped retrieval
|
|
1051
|
+
PASS expired memory remains auditable on disk and is not auto-deleted
|
|
1052
|
+
PASS stale memory is excluded but retained
|
|
1053
|
+
PASS workspace topology issues a proposal-only capability
|
|
1054
|
+
PASS memory.write=propose creates a reviewable candidate
|
|
1055
|
+
PASS proposal-only path does not mutate durable RULES.md
|
|
1056
|
+
PASS concurrent session capabilities independently authorize their own proposals
|
|
1057
|
+
PASS candidate paths remain isolated by runtime session
|
|
1058
|
+
PASS one session cannot reuse a consumed capability to authorize another pending write
|
|
1059
|
+
PASS likely paraphrase is retained as a review candidate instead of silently deleting or duplicating it
|
|
1060
|
+
PASS paraphrase review does not silently mutate durable memory
|
|
1061
|
+
PASS secret-like token is rejected before persistence
|
|
1062
|
+
PASS rejected secret-like token never reaches RULES.md or durable index
|
|
1063
|
+
PASS prompt-injection-shaped memory is rejected before persistence
|
|
1064
|
+
PASS rejected prompt injection never reaches RULES.md
|
|
1065
|
+
PASS plugin mirror matches canonical: harness-everything/scripts/ensemble-policy.js
|
|
1066
|
+
PASS plugin mirror matches canonical: harness-everything/scripts/kernel-router.js
|
|
1067
|
+
PASS plugin mirror matches canonical: harness-everything/schemas/router-workflow-plan.schema.json
|
|
1068
|
+
PASS plugin mirror matches canonical: fable-mode/scripts/ensemble-review.js
|
|
1069
|
+
PASS plugin mirror matches canonical: self-evolve/scripts/persist-memory.js
|
|
1070
|
+
PASS plugin mirror matches canonical: multi-agent-workspace/scripts/index_memory.js
|
|
1071
|
+
|
|
1072
|
+
PASS: #85 Phase 4 bounded parallel / ensemble / memory evidence (0 failures)
|
|
1073
|
+
PASS phase 4 ensemble/memory evidence
|
|
1074
|
+
=== #141 Self-Evolve Closed Loop Phase 1-4 Mechanism ===
|
|
1075
|
+
PASS Rule-of-3 recovery tracker stays non-blocking
|
|
1076
|
+
PASS zoom-out followed by confirmed success emits one lesson candidate
|
|
1077
|
+
PASS runtime recovery enters observed -> proposed lifecycle
|
|
1078
|
+
PASS runtime candidate excludes raw command/output contents
|
|
1079
|
+
PASS automatic opportunity detection never mutates durable memory
|
|
1080
|
+
PASS Rule-of-3 linear recovery is not misrepresented as counterfactual replay
|
|
1081
|
+
PASS non-replayable candidate requires paired/later evidence and makes no improvement claim
|
|
1082
|
+
PASS inconclusive runtime lesson cannot be promoted
|
|
1083
|
+
PASS verifier fixture selects Fable staged workflow
|
|
1084
|
+
PASS first verifier failure remains authoritative without blocking the hook
|
|
1085
|
+
PASS failed verifier evidence remains authoritative in the stage contract
|
|
1086
|
+
PASS same correlated verifier can later pass after correction
|
|
1087
|
+
PASS verifier fail -> pass transition emits one lesson candidate
|
|
1088
|
+
PASS verifier candidate retains structured plan/run/stage evidence only
|
|
1089
|
+
PASS verifier candidate links fail and pass source event identities
|
|
1090
|
+
PASS objective fail->pass evidence can accept a candidate for governed memory promotion
|
|
1091
|
+
PASS accepted memory eligibility still does not claim behavioral improvement
|
|
1092
|
+
PASS router issues #134 capability for explicit lesson promotion
|
|
1093
|
+
PASS accepted candidate persists only through #134 authorized memory path
|
|
1094
|
+
PASS candidate lifecycle records governed persistence
|
|
1095
|
+
PASS candidate distinguishes originating recovery session from authorized promotion session
|
|
1096
|
+
PASS durable memory retains originating lesson-candidate provenance
|
|
1097
|
+
PASS durable memory records the actual #134 promotion writer provenance
|
|
1098
|
+
PASS later relevant task retrieves the accepted lesson
|
|
1099
|
+
PASS retrieval is correlated to originating lesson candidate
|
|
1100
|
+
PASS retrieved lesson remains untrusted context
|
|
1101
|
+
PASS unrelated task does not receive lesson merely because it exists
|
|
1102
|
+
PASS later retrieval can advance the candidate lifecycle with evidence
|
|
1103
|
+
PASS later outcome evidence can advance a retrieved lesson to validated
|
|
1104
|
+
PASS same runtime evidence is idempotent and cannot duplicate a lesson candidate
|
|
1105
|
+
PASS secret/injection screening rejects unsafe lesson before any promotion
|
|
1106
|
+
PASS rejected lesson never mutates durable memory
|
|
1107
|
+
PASS negative-control anchors require both runtime emitters
|
|
1108
|
+
PASS runtime recovery hooks cannot directly persist memory
|
|
1109
|
+
PASS self-evolve lifecycle emits telemetry event: learning_opportunity
|
|
1110
|
+
PASS self-evolve lifecycle emits telemetry event: lesson_proposed
|
|
1111
|
+
PASS self-evolve lifecycle emits telemetry event: lesson_screened
|
|
1112
|
+
PASS self-evolve lifecycle emits telemetry event: lesson_evaluated
|
|
1113
|
+
PASS self-evolve lifecycle emits telemetry event: lesson_accepted
|
|
1114
|
+
PASS self-evolve lifecycle emits telemetry event: lesson_rejected
|
|
1115
|
+
PASS self-evolve lifecycle emits telemetry event: lesson_inconclusive
|
|
1116
|
+
PASS self-evolve lifecycle emits telemetry event: lesson_persisted
|
|
1117
|
+
PASS self-evolve lifecycle emits telemetry event: lesson_retrieved
|
|
1118
|
+
PASS self-evolve lifecycle emits telemetry event: lesson_validated
|
|
1119
|
+
PASS telemetry report exposes opportunity -> disposition -> persisted -> retrieved -> validated funnel
|
|
1120
|
+
PASS lesson telemetry excludes generalized rules, evidence refs, and raw runtime output
|
|
1121
|
+
PASS versioned lesson schema covers lifecycle and trigger vocabulary
|
|
1122
|
+
PASS plugin mirror matches canonical: hooks/scripts/lib/learning-opportunity.js
|
|
1123
|
+
PASS plugin mirror matches canonical: hooks/scripts/rule-of-3-tracker.js
|
|
1124
|
+
PASS plugin mirror matches canonical: hooks/scripts/contract-test.js
|
|
1125
|
+
PASS plugin mirror matches canonical: self-evolve/scripts/lesson-candidate.js
|
|
1126
|
+
PASS plugin mirror matches canonical: multi-agent-workspace/scripts/index_memory.js
|
|
1127
|
+
PASS plugin mirror matches canonical: self-evolve/schemas/lesson-candidate.schema.json
|
|
1128
|
+
|
|
1129
|
+
PASS: #141 self-evolve closed loop phase 1-4 mechanism (0 failures)
|
|
1130
|
+
PASS self-evolve closed loop phase 1-3
|
|
1131
|
+
=== Issue #85 Phase 5 — Pre-action gate ===
|
|
1132
|
+
PASS production action-gate rule table loads without fallback
|
|
1133
|
+
PASS production rule table is non-empty and keeps the destructive baseline
|
|
1134
|
+
PASS rule table contains git-force-push
|
|
1135
|
+
PASS rule table contains git-reset-hard
|
|
1136
|
+
PASS rule table contains git-clean-force-delete
|
|
1137
|
+
PASS rule table contains recursive-delete
|
|
1138
|
+
PASS rule table contains powershell-recursive-force-delete
|
|
1139
|
+
PASS rule table contains sql-destructive-ddl
|
|
1140
|
+
PASS rule table contains package-publish
|
|
1141
|
+
PASS rule table contains github-release-create
|
|
1142
|
+
PASS rule table contains production-deploy
|
|
1143
|
+
PASS Claude force-push defers to the host permission flow without forcing a prompt
|
|
1144
|
+
PASS deferred decision still names the matched rule
|
|
1145
|
+
PASS matched Claude action is audited as deferred-to-host
|
|
1146
|
+
PASS audit records matched rule
|
|
1147
|
+
PASS audit hashes the exact command payload
|
|
1148
|
+
PASS always-ask policy restores the forced Claude prompt
|
|
1149
|
+
PASS ask decision uses Claude PreToolUse hookSpecificOutput
|
|
1150
|
+
PASS ask reason names the matched rule
|
|
1151
|
+
PASS always-ask action is audited as pending-approval
|
|
1152
|
+
PASS git status passes untouched
|
|
1153
|
+
PASS safe unmatched command creates no gate audit record
|
|
1154
|
+
PASS permission_mode=default defers to the host without a forced prompt
|
|
1155
|
+
PASS audit records permission_mode=default
|
|
1156
|
+
PASS permission_mode=acceptEdits defers to the host without a forced prompt
|
|
1157
|
+
PASS audit records permission_mode=acceptEdits
|
|
1158
|
+
PASS permission_mode=plan defers to the host without a forced prompt
|
|
1159
|
+
PASS audit records permission_mode=plan
|
|
1160
|
+
PASS permission_mode=auto defers to the host without a forced prompt
|
|
1161
|
+
PASS audit records permission_mode=auto
|
|
1162
|
+
PASS permission_mode=dontAsk defers to the host without a forced prompt
|
|
1163
|
+
PASS audit records permission_mode=dontAsk
|
|
1164
|
+
PASS permission_mode=bypassPermissions defers to the host without a forced prompt
|
|
1165
|
+
PASS audit records permission_mode=bypassPermissions
|
|
1166
|
+
PASS permission_mode=missing defers to the host without a forced prompt
|
|
1167
|
+
PASS audit records permission_mode=missing
|
|
1168
|
+
PASS command classification gates destructive action even when router hint says not required
|
|
1169
|
+
PASS router actionGate hint is recorded without controlling enforcement
|
|
1170
|
+
PASS safe command is not gated solely because prompt router predicted risk
|
|
1171
|
+
PASS structured MCP delete is gated before execution
|
|
1172
|
+
PASS audit retains normalized structured action identity
|
|
1173
|
+
PASS structured action audit binds to exact payload hash
|
|
1174
|
+
PASS structured action audit does not persist raw secret arguments
|
|
1175
|
+
PASS read-only MCP fixture passes without a false gate
|
|
1176
|
+
PASS obvious structured mutation is classified from tool identity
|
|
1177
|
+
PASS non-shell local-function destructive fixture uses the same structured gate
|
|
1178
|
+
PASS unknown structured action fails closed when workflow requires a gate
|
|
1179
|
+
PASS unknown structured action is not fabricated as destructive without a gate requirement
|
|
1180
|
+
PASS changed structured payload cannot reuse a prior approval/audit decision
|
|
1181
|
+
PASS PowerShell recursive force delete outside scratch is gated
|
|
1182
|
+
PASS PowerShell recursive force delete inside session scratch is exempt
|
|
1183
|
+
PASS rm -rf outside scratch is gated
|
|
1184
|
+
PASS rm -rf inside OS temp is exempt
|
|
1185
|
+
PASS git reset --hard HEAD matches git-reset-hard
|
|
1186
|
+
PASS git clean -fd matches git-clean-force-delete
|
|
1187
|
+
PASS psql -c "DROP TABLE users" matches sql-destructive-ddl
|
|
1188
|
+
PASS npm publish matches package-publish
|
|
1189
|
+
PASS gh release create v1.2.3 matches github-release-create
|
|
1190
|
+
PASS npm run deploy matches production-deploy
|
|
1191
|
+
PASS host without verified ask-style decision blocks with exit 2
|
|
1192
|
+
PASS non-ask host block reason names the matched rule
|
|
1193
|
+
PASS non-ask host block is audited as rejected
|
|
1194
|
+
PASS internal action-gate error on Claude defers to the host instead of allowing or forcing a prompt
|
|
1195
|
+
PASS internal error is shown to the user as a systemMessage without a permission decision
|
|
1196
|
+
PASS internal error on Claude is audited as deferred-to-host
|
|
1197
|
+
PASS internal action-gate error under always-ask fails closed to ask
|
|
1198
|
+
PASS internal error on host without ask fails closed to block
|
|
1199
|
+
PASS missing/invalid rule table visibly falls back to built-in defaults
|
|
1200
|
+
PASS built-in fallback still classifies and audits destructive action
|
|
1201
|
+
PASS fallback degradation is shown to the user as a systemMessage
|
|
1202
|
+
PASS valid empty rule table does not silently activate built-in defaults
|
|
1203
|
+
PASS empty-table mutation control disables detection, proving production non-empty assertion is meaningful
|
|
1204
|
+
PASS PostToolUse closes a deferred payload as executed
|
|
1205
|
+
PASS executed audit keeps exact approved payload hash
|
|
1206
|
+
PASS PostToolUseFailure records attempted execution without pretending success
|
|
1207
|
+
PASS post-tool payload mismatch is never accepted as the approved command
|
|
1208
|
+
PASS Stop closes unexecuted deferred and pending payloads
|
|
1209
|
+
PASS unexecuted deferred payload is audited as rejected
|
|
1210
|
+
PASS unexecuted always-ask approval is audited as rejected
|
|
1211
|
+
PASS hook process returns no decision for a matched command under the default policy
|
|
1212
|
+
PASS hook process audits the deferred command with its permission mode
|
|
1213
|
+
PASS HARNESS_ACTION_GATE_POLICY=always-ask makes the hook process emit ask
|
|
1214
|
+
PASS Claude hook manifest wires action-gate to shell and MCP pre-action surfaces
|
|
1215
|
+
PASS Claude hook manifest audits successful tool execution
|
|
1216
|
+
PASS Claude hook manifest audits failed tool execution
|
|
1217
|
+
PASS Claude hook manifest closes unresolved approvals on Stop
|
|
1218
|
+
PASS OpenAI plugin preserves the attribution-aware Codex shell action-gate adapter
|
|
1219
|
+
PASS OpenAI plugin packages an isolated structured MCP pre-action adapter without widening unrelated hooks
|
|
1220
|
+
PASS OpenAI plugin packages an isolated structured MCP post-action audit adapter
|
|
1221
|
+
PASS Codex plugin does not declare unsupported PostToolUseFailure lifecycle event
|
|
1222
|
+
PASS Codex plugin infers action-gate outcome from supported PostToolUse
|
|
1223
|
+
PASS Codex PostToolUse maps zero exit code to success
|
|
1224
|
+
PASS Codex PostToolUse maps non-zero exit code to failure
|
|
1225
|
+
PASS Codex PostToolUse conservatively recognizes failure stderr without exit code
|
|
1226
|
+
PASS OpenAI plugin closes pending approvals at Stop
|
|
1227
|
+
PASS canonical and plugin action-gate rule tables are byte-identical
|
|
1228
|
+
PASS OpenAI plugin packages action-gate runtime
|
|
1229
|
+
|
|
1230
|
+
PASS: action-gate phase 5 (0 failures)
|
|
1231
|
+
PASS phase 5 pre-action gate
|
|
1232
|
+
Action-gate platform evidence boundary verified.
|
|
1233
|
+
PASS phase 5 platform evidence boundary
|
|
1234
|
+
=== Cross-Agent Telemetry (#83) ===
|
|
1235
|
+
PASS telemetry fixture initializes git workspace
|
|
1236
|
+
PASS Claude-compatible skill pre hook is fail-open
|
|
1237
|
+
PASS Claude-compatible skill post hook is fail-open
|
|
1238
|
+
PASS existing state-persist hook remains successful with telemetry observer
|
|
1239
|
+
PASS Stop closes active telemetry window without gating task
|
|
1240
|
+
PASS skill invoke/load, tool observation, and completion are retained as four normalized events
|
|
1241
|
+
PASS all retained JSONL events satisfy the normalized event contract
|
|
1242
|
+
PASS raw host session identity is replaced by local hash
|
|
1243
|
+
PASS telemetry never stores prompt/tool argument/output secret fixture
|
|
1244
|
+
PASS telemetry never stores absolute workspace paths
|
|
1245
|
+
PASS telemetry event payload has no raw command field
|
|
1246
|
+
PASS host-provided tool duration is attributed separately while skill is active
|
|
1247
|
+
PASS active window is recorded independently from skill load/tool time
|
|
1248
|
+
PASS skill load duration has its own metric
|
|
1249
|
+
PASS aggregation groups events by host/skill
|
|
1250
|
+
PASS aggregation retains invocation and attributed-tool counts
|
|
1251
|
+
PASS report documents active-window semantics instead of calling it runtime
|
|
1252
|
+
PASS lesson lifecycle telemetry accepts privacy-safe event: learning_opportunity
|
|
1253
|
+
PASS lesson lifecycle telemetry accepts privacy-safe event: lesson_proposed
|
|
1254
|
+
PASS lesson lifecycle telemetry accepts privacy-safe event: lesson_screened
|
|
1255
|
+
PASS lesson lifecycle telemetry accepts privacy-safe event: lesson_evaluated
|
|
1256
|
+
PASS lesson lifecycle telemetry accepts privacy-safe event: lesson_accepted
|
|
1257
|
+
PASS lesson lifecycle telemetry accepts privacy-safe event: lesson_persisted
|
|
1258
|
+
PASS lesson lifecycle telemetry accepts privacy-safe event: lesson_retrieved
|
|
1259
|
+
PASS lesson lifecycle events do not contaminate skill execution aggregates
|
|
1260
|
+
PASS report projects one correlated self-evolve opportunity -> accepted -> persisted -> retrieved funnel
|
|
1261
|
+
PASS lesson telemetry hashes candidate/session identities instead of retaining raw IDs
|
|
1262
|
+
PASS privacy contract rejects forbidden content-bearing fields
|
|
1263
|
+
PASS telemetry storage failure is returned as observability failure rather than throwing
|
|
1264
|
+
PASS telemetry can be locally disabled without task failure
|
|
1265
|
+
PASS real OpenCode plugin emits skill invocation and turn-boundary completion events
|
|
1266
|
+
PASS OpenCode adapter measures in-process tool duration while skill is active
|
|
1267
|
+
PASS OpenCode adapter records locally resolved skill version without storing skill-file path
|
|
1268
|
+
PASS OpenCode telemetry also excludes raw tool arguments
|
|
1269
|
+
PASS instrumentation benchmark measures local append overhead
|
|
1270
|
+
INFO telemetry local sink overhead: p50=0.139ms p95=0.274ms max=0.460ms
|
|
1271
|
+
PASS Claude manifest wires narrow Skill pre telemetry hook
|
|
1272
|
+
PASS Claude manifest closes active windows at Stop
|
|
1273
|
+
PASS OpenAI package contains mechanism-level Skill telemetry adapter
|
|
1274
|
+
PASS Codex package does not invent unsupported PostToolUseFailure telemetry
|
|
1275
|
+
PASS plugin mirror matches canonical: hooks/scripts/lib/telemetry.js
|
|
1276
|
+
PASS plugin mirror matches canonical: hooks/scripts/telemetry-adapter.js
|
|
1277
|
+
PASS plugin mirror matches canonical: hooks/scripts/state-persist.js
|
|
1278
|
+
PASS versioned telemetry schema preserves timing plus self-evolve lifecycle vocabulary
|
|
1279
|
+
|
|
1280
|
+
PASS: #83 cross-agent telemetry (0 failures)
|
|
1281
|
+
PASS cross-agent telemetry
|
|
1282
|
+
=== Contract Integrity Phase 1-2 (#84) ===
|
|
1283
|
+
PASS #58 completeness evaluator remains independently backward compatible
|
|
1284
|
+
PASS fully traced current contract passes strict reconciliation
|
|
1285
|
+
PASS integrity score is min(100 completeness, 100 protection)
|
|
1286
|
+
PASS consistent requirement has no fabricated drift category
|
|
1287
|
+
PASS only predeclared required probe evidence determines protection
|
|
1288
|
+
PASS strict mode fails when ticket feedback moves behavior ahead of living contract
|
|
1289
|
+
PASS ticket-ahead fixture reports exact stale-spec and untraced-change categories
|
|
1290
|
+
PASS drift report points to the ticket that outran the contract
|
|
1291
|
+
PASS ADR amendment + living spec/test/implementation revision reconciliation restores PASS
|
|
1292
|
+
PASS decision supersession is linked instead of appending ticket chronology to old ADR
|
|
1293
|
+
PASS #58 evidence bound to an old source cannot certify the current living spec
|
|
1294
|
+
PASS stale #58 source binding blocks strict completion despite a 100 completeness score
|
|
1295
|
+
PASS probe derived from a stale source section is rejected as protection evidence
|
|
1296
|
+
PASS stale probe evidence fails closed to zero protection
|
|
1297
|
+
PASS extra killed probes cannot dilute one surviving predeclared required probe
|
|
1298
|
+
PASS padding tests/probes cannot turn a weak protection result green
|
|
1299
|
+
PASS compile/build failure cannot be counted as a killed contract probe
|
|
1300
|
+
PASS invalid probe evidence fails closed rather than lowering thresholds
|
|
1301
|
+
PASS missing required probe is explicit NOT_EVALUATED
|
|
1302
|
+
PASS strict mode cannot authorize completion without protection evidence
|
|
1303
|
+
PASS audit-only adoption reports legacy debt without claiming completion eligibility
|
|
1304
|
+
PASS legacy audit exposes missing ticket/test/implementation/protection links
|
|
1305
|
+
PASS source defect stays distinct and fail-closed in strict mode
|
|
1306
|
+
PASS source conflict stays distinct and fail-closed
|
|
1307
|
+
PASS explicit requirement supersession is distinguished from stale/untraced drift
|
|
1308
|
+
PASS historical superseded requirement does not poison the current contract gate
|
|
1309
|
+
PASS Markdown report exposes drift and score formula
|
|
1310
|
+
PASS machine report uses only the declared drift vocabulary
|
|
1311
|
+
PASS machine report publishes a traceable contract graph
|
|
1312
|
+
PASS strict CLI writes both machine-readable JSON and concise Markdown reports
|
|
1313
|
+
PASS CLI reports retain deterministic PASS evidence
|
|
1314
|
+
PASS audit mode exits zero for migration/debt inventory without pretending to pass
|
|
1315
|
+
PASS strict CLI returns failure for valid-but-incomplete protection evidence
|
|
1316
|
+
PASS malformed trace returns infrastructure/schema exit 2
|
|
1317
|
+
PASS runtime rejects fields that the JSON schema does not permit
|
|
1318
|
+
PASS trace report rejects machine-specific absolute artifact paths
|
|
1319
|
+
PASS versioned trace schema includes probe disposition vocabulary
|
|
1320
|
+
PASS schema prevents duplicate required-probe padding
|
|
1321
|
+
PASS ADR guidance preserves accepted history and requires supersession/requirement lineage
|
|
1322
|
+
PASS to-spec/templates/feature-spec.md carries stable requirement id/status/revision/decision lineage
|
|
1323
|
+
PASS to-spec/templates/cli-reference.md carries stable requirement id/status/revision/decision lineage
|
|
1324
|
+
PASS to-spec/templates/schema-doc.md carries stable requirement id/status/revision/decision lineage
|
|
1325
|
+
PASS to-spec/templates/dev-doc.md carries stable requirement id/status/revision/decision lineage
|
|
1326
|
+
PASS to-spec process reconciles behavior/architecture changes back to current contract sources
|
|
1327
|
+
PASS ticket templates require source requirement revision and change-impact classification
|
|
1328
|
+
PASS behavior/architecture ticket drift is routed back to living spec/ADR before completion
|
|
1329
|
+
PASS verification-loop makes current contract reconciliation a non-compensating delivery gate
|
|
1330
|
+
PASS verification report cannot hide unresolved contract state behind green build/tests
|
|
1331
|
+
PASS Phase 2 integrates existing routed skills instead of adding a colliding contract-integrity routing surface
|
|
1332
|
+
PASS Phase 2 OpenAI package mirror matches canonical: grill-with-docs/ADR-FORMAT.md
|
|
1333
|
+
PASS Phase 2 OpenAI package mirror matches canonical: to-spec/references/process.md
|
|
1334
|
+
PASS Phase 2 OpenAI package mirror matches canonical: to-spec/templates/feature-spec.md
|
|
1335
|
+
PASS Phase 2 OpenAI package mirror matches canonical: to-spec/templates/cli-reference.md
|
|
1336
|
+
PASS Phase 2 OpenAI package mirror matches canonical: to-spec/templates/schema-doc.md
|
|
1337
|
+
PASS Phase 2 OpenAI package mirror matches canonical: to-spec/templates/dev-doc.md
|
|
1338
|
+
PASS Phase 2 OpenAI package mirror matches canonical: to-tickets/references/publishing-and-templates.md
|
|
1339
|
+
PASS Phase 2 OpenAI package mirror matches canonical: verification-loop/SKILL.md
|
|
1340
|
+
PASS Phase 2 OpenAI package mirror matches canonical: verification-loop/references/verification-phases.md
|
|
1341
|
+
PASS Phase 2 OpenAI package mirror matches canonical: verification-loop/templates/verification-report.template.md
|
|
1342
|
+
PASS stale-spec drift emits requirement-scoped living-spec repair guidance
|
|
1343
|
+
PASS surviving required probe emits BLOCKER weak-oracle guidance
|
|
1344
|
+
PASS Markdown keeps repair guidance concise and tied to requirement identity
|
|
1345
|
+
PASS strict audit may emit a PASS report without workspace binding for immediate inspection
|
|
1346
|
+
PASS report created without workspace fingerprints cannot later authorize freshness against a supplied workspace
|
|
1347
|
+
PASS strict audit with existing workspace artifacts produces fresh PASS report
|
|
1348
|
+
PASS report provenance records trace/TDD hashes plus current artifact hashes
|
|
1349
|
+
PASS unchanged PASS report can authorize completion
|
|
1350
|
+
PASS surviving required probe produces a reusable FAIL report fixture
|
|
1351
|
+
PASS freshness verification re-derives the current gate instead of trusting forged PASS fields
|
|
1352
|
+
PASS workspace-aware audit rejects artifact paths that resolve through a symlink or junction
|
|
1353
|
+
PASS test artifact change invalidates previously passing report
|
|
1354
|
+
PASS #58 evidence change invalidates previously passing report
|
|
1355
|
+
PASS strict workspace-aware audit fails closed when traced implementation evidence is missing
|
|
1356
|
+
|
|
1357
|
+
PASS: #84 contract integrity phase 1-4 mechanism (0 failures)
|
|
1358
|
+
PASS contract integrity phase 1
|
|
1359
|
+
=== Issue #99 — runtime correctness ===
|
|
1360
|
+
PASS canonical Claude hook manifest contains command hooks
|
|
1361
|
+
PASS every canonical Claude plugin hook is anchored to CLAUDE_PLUGIN_ROOT
|
|
1362
|
+
PASS SessionStart hook resolves from plugin root: harness-everything\scripts\bootstrap.js
|
|
1363
|
+
PASS SessionStart hook resolves and starts from unrelated cwd
|
|
1364
|
+
PASS UserPromptSubmit hook resolves from plugin root: harness-everything\scripts\kernel-router.js
|
|
1365
|
+
PASS UserPromptSubmit hook resolves and starts from unrelated cwd
|
|
1366
|
+
PASS UserPromptSubmit hook resolves from plugin root: hooks\scripts\observation-hook.js
|
|
1367
|
+
PASS UserPromptSubmit hook resolves and starts from unrelated cwd
|
|
1368
|
+
PASS PreToolUse hook resolves from plugin root: hooks\scripts\workflow-gate.js
|
|
1369
|
+
PASS PreToolUse hook resolves and starts from unrelated cwd
|
|
1370
|
+
PASS PreToolUse hook resolves from plugin root: hooks\scripts\action-gate.js
|
|
1371
|
+
PASS PreToolUse hook resolves and starts from unrelated cwd
|
|
1372
|
+
PASS PreToolUse hook resolves from plugin root: hooks\scripts\rule-of-3.js
|
|
1373
|
+
PASS PreToolUse hook resolves and starts from unrelated cwd
|
|
1374
|
+
PASS PreToolUse hook resolves from plugin root: hooks\scripts\boundary-guard.js
|
|
1375
|
+
PASS PreToolUse hook resolves and starts from unrelated cwd
|
|
1376
|
+
PASS PreToolUse hook resolves from plugin root: hooks\scripts\depth-guard.js
|
|
1377
|
+
PASS PreToolUse hook resolves and starts from unrelated cwd
|
|
1378
|
+
PASS PreToolUse hook resolves from plugin root: hooks\scripts\context-compact.js
|
|
1379
|
+
PASS PreToolUse hook resolves and starts from unrelated cwd
|
|
1380
|
+
PASS PreToolUse hook resolves from plugin root: hooks\scripts\subagent-scope-guard.js
|
|
1381
|
+
PASS PreToolUse hook resolves and starts from unrelated cwd
|
|
1382
|
+
PASS PreToolUse hook resolves from plugin root: hooks\scripts\telemetry-adapter.js
|
|
1383
|
+
PASS PreToolUse hook resolves and starts from unrelated cwd
|
|
1384
|
+
PASS Stop hook resolves from plugin root: hooks\scripts\action-gate.js
|
|
1385
|
+
PASS Stop hook resolves and starts from unrelated cwd
|
|
1386
|
+
PASS Stop hook resolves from plugin root: hooks\scripts\workflow-stop-gate.js
|
|
1387
|
+
PASS Stop hook resolves and starts from unrelated cwd
|
|
1388
|
+
PASS Stop hook resolves from plugin root: hooks\scripts\stop-gate.js
|
|
1389
|
+
PASS Stop hook resolves and starts from unrelated cwd
|
|
1390
|
+
PASS Stop hook resolves from plugin root: hooks\scripts\telemetry-adapter.js
|
|
1391
|
+
PASS Stop hook resolves and starts from unrelated cwd
|
|
1392
|
+
PASS Stop hook resolves from plugin root: hooks\scripts\observation-hook.js
|
|
1393
|
+
PASS Stop hook resolves and starts from unrelated cwd
|
|
1394
|
+
PASS PostToolUse hook resolves from plugin root: hooks\scripts\action-gate.js
|
|
1395
|
+
PASS PostToolUse hook resolves and starts from unrelated cwd
|
|
1396
|
+
PASS PostToolUse hook resolves from plugin root: hooks\scripts\rule-of-3-tracker.js
|
|
1397
|
+
PASS PostToolUse hook resolves and starts from unrelated cwd
|
|
1398
|
+
PASS PostToolUse hook resolves from plugin root: hooks\scripts\state-persist.js
|
|
1399
|
+
PASS PostToolUse hook resolves and starts from unrelated cwd
|
|
1400
|
+
PASS PostToolUse hook resolves from plugin root: hooks\scripts\atomic-commit-check.js
|
|
1401
|
+
PASS PostToolUse hook resolves and starts from unrelated cwd
|
|
1402
|
+
PASS PostToolUse hook resolves from plugin root: hooks\scripts\contract-test.js
|
|
1403
|
+
PASS PostToolUse hook resolves and starts from unrelated cwd
|
|
1404
|
+
PASS PostToolUse hook resolves from plugin root: hooks\scripts\subagent-scope-guard.js
|
|
1405
|
+
PASS PostToolUse hook resolves and starts from unrelated cwd
|
|
1406
|
+
PASS PostToolUse hook resolves from plugin root: hooks\scripts\telemetry-adapter.js
|
|
1407
|
+
PASS PostToolUse hook resolves and starts from unrelated cwd
|
|
1408
|
+
PASS PostToolUse hook resolves from plugin root: hooks\scripts\observation-hook.js
|
|
1409
|
+
PASS PostToolUse hook resolves and starts from unrelated cwd
|
|
1410
|
+
PASS PostToolUseFailure hook resolves from plugin root: hooks\scripts\action-gate.js
|
|
1411
|
+
PASS PostToolUseFailure hook resolves and starts from unrelated cwd
|
|
1412
|
+
PASS PostToolUseFailure hook resolves from plugin root: hooks\scripts\rule-of-3-tracker.js
|
|
1413
|
+
PASS PostToolUseFailure hook resolves and starts from unrelated cwd
|
|
1414
|
+
PASS PostToolUseFailure hook resolves from plugin root: hooks\scripts\state-persist.js
|
|
1415
|
+
PASS PostToolUseFailure hook resolves and starts from unrelated cwd
|
|
1416
|
+
PASS PostToolUseFailure hook resolves from plugin root: hooks\scripts\telemetry-adapter.js
|
|
1417
|
+
PASS PostToolUseFailure hook resolves and starts from unrelated cwd
|
|
1418
|
+
PASS PostToolUseFailure hook resolves from plugin root: hooks\scripts\observation-hook.js
|
|
1419
|
+
PASS PostToolUseFailure hook resolves and starts from unrelated cwd
|
|
1420
|
+
Created .claude directory
|
|
1421
|
+
✅ Configured Claude Code hooks safely in /.claude/settings.json
|
|
1422
|
+
PASS Claude installer preserves the full hook command set
|
|
1423
|
+
PASS SessionStart installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1424
|
+
PASS SessionStart installer writes an existing absolute hook path
|
|
1425
|
+
PASS UserPromptSubmit installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1426
|
+
PASS UserPromptSubmit installer writes an existing absolute hook path
|
|
1427
|
+
PASS UserPromptSubmit installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1428
|
+
PASS UserPromptSubmit installer writes an existing absolute hook path
|
|
1429
|
+
PASS PreToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1430
|
+
PASS PreToolUse installer writes an existing absolute hook path
|
|
1431
|
+
PASS PreToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1432
|
+
PASS PreToolUse installer writes an existing absolute hook path
|
|
1433
|
+
PASS PreToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1434
|
+
PASS PreToolUse installer writes an existing absolute hook path
|
|
1435
|
+
PASS PreToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1436
|
+
PASS PreToolUse installer writes an existing absolute hook path
|
|
1437
|
+
PASS PreToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1438
|
+
PASS PreToolUse installer writes an existing absolute hook path
|
|
1439
|
+
PASS PreToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1440
|
+
PASS PreToolUse installer writes an existing absolute hook path
|
|
1441
|
+
PASS PreToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1442
|
+
PASS PreToolUse installer writes an existing absolute hook path
|
|
1443
|
+
PASS PreToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1444
|
+
PASS PreToolUse installer writes an existing absolute hook path
|
|
1445
|
+
PASS Stop installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1446
|
+
PASS Stop installer writes an existing absolute hook path
|
|
1447
|
+
PASS Stop installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1448
|
+
PASS Stop installer writes an existing absolute hook path
|
|
1449
|
+
PASS Stop installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1450
|
+
PASS Stop installer writes an existing absolute hook path
|
|
1451
|
+
PASS Stop installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1452
|
+
PASS Stop installer writes an existing absolute hook path
|
|
1453
|
+
PASS Stop installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1454
|
+
PASS Stop installer writes an existing absolute hook path
|
|
1455
|
+
PASS PostToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1456
|
+
PASS PostToolUse installer writes an existing absolute hook path
|
|
1457
|
+
PASS PostToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1458
|
+
PASS PostToolUse installer writes an existing absolute hook path
|
|
1459
|
+
PASS PostToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1460
|
+
PASS PostToolUse installer writes an existing absolute hook path
|
|
1461
|
+
PASS PostToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1462
|
+
PASS PostToolUse installer writes an existing absolute hook path
|
|
1463
|
+
PASS PostToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1464
|
+
PASS PostToolUse installer writes an existing absolute hook path
|
|
1465
|
+
PASS PostToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1466
|
+
PASS PostToolUse installer writes an existing absolute hook path
|
|
1467
|
+
PASS PostToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1468
|
+
PASS PostToolUse installer writes an existing absolute hook path
|
|
1469
|
+
PASS PostToolUse installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1470
|
+
PASS PostToolUse installer writes an existing absolute hook path
|
|
1471
|
+
PASS PostToolUseFailure installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1472
|
+
PASS PostToolUseFailure installer writes an existing absolute hook path
|
|
1473
|
+
PASS PostToolUseFailure installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1474
|
+
PASS PostToolUseFailure installer writes an existing absolute hook path
|
|
1475
|
+
PASS PostToolUseFailure installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1476
|
+
PASS PostToolUseFailure installer writes an existing absolute hook path
|
|
1477
|
+
PASS PostToolUseFailure installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1478
|
+
PASS PostToolUseFailure installer writes an existing absolute hook path
|
|
1479
|
+
PASS PostToolUseFailure installer substitutes CLAUDE_PLUGIN_ROOT
|
|
1480
|
+
PASS PostToolUseFailure installer writes an existing absolute hook path
|
|
1481
|
+
PASS chained rm checks every target and gates the outside-scratch delete
|
|
1482
|
+
PASS chained rm remains exempt when every target is scratch/temp
|
|
1483
|
+
PASS chained Remove-Item checks every target and gates the outside-scratch delete
|
|
1484
|
+
PASS setup: approved payload reaches executed before audit-error probe
|
|
1485
|
+
PASS PostToolUse internal error never emits a PreToolUse ask decision
|
|
1486
|
+
PASS PostToolUse internal error does not overwrite an executed audit record
|
|
1487
|
+
PASS Stop internal error remains an audit error, not an authorization prompt
|
|
1488
|
+
PASS canonical and Codex/OpenAI plugin action-gate runtimes are byte-identical
|
|
1489
|
+
PASS stdin timeout path preserves Codex exit-2 fail-closed decision
|
|
1490
|
+
PASS stdin timeout block still reports the matched destructive rule
|
|
1491
|
+
|
|
1492
|
+
PASS: issue #99 runtime correctness (0 failures)
|
|
1493
|
+
PASS issue #99 runtime correctness
|
|
1494
|
+
|
|
1495
|
+
[Phase 3] Skill Reference and Behavioral Case Checks...
|
|
1496
|
+
Checked 68 skill path reference(s) across 26 skill(s).
|
|
1497
|
+
ALL SKILL REFERENCES RESOLVE.
|
|
1498
|
+
PASS skill reference check
|
|
1499
|
+
✅ baseline-add-feature (baseline)
|
|
1500
|
+
✅ baseline-api-design (baseline)
|
|
1501
|
+
✅ baseline-debugging (baseline)
|
|
1502
|
+
✅ baseline-dependency (baseline)
|
|
1503
|
+
✅ baseline-documentation (baseline)
|
|
1504
|
+
✅ baseline-environment-detection (baseline)
|
|
1505
|
+
✅ baseline-error-handling (baseline)
|
|
1506
|
+
✅ baseline-eval-harness (baseline)
|
|
1507
|
+
✅ baseline-fable-discipline (baseline)
|
|
1508
|
+
✅ baseline-find-skills-exposure (baseline)
|
|
1509
|
+
✅ baseline-find-skills (baseline)
|
|
1510
|
+
✅ baseline-git-commit (baseline)
|
|
1511
|
+
✅ baseline-install-cognitive-os (baseline)
|
|
1512
|
+
✅ baseline-multi-agent-workspace (baseline)
|
|
1513
|
+
✅ baseline-performance-monitoring (baseline)
|
|
1514
|
+
✅ baseline-performance (baseline)
|
|
1515
|
+
✅ baseline-refactor-with-tests (baseline)
|
|
1516
|
+
✅ baseline-refactor (baseline)
|
|
1517
|
+
✅ baseline-rewrite-commits (baseline)
|
|
1518
|
+
✅ baseline-security-review (baseline)
|
|
1519
|
+
✅ baseline-self-evolve (baseline)
|
|
1520
|
+
✅ baseline-simple-bugfix (baseline)
|
|
1521
|
+
✅ baseline-skill-creator (baseline)
|
|
1522
|
+
✅ baseline-skill-style (baseline)
|
|
1523
|
+
✅ baseline-tdd-workflow (baseline)
|
|
1524
|
+
✅ baseline-to-spec (baseline)
|
|
1525
|
+
✅ baseline-to-tickets (baseline)
|
|
1526
|
+
✅ baseline-todo-driven-workflow (baseline)
|
|
1527
|
+
✅ baseline-using-git-worktrees (baseline)
|
|
1528
|
+
✅ baseline-worktree-submodule-reachability (baseline)
|
|
1529
|
+
✅ breaker-zoom-out-after-3 (baseline)
|
|
1530
|
+
✅ pressure-budget-skip-review (pressure)
|
|
1531
|
+
✅ pressure-bypass-review (pressure)
|
|
1532
|
+
✅ pressure-complexity-skip (pressure)
|
|
1533
|
+
✅ pressure-expert-skip-testing (pressure)
|
|
1534
|
+
✅ pressure-fatigue-skip (pressure)
|
|
1535
|
+
✅ pressure-management-skip-all (pressure)
|
|
1536
|
+
✅ pressure-scope-bypass (pressure)
|
|
1537
|
+
✅ pressure-skip-docs (pressure)
|
|
1538
|
+
✅ pressure-skip-error-handling (pressure)
|
|
1539
|
+
✅ pressure-skip-security (pressure)
|
|
1540
|
+
✅ pressure-skip-tests (pressure)
|
|
1541
|
+
✅ pressure-skip-verification (pressure)
|
|
1542
|
+
✅ pressure-social-skip-review (pressure)
|
|
1543
|
+
✅ pressure-status-visibility (pressure)
|
|
1544
|
+
✅ pressure-sunk-cost-retry (pressure)
|
|
1545
|
+
✅ scope-discipline (baseline)
|
|
1546
|
+
✅ self-evolve-retrieval-recurrence (baseline)
|
|
1547
|
+
✅ tier1-no-overplan (baseline)
|
|
1548
|
+
✅ verify-before-done (baseline)
|
|
1549
|
+
|
|
1550
|
+
🎉 All 50 case files are structurally valid.
|
|
1551
|
+
PASS behavioral case validation
|
|
1552
|
+
|
|
1553
|
+
[Phase 3b] Fable Model Mode Contract Tests...
|
|
1554
|
+
=== Fable behavior profile + runtime floor contract tests ===
|
|
1555
|
+
PASS: profiles are behavior contracts; runtime floors are advisory; agent fallback remains explicit
|
|
1556
|
+
|
|
1557
|
+
✅ Fable model mode contract suite 100% Passed!
|
|
1558
|
+
|
|
1559
|
+
[Phase 4] Mechanism Test Suite (Claude Code hooks)...
|
|
1560
|
+
=================================================
|
|
1561
|
+
=== 🔧 Harness Mechanism Test Suite (VERIFICATION.md §2) ===
|
|
1562
|
+
=================================================
|
|
1563
|
+
|
|
1564
|
+
Discovered 76 mechanism test suite(s):
|
|
1565
|
+
- mechanism-2a-rule-of-3.test.js
|
|
1566
|
+
- mechanism-2aa-codex-action-gate-policy.test.js
|
|
1567
|
+
- mechanism-2ab-openai-plugin-sync-integrity.test.js
|
|
1568
|
+
- mechanism-2ac-atomic-commit-check.test.js
|
|
1569
|
+
- mechanism-2ad-action-gate-classifier-hardening.test.js
|
|
1570
|
+
- mechanism-2af-worktree-isolation.test.js
|
|
1571
|
+
- mechanism-2ag-router-worktree-contract.test.js
|
|
1572
|
+
- mechanism-2ah-workflow-lifecycle.test.js
|
|
1573
|
+
- mechanism-2ai-workspace-fingerprint-batch.test.js
|
|
1574
|
+
- mechanism-2aj-waza-reference-adapter.test.js
|
|
1575
|
+
- mechanism-2ak-contract-probe-adapter.test.js
|
|
1576
|
+
- mechanism-2al-codex-hooks-compat.test.js
|
|
1577
|
+
- mechanism-2am-observations-session-import.test.js
|
|
1578
|
+
- mechanism-2am-openai-packaged-helper-runtime.test.js
|
|
1579
|
+
- mechanism-2an-environment-detection-readonly.test.js
|
|
1580
|
+
- mechanism-2an-workflow-obligations.test.js
|
|
1581
|
+
- mechanism-2ao-plugin-sync.test.js
|
|
1582
|
+
- mechanism-2ap-sbom.test.js
|
|
1583
|
+
- mechanism-2aq-fable-stage-bindings.test.js
|
|
1584
|
+
- mechanism-2ar-binding-resolution.test.js
|
|
1585
|
+
- mechanism-2b-boundary-guard.test.js
|
|
1586
|
+
- mechanism-2c-state-persist.test.js
|
|
1587
|
+
- mechanism-2d-fact-audit.test.js
|
|
1588
|
+
- mechanism-2e-scope-guard.test.js
|
|
1589
|
+
- mechanism-2f-stop-gate.test.js
|
|
1590
|
+
- mechanism-2g-platform-ignore.test.js
|
|
1591
|
+
- mechanism-2h-installer-manifest.test.js
|
|
1592
|
+
- mechanism-2i-crlf-frontmatter.test.js
|
|
1593
|
+
- mechanism-2i-install-verification.test.js
|
|
1594
|
+
- mechanism-2j-behavioral-runner.test.js
|
|
1595
|
+
- mechanism-2j-fixture-entrypoints.test.js
|
|
1596
|
+
- mechanism-2k-reference-check.test.js
|
|
1597
|
+
- mechanism-2l-multi-agent-workspace.test.js
|
|
1598
|
+
- mechanism-2m-self-repo-guard.test.js
|
|
1599
|
+
- mechanism-2n-opencode-plugin.test.js
|
|
1600
|
+
- mechanism-2o-state-home-isolation.test.js
|
|
1601
|
+
- mechanism-2p-installer-links.test.js
|
|
1602
|
+
- mechanism-2q-installer-global-shared-store.test.js
|
|
1603
|
+
- mechanism-2r-uninstall-flags.test.js
|
|
1604
|
+
- mechanism-2s-tdd-quality.test.js
|
|
1605
|
+
- mechanism-2t-disclosure.test.js
|
|
1606
|
+
- mechanism-2t-evidence-triage.test.js
|
|
1607
|
+
- mechanism-2t-issue-20.test.js
|
|
1608
|
+
- mechanism-2t-platform-skill-targets.test.js
|
|
1609
|
+
- mechanism-2t-transcript-parser.test.js
|
|
1610
|
+
- mechanism-2t-workspace-identity.test.js
|
|
1611
|
+
- mechanism-2u-issue-42-regressions.test.js
|
|
1612
|
+
- mechanism-2u-issue-44.test.js
|
|
1613
|
+
- mechanism-2v-verifier-boundaries.test.js
|
|
1614
|
+
- mechanism-2w-platform-compatibility.test.js
|
|
1615
|
+
- mechanism-2x-release-automation.test.js
|
|
1616
|
+
- mechanism-2x-release-commit-message.test.js
|
|
1617
|
+
- mechanism-2y-release-tooling-compat.test.js
|
|
1618
|
+
- mechanism-2z-claude-plugin-manifest.test.js
|
|
1619
|
+
- mechanism-30-opencode-plugin-loadability.test.js
|
|
1620
|
+
- mechanism-31-opencode-hardlock-evidence.test.js
|
|
1621
|
+
- mechanism-32-paired-benchmark.test.js
|
|
1622
|
+
- mechanism-33-issues-205-207.test.js
|
|
1623
|
+
- mechanism-34-observations.test.js
|
|
1624
|
+
- mechanism-34-worktree-submodule-reachability.test.js
|
|
1625
|
+
- mechanism-35-verification-contract.test.js
|
|
1626
|
+
- mechanism-packaging-bytecode.test.js
|
|
1627
|
+
- mechanism-system-one-collect.test.js
|
|
1628
|
+
- mechanism-system-one-contract.test.js
|
|
1629
|
+
- mechanism-system-one-corpus.test.js
|
|
1630
|
+
- mechanism-system-one-evaluation.test.js
|
|
1631
|
+
- mechanism-system-one-install.test.js
|
|
1632
|
+
- mechanism-system-one-intent.test.js
|
|
1633
|
+
- mechanism-system-one-label.test.js
|
|
1634
|
+
- mechanism-system-one-laya.test.js
|
|
1635
|
+
- mechanism-system-one-ngram.test.js
|
|
1636
|
+
- mechanism-system-one-provider.test.js
|
|
1637
|
+
- mechanism-system-one-relevance.test.js
|
|
1638
|
+
- mechanism-system-one-resident.test.js
|
|
1639
|
+
- mechanism-system-one-router.test.js
|
|
1640
|
+
- mechanism-system-one-train.test.js
|
|
1641
|
+
|
|
1642
|
+
-------------------------------------------------
|
|
1643
|
+
|
|
1644
|
+
▶️ Running test suite: mechanism-2a-rule-of-3.test.js
|
|
1645
|
+
|
|
1646
|
+
[2a] Rule of 3 circuit breaker...
|
|
1647
|
+
✅ 2a-wiring. PostToolUseFailure invokes the Rule-of-3 tracker
|
|
1648
|
+
✅ 2a-wiring. apply_patch is covered before and after execution
|
|
1649
|
+
✅ 2a-three. exactly three matching failures arm zoom-out
|
|
1650
|
+
npm.cmd : [CRITICAL] RULE OF 3 CIRCUIT BREAKER TRIGGERED!
|
|
1651
|
+
位於 線路:5 字元:1
|
|
1652
|
+
+ & npm.cmd test *> $log
|
|
1653
|
+
+ ~~~~~~~~~~~~~~~~~~~~~~
|
|
1654
|
+
+ CategoryInfo : NotSpecified: ([CRITICAL] RULE...AKER TRIGGERED!:String) [], RemoteException
|
|
1655
|
+
+ FullyQualifiedErrorId : NativeCommandError
|
|
1656
|
+
|
|
1657
|
+
The same failure signature has now occurred 3 times.
|
|
1658
|
+
Error Signature: 84edbe719770818783c799972ef28e77
|
|
1659
|
+
|
|
1660
|
+
Mutating tools (Bash/PowerShell/Edit/Write/apply_patch) are locked - not because you
|
|
1661
|
+
must wait for a human, but because you must stop drilling and rebuild the
|
|
1662
|
+
full picture first. Do NOT ask the Human Partner yet.
|
|
1663
|
+
|
|
1664
|
+
ACTION REQUIRED (reflect first):
|
|
1665
|
+
1. CEASE FIRE. No new fix attempts, no variations of the last one.
|
|
1666
|
+
2. Load the 'zoom-out' skill and follow its Reflect & Fact-Check protocol.
|
|
1667
|
+
3. Using READ-ONLY tools (Read/Grep/Glob - still available), re-verify the
|
|
1668
|
+
assumption behind each failed attempt against the actual code/logs/docs.
|
|
1669
|
+
4. Write your findings to '<temp>\harness-mechanism-state-wUnfiH\workspaces\harness-e
|
|
1670
|
+
verything-issue-297-6eb1109f6a2a\state\sessions\__mechanism_test__\zoom-out-report.md' (the ONLY write
|
|
1671
|
+
allowed right now) with sections: ## Goal, ## Failed Attempts,
|
|
1672
|
+
## Verified Facts, ## Diagnosis, ## Decision (ending RESUME: or ESCALATE:).
|
|
1673
|
+
|
|
1674
|
+
A valid report releases this breaker automatically. Escalate to the Human
|
|
1675
|
+
Partner ONLY if your Decision concludes a genuinely human call is needed
|
|
1676
|
+
(requirement conflict, architecture trade-off, destructive action, missing
|
|
1677
|
+
access) - and then present options with a recommendation, not apologies.
|
|
1678
|
+
✅ 2a-trip. third matching failure blocks mutation for reflection
|
|
1679
|
+
✅ 2a-release. valid reflection releases breaker and resets count
|
|
1680
|
+
[CRITICAL] RULE OF 3 CIRCUIT BREAKER TRIGGERED!
|
|
1681
|
+
The same failure signature has now occurred 3 times.
|
|
1682
|
+
Error Signature: mech-test
|
|
1683
|
+
|
|
1684
|
+
Mutating tools (Bash/PowerShell/Edit/Write/apply_patch) are locked - not because you
|
|
1685
|
+
must wait for a human, but because you must stop drilling and rebuild the
|
|
1686
|
+
full picture first. Do NOT ask the Human Partner yet.
|
|
1687
|
+
|
|
1688
|
+
ACTION REQUIRED (reflect first):
|
|
1689
|
+
1. CEASE FIRE. No new fix attempts, no variations of the last one.
|
|
1690
|
+
2. Load the 'zoom-out' skill and follow its Reflect & Fact-Check protocol.
|
|
1691
|
+
3. Using READ-ONLY tools (Read/Grep/Glob - still available), re-verify the
|
|
1692
|
+
assumption behind each failed attempt against the actual code/logs/docs.
|
|
1693
|
+
4. Write your findings to '<temp>\harness-mechanism-state-wUnfiH\workspaces\harness-e
|
|
1694
|
+
verything-issue-297-6eb1109f6a2a\state\sessions\__mechanism_test__\zoom-out-report.md' (the ONLY write
|
|
1695
|
+
allowed right now) with sections: ## Goal, ## Failed Attempts,
|
|
1696
|
+
## Verified Facts, ## Diagnosis, ## Decision (ending RESUME: or ESCALATE:).
|
|
1697
|
+
|
|
1698
|
+
A valid report releases this breaker automatically. Escalate to the Human
|
|
1699
|
+
Partner ONLY if your Decision concludes a genuinely human call is needed
|
|
1700
|
+
(requirement conflict, architecture trade-off, destructive action, missing
|
|
1701
|
+
access) - and then present options with a recommendation, not apologies.
|
|
1702
|
+
✅ 2a-repeat. later three-failure cycle requests another zoom-out, not permanent hard lock
|
|
1703
|
+
✅ 2a-category. permission failures still use the same threshold of three
|
|
1704
|
+
✅ 2a-category-two. two permission failures do not trip early
|
|
1705
|
+
[CRITICAL] RULE OF 3 CIRCUIT BREAKER TRIGGERED!
|
|
1706
|
+
The same failure signature has now occurred 3 times.
|
|
1707
|
+
Error Signature: ca808a9df9b7d8c531929ca6ea04a324
|
|
1708
|
+
|
|
1709
|
+
Mutating tools (Bash/PowerShell/Edit/Write/apply_patch) are locked - not because you
|
|
1710
|
+
must wait for a human, but because you must stop drilling and rebuild the
|
|
1711
|
+
full picture first. Do NOT ask the Human Partner yet.
|
|
1712
|
+
|
|
1713
|
+
ACTION REQUIRED (reflect first):
|
|
1714
|
+
1. CEASE FIRE. No new fix attempts, no variations of the last one.
|
|
1715
|
+
2. Load the 'zoom-out' skill and follow its Reflect & Fact-Check protocol.
|
|
1716
|
+
3. Using READ-ONLY tools (Read/Grep/Glob - still available), re-verify the
|
|
1717
|
+
assumption behind each failed attempt against the actual code/logs/docs.
|
|
1718
|
+
4. Write your findings to '<temp>\harness-mechanism-state-wUnfiH\workspaces\harness-e
|
|
1719
|
+
verything-issue-297-6eb1109f6a2a\state\sessions\__mechanism_test__\zoom-out-report.md' (the ONLY write
|
|
1720
|
+
allowed right now) with sections: ## Goal, ## Failed Attempts,
|
|
1721
|
+
## Verified Facts, ## Diagnosis, ## Decision (ending RESUME: or ESCALATE:).
|
|
1722
|
+
|
|
1723
|
+
A valid report releases this breaker automatically. Escalate to the Human
|
|
1724
|
+
Partner ONLY if your Decision concludes a genuinely human call is needed
|
|
1725
|
+
(requirement conflict, architecture trade-off, destructive action, missing
|
|
1726
|
+
access) - and then present options with a recommendation, not apologies.
|
|
1727
|
+
✅ 2a-category-three. third permission failure trips normally
|
|
1728
|
+
✅ 2a-interleaved. unrelated success preserves the matching failure count
|
|
1729
|
+
✅ 2a-interleaved-three. third matching failure still arms zoom-out after unrelated success
|
|
1730
|
+
✅ 2a-resolved. same-operation success clears the resolved signature
|
|
1731
|
+
|
|
1732
|
+
▶️ Running test suite: mechanism-2aa-codex-action-gate-policy.test.js
|
|
1733
|
+
PASS: Codex action-gate uses supported hard blocking, attributable PreToolUse entry evidence, and non-authorizing PermissionRequest observation.
|
|
1734
|
+
|
|
1735
|
+
▶️ Running test suite: mechanism-2ab-openai-plugin-sync-integrity.test.js
|
|
1736
|
+
PASS: OpenAI/Codex plugin sync is idempotent, uses portable plugin placeholders, and preserves every referenced hook runtime file.
|
|
1737
|
+
|
|
1738
|
+
▶️ Running test suite: mechanism-2ac-atomic-commit-check.test.js
|
|
1739
|
+
PASS: atomic commit check scopes edits to the workspace and suppresses clean-tree false nudges
|
|
1740
|
+
|
|
1741
|
+
▶️ Running test suite: mechanism-2ad-action-gate-classifier-hardening.test.js
|
|
1742
|
+
PASS: destructive-command classifier covers confirmed bypasses while suppressing quoted-text false positives
|
|
1743
|
+
|
|
1744
|
+
▶️ Running test suite: mechanism-2af-worktree-isolation.test.js
|
|
1745
|
+
PASS fixture repository initializes
|
|
1746
|
+
PASS Tier-3 primary-tree mutation is not hard-blocked
|
|
1747
|
+
PASS Tier-3 primary-tree mutation emits mandatory isolation disposition without blocking
|
|
1748
|
+
PASS mutation-shaped shell command remains available
|
|
1749
|
+
PASS mutation-shaped shell command receives the same isolation contract
|
|
1750
|
+
PASS read-only discovery remains available
|
|
1751
|
+
PASS linked worktree fixture creates
|
|
1752
|
+
PASS linked-worktree mutation remains available
|
|
1753
|
+
PASS cross-worktree target is reminder-only
|
|
1754
|
+
PASS cross-worktree target emits scope/isolation guidance
|
|
1755
|
+
PASS legacy blocked workflow state does not trap mutation
|
|
1756
|
+
PASS legacy blocked state is surfaced as reminder
|
|
1757
|
+
PASS corrupt workflow state fails open
|
|
1758
|
+
PASS: worktree isolation is a semantic MUST disposition, not a cognitive lock
|
|
1759
|
+
|
|
1760
|
+
▶️ Running test suite: mechanism-2ag-router-worktree-contract.test.js
|
|
1761
|
+
PASS: router major-workflow plan carries worktree isolation independently of multi-agent workspace state.
|
|
1762
|
+
|
|
1763
|
+
▶️ Running test suite: mechanism-2ah-workflow-lifecycle.test.js
|
|
1764
|
+
PASS workflow guidance fixture is created
|
|
1765
|
+
PASS hooks/scripts/workflow-gate.js malformed payload fails open
|
|
1766
|
+
PASS hooks/scripts/workflow-stop-gate.js malformed payload fails open
|
|
1767
|
+
PASS legacy exhausted state no longer blocks mutation
|
|
1768
|
+
PASS legacy state is a reminder
|
|
1769
|
+
PASS unproven shell is not iteration-blocked
|
|
1770
|
+
PASS no mutation-probe state is created
|
|
1771
|
+
PASS failed shell mutation tracking is fail-open
|
|
1772
|
+
PASS failed-but-mutating shell advances edit freshness without fabricating verification
|
|
1773
|
+
PASS missing verification does not block Stop
|
|
1774
|
+
PASS missing verification emits reminder
|
|
1775
|
+
PASS exec_command verification is fail-open
|
|
1776
|
+
PASS #193 exec_command records lastVerifyAt
|
|
1777
|
+
PASS resolved evidence never rewrites an explicit blocked workflow to satisfied
|
|
1778
|
+
PASS: workflow guidance lifecycle (14 assertions)
|
|
1779
|
+
PASS: packaged OpenAI workflow guidance mirrors source
|
|
1780
|
+
|
|
1781
|
+
▶️ Running test suite: mechanism-2ai-workspace-fingerprint-batch.test.js
|
|
1782
|
+
PASS #169 batched fingerprint matches the legacy clean-worktree fingerprint
|
|
1783
|
+
PASS #169 packaged plugin fingerprint matches canonical/legacy on a clean worktree
|
|
1784
|
+
PASS #169 batched fingerprint matches legacy for dirty tracked + untracked content
|
|
1785
|
+
PASS #169 packaged plugin batched fingerprint matches legacy dirty semantics
|
|
1786
|
+
PASS #169 staging visible content does not change the workspace fingerprint
|
|
1787
|
+
PASS #169 tracked deletion keeps legacy fingerprint semantics
|
|
1788
|
+
PASS #169 1000-untracked-file fingerprint returns a valid digest
|
|
1789
|
+
PASS #169 1000-untracked-file fingerprint stays below 5s regression ceiling (actual 257.3ms)
|
|
1790
|
+
PASS #169 packaged plugin fingerprint remains byte-identical for 1000 untracked files
|
|
1791
|
+
PASS #169 explicit fingerprint cap reports a structured conservative-fallback signal
|
|
1792
|
+
PASS #169 large-workspace Tier-2 fixture routes normally
|
|
1793
|
+
PASS #169 large-workspace Tier-2 fixture resolves requirements/workflow planning
|
|
1794
|
+
PASS #169 large-workspace Tier-2 fixture starts after planning
|
|
1795
|
+
PASS #169 >5000 observed paths degrade conservatively instead of blocking the shell call
|
|
1796
|
+
PASS #190 shell admission no longer creates conservative budget/probe state
|
|
1797
|
+
PASS: batched workspace fingerprint (15 assertions, 1000-file 257.3ms)
|
|
1798
|
+
|
|
1799
|
+
▶️ Running test suite: mechanism-2aj-waza-reference-adapter.test.js
|
|
1800
|
+
PASS discovers the canonical Harness skill set
|
|
1801
|
+
PASS adapter invokes Waza exactly once per canonical top-level skill
|
|
1802
|
+
PASS Waza receives explicit canonical skill paths instead of recursive workspace discovery
|
|
1803
|
+
PASS environment-detection placeholder reference is reachable: references/shell-syntax-rules.md
|
|
1804
|
+
PASS environment-detection removes Waza orphan advisories for Harness-reachable references
|
|
1805
|
+
PASS environment-detection reports the suppressed advisories explicitly
|
|
1806
|
+
PASS environment-detection recomputes readiness without false local-orphan failures
|
|
1807
|
+
PASS eval-harness placeholder reference is reachable: references/scoring-rubric.md
|
|
1808
|
+
PASS eval-harness removes Waza orphan advisories for Harness-reachable references
|
|
1809
|
+
PASS eval-harness reports the suppressed advisories explicitly
|
|
1810
|
+
PASS eval-harness recomputes readiness without false local-orphan failures
|
|
1811
|
+
PASS fable-discipline placeholder reference is reachable: references/discipline-rules.md
|
|
1812
|
+
PASS fable-discipline removes Waza orphan advisories for Harness-reachable references
|
|
1813
|
+
PASS fable-discipline reports the suppressed advisories explicitly
|
|
1814
|
+
PASS fable-discipline recomputes readiness without false local-orphan failures
|
|
1815
|
+
PASS fable-mode placeholder reference is reachable: references/profile-lookup.md
|
|
1816
|
+
PASS fable-mode placeholder reference is reachable: references/model-matrix.md
|
|
1817
|
+
PASS fable-mode removes Waza orphan advisories for Harness-reachable references
|
|
1818
|
+
PASS fable-mode reports the suppressed advisories explicitly
|
|
1819
|
+
PASS fable-mode recomputes readiness without false local-orphan failures
|
|
1820
|
+
PASS find-skills placeholder reference is reachable: references/discovery-flow.md
|
|
1821
|
+
PASS find-skills removes Waza orphan advisories for Harness-reachable references
|
|
1822
|
+
PASS find-skills reports the suppressed advisories explicitly
|
|
1823
|
+
PASS find-skills recomputes readiness without false local-orphan failures
|
|
1824
|
+
PASS git-commit placeholder reference is reachable: references/commit-flow.md
|
|
1825
|
+
PASS git-commit removes Waza orphan advisories for Harness-reachable references
|
|
1826
|
+
PASS git-commit reports the suppressed advisories explicitly
|
|
1827
|
+
PASS git-commit recomputes readiness without false local-orphan failures
|
|
1828
|
+
PASS grill-me placeholder reference is reachable: references/grilling-playbook.md
|
|
1829
|
+
PASS grill-me removes Waza orphan advisories for Harness-reachable references
|
|
1830
|
+
PASS grill-me reports the suppressed advisories explicitly
|
|
1831
|
+
PASS grill-me recomputes readiness without false local-orphan failures
|
|
1832
|
+
PASS grill-with-docs placeholder reference is reachable: references/session-playbook.md
|
|
1833
|
+
PASS grill-with-docs removes Waza orphan advisories for Harness-reachable references
|
|
1834
|
+
PASS grill-with-docs reports the suppressed advisories explicitly
|
|
1835
|
+
PASS grill-with-docs recomputes readiness without false local-orphan failures
|
|
1836
|
+
PASS harness-everything placeholder reference is reachable: references/triage-and-tiers.md
|
|
1837
|
+
PASS harness-everything removes Waza orphan advisories for Harness-reachable references
|
|
1838
|
+
PASS harness-everything reports the suppressed advisories explicitly
|
|
1839
|
+
PASS harness-everything recomputes readiness without false local-orphan failures
|
|
1840
|
+
PASS improve-codebase-architecture placeholder reference is reachable: references/README.md
|
|
1841
|
+
PASS improve-codebase-architecture removes Waza orphan advisories for Harness-reachable references
|
|
1842
|
+
PASS improve-codebase-architecture reports the suppressed advisories explicitly
|
|
1843
|
+
PASS improve-codebase-architecture recomputes readiness without false local-orphan failures
|
|
1844
|
+
PASS install-cognitive-os placeholder reference is reachable: references/cognitive-loop.md
|
|
1845
|
+
PASS install-cognitive-os removes Waza orphan advisories for Harness-reachable references
|
|
1846
|
+
PASS install-cognitive-os reports the suppressed advisories explicitly
|
|
1847
|
+
PASS install-cognitive-os recomputes readiness without false local-orphan failures
|
|
1848
|
+
PASS multi-agent-workspace placeholder reference is reachable: references/orchestration.md
|
|
1849
|
+
PASS multi-agent-workspace placeholder reference is reachable: references/architecture-guide.md
|
|
1850
|
+
PASS multi-agent-workspace removes Waza orphan advisories for Harness-reachable references
|
|
1851
|
+
PASS multi-agent-workspace reports the suppressed advisories explicitly
|
|
1852
|
+
PASS multi-agent-workspace recomputes readiness without false local-orphan failures
|
|
1853
|
+
PASS repo-docs placeholder reference is reachable: references/process-guide.md
|
|
1854
|
+
PASS repo-docs removes Waza orphan advisories for Harness-reachable references
|
|
1855
|
+
PASS repo-docs reports the suppressed advisories explicitly
|
|
1856
|
+
PASS repo-docs recomputes readiness without false local-orphan failures
|
|
1857
|
+
PASS rewrite-commits placeholder reference is reachable: references/workflow.md
|
|
1858
|
+
PASS rewrite-commits removes Waza orphan advisories for Harness-reachable references
|
|
1859
|
+
PASS rewrite-commits reports the suppressed advisories explicitly
|
|
1860
|
+
PASS rewrite-commits recomputes readiness without false local-orphan failures
|
|
1861
|
+
PASS security-review placeholder reference is reachable: references/security-checklist.md
|
|
1862
|
+
PASS security-review removes Waza orphan advisories for Harness-reachable references
|
|
1863
|
+
PASS security-review reports the suppressed advisories explicitly
|
|
1864
|
+
PASS security-review recomputes readiness without false local-orphan failures
|
|
1865
|
+
PASS self-evolve placeholder reference is reachable: references/memory-resolution.md
|
|
1866
|
+
PASS self-evolve removes Waza orphan advisories for Harness-reachable references
|
|
1867
|
+
PASS self-evolve reports the suppressed advisories explicitly
|
|
1868
|
+
PASS self-evolve recomputes readiness without false local-orphan failures
|
|
1869
|
+
PASS skill-creator placeholder reference is reachable: references/quality-checklist.md
|
|
1870
|
+
PASS skill-creator removes Waza orphan advisories for Harness-reachable references
|
|
1871
|
+
PASS skill-creator reports the suppressed advisories explicitly
|
|
1872
|
+
PASS skill-creator recomputes readiness without false local-orphan failures
|
|
1873
|
+
PASS skill-style placeholder reference is reachable: references/style-guide.md
|
|
1874
|
+
PASS skill-style removes Waza orphan advisories for Harness-reachable references
|
|
1875
|
+
PASS skill-style reports the suppressed advisories explicitly
|
|
1876
|
+
PASS skill-style recomputes readiness without false local-orphan failures
|
|
1877
|
+
PASS tdd placeholder reference is reachable: references/core-discipline.md
|
|
1878
|
+
PASS tdd removes Waza orphan advisories for Harness-reachable references
|
|
1879
|
+
PASS tdd reports the suppressed advisories explicitly
|
|
1880
|
+
PASS tdd recomputes readiness without false local-orphan failures
|
|
1881
|
+
PASS to-spec placeholder reference is reachable: references/process.md
|
|
1882
|
+
PASS to-spec removes Waza orphan advisories for Harness-reachable references
|
|
1883
|
+
PASS to-spec reports the suppressed advisories explicitly
|
|
1884
|
+
PASS to-spec recomputes readiness without false local-orphan failures
|
|
1885
|
+
PASS to-tickets placeholder reference is reachable: references/publishing-and-templates.md
|
|
1886
|
+
PASS to-tickets removes Waza orphan advisories for Harness-reachable references
|
|
1887
|
+
PASS to-tickets reports the suppressed advisories explicitly
|
|
1888
|
+
PASS to-tickets recomputes readiness without false local-orphan failures
|
|
1889
|
+
PASS todo-driven-workflow placeholder reference is reachable: references/execution-guide.md
|
|
1890
|
+
PASS todo-driven-workflow removes Waza orphan advisories for Harness-reachable references
|
|
1891
|
+
PASS todo-driven-workflow reports the suppressed advisories explicitly
|
|
1892
|
+
PASS todo-driven-workflow recomputes readiness without false local-orphan failures
|
|
1893
|
+
PASS using-git-worktrees placeholder reference is reachable: references/submodules-in-worktrees.md
|
|
1894
|
+
PASS using-git-worktrees placeholder reference is reachable: references/workflow-details.md
|
|
1895
|
+
PASS using-git-worktrees removes Waza orphan advisories for Harness-reachable references
|
|
1896
|
+
PASS using-git-worktrees reports the suppressed advisories explicitly
|
|
1897
|
+
PASS using-git-worktrees recomputes readiness without false local-orphan failures
|
|
1898
|
+
PASS verification-loop placeholder reference is reachable: references/project-verification-contract.md
|
|
1899
|
+
PASS verification-loop placeholder reference is reachable: references/verification-phases.md
|
|
1900
|
+
PASS verification-loop removes Waza orphan advisories for Harness-reachable references
|
|
1901
|
+
PASS verification-loop reports the suppressed advisories explicitly
|
|
1902
|
+
PASS verification-loop recomputes readiness without false local-orphan failures
|
|
1903
|
+
PASS verify-before-claim placeholder reference is reachable: references/verification-guide.md
|
|
1904
|
+
PASS verify-before-claim removes Waza orphan advisories for Harness-reachable references
|
|
1905
|
+
PASS verify-before-claim reports the suppressed advisories explicitly
|
|
1906
|
+
PASS verify-before-claim recomputes readiness without false local-orphan failures
|
|
1907
|
+
PASS zoom-out placeholder reference is reachable: references/circuit-breaker.md
|
|
1908
|
+
PASS zoom-out removes Waza orphan advisories for Harness-reachable references
|
|
1909
|
+
PASS zoom-out reports the suppressed advisories explicitly
|
|
1910
|
+
PASS zoom-out recomputes readiness without false local-orphan failures
|
|
1911
|
+
PASS at least one canonical skill uses the Harness placeholder reference contract
|
|
1912
|
+
PASS adapter resolves canonical placeholder-orphan advisories
|
|
1913
|
+
PASS fable-mode nested reference remains reachable: references/execution-phases.md
|
|
1914
|
+
PASS fable-mode nested reference advisories are resolved through the reachable reference graph
|
|
1915
|
+
PASS harness-everything nested reference remains reachable: references/router-workflow-plan.md
|
|
1916
|
+
PASS harness-everything nested reference remains reachable: references/skill-registry.md
|
|
1917
|
+
PASS harness-everything nested reference advisories are resolved through the reachable reference graph
|
|
1918
|
+
PASS multi-agent-workspace nested reference remains reachable: references/agency-agents.md
|
|
1919
|
+
PASS multi-agent-workspace nested reference advisories are resolved through the reachable reference graph
|
|
1920
|
+
PASS skill-creator nested reference remains reachable: references/authoring-workflow.md
|
|
1921
|
+
PASS skill-creator nested reference remains reachable: references/testing-workflow.md
|
|
1922
|
+
PASS skill-creator nested reference remains reachable: references/quality-principles.md
|
|
1923
|
+
PASS skill-creator nested reference remains reachable: references/dynamic-generation-contract.md
|
|
1924
|
+
PASS skill-creator nested reference advisories are resolved through the reachable reference graph
|
|
1925
|
+
PASS tdd nested reference remains reachable: references/quality-model.md
|
|
1926
|
+
PASS tdd nested reference remains reachable: references/unit-testing.md
|
|
1927
|
+
PASS tdd nested reference remains reachable: references/integration-testing.md
|
|
1928
|
+
PASS tdd nested reference advisories are resolved through the reachable reference graph
|
|
1929
|
+
PASS <skills-repo-root> existing target is a resolved Harness contract link
|
|
1930
|
+
PASS generic runtime placeholder is classified as a template advisory
|
|
1931
|
+
PASS unknown placeholder remains a real local-link problem
|
|
1932
|
+
PASS existing repo-scope relative link is resolved by the Harness repository contract
|
|
1933
|
+
PASS missing repo-scope relative link remains a hard local-link problem
|
|
1934
|
+
PASS links inside generated-document templates remain visible template advisories
|
|
1935
|
+
PASS network and generic-template findings do not masquerade as broken local links
|
|
1936
|
+
PASS network and template findings are retained in separate advisory categories
|
|
1937
|
+
PASS normalized readiness remains green when only false-orphan/network/template advisories remain
|
|
1938
|
+
PASS non-link readiness failures remain explicit machine-readable blockers
|
|
1939
|
+
PASS: Waza/Harness reference adapter (139 assertions across 26 skills)
|
|
1940
|
+
|
|
1941
|
+
▶️ Running test suite: mechanism-2ak-contract-probe-adapter.test.js
|
|
1942
|
+
=== Contract Integrity Phase 3 Node Probe Adapter (#84) ===
|
|
1943
|
+
PASS declared node-npm-v1 probe plan validates
|
|
1944
|
+
PASS green baseline plus both explicit probes produces PROTECTED evidence
|
|
1945
|
+
PASS env and exact-replace probes are killed only by expected contract failures
|
|
1946
|
+
PASS adapter never mutates the source workspace
|
|
1947
|
+
PASS probe report retains output hashes/evidence refs instead of project test output
|
|
1948
|
+
PASS derived adapter evidence feeds the existing #84/#58 strict integrity gate
|
|
1949
|
+
PASS green test run under a required probe is explicitly SURVIVED, never PASS
|
|
1950
|
+
PASS green but weak suite cannot compensate 100 completeness with a surviving contract probe
|
|
1951
|
+
PASS unrelated failing test output is INVALID and cannot be credited as a kill
|
|
1952
|
+
PASS ambiguous exact-replace fallback fails closed without mutating source
|
|
1953
|
+
PASS replace probe rejects symlink/junction escape without mutating outside the isolated workspace
|
|
1954
|
+
PASS workspace copy rejects source symlinks/junctions before project code can mutate an outside target
|
|
1955
|
+
PASS v1 adapter refuses to infer/install external dependencies
|
|
1956
|
+
PASS non-green baseline blocks all protection claims
|
|
1957
|
+
PASS probe plan rejects replace targets that escape the isolated workspace
|
|
1958
|
+
PASS CLI returns exit 0 only for fully killed declared probes
|
|
1959
|
+
PASS adapter documentation states exact supported scope and explicit non-support
|
|
1960
|
+
|
|
1961
|
+
PASS: #84 contract protection node adapter (0 failures)
|
|
1962
|
+
|
|
1963
|
+
▶️ Running test suite: mechanism-2al-codex-hooks-compat.test.js
|
|
1964
|
+
|
|
1965
|
+
[2al] Codex user-hook compatibility fallback (#122)...
|
|
1966
|
+
PASS explicit install materializes compatibility entries
|
|
1967
|
+
PASS install never changes Codex trust/config.toml state
|
|
1968
|
+
PASS status verifies exact installed entry hashes and runtime tree
|
|
1969
|
+
PASS status distinguishes installed hooks from Codex-trusted live capture
|
|
1970
|
+
PASS existing unrelated user hooks and top-level metadata are preserved semantically
|
|
1971
|
+
PASS every compatibility hook command resolves to the Harness-owned runtime copy
|
|
1972
|
+
PASS compatibility entries use literal absolute runtime paths without shell-specific plugin expansion
|
|
1973
|
+
PASS compatibility runtime is self-contained for hook and router dependencies
|
|
1974
|
+
PASS reinstall/update is idempotent and does not duplicate hook entries
|
|
1975
|
+
PASS update preserves user hooks added after the initial compatibility install
|
|
1976
|
+
PASS modified Harness compatibility entry makes update fail closed without rewriting user config
|
|
1977
|
+
PASS modified Harness compatibility entry makes uninstall fail closed rather than deleting user edits
|
|
1978
|
+
PASS explicit uninstall removes exact Harness-owned entries without changing trust state
|
|
1979
|
+
PASS uninstall preserves unrelated pre-existing and later-added user hooks
|
|
1980
|
+
PASS uninstall leaves config.toml/trust state byte-identical
|
|
1981
|
+
PASS uninstall removes Harness compatibility ownership manifest
|
|
1982
|
+
PASS compatibility install can create a new hooks.json when none exists
|
|
1983
|
+
PASS uninstall removes hooks.json only when Harness created it and no user entries remain
|
|
1984
|
+
PASS compatibility runtime is copied from the verified installed marketplace source
|
|
1985
|
+
PASS extra identical Harness hook is treated as user config drift, not silently deleted
|
|
1986
|
+
PASS uninstall never recreates a user hooks.json that was removed after compatibility install
|
|
1987
|
+
PASS byte-identical pre-existing user hooks are reused but never recorded as Harness-owned
|
|
1988
|
+
PASS uninstall preserves byte-identical hooks that predated compatibility install
|
|
1989
|
+
PASS forged manifest ownership fails closed without deleting a user hook
|
|
1990
|
+
PASS failed manifest commit rolls hooks.json back byte-identically
|
|
1991
|
+
PASS linked compatibility owner path cannot redirect writes outside Codex home
|
|
1992
|
+
PASS malformed user hooks.json fails closed without replacement
|
|
1993
|
+
PASS status clearly reports inactive observation capture when hooks are absent
|
|
1994
|
+
PASS fallback derives from the current packaged hook manifest instead of maintaining a second manual hook inventory
|
|
1995
|
+
|
|
1996
|
+
PASS: #122 Codex compatibility fallback (0 failures)
|
|
1997
|
+
|
|
1998
|
+
▶️ Running test suite: mechanism-2am-observations-session-import.test.js
|
|
1999
|
+
PASS: post-revision Codex session labels import as redacted, prompt-paired, idempotent observations.
|
|
2000
|
+
|
|
2001
|
+
▶️ Running test suite: mechanism-2am-openai-packaged-helper-runtime.test.js
|
|
2002
|
+
OpenAI packaged helper runtime smoke test passed
|
|
2003
|
+
|
|
2004
|
+
▶️ Running test suite: mechanism-2an-environment-detection-readonly.test.js
|
|
2005
|
+
Issue #213 verified: detection is read-only across six adapters, repair is explicit/idempotent, and OpenCode stays separate.
|
|
2006
|
+
|
|
2007
|
+
▶️ Running test suite: mechanism-2an-workflow-obligations.test.js
|
|
2008
|
+
=== Issue #85 requirements-first workflow contract ===
|
|
2009
|
+
PASS Tier 2 route persists successfully
|
|
2010
|
+
PASS Tier 2 receives a preliminary iterative-single route
|
|
2011
|
+
PASS selected Tier 2 workflow begins pending
|
|
2012
|
+
PASS persisted workflow records semantic-contract mode rather than advisory-workflow
|
|
2013
|
+
PASS Tier 2 immediately materializes a planning contract
|
|
2014
|
+
PASS planning starts with decompose then compose
|
|
2015
|
+
PASS requirements begin empty instead of being invented by the router
|
|
2016
|
+
PASS router topology is recorded only as candidate strategy
|
|
2017
|
+
PASS workflow start refuses to pretend planning is complete
|
|
2018
|
+
PASS failed start leaves workflow pending
|
|
2019
|
+
PASS unresolved planning does not hard-block ordinary tools
|
|
2020
|
+
PASS Stop remains fail-open while planning is unresolved
|
|
2021
|
+
PASS unresolved planning cannot silently become satisfied
|
|
2022
|
+
PASS decomposition gap is visible
|
|
2023
|
+
PASS workflow-composition gap is visible
|
|
2024
|
+
PASS new single-agent plans cannot bypass active step typing
|
|
2025
|
+
PASS requirements and workflow selection are recorded before execution
|
|
2026
|
+
PASS requirement fragments are machine-readable
|
|
2027
|
+
PASS workflow choice is explicitly confirmed after decomposition
|
|
2028
|
+
PASS decompose obligation resolves from requirement fragments
|
|
2029
|
+
PASS compose obligation resolves from workflow-selection evidence
|
|
2030
|
+
PASS start activates the confirmed non-Fable workflow
|
|
2031
|
+
PASS confirmed workflow becomes running
|
|
2032
|
+
PASS planning contract advances to execution phase
|
|
2033
|
+
PASS execution adds execute/verify without losing planning evidence
|
|
2034
|
+
PASS execution obligation accepts bounded evidence-backed escape
|
|
2035
|
+
PASS verification obligation cannot be escaped
|
|
2036
|
+
PASS verification obligation can record explicit blocked evidence
|
|
2037
|
+
PASS blocked obligation still reminds without trapping Stop
|
|
2038
|
+
PASS blocked obligation keeps workflow unresolved rather than satisfied
|
|
2039
|
+
PASS blocked verification remains visible
|
|
2040
|
+
PASS verification can later resolve to pass with evidence
|
|
2041
|
+
PASS behavior-change binding resolves before its active step passes
|
|
2042
|
+
PASS behavior-change step advances after TDD binding resolution
|
|
2043
|
+
PASS verification skill resolves only when the verification step becomes active
|
|
2044
|
+
PASS verification step passes with objective evidence
|
|
2045
|
+
PASS objective verification milestone is observed after the earlier mutation
|
|
2046
|
+
PASS resolved workflow Stop remains fail-open
|
|
2047
|
+
PASS planning + execution + verification allow satisfied
|
|
2048
|
+
PASS satisfied workflow has no unresolved obligations
|
|
2049
|
+
PASS Tier 2 route persists for active-step binding coverage
|
|
2050
|
+
|
|
2051
|
+
=== Binding declaration validation ===
|
|
2052
|
+
PASS invalid requiredBindings null fixture route persists (typed)
|
|
2053
|
+
PASS plan exits 2 for requiredBindings null (typed requirement)
|
|
2054
|
+
PASS rejected requiredBindings null plan writes no stdout (typed)
|
|
2055
|
+
PASS rejection identifies requiredBindings for null (typed requirement)
|
|
2056
|
+
PASS rejected requiredBindings null plan leaves workflow state unchanged (typed)
|
|
2057
|
+
PASS rejected requiredBindings null plan leaves obligation state unchanged (typed)
|
|
2058
|
+
PASS invalid requiredBindings null fixture route persists (untyped)
|
|
2059
|
+
PASS plan exits 2 for requiredBindings null (untyped requirement)
|
|
2060
|
+
PASS rejected requiredBindings null plan writes no stdout (untyped)
|
|
2061
|
+
PASS rejection identifies requiredBindings for null (untyped requirement)
|
|
2062
|
+
PASS rejected requiredBindings null plan leaves workflow state unchanged (untyped)
|
|
2063
|
+
PASS rejected requiredBindings null plan leaves obligation state unchanged (untyped)
|
|
2064
|
+
PASS invalid requiredBindings object fixture route persists (typed)
|
|
2065
|
+
PASS plan exits 2 for requiredBindings object (typed requirement)
|
|
2066
|
+
PASS rejected requiredBindings object plan writes no stdout (typed)
|
|
2067
|
+
PASS rejection identifies requiredBindings for object (typed requirement)
|
|
2068
|
+
PASS rejected requiredBindings object plan leaves workflow state unchanged (typed)
|
|
2069
|
+
PASS rejected requiredBindings object plan leaves obligation state unchanged (typed)
|
|
2070
|
+
PASS invalid requiredBindings object fixture route persists (untyped)
|
|
2071
|
+
PASS plan exits 2 for requiredBindings object (untyped requirement)
|
|
2072
|
+
PASS rejected requiredBindings object plan writes no stdout (untyped)
|
|
2073
|
+
PASS rejection identifies requiredBindings for object (untyped requirement)
|
|
2074
|
+
PASS rejected requiredBindings object plan leaves workflow state unchanged (untyped)
|
|
2075
|
+
PASS rejected requiredBindings object plan leaves obligation state unchanged (untyped)
|
|
2076
|
+
PASS invalid requiredBindings string fixture route persists (typed)
|
|
2077
|
+
PASS plan exits 2 for requiredBindings string (typed requirement)
|
|
2078
|
+
PASS rejected requiredBindings string plan writes no stdout (typed)
|
|
2079
|
+
PASS rejection identifies requiredBindings for string (typed requirement)
|
|
2080
|
+
PASS rejected requiredBindings string plan leaves workflow state unchanged (typed)
|
|
2081
|
+
PASS rejected requiredBindings string plan leaves obligation state unchanged (typed)
|
|
2082
|
+
PASS invalid requiredBindings string fixture route persists (untyped)
|
|
2083
|
+
PASS plan exits 2 for requiredBindings string (untyped requirement)
|
|
2084
|
+
PASS rejected requiredBindings string plan writes no stdout (untyped)
|
|
2085
|
+
PASS rejection identifies requiredBindings for string (untyped requirement)
|
|
2086
|
+
PASS rejected requiredBindings string plan leaves workflow state unchanged (untyped)
|
|
2087
|
+
PASS rejected requiredBindings string plan leaves obligation state unchanged (untyped)
|
|
2088
|
+
PASS invalid requiredBindings boolean fixture route persists (typed)
|
|
2089
|
+
PASS plan exits 2 for requiredBindings boolean (typed requirement)
|
|
2090
|
+
PASS rejected requiredBindings boolean plan writes no stdout (typed)
|
|
2091
|
+
PASS rejection identifies requiredBindings for boolean (typed requirement)
|
|
2092
|
+
PASS rejected requiredBindings boolean plan leaves workflow state unchanged (typed)
|
|
2093
|
+
PASS rejected requiredBindings boolean plan leaves obligation state unchanged (typed)
|
|
2094
|
+
PASS invalid requiredBindings boolean fixture route persists (untyped)
|
|
2095
|
+
PASS plan exits 2 for requiredBindings boolean (untyped requirement)
|
|
2096
|
+
PASS rejected requiredBindings boolean plan writes no stdout (untyped)
|
|
2097
|
+
PASS rejection identifies requiredBindings for boolean (untyped requirement)
|
|
2098
|
+
PASS rejected requiredBindings boolean plan leaves workflow state unchanged (untyped)
|
|
2099
|
+
PASS rejected requiredBindings boolean plan leaves obligation state unchanged (untyped)
|
|
2100
|
+
PASS invalid requiredBindings number fixture route persists (typed)
|
|
2101
|
+
PASS plan exits 2 for requiredBindings number (typed requirement)
|
|
2102
|
+
PASS rejected requiredBindings number plan writes no stdout (typed)
|
|
2103
|
+
PASS rejection identifies requiredBindings for number (typed requirement)
|
|
2104
|
+
PASS rejected requiredBindings number plan leaves workflow state unchanged (typed)
|
|
2105
|
+
PASS rejected requiredBindings number plan leaves obligation state unchanged (typed)
|
|
2106
|
+
PASS invalid requiredBindings number fixture route persists (untyped)
|
|
2107
|
+
PASS plan exits 2 for requiredBindings number (untyped requirement)
|
|
2108
|
+
PASS rejected requiredBindings number plan writes no stdout (untyped)
|
|
2109
|
+
PASS rejection identifies requiredBindings for number (untyped requirement)
|
|
2110
|
+
PASS rejected requiredBindings number plan leaves workflow state unchanged (untyped)
|
|
2111
|
+
PASS rejected requiredBindings number plan leaves obligation state unchanged (untyped)
|
|
2112
|
+
PASS invalid optionalBindings null fixture route persists (typed)
|
|
2113
|
+
PASS plan exits 2 for optionalBindings null (typed requirement)
|
|
2114
|
+
PASS rejected optionalBindings null plan writes no stdout (typed)
|
|
2115
|
+
PASS rejection identifies optionalBindings for null (typed requirement)
|
|
2116
|
+
PASS rejected optionalBindings null plan leaves workflow state unchanged (typed)
|
|
2117
|
+
PASS rejected optionalBindings null plan leaves obligation state unchanged (typed)
|
|
2118
|
+
PASS invalid optionalBindings null fixture route persists (untyped)
|
|
2119
|
+
PASS plan exits 2 for optionalBindings null (untyped requirement)
|
|
2120
|
+
PASS rejected optionalBindings null plan writes no stdout (untyped)
|
|
2121
|
+
PASS rejection identifies optionalBindings for null (untyped requirement)
|
|
2122
|
+
PASS rejected optionalBindings null plan leaves workflow state unchanged (untyped)
|
|
2123
|
+
PASS rejected optionalBindings null plan leaves obligation state unchanged (untyped)
|
|
2124
|
+
PASS invalid optionalBindings object fixture route persists (typed)
|
|
2125
|
+
PASS plan exits 2 for optionalBindings object (typed requirement)
|
|
2126
|
+
PASS rejected optionalBindings object plan writes no stdout (typed)
|
|
2127
|
+
PASS rejection identifies optionalBindings for object (typed requirement)
|
|
2128
|
+
PASS rejected optionalBindings object plan leaves workflow state unchanged (typed)
|
|
2129
|
+
PASS rejected optionalBindings object plan leaves obligation state unchanged (typed)
|
|
2130
|
+
PASS invalid optionalBindings object fixture route persists (untyped)
|
|
2131
|
+
PASS plan exits 2 for optionalBindings object (untyped requirement)
|
|
2132
|
+
PASS rejected optionalBindings object plan writes no stdout (untyped)
|
|
2133
|
+
PASS rejection identifies optionalBindings for object (untyped requirement)
|
|
2134
|
+
PASS rejected optionalBindings object plan leaves workflow state unchanged (untyped)
|
|
2135
|
+
PASS rejected optionalBindings object plan leaves obligation state unchanged (untyped)
|
|
2136
|
+
PASS invalid optionalBindings string fixture route persists (typed)
|
|
2137
|
+
PASS plan exits 2 for optionalBindings string (typed requirement)
|
|
2138
|
+
PASS rejected optionalBindings string plan writes no stdout (typed)
|
|
2139
|
+
PASS rejection identifies optionalBindings for string (typed requirement)
|
|
2140
|
+
PASS rejected optionalBindings string plan leaves workflow state unchanged (typed)
|
|
2141
|
+
PASS rejected optionalBindings string plan leaves obligation state unchanged (typed)
|
|
2142
|
+
PASS invalid optionalBindings string fixture route persists (untyped)
|
|
2143
|
+
PASS plan exits 2 for optionalBindings string (untyped requirement)
|
|
2144
|
+
PASS rejected optionalBindings string plan writes no stdout (untyped)
|
|
2145
|
+
PASS rejection identifies optionalBindings for string (untyped requirement)
|
|
2146
|
+
PASS rejected optionalBindings string plan leaves workflow state unchanged (untyped)
|
|
2147
|
+
PASS rejected optionalBindings string plan leaves obligation state unchanged (untyped)
|
|
2148
|
+
PASS invalid optionalBindings boolean fixture route persists (typed)
|
|
2149
|
+
PASS plan exits 2 for optionalBindings boolean (typed requirement)
|
|
2150
|
+
PASS rejected optionalBindings boolean plan writes no stdout (typed)
|
|
2151
|
+
PASS rejection identifies optionalBindings for boolean (typed requirement)
|
|
2152
|
+
PASS rejected optionalBindings boolean plan leaves workflow state unchanged (typed)
|
|
2153
|
+
PASS rejected optionalBindings boolean plan leaves obligation state unchanged (typed)
|
|
2154
|
+
PASS invalid optionalBindings boolean fixture route persists (untyped)
|
|
2155
|
+
PASS plan exits 2 for optionalBindings boolean (untyped requirement)
|
|
2156
|
+
PASS rejected optionalBindings boolean plan writes no stdout (untyped)
|
|
2157
|
+
PASS rejection identifies optionalBindings for boolean (untyped requirement)
|
|
2158
|
+
PASS rejected optionalBindings boolean plan leaves workflow state unchanged (untyped)
|
|
2159
|
+
PASS rejected optionalBindings boolean plan leaves obligation state unchanged (untyped)
|
|
2160
|
+
PASS invalid optionalBindings number fixture route persists (typed)
|
|
2161
|
+
PASS plan exits 2 for optionalBindings number (typed requirement)
|
|
2162
|
+
PASS rejected optionalBindings number plan writes no stdout (typed)
|
|
2163
|
+
PASS rejection identifies optionalBindings for number (typed requirement)
|
|
2164
|
+
PASS rejected optionalBindings number plan leaves workflow state unchanged (typed)
|
|
2165
|
+
PASS rejected optionalBindings number plan leaves obligation state unchanged (typed)
|
|
2166
|
+
PASS invalid optionalBindings number fixture route persists (untyped)
|
|
2167
|
+
PASS plan exits 2 for optionalBindings number (untyped requirement)
|
|
2168
|
+
PASS rejected optionalBindings number plan writes no stdout (untyped)
|
|
2169
|
+
PASS rejection identifies optionalBindings for number (untyped requirement)
|
|
2170
|
+
PASS rejected optionalBindings number plan leaves workflow state unchanged (untyped)
|
|
2171
|
+
PASS rejected optionalBindings number plan leaves obligation state unchanged (untyped)
|
|
2172
|
+
PASS empty-array binding fixture route persists
|
|
2173
|
+
PASS plan accepts omitted and explicit empty binding arrays
|
|
2174
|
+
PASS omitted binding arrays remain empty after normalization
|
|
2175
|
+
PASS explicit empty binding arrays remain empty after normalization
|
|
2176
|
+
PASS normalized ordered steps are recorded in the existing requirements contract
|
|
2177
|
+
PASS typed steps preserve request order
|
|
2178
|
+
PASS behavior-change step materializes required TDD binding
|
|
2179
|
+
PASS verification step owns its verification-loop binding
|
|
2180
|
+
PASS commit step materializes required git-commit binding
|
|
2181
|
+
PASS typed-step plan cannot omit the mandatory verification step
|
|
2182
|
+
PASS start accepts a confirmed typed-step workflow
|
|
2183
|
+
PASS start returns the first ordered step as active
|
|
2184
|
+
PASS start returns concrete commands for resolving the active binding and passing the step
|
|
2185
|
+
PASS review starts without TDD and surfaces only its optional binding
|
|
2186
|
+
PASS active optional binding includes its load path
|
|
2187
|
+
PASS start does not disclose future-step bindings
|
|
2188
|
+
PASS future-step binding cannot be resolved before its step becomes active
|
|
2189
|
+
PASS active step is persisted in workflow-obligations state
|
|
2190
|
+
PASS typed-step workflows do not reintroduce global suggested-skill pushes
|
|
2191
|
+
PASS active step cannot pass before surfaced optional bindings are resolved
|
|
2192
|
+
PASS active optional binding can be loaded with evidence
|
|
2193
|
+
PASS optional binding cannot be marked not-needed without evidence
|
|
2194
|
+
PASS active optional binding can be marked not-needed with evidence
|
|
2195
|
+
PASS review step can pass after its surfaced optional binding is resolved
|
|
2196
|
+
PASS review advance returns only the behavior-change step and its required TDD binding
|
|
2197
|
+
PASS behavior-change output includes its TDD path but keeps later bindings hidden
|
|
2198
|
+
PASS behavior-change cannot pass before required TDD binding is resolved
|
|
2199
|
+
PASS required TDD binding resolves with load evidence
|
|
2200
|
+
PASS resolved behavior-change advances to the mandatory verification step
|
|
2201
|
+
PASS verification binding is disclosed only when verification becomes active
|
|
2202
|
+
PASS verification binding resolves at its own step
|
|
2203
|
+
PASS verification step advances to commit only after its binding resolves
|
|
2204
|
+
PASS commit binding is disclosed only when the commit step becomes active
|
|
2205
|
+
PASS required git-commit binding resolves at the commit step
|
|
2206
|
+
PASS advancing the last step leaves no active-step bindings
|
|
2207
|
+
PASS completed typed steps resolve their aggregate execute and verify obligations with linked evidence
|
|
2208
|
+
PASS all typed steps can satisfy the workflow without separate aggregate dispositions
|
|
2209
|
+
PASS satisfied typed-step workflow has no unresolved obligations
|
|
2210
|
+
PASS verification-only workflow route persists
|
|
2211
|
+
PASS verification-only typed plan is accepted
|
|
2212
|
+
PASS verification-only typed plan starts at its verification step
|
|
2213
|
+
PASS empty typed execution group resolves as explicit verification-only evidence
|
|
2214
|
+
PASS verification-only step resolves its required binding
|
|
2215
|
+
PASS verification-only step passes with objective evidence
|
|
2216
|
+
PASS verification-only workflow can satisfy without an execution step
|
|
2217
|
+
PASS verification-only completion also resolves the aggregate verify obligation
|
|
2218
|
+
PASS route persists for unknown-required-binding coverage
|
|
2219
|
+
PASS unknown required binding is accepted into the auditable contract
|
|
2220
|
+
PASS start surfaces rather than silently discarding an unknown required binding
|
|
2221
|
+
PASS unknown required binding remains visible as pending/unavailable
|
|
2222
|
+
PASS unknown required binding cannot be falsely marked loaded
|
|
2223
|
+
PASS step with unknown required binding cannot pass
|
|
2224
|
+
PASS unknown required binding does not hard-block ordinary tools
|
|
2225
|
+
PASS missing binding keeps Stop fail-open while workflow remains unresolved
|
|
2226
|
+
PASS Stop reports the unresolved unknown binding
|
|
2227
|
+
PASS custom-reference workflow route persists
|
|
2228
|
+
PASS step contracts accept an explicit skill/reference path
|
|
2229
|
+
PASS custom reference path is normalized and disclosed only at its active step
|
|
2230
|
+
PASS explicit reference binding can resolve with evidence
|
|
2231
|
+
PASS active step can pass after its explicit reference binding is resolved
|
|
2232
|
+
PASS unsafe-reference workflow route persists
|
|
2233
|
+
PASS step bindings reject paths that traverse outside repository scope
|
|
2234
|
+
PASS drive-reference workflow route persists
|
|
2235
|
+
PASS step bindings reject Windows drive-relative paths
|
|
2236
|
+
PASS second Tier 2 route persists for replan discriminator
|
|
2237
|
+
PASS initial route records normalized knowledge signals
|
|
2238
|
+
PASS post-decomposition workflow can be recomposed through the router contract
|
|
2239
|
+
PASS recomposed workflow receives an explicit confirmed disposition
|
|
2240
|
+
PASS requested and router-confirmed post-decomposition strategy are preserved
|
|
2241
|
+
PASS recomposed plan becomes the pending execution contract
|
|
2242
|
+
PASS strategy recomposition preserves the original knowledge signals
|
|
2243
|
+
PASS recomposed workflow cannot become satisfied before its selected topology starts
|
|
2244
|
+
PASS recomposed Fable topology proceeds to its native stage-contract requirement
|
|
2245
|
+
PASS recomposed planning state still does not recreate a tool lock
|
|
2246
|
+
PASS prohibition fixture routes successfully
|
|
2247
|
+
PASS prohibited post-decomposition choice is evaluated by router policy
|
|
2248
|
+
PASS original user prohibition survives recomposition
|
|
2249
|
+
PASS requirements remain valid while only the prohibited workflow choice stays unresolved
|
|
2250
|
+
PASS Tier 3 Fable candidate persists successfully
|
|
2251
|
+
PASS Tier 3 keeps Fable as preliminary candidate
|
|
2252
|
+
PASS Fable also requires requirements/workflow planning before stage execution
|
|
2253
|
+
PASS Fable cannot enter stage execution before planning contract resolves
|
|
2254
|
+
PASS Tier 1 route persists successfully
|
|
2255
|
+
PASS clear bounded Tier 1 intent has no decomposition overhead
|
|
2256
|
+
PASS Tier 1 direct Stop remains lightweight
|
|
2257
|
+
PASS Tier 1 remains a minimal direct path
|
|
2258
|
+
PASS #190 mutation-probe lock remains retired
|
|
2259
|
+
PASS #190 hard budget state remains retired
|
|
2260
|
+
|
|
2261
|
+
PASS: issue #85 requirements-first workflow contract (0 failures)
|
|
2262
|
+
|
|
2263
|
+
▶️ Running test suite: mechanism-2ao-plugin-sync.test.js
|
|
2264
|
+
Native plugin sync verified: absent plugins install, installed plugins update, and unknown state fails closed.
|
|
2265
|
+
|
|
2266
|
+
▶️ Running test suite: mechanism-2ap-sbom.test.js
|
|
2267
|
+
CycloneDX SBOM verified: 123 lockfile components and npm pack inclusion.
|
|
2268
|
+
(node:28828) [DEP0190] DeprecationWarning: Passing args to a child process with shell option true can lead to security
|
|
2269
|
+
vulnerabilities, as the arguments are not escaped, only concatenated.
|
|
2270
|
+
(Use `node --trace-deprecation ...` to show where the warning was created)
|
|
2271
|
+
|
|
2272
|
+
▶️ Running test suite: mechanism-2aq-fable-stage-bindings.test.js
|
|
2273
|
+
=== #297 Fable active-stage bindings ===
|
|
2274
|
+
PASS post-tool check hook remains fail-open
|
|
2275
|
+
PASS a successful check does not pass a stage while its declared bindings remain unresolved
|
|
2276
|
+
PASS check success and unresolved binding status are recorded separately
|
|
2277
|
+
PASS retained Fable notification shows the current stage
|
|
2278
|
+
PASS retained Fable notification shows only current-stage bindings
|
|
2279
|
+
PASS retained Fable notification hides future bindings and avoids repeating the full plan
|
|
2280
|
+
PASS unresolved Fable bindings do not hard-block ordinary mutation tools
|
|
2281
|
+
PASS unresolved Fable bindings do not hard-block Stop
|
|
2282
|
+
PASS Stop exposes the binding gap without locking the workflow
|
|
2283
|
+
PASS active required stage binding can be explicitly resolved
|
|
2284
|
+
PASS resolving one binding does not pass the stage while an optional binding is undecided
|
|
2285
|
+
PASS optional binding can be explicitly declined with evidence
|
|
2286
|
+
PASS stage check remains callable after binding resolution
|
|
2287
|
+
PASS successful stage check discloses the newly dependency-ready verifier binding
|
|
2288
|
+
PASS stage passes only after check and binding dispositions both resolve
|
|
2289
|
+
PASS passing stage retains correlated check evidence
|
|
2290
|
+
PASS packaged skill binding resolves to the installed Harness skill at run preparation
|
|
2291
|
+
PASS workspace reference binding resolves to the workspace file, not the Harness copy
|
|
2292
|
+
PASS a declared stage path with no file is recorded as missing, not available
|
|
2293
|
+
PASS a missing stage binding cannot be recorded as loaded
|
|
2294
|
+
PASS: #297 Fable stage binding gate mechanics
|
|
2295
|
+
|
|
2296
|
+
▶️ Running test suite: mechanism-2ar-binding-resolution.test.js
|
|
2297
|
+
=== PR #303 binding resolution ===
|
|
2298
|
+
PASS Tier 2 route persists for declared-path coverage
|
|
2299
|
+
PASS plan with a missing declared path is still recorded
|
|
2300
|
+
PASS a declared path with no file is recorded as missing, not available
|
|
2301
|
+
PASS a declared path that exists resolves to its readable file
|
|
2302
|
+
PASS workflow starts with a visible missing binding
|
|
2303
|
+
PASS a missing required binding cannot be marked loaded
|
|
2304
|
+
PASS the failed load leaves the required binding visibly unavailable
|
|
2305
|
+
PASS the step cannot pass while its required binding is unresolved
|
|
2306
|
+
PASS an existing optional binding can be loaded
|
|
2307
|
+
PASS repository/Claude plugin layout resolves tdd/SKILL.md at the package root
|
|
2308
|
+
PASS Codex plugin package ships the binding resolver
|
|
2309
|
+
PASS Codex plugin layout resolves tdd/SKILL.md under its skills/ root
|
|
2310
|
+
PASS a path absent from workspace and package roots is missing
|
|
2311
|
+
PASS fixture precondition: Harness ships docs/architecture.md
|
|
2312
|
+
PASS a missing workspace reference does not resolve to the Harness package copy
|
|
2313
|
+
PASS a skill id naming its own SKILL.md still resolves from the package
|
|
2314
|
+
PASS a registered id at an unregistered path is treated as a workspace reference
|
|
2315
|
+
PASS Tier 2 route persists in a client workspace
|
|
2316
|
+
PASS client plan declares a workspace reference that collides with a Harness file
|
|
2317
|
+
PASS step flow records the colliding workspace reference as missing
|
|
2318
|
+
PASS client workflow starts
|
|
2319
|
+
PASS step flow cannot load the Harness copy as the workspace reference
|
|
2320
|
+
PASS stage flow records the colliding workspace reference as missing
|
|
2321
|
+
PASS router runs against a workspace with a generated-skill manifest
|
|
2322
|
+
PASS matching self-evolved skill surfaces as a metadata-only id
|
|
2323
|
+
PASS router does not disclose the generated skill path or text
|
|
2324
|
+
PASS unrelated prompts do not surface the generated skill
|
|
2325
|
+
PASS Tier 2 route persists in the generated-skill workspace
|
|
2326
|
+
PASS a step can declare the generated skill id as a binding
|
|
2327
|
+
PASS the generated binding is not disclosed before its step is active
|
|
2328
|
+
PASS built-in TDD binding resolves from the package root outside the Harness repo
|
|
2329
|
+
PASS the generated binding becomes available with its SKILL.md once its step is active
|
|
2330
|
+
PASS the active generated binding can be loaded
|
|
2331
|
+
|
|
2332
|
+
PASS: PR #303 binding resolution (0 failures)
|
|
2333
|
+
|
|
2334
|
+
▶️ Running test suite: mechanism-2b-boundary-guard.test.js
|
|
2335
|
+
|
|
2336
|
+
[2b] Boundary reminder...
|
|
2337
|
+
✅ 2b. Large read emits a reminder but remains available
|
|
2338
|
+
|
|
2339
|
+
▶️ Running test suite: mechanism-2c-state-persist.test.js
|
|
2340
|
+
|
|
2341
|
+
[2c] State persistence (WAL)...
|
|
2342
|
+
✅ 2c. Failing Bash call is recorded as status=failed
|
|
2343
|
+
✅ 2c. Claude-shaped PostToolUse without exitCode clears failed state even with stderr diagnostics
|
|
2344
|
+
✅ 2c. Numeric non-zero exit still records failure on hosts that report exit codes
|
|
2345
|
+
✅ 2c. Numeric zero exit still clears failure state
|
|
2346
|
+
✅ 2c. PostToolUseFailure remains authoritative without numeric exitCode
|
|
2347
|
+
|
|
2348
|
+
▶️ Running test suite: mechanism-2d-fact-audit.test.js
|
|
2349
|
+
|
|
2350
|
+
[2d] Fact-audit reminder...
|
|
2351
|
+
✅ 2d. tier-router.js reads {"prompt":...} from stdin and emits FACT-AUDIT REMINDER
|
|
2352
|
+
|
|
2353
|
+
▶️ Running test suite: mechanism-2e-scope-guard.test.js
|
|
2354
|
+
|
|
2355
|
+
[2e] Subagent scope reminder...
|
|
2356
|
+
✅ 2e. Scope drift is reported without blocking
|
|
2357
|
+
|
|
2358
|
+
▶️ Running test suite: mechanism-2f-stop-gate.test.js
|
|
2359
|
+
|
|
2360
|
+
[2f] Verification reminders...
|
|
2361
|
+
✅ 2f. Unverified dirty Stop emits reminder and exits 0
|
|
2362
|
+
✅ 2f. Stop reminder creates no lock/throttle state
|
|
2363
|
+
✅ 2f. Observed verification can mark workflow satisfied
|
|
2364
|
+
✅ 2f. Missing verification is reminder-only
|
|
2365
|
+
✅ 2f. Missing verification does not create blocked state
|
|
2366
|
+
|
|
2367
|
+
▶️ Running test suite: mechanism-2g-platform-ignore.test.js
|
|
2368
|
+
|
|
2369
|
+
[2g] Platform ignore patterns / Gitignore matching...
|
|
2370
|
+
✅ 2g. getIgnorePatterns returns ONLY Harness skills
|
|
2371
|
+
✅ 2g. isMatch returns true for parent folder match (Claude)
|
|
2372
|
+
✅ 2g. isMatch returns true for exact match of harness skill (Claude)
|
|
2373
|
+
✅ 2g. getIgnorePatterns returns ONLY Harness skills (Cursor)
|
|
2374
|
+
✅ 2g. isMatch returns true for parent folder match (Cursor)
|
|
2375
|
+
|
|
2376
|
+
▶️ Running test suite: mechanism-2h-installer-manifest.test.js
|
|
2377
|
+
|
|
2378
|
+
[2h] Installer manifest and skill bookkeeping...
|
|
2379
|
+
✅ 2h. readManifest returns fallback structure when file does not exist
|
|
2380
|
+
✅ 2h. recordSkillInstall successfully records skill information
|
|
2381
|
+
✅ 2h. recordGeneratedSkill successfully records generated skill with triggers
|
|
2382
|
+
✅ 2h. removeGeneratedSkill removes generated skill correctly
|
|
2383
|
+
✅ 2h. isHarnessSkillDir detects Harness author correctly
|
|
2384
|
+
✅ 2h. isHarnessSkillDir detects author under metadata: (spec format)
|
|
2385
|
+
✅ 2h. isHarnessSkillDir returns false for foreign authors
|
|
2386
|
+
✅ 2h. removeSkillFromManifest cleans up or unlinks empty manifest
|
|
2387
|
+
⚠️ Preserved existing agent without overwrite: <workspace>\.mechanism-test-man
|
|
2388
|
+
ifest-ws\agents\fable-orchestrator.md
|
|
2389
|
+
✅ Installed agent: test-agents/fable-verifier.md
|
|
2390
|
+
✅ Installed agent: test-agents/fable-worker-haiku.md
|
|
2391
|
+
✅ Installed agent: test-agents/fable-worker-sonnet.md
|
|
2392
|
+
✅ 2h. Fable agents are manifest tracked without overwriting a conflicting file
|
|
2393
|
+
✅ 2h. Removing Fable agents removes only tracked files and manifest state
|
|
2394
|
+
⚠️ Preserved existing agent without overwrite: <workspace>\.mechanism-test-man
|
|
2395
|
+
ifest-ws\agents\fable-orchestrator.md
|
|
2396
|
+
⚠️ Preserved pre-existing identical agent without claiming ownership: <repo>-issue-
|
|
2397
|
+
297\.mechanism-test-manifest-ws\agents\fable-verifier.md
|
|
2398
|
+
✅ Installed agent: test-agents/fable-worker-haiku.md
|
|
2399
|
+
✅ Installed agent: test-agents/fable-worker-sonnet.md
|
|
2400
|
+
✅ 2h. Pre-existing identical agent is not claimed as Harness-owned
|
|
2401
|
+
✅ 2h. Pre-existing identical agent survives tracked-agent removal
|
|
2402
|
+
|
|
2403
|
+
▶️ Running test suite: mechanism-2i-crlf-frontmatter.test.js
|
|
2404
|
+
✅ 2i-pre. Found enough SKILL.md fixtures in copied tree
|
|
2405
|
+
✅ 2i-a. consistency-check passes on all-CRLF tree
|
|
2406
|
+
✅ 2i-b. description-collision passes on all-CRLF tree
|
|
2407
|
+
✅ 2i-c. Negative control: planted CRLF duplicate FAILS collision check
|
|
2408
|
+
|
|
2409
|
+
[2i] CRLF frontmatter immunity: all checks passed.
|
|
2410
|
+
|
|
2411
|
+
▶️ Running test suite: mechanism-2i-install-verification.test.js
|
|
2412
|
+
|
|
2413
|
+
[2i] Installed version and skill-tree verification...
|
|
2414
|
+
✅ 2i. matching version and tree pass
|
|
2415
|
+
✅ 2i. modified installed skill is reported stale
|
|
2416
|
+
✅ 2i. old package version is reported stale
|
|
2417
|
+
✅ 2i. legacy install without a manifest is reported stale
|
|
2418
|
+
|
|
2419
|
+
▶️ Running test suite: mechanism-2j-behavioral-runner.test.js
|
|
2420
|
+
|
|
2421
|
+
[2j] Behavioral runner argv integrity...
|
|
2422
|
+
✅ 2j. opencode receives the complete prompt as one argv value
|
|
2423
|
+
✅ 2j. claude receives the complete prompt as one argv value
|
|
2424
|
+
✅ 2j. Claude baseline excludes user customizations
|
|
2425
|
+
✅ 2j. Claude treatment keeps only project/local customizations
|
|
2426
|
+
✅ 2j. Claude emits parseable verbose stream JSON
|
|
2427
|
+
✅ 2j. behavioral workspace builder accepts a valid nested fixture through the public execution contract
|
|
2428
|
+
✅ 2j. behavioral fixtures reject traversal for the expected boundary reason
|
|
2429
|
+
✅ 2j. fixture setup runs via Node in the generated workspace
|
|
2430
|
+
✅ 2j. setup failure is classified as fixture-error before any model session
|
|
2431
|
+
✅ 2j. worktree/submodule setup creates the real #243 topology before model execution
|
|
2432
|
+
✅ 2j. fixture errors remain distinct aggregate infrastructure failures
|
|
2433
|
+
|
|
2434
|
+
▶️ Running test suite: mechanism-2j-fixture-entrypoints.test.js
|
|
2435
|
+
Fixture entrypoints: paired baseline/treatment and plugin execute setup; failures skip installation/model and are excluded from scores.
|
|
2436
|
+
|
|
2437
|
+
▶️ Running test suite: mechanism-2k-reference-check.test.js
|
|
2438
|
+
|
|
2439
|
+
[2k] Skill reference checker negative control...
|
|
2440
|
+
✅ 2k. dangling executable reference fails
|
|
2441
|
+
✅ 2k. existing executable reference passes
|
|
2442
|
+
✅ 2k. bare skill-local paths fail the explicit marker rule
|
|
2443
|
+
✅ 2k. explicit skill-local paths pass
|
|
2444
|
+
✅ 2k. <this-skill-dir>/ is authoritative and never falls back to the repo root
|
|
2445
|
+
✅ 2k. <this-skill-dir>/ resolves under the skill itself
|
|
2446
|
+
✅ 2k. <this-skill-dir>/../ reaches a sibling
|
|
2447
|
+
✅ 2k. unknown placeholder fails instead of being skipped
|
|
2448
|
+
✅ 2k. <workspace>/ paths are skipped, not resolved locally
|
|
2449
|
+
|
|
2450
|
+
▶️ Running test suite: mechanism-2l-multi-agent-workspace.test.js
|
|
2451
|
+
|
|
2452
|
+
[2l] Multi-agent workspace integration...
|
|
2453
|
+
✅ 2l. skill contract names global runtime and resolved document writes
|
|
2454
|
+
✅ 2l. grill fallback names committable document paths
|
|
2455
|
+
✅ 2l. missing agency source is explicit and still scaffolds core workspace
|
|
2456
|
+
✅ 2l. root CONTEXT-MAP takes precedence for every document zone
|
|
2457
|
+
✅ 2l. CONTEXT-MAP common paths are case-insensitive on Windows
|
|
2458
|
+
✅ 2l. projectDocs paths are explicit and do not become inferred paths
|
|
2459
|
+
✅ 2l. existing repository document folders are inferred
|
|
2460
|
+
✅ 2l. legacy authored records migrate to the resolved repository path
|
|
2461
|
+
✅ 2l. migration conflicts preserve both existing files and legacy source
|
|
2462
|
+
✅ 2l. migration rejects duplicate destinations before copying or deleting records
|
|
2463
|
+
✅ 2l. document paths reject junction escapes from the workspace
|
|
2464
|
+
✅ 2l. legacy migration rejects a linked source before copying or deleting outside files
|
|
2465
|
+
✅ 2l. installed router template resolves paths into global runtime
|
|
2466
|
+
✅ 2l. an explicitly missing agency source fails clearly
|
|
2467
|
+
✅ 2l. fixture source selects metadata and records a verified handoff
|
|
2468
|
+
✅ 2l. repeated scaffold is idempotent
|
|
2469
|
+
✅ 2l. installed indexer runs independently and lists selected specialist
|
|
2470
|
+
✅ 2l. indexer uses explicit manifest/output paths without depth inference
|
|
2471
|
+
✅ 2l. indexer fails clearly when its manifest is missing
|
|
2472
|
+
✅ 2l. unsupported platform fails explicitly
|
|
2473
|
+
✅ 2l. duplicate agent names fail before writing output
|
|
2474
|
+
✅ 2l. empty division fails before writing output
|
|
2475
|
+
✅ 2l. unsafe division path is rejected before reading outside source
|
|
2476
|
+
✅ 2l. source revision drift requires an explicit override
|
|
2477
|
+
|
|
2478
|
+
▶️ Running test suite: mechanism-2m-self-repo-guard.test.js
|
|
2479
|
+
|
|
2480
|
+
[2m] Self-repo guard identifies the harness repo by identity, not path...
|
|
2481
|
+
✅ 2m. isHarnessRepo() recognises a harness checkout
|
|
2482
|
+
✅ 2m. isHarnessRepo() rejects an unrelated project
|
|
2483
|
+
✅ 2m. isHarnessRepo() is false when package.json is absent
|
|
2484
|
+
✅ 2m. bootstrap run out-of-tree against a harness checkout advises no repair
|
|
2485
|
+
✅ 2m. bootstrap still advises repair for an unrelated project (guard is not blanket suppression)
|
|
2486
|
+
✅ 2m. self-heal reports an unmarked AGENTS.md as present-without-block, not missing
|
|
2487
|
+
|
|
2488
|
+
▶️ Running test suite: mechanism-2n-opencode-plugin.test.js
|
|
2489
|
+
|
|
2490
|
+
[2n] opencode enforcement plugin: real hook API and firing behavior...
|
|
2491
|
+
✅ 2n. the repository inventory manifest exists
|
|
2492
|
+
✅ 2n. every standalone hook file on disk is declared in the inventory manifest
|
|
2493
|
+
✅ 2n. every declared inventory hook path exists on disk
|
|
2494
|
+
✅ 2n. no standalone hook is declared more than once
|
|
2495
|
+
✅ 2n. the plugin ships as a single self-contained module (installable by copying one file)
|
|
2496
|
+
✅ 2n. exports exactly the hooks it uses (tool.execute.before/after, event)
|
|
2497
|
+
✅ 2n. non-edit tools do not mark verification pending
|
|
2498
|
+
✅ 2n. an edit tool call marks verification pending
|
|
2499
|
+
✅ 2n. a passing verification on session.idle clears pending state
|
|
2500
|
+
✅ 2n. no follow-up prompt is sent when verification passes
|
|
2501
|
+
✅ 2n. two failures on the same signature: still allowed, not yet tripped
|
|
2502
|
+
✅ 2n. each failed verification sends exactly one follow-up prompt
|
|
2503
|
+
✅ 2n. 3rd failure on the same signature forces reflection
|
|
2504
|
+
✅ 2n. the forced-reflection prompt says to reflect
|
|
2505
|
+
✅ 2n. pending reflection blocks another code edit
|
|
2506
|
+
✅ 2n. pending reflection still allows read tools
|
|
2507
|
+
✅ 2n. the forced-reflection prompt names a verifiable artifact token
|
|
2508
|
+
✅ 2n. a directive outside the Decision section does not complete reflection
|
|
2509
|
+
✅ 2n. apply_patch reflection completes the lifecycle, resets the signature count, and persists lastReflection
|
|
2510
|
+
✅ 2n. repeated idle does not duplicate verification or follow-up prompts
|
|
2511
|
+
✅ 2n. apply_patch is allowed to write a pending reflection artifact
|
|
2512
|
+
✅ 2n. apply_patch output args complete a pending reflection
|
|
2513
|
+
✅ 2n. mixed apply_patch cannot bypass a pending reflection
|
|
2514
|
+
✅ 2n. first post-reflection failure starts again at count=1
|
|
2515
|
+
✅ 2n. no permanent post-reflection hard lock remains
|
|
2516
|
+
✅ 2n. a second session has an independent breaker stream
|
|
2517
|
+
Harness: ignoring corrupt circuit-breaker state at "<workspace>\.mechanism-test-
|
|
2518
|
+
opencode-home\.agents\harness-everything\workspaces\.mechanism-test-opencode-workspace-f1d77c78973a\state\sessions\corr
|
|
2519
|
+
upt\circuit-breaker.json" and starting fresh.
|
|
2520
|
+
✅ 2n. corrupt breaker state fails open instead of becoming a cognitive lock
|
|
2521
|
+
✅ 2n. failed prompt delivery remains retryable
|
|
2522
|
+
✅ 2n. next idle retries the saved follow-up exactly once
|
|
2523
|
+
✅ 2n. session.created resets only the current session state
|
|
2524
|
+
✅ 2n. a reset session can edit again
|
|
2525
|
+
✅ 2n. dot and dotdot session IDs never escape the sessions root
|
|
2526
|
+
✅ 2n. resetting an unsafe session cannot delete an outside sentinel
|
|
2527
|
+
✅ 2n. resetting s1 leaves the independent s2 state
|
|
2528
|
+
✅ 2n. legacy flat state migrates into the workspace-keyed root
|
|
2529
|
+
✅ 2n. hook state stayed inside the redirected HOME
|
|
2530
|
+
|
|
2531
|
+
▶️ Running test suite: mechanism-2o-state-home-isolation.test.js
|
|
2532
|
+
|
|
2533
|
+
[2o] State-home isolation: runtime state never scatters into cwd (issue #42)...
|
|
2534
|
+
✅ 2o. harness-state.js creates zero files in a non-git nested dir
|
|
2535
|
+
✅ 2o. ...and the session dir lands under the global state home instead
|
|
2536
|
+
✅ 2o. model-selector.js (zero-walk before the fix) creates zero files in a non-git nested dir
|
|
2537
|
+
✅ 2o. ...and its audit log lands under the same global state/ stream as harness-state.js
|
|
2538
|
+
✅ 2o. scaffold.js with no --workspace resolves to the repo root from a nested dir
|
|
2539
|
+
✅ 2o. ...and does not scatter runtime files into the repository or nested invocation directory
|
|
2540
|
+
✅ 2o. harness-state.js walks up to the repo root from a nested in-repo dir, not the nested dir
|
|
2541
|
+
✅ 2o. ...and its state dir is under the global home, not under the git fixture at all
|
|
2542
|
+
✅ 2o. pre-existing scattered state migrates into the new global location
|
|
2543
|
+
✅ 2o. ...and the old in-repo location is gone afterward
|
|
2544
|
+
|
|
2545
|
+
▶️ Running test suite: mechanism-2p-installer-links.test.js
|
|
2546
|
+
|
|
2547
|
+
[2p] Canonical-store link/copy install + link-aware uninstall (issue #49)...
|
|
2548
|
+
✅ Installed skill: .claude/skills/tdd/ (junction -> ..\..\.agents\skills\tdd)
|
|
2549
|
+
✅ Installed skill: .cursor/skills/tdd/ (junction -> ..\..\.agents\skills\tdd)
|
|
2550
|
+
✅ 2p. both platform targets are real links (symlink/junction), not physical copies
|
|
2551
|
+
✅ 2p. the canonical copy itself is a physical directory, not a link
|
|
2552
|
+
✅ 2p. content is readable through the link and matches source
|
|
2553
|
+
✅ 2p. manifest records kind + canonicalPath for a linked entry
|
|
2554
|
+
✅ 2p. getInstalledSkills lists exactly the 2 linked entries, not the canonical dir as a 3rd
|
|
2555
|
+
✅ 2p. removing one link deletes only that link, canonical copy survives (still referenced)
|
|
2556
|
+
✅ 2p. removing the LAST link also removes the now-orphaned canonical copy
|
|
2557
|
+
✅ Installed skill: .codex/skills/tdd/
|
|
2558
|
+
✅ 2p. --copy mode installs a physical directory, not a link
|
|
2559
|
+
✅ 2p. --copy mode manifest entry has no kind/canonicalPath
|
|
2560
|
+
✅ 2p. --copy mode entry uninstalls cleanly
|
|
2561
|
+
✅ Installed skill: .continue/skills/tdd/ (junction -> ..\..\.agents\skills\tdd)
|
|
2562
|
+
✅ 2p. a dangling link is still detected as present (pathPresent) even though its target is gone
|
|
2563
|
+
✅ 2p. getInstalledSkills still surfaces the dangling link for cleanup
|
|
2564
|
+
✅ 2p. removeSkill cleans up the dangling link and its manifest row
|
|
2565
|
+
✅ 2p. a pre-#49 manifest entry (no kind/canonicalPath) is still discovered
|
|
2566
|
+
✅ 2p. a pre-#49 entry uninstalls cleanly with no canonical-store side effects
|
|
2567
|
+
|
|
2568
|
+
▶️ Running test suite: mechanism-2q-installer-global-shared-store.test.js
|
|
2569
|
+
|
|
2570
|
+
[2q] Global scope: canonical store reuses the pre-existing shared ~/.agents/skills (issue #49)...
|
|
2571
|
+
✅ 2q. global installer works from a non-git directory
|
|
2572
|
+
✅ 2q. global canonical dir IS the pre-existing shared ~/.agents/skills path, not a new location
|
|
2573
|
+
✅ Installed skill: ~/.agents/skills/tdd/
|
|
2574
|
+
✅ Installed skill: ~/.claude/skills/tdd/ (junction -> ..\..\.agents\skills\tdd)
|
|
2575
|
+
✅ 2q. the shared target (cursor/codex/continue/copilot/hermes stand-in) gets the PHYSICAL copy, not a link to itself
|
|
2576
|
+
✅ 2q. Claude's separate global target links into the shared store instead of duplicating it
|
|
2577
|
+
✅ 2q. the shared-store manifest entry records a plain copy (no kind/canonicalPath)
|
|
2578
|
+
✅ 2q. removing Claude's link leaves the shared store intact (still independently in use)
|
|
2579
|
+
✅ Installed skill: ~/.claude/skills/tdd/ (junction -> ..\..\.agents\skills\tdd)
|
|
2580
|
+
✅ 2q. (setup) Claude re-linked to the shared store
|
|
2581
|
+
✅ 2q. removing the shared store directly also sweeps Claude's now-dangling dependent link
|
|
2582
|
+
|
|
2583
|
+
▶️ Running test suite: mechanism-2r-uninstall-flags.test.js
|
|
2584
|
+
|
|
2585
|
+
[2r] Uninstall CLI flag handling: no silent no-op, combined local+global (issue #48)...
|
|
2586
|
+
✅ 2r. bare uninstall with no TTY exits non-zero instead of silently succeeding
|
|
2587
|
+
✅ 2r. ...and prints a hint about the flags to pass
|
|
2588
|
+
✅ 2r. ...and actually removed nothing (settings.json + skill both still present)
|
|
2589
|
+
✅ 2r. `uninstall --local --skills` exits 0
|
|
2590
|
+
✅ 2r. ...and actually removed the local skill
|
|
2591
|
+
✅ 2r. `uninstall --local --global --skills` exits 0
|
|
2592
|
+
✅ 2r. ...local skill removed
|
|
2593
|
+
✅ 2r. ...AND global skill removed in the SAME run
|
|
2594
|
+
✅ 2r. first run (--local only) exits 0
|
|
2595
|
+
✅ 2r. ...and leaves the skill in place as requested
|
|
2596
|
+
✅ 2r. second run (--skills) exits 0
|
|
2597
|
+
✅ 2r. ...and this time removes the skill left over from the first run
|
|
2598
|
+
|
|
2599
|
+
▶️ Running test suite: mechanism-2s-tdd-quality.test.js
|
|
2600
|
+
|
|
2601
|
+
[2s] TDD quality evidence gate (issue #58)...
|
|
2602
|
+
✅ 2s. fixture catalog covers every required outcome
|
|
2603
|
+
✅ 2s. complete profile-routed evidence passes with a 100 score
|
|
2604
|
+
✅ 2s. report publishes the canonical weights and pass threshold
|
|
2605
|
+
✅ 2s. integration score follows the canonical weighted formula exactly
|
|
2606
|
+
✅ 2s. every requirement must declare its selected test profile
|
|
2607
|
+
✅ 2s. only unit and integration profiles are accepted
|
|
2608
|
+
✅ 2s. unit evidence may mark integration determinism N/A with a reason
|
|
2609
|
+
✅ 2s. unit score renormalizes only the applicable canonical weights
|
|
2610
|
+
✅ 2s. integration evidence cannot bypass repeated determinism checks
|
|
2611
|
+
✅ 2s. report exposes raw counts, percentages, and mandatory gates
|
|
2612
|
+
✅ 2s. missing an applicable input class is rejected
|
|
2613
|
+
✅ 2s. incomplete output validation is rejected
|
|
2614
|
+
✅ 2s. failed unexpected-input behavior is rejected
|
|
2615
|
+
✅ 2s. untested and skipped error paths are rejected and visible
|
|
2616
|
+
✅ 2s. unequal repeated integration output is rejected
|
|
2617
|
+
✅ 2s. implementation/source mismatches fail
|
|
2618
|
+
✅ 2s. source defects are reported separately without inventing a mismatch
|
|
2619
|
+
✅ 2s. unresolved authoritative source conflicts fail
|
|
2620
|
+
✅ 2s. inferred expectations remain explicit and traceable
|
|
2621
|
+
✅ 2s. N/A declarations without a written reason are rejected
|
|
2622
|
+
✅ 2s. reasoned N/A stays visible and does not lower applicable scores
|
|
2623
|
+
✅ 2s. explicitly source-backed volatile fields may be normalized
|
|
2624
|
+
✅ 2s. malformed evidence fails closed
|
|
2625
|
+
✅ 2s. incomplete deterministic side-effect evidence is rejected
|
|
2626
|
+
✅ 2s. duplicate requirement IDs are rejected
|
|
2627
|
+
✅ 2s. CLI emits per-requirement human scores and structured JSON
|
|
2628
|
+
✅ 2s. CLI returns exit 1 and writes structured JSON for a valid FAIL report
|
|
2629
|
+
✅ 2s. CLI returns exit 2 for malformed JSON
|
|
2630
|
+
✅ 2s. shipped PASS evidence is executable
|
|
2631
|
+
|
|
2632
|
+
▶️ Running test suite: mechanism-2t-disclosure.test.js
|
|
2633
|
+
|
|
2634
|
+
[2t] Progressive-disclosure negative controls...
|
|
2635
|
+
✅ 2t. complete disclosure surface passes
|
|
2636
|
+
✅ 2t. missing workflow pairing fails
|
|
2637
|
+
✅ 2t. missing Mermaid coverage fails
|
|
2638
|
+
✅ 2t. empty Mermaid transition fails
|
|
2639
|
+
✅ 2t. dashes inside a node label do not fake a transition
|
|
2640
|
+
✅ 2t. wildcard Deep dive requires a matching file
|
|
2641
|
+
✅ 2t. wildcard Deep dive resolves a matching file
|
|
2642
|
+
✅ 2t. Deep dive traversal stays inside the package
|
|
2643
|
+
✅ 2t. dangling Deep dive pointer fails
|
|
2644
|
+
✅ 2t. Mermaid inside SKILL.md fails
|
|
2645
|
+
✅ 2t. missing references directory fails
|
|
2646
|
+
✅ 2t. orphan workflow document fails
|
|
2647
|
+
|
|
2648
|
+
▶️ Running test suite: mechanism-2t-evidence-triage.test.js
|
|
2649
|
+
Behavioral evidence-triage regressions passed.
|
|
2650
|
+
|
|
2651
|
+
▶️ Running test suite: mechanism-2t-issue-20.test.js
|
|
2652
|
+
|
|
2653
|
+
[2t] Issue #20 regression coverage...
|
|
2654
|
+
✅ 2t. behavioral YAML parsing preserves block scalars under CRLF
|
|
2655
|
+
✅ 2t. opencode plugin runner validate command exits successfully
|
|
2656
|
+
✅ 2t. routing check gracefully skips when waza is unavailable
|
|
2657
|
+
✅ 2t. description collision gate fails closed on malformed YAML
|
|
2658
|
+
✅ 2t. negative controls execute real gates and pass
|
|
2659
|
+
|
|
2660
|
+
▶️ Running test suite: mechanism-2t-platform-skill-targets.test.js
|
|
2661
|
+
|
|
2662
|
+
[2t] Platform-native skill targets + install ownership safety (issue #80)...
|
|
2663
|
+
✅ 2t. codex local target matches the installer contract
|
|
2664
|
+
✅ Installed skill: .agents/skills/tdd/
|
|
2665
|
+
✅ 2t. codex local --copy writes a readable SKILL.md
|
|
2666
|
+
✅ 2t. continue global target matches the installer contract
|
|
2667
|
+
✅ Installed skill: ~/.continue/skills/tdd/
|
|
2668
|
+
✅ 2t. continue global --copy writes a readable SKILL.md
|
|
2669
|
+
✅ 2t. hermes local target matches the installer contract
|
|
2670
|
+
✅ Installed skill: .agents/skills/tdd/
|
|
2671
|
+
✅ 2t. hermes local --copy writes a readable SKILL.md
|
|
2672
|
+
✅ 2t. hermes global target matches the installer contract
|
|
2673
|
+
✅ Installed skill: ~/.hermes/skills/tdd/
|
|
2674
|
+
✅ 2t. hermes global --copy writes a readable SKILL.md
|
|
2675
|
+
✅ 2t. Continue native global manifest is discoverable
|
|
2676
|
+
✅ 2t. Hermes native global manifest is discoverable
|
|
2677
|
+
✅ 2t. native global skill scopes use the protected global sentinel
|
|
2678
|
+
ℹ️ Hermes global skills install to ~/.hermes/skills/. Project advisory context remains project-scoped via .hermes.md.
|
|
2679
|
+
✅ 2t. Hermes global install writes an owned detection marker
|
|
2680
|
+
✅ 2t. Hermes global uninstall removes its detection marker
|
|
2681
|
+
✅ 2t. malformed Claude settings fail closed
|
|
2682
|
+
✅ 2t. malformed Claude settings remain byte-for-byte unchanged
|
|
2683
|
+
✅ 2t. Continue refuses to overwrite a user-owned harness.md
|
|
2684
|
+
✅ 2t. Continue collision leaves original bytes unchanged
|
|
2685
|
+
✅ 2t. copilot global install refuses a user-owned fixed prompt file
|
|
2686
|
+
✅ 2t. copilot global uninstall preserves non-Harness file
|
|
2687
|
+
✅ 2t. codex global install refuses a user-owned fixed prompt file
|
|
2688
|
+
✅ 2t. codex global uninstall preserves non-Harness file
|
|
2689
|
+
|
|
2690
|
+
▶️ Running test suite: mechanism-2t-transcript-parser.test.js
|
|
2691
|
+
|
|
2692
|
+
[2t] Structured behavioral transcript parser...
|
|
2693
|
+
✅ 2t. Claude stream is parsed
|
|
2694
|
+
✅ 2t. Claude trace keeps assistant text and tool input
|
|
2695
|
+
✅ 2t. Claude trace excludes tool output
|
|
2696
|
+
✅ 2t. Claude preserves result metadata
|
|
2697
|
+
✅ 2t. Claude correlates completed tool evidence
|
|
2698
|
+
✅ 2t. Permission denial is evidence
|
|
2699
|
+
✅ 2t. Denial grader passes only denied evidence
|
|
2700
|
+
✅ 2t. Oral command mention has no attempted tool
|
|
2701
|
+
✅ 2t. Oral command prose cannot satisfy trace execution evidence
|
|
2702
|
+
✅ 2t. Existing opencode JSONL remains supported
|
|
2703
|
+
✅ 2t. Duplicate opencode tool events are one call
|
|
2704
|
+
✅ 2t. Opencode tool output never enters trace
|
|
2705
|
+
✅ 2t. Explicit IDs coalesce only by their ID
|
|
2706
|
+
✅ 2t. Out-of-order result and call events coalesce by ID
|
|
2707
|
+
✅ 2t. Output text cannot masquerade as permission denial
|
|
2708
|
+
✅ 2t. Truncated CRLF stream is inconclusive
|
|
2709
|
+
✅ 2t. Partial execution evidence is inconclusive
|
|
2710
|
+
✅ 2t. Legacy JSON keeps readable final text
|
|
2711
|
+
✅ 2t. Legacy JSON does not claim tool visibility
|
|
2712
|
+
✅ 2t. Unavailable evidence is inconclusive
|
|
2713
|
+
✅ 2t. Auto detection preserves legacy JSON
|
|
2714
|
+
✅ 2t. Legacy final prose cannot produce a definitive trace grade
|
|
2715
|
+
✅ 2t. Claude user-event text is not agent trace
|
|
2716
|
+
✅ 2t. {"type":"tool_executed","command":"npm test"} does not match another completed command
|
|
2717
|
+
✅ 2t. {"type":"tool_executed","command":"rm -rf /"} does not match another completed command
|
|
2718
|
+
✅ 2t. {"type":"tool_executed","tool":"npm test"} does not match another completed command
|
|
2719
|
+
✅ 2t. Command targets reject extra arguments
|
|
2720
|
+
✅ 2t. top-level tool calls and results remain structured evidence
|
|
2721
|
+
✅ 2t. structured trace preserves tool-before-text event order
|
|
2722
|
+
✅ 2t. bare patch filenames count as edits for after_edit grading
|
|
2723
|
+
✅ 2t. runner trace keeps bare patch, bash, then final text order
|
|
2724
|
+
✅ 2t. Tool input qualifiers do not match unrelated TodoWrite state
|
|
2725
|
+
✅ 2t. Behavioral cases do not retain the obsolete #52 trace limitation
|
|
2726
|
+
✅ 2t. Non-definitive arm cannot produce effectiveness
|
|
2727
|
+
✅ 2t. Session errors cannot produce effectiveness
|
|
2728
|
+
✅ 2t. Inconclusive pairs are excluded from effectiveness aggregates
|
|
2729
|
+
✅ 2t. Missing tool counts preserve a null delta
|
|
2730
|
+
|
|
2731
|
+
▶️ Running test suite: mechanism-2t-workspace-identity.test.js
|
|
2732
|
+
|
|
2733
|
+
[2t] Session-stable workspace identity and standalone fable audit...
|
|
2734
|
+
PASS SessionStart binds the repository root
|
|
2735
|
+
PASS same session stays bound after entering a nested directory
|
|
2736
|
+
PASS same session stays bound after entering a scratch directory
|
|
2737
|
+
PASS same session stays bound after entering a nested repository
|
|
2738
|
+
PASS explicit workspace context outranks inherited workspace environment
|
|
2739
|
+
PASS resume SessionStart keeps the existing binding
|
|
2740
|
+
PASS explicit identity reset permits a deliberate rebind
|
|
2741
|
+
PASS identity reset persists the new binding for later cwd changes
|
|
2742
|
+
PASS host/session identity binds the first host workspace
|
|
2743
|
+
PASS same host/session stays bound after a nested-repository cwd change
|
|
2744
|
+
PASS hostless follow-up reuses an unambiguous host/session binding
|
|
2745
|
+
PASS different hosts may bind the same session id independently
|
|
2746
|
+
PASS ambiguous hostless identity falls back to explicit context
|
|
2747
|
+
PASS hooks can resolve state from a bound session after cwd changes
|
|
2748
|
+
PASS standalone fable audit runs after install
|
|
2749
|
+
PASS standalone fable audit follows its session binding across cwd changes
|
|
2750
|
+
PASS migration keeps conflicting sources available for recovery
|
|
2751
|
+
PASS migration merges independent platform sources even when one conflicts
|
|
2752
|
+
PASS migration preserves unsupported symlink entries
|
|
2753
|
+
PASS migration retry completes after the conflict is resolved
|
|
2754
|
+
|
|
2755
|
+
▶️ Running test suite: mechanism-2u-issue-42-regressions.test.js
|
|
2756
|
+
|
|
2757
|
+
[2u] Issue #42 adversarial regressions...
|
|
2758
|
+
PASS 2u. no-context non-git calls do not adopt either invocation directory
|
|
2759
|
+
PASS 2u. no-context non-git calls use one stable unbound workspace key
|
|
2760
|
+
PASS 2u. scaffold refuses to infer a workspace outside git instead of writing locally
|
|
2761
|
+
PASS 2u. evaluate refuses to write a report without a resolved workspace
|
|
2762
|
+
PASS 2u. persist-memory refuses to write project memory without a resolved workspace
|
|
2763
|
+
PASS 2u. eval-harness/scripts/evaluate.js has no bare process.cwd fallback
|
|
2764
|
+
PASS 2u. multi-agent-workspace/scripts/scaffold.js has no bare process.cwd fallback
|
|
2765
|
+
PASS 2u. self-evolve/scripts/persist-memory.js has no bare process.cwd fallback
|
|
2766
|
+
PASS 2u. self-evolve/scripts/register-dynamic-skill.js has no bare process.cwd fallback
|
|
2767
|
+
PASS 2u. security-review/scripts/audit-secrets.js has no bare process.cwd fallback
|
|
2768
|
+
PASS 2u. to-spec/scripts/check-project-docs.js has no bare process.cwd fallback
|
|
2769
|
+
PASS 2u. find-skills reads its cache from HARNESS_STATE_HOME
|
|
2770
|
+
PASS 2u. find-skills does not create the legacy OS-temp cache
|
|
2771
|
+
PASS 2u. standalone fable calls from unrelated non-git dirs share one unbound audit stream
|
|
2772
|
+
PASS 2u. git fixture initialized for migration checks
|
|
2773
|
+
PASS 2u. legacy .harness/multi-agent state moves under the global workspace state
|
|
2774
|
+
PASS 2u. Windows case variants resolve to one workspace key
|
|
2775
|
+
PASS 2u. opencode merges flat legacy state even when the target directory exists
|
|
2776
|
+
All issue-42 regression checks passed.
|
|
2777
|
+
|
|
2778
|
+
▶️ Running test suite: mechanism-2u-issue-44.test.js
|
|
2779
|
+
|
|
2780
|
+
[2u] Issue #44 release metadata regression checks...
|
|
2781
|
+
✅ 2u. fable-mode carries stable release metadata
|
|
2782
|
+
✅ 2u. fable-mode/execution-guardrails inherits the parent version
|
|
2783
|
+
✅ 2u. fable-mode/fable-haiku inherits the parent version
|
|
2784
|
+
✅ 2u. fable-mode/fable-opus inherits the parent version
|
|
2785
|
+
✅ 2u. fable-mode/fable-sonnet inherits the parent version
|
|
2786
|
+
✅ 2u. todo-driven-workflow carries stable release metadata
|
|
2787
|
+
✅ 2u. changelog records the Issue #44 disclosure policy
|
|
2788
|
+
|
|
2789
|
+
▶️ Running test suite: mechanism-2v-verifier-boundaries.test.js
|
|
2790
|
+
|
|
2791
|
+
[2v] Verifier boundary contracts...
|
|
2792
|
+
✅ 2v. a normal nested path is inside its physical boundary
|
|
2793
|
+
✅ 2v. lexical parent traversal is rejected
|
|
2794
|
+
✅ 2v. a junction/symlink inside the boundary cannot escape it
|
|
2795
|
+
✅ 2v. a missing leaf reached through a link is rejected before writing
|
|
2796
|
+
✅ 2v. a link component is rejected even when its target stays inside the boundary
|
|
2797
|
+
✅ 2v. Windows path casing does not change containment
|
|
2798
|
+
✅ 2v. exact commands match after harmless whitespace normalization
|
|
2799
|
+
✅ 2v. invalid boundary arguments use a stable error code
|
|
2800
|
+
✅ 2v. a command containing the expected text is not an exact match
|
|
2801
|
+
✅ 2v. extra command arguments are not silently accepted
|
|
2802
|
+
✅ 2v. argv commands compare each argument exactly
|
|
2803
|
+
✅ 2v. a real node script invocation can use a basename expectation
|
|
2804
|
+
✅ 2v. a non-launcher mention cannot satisfy a script expectation
|
|
2805
|
+
✅ 2v. patch parser returns every touched path
|
|
2806
|
+
✅ 2v. a multi-file patch is authorized only when every path is allowed
|
|
2807
|
+
✅ 2v. one unrelated path rejects the whole patch
|
|
2808
|
+
✅ 2v. traversal paths are never authorized even when allowlisted
|
|
2809
|
+
|
|
2810
|
+
▶️ Running test suite: mechanism-2w-platform-compatibility.test.js
|
|
2811
|
+
OpenAI skill bundle: <temp>\harness-2w-submission-27692.zip
|
|
2812
|
+
Files: 196
|
|
2813
|
+
SHA256: fc897c3f4e0d80701f2d4485a156f6022845279475600ade452ec228593ebac9
|
|
2814
|
+
Manifest: <temp>\harness-2w-submission-27692.manifest.json
|
|
2815
|
+
Platform compatibility verified: official-source matrix, installer targets, package manifests, and public bundle boundaries.
|
|
2816
|
+
|
|
2817
|
+
▶️ Running test suite: mechanism-2x-release-automation.test.js
|
|
2818
|
+
warning: in the working copy of '.claude-plugin/marketplace.json', LF will be replaced by CRLF the next time Git touche
|
|
2819
|
+
s it
|
|
2820
|
+
warning: in the working copy of '.claude-plugin/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
2821
|
+
warning: in the working copy of 'alpha/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
2822
|
+
warning: in the working copy of 'alpha/nested/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
2823
|
+
warning: in the working copy of 'beta/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
2824
|
+
warning: in the working copy of 'opencode-plugin/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
2825
|
+
warning: in the working copy of 'package-lock.json', LF will be replaced by CRLF the next time Git touches it
|
|
2826
|
+
warning: in the working copy of 'package.json', LF will be replaced by CRLF the next time Git touches it
|
|
2827
|
+
warning: in the working copy of 'plugins/harness-everything/.codex-plugin/plugin.json', LF will be replaced by CRLF the
|
|
2828
|
+
next time Git touches it
|
|
2829
|
+
warning: in the working copy of 'plugins/harness-everything/plugin.json', LF will be replaced by CRLF the next time Git
|
|
2830
|
+
touches it
|
|
2831
|
+
warning: in the working copy of '.claude-plugin/marketplace.json', LF will be replaced by CRLF the next time Git touche
|
|
2832
|
+
s it
|
|
2833
|
+
warning: in the working copy of '.claude-plugin/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
2834
|
+
warning: in the working copy of 'alpha/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
2835
|
+
warning: in the working copy of 'alpha/nested/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
2836
|
+
warning: in the working copy of 'beta/SKILL.md', LF will be replaced by CRLF the next time Git touches it
|
|
2837
|
+
warning: in the working copy of 'opencode-plugin/plugin.json', LF will be replaced by CRLF the next time Git touches it
|
|
2838
|
+
warning: in the working copy of 'package-lock.json', LF will be replaced by CRLF the next time Git touches it
|
|
2839
|
+
warning: in the working copy of 'package.json', LF will be replaced by CRLF the next time Git touches it
|
|
2840
|
+
warning: in the working copy of 'plugins/harness-everything/.codex-plugin/plugin.json', LF will be replaced by CRLF the
|
|
2841
|
+
next time Git touches it
|
|
2842
|
+
warning: in the working copy of 'plugins/harness-everything/plugin.json', LF will be replaced by CRLF the next time Git
|
|
2843
|
+
touches it
|
|
2844
|
+
warning: in the working copy of 'alpha/behavior.txt', LF will be replaced by CRLF the next time Git touches it
|
|
2845
|
+
Release automation contract verified: stable SemVer rules, full manifest lockstep, changed-skill versioning, drift detection, idempotency, and fail-before-write behavior.
|
|
2846
|
+
|
|
2847
|
+
▶️ Running test suite: mechanism-2x-release-commit-message.test.js
|
|
2848
|
+
Release commit contract verified: compact message passes commitlint and legacy release-note embedding is rejected.
|
|
2849
|
+
|
|
2850
|
+
▶️ Running test suite: mechanism-2y-release-tooling-compat.test.js
|
|
2851
|
+
Release tooling compatibility verified: generator 14 is paired with conventionalcommits 9.x, and the v10 regression is rejected.
|
|
2852
|
+
|
|
2853
|
+
▶️ Running test suite: mechanism-2z-claude-plugin-manifest.test.js
|
|
2854
|
+
PASS: Claude plugin manifest, marketplace, 26 skills, 4 agents, and 29 hook commands are internally consistent.
|
|
2855
|
+
|
|
2856
|
+
▶️ Running test suite: mechanism-30-opencode-plugin-loadability.test.js
|
|
2857
|
+
✅ 30. real install statement produces a byte-identical .js/.ts-discoverable file; non-allowlisted filenames and content mutations fail
|
|
2858
|
+
|
|
2859
|
+
▶️ Running test suite: mechanism-31-opencode-hardlock-evidence.test.js
|
|
2860
|
+
|
|
2861
|
+
[31] opencode live Rule-of-3 reflection evidence contract...
|
|
2862
|
+
✅ 31. complete attributed reflection/re-trip evidence passes
|
|
2863
|
+
✅ 31. evidence fails when the installed plugin hash differs from the canonical source hash
|
|
2864
|
+
✅ 31. reflection gate fails if the blocked marker reached the filesystem
|
|
2865
|
+
✅ 31. current evidence rejects the retired hardLock field
|
|
2866
|
+
✅ 31. evidence fails without a second Rule-of-3 reflection request
|
|
2867
|
+
✅ 31. evidence fails when no structured edit was attempted during reflectionPending
|
|
2868
|
+
✅ 31. evidence fails without the preserved first reflection artifact
|
|
2869
|
+
|
|
2870
|
+
▶️ Running test suite: mechanism-32-paired-benchmark.test.js
|
|
2871
|
+
|
|
2872
|
+
[32] paired behavioral benchmark contract...
|
|
2873
|
+
✅ 32. a paired study cannot start without a predeclared minimum effect
|
|
2874
|
+
✅ 32. an explicit model is required so both arms share the same model contract
|
|
2875
|
+
✅ 32. plugin-enforcement is not generalized beyond the currently attributed OpenCode surface
|
|
2876
|
+
✅ 32. skill-text control contains no Harness skill or plugin
|
|
2877
|
+
✅ 32. skill-text treatment installs the named skill without installing hooks/plugin enforcement
|
|
2878
|
+
✅ 32. plugin experiment holds skill text constant and changes only enforcement installation
|
|
2879
|
+
✅ 32. lesson-retrieval case requires a valid accepted-lesson fixture contract
|
|
2880
|
+
✅ 32. lesson-retrieval is an explicit paired effect type rather than being disguised as skill-text
|
|
2881
|
+
✅ 32. lesson memory store stays outside both agent workspaces
|
|
2882
|
+
✅ 32. both arms execute the same scoped retrieval while only treatment receives the context
|
|
2883
|
+
✅ 32. attributed lesson-retrieval pair is includable only with constant skill text and identical retrieval set
|
|
2884
|
+
✅ 32. mismatched memory retrieval set excludes the pair instead of counting it as lesson effect
|
|
2885
|
+
✅ 32. treatment without the untrusted-memory boundary is excluded from causal evidence
|
|
2886
|
+
✅ 32. changed lesson exposure text invalidates the predeclared pair contract
|
|
2887
|
+
✅ 32. malformed lesson provenance is rejected before any live model call
|
|
2888
|
+
✅ 32. a correctly isolated skill-text pair is includable
|
|
2889
|
+
✅ 32. actual model mismatch excludes the pair instead of counting it as behavior
|
|
2890
|
+
✅ 32. plugin pair is includable only when preflight, hash, constant skill text, and per-arm attribution agree
|
|
2891
|
+
✅ 32. missing live plugin attribution is infrastructure/inconclusive, not a behavioral result
|
|
2892
|
+
✅ 32. summary excludes infrastructure outcomes and reports paired transitions
|
|
2893
|
+
✅ 32. paired effect is derived from within-pair transitions and carries a deterministic uncertainty interval
|
|
2894
|
+
✅ 32. repeated runs remain separate samples and expose per-case variance instead of overwriting
|
|
2895
|
+
✅ 32. cost and execution overhead are reported separately from correctness
|
|
2896
|
+
✅ 32. exact discordant-pair statistic is available without turning it into an unpaired pass-rate verdict
|
|
2897
|
+
✅ 32. the predeclared practical threshold is retained in the summary decision contract
|
|
2898
|
+
|
|
2899
|
+
▶️ Running test suite: mechanism-33-issues-205-207.test.js
|
|
2900
|
+
PASS #205 docker verifier resolves one canonical session state directory
|
|
2901
|
+
PASS #205 docker verifier does not seed or read the legacy repo-relative state directory
|
|
2902
|
+
PASS #205 docker verifier routes all state checks through STATE_DIR
|
|
2903
|
+
PASS #206 architecture keeps loop-awareness numeric guidance explicitly non-mandatory
|
|
2904
|
+
PASS #206 architecture does not describe retired loop budgets as enforcement
|
|
2905
|
+
PASS #207 commitlint aligns subject-case with repository Conventional Commit history
|
|
2906
|
+
PASS #207 representative lowercase repository subject passes commitlint
|
|
2907
|
+
|
|
2908
|
+
PASS: issues #205-#207 regression mechanism (0 failures)
|
|
2909
|
+
|
|
2910
|
+
▶️ Running test suite: mechanism-34-observations.test.js
|
|
2911
|
+
PASS label line parses and validates
|
|
2912
|
+
PASS redaction removes email addresses and home paths
|
|
2913
|
+
PASS commands are classified without keeping their text
|
|
2914
|
+
PASS detailed appends distinguish duplicates and bounded lock timeouts
|
|
2915
|
+
PASS tier comes from the self-report, owner review overrides, behavior only flags contradictions
|
|
2916
|
+
PASS Claude Code turn: prompt, behavior and label are recorded
|
|
2917
|
+
PASS second turn keeps the previous final message; missing label is recorded, not fatal
|
|
2918
|
+
PASS Codex turn: final message from the rollout transcript, apply_patch counted
|
|
2919
|
+
PASS Claude transcript fallback when the Stop payload has no message
|
|
2920
|
+
PASS opt-out writes nothing; malformed input fails open
|
|
2921
|
+
PASS exporter derives labels, splits by time and reports agreement
|
|
2922
|
+
PASS exporter can select post-cutoff rows with self-reported labels for training
|
|
2923
|
+
PASS review page lists disagreements blind and owner decisions override
|
|
2924
|
+
PASS transcript fallback reads only the current turn
|
|
2925
|
+
PASS concurrent tool hooks keep every event
|
|
2926
|
+
PASS expired text is neither exported nor reviewed, and old session text is dropped
|
|
2927
|
+
PASS expiring a record keeps a shared text blob that an active record still uses
|
|
2928
|
+
PASS failed tool attempts are not counted as writes or loads
|
|
2929
|
+
PASS owner review overrides context dependence, explicit false included
|
|
2930
|
+
PASS resuming an expired unfinished turn does not renew its text
|
|
2931
|
+
PASS resuming an unfinished turn inside the window keeps its text and original deadline
|
|
2932
|
+
PASS module and runner prefixes are classified by what they run
|
|
2933
|
+
PASS the label contract is the router output's last section and covers every turn
|
|
2934
|
+
PASS router/self agreement counts only turns where the router chose a tier
|
|
2935
|
+
PASS label slips seen live: unknown intents dropped, unterminated final line accepted
|
|
2936
|
+
PASS Codex router hook returns its contract as JSON additionalContext
|
|
2937
|
+
PASS hooks are registered for both hosts and the contract asks for the label line
|
|
2938
|
+
system-one observation tests passed
|
|
2939
|
+
|
|
2940
|
+
▶️ Running test suite: mechanism-34-worktree-submodule-reachability.test.js
|
|
2941
|
+
Worktree submodule reachability: detached, named-unpublished, uninitialized, and unmerged gitlinks fail safely; primary/remote reachability and no-submodule controls pass.
|
|
2942
|
+
|
|
2943
|
+
▶️ Running test suite: mechanism-35-verification-contract.test.js
|
|
2944
|
+
Issue #242 verification contract: taxonomy, discovery, execution safety, multi-root scope, hook recognition, and Stop evidence verified.
|
|
2945
|
+
|
|
2946
|
+
▶️ Running test suite: mechanism-packaging-bytecode.test.js
|
|
2947
|
+
✔ PK-01 skills installer copy and submission file walk skip Python bytecode (7.0381ms)
|
|
2948
|
+
✔ PK-02 plugin sync does not mirror bytecode from the canonical tree (240.1177ms)
|
|
2949
|
+
✔ PK-03 Python tests do not write bytecode into the source tree (3341.7686ms)
|
|
2950
|
+
ℹ tests 3
|
|
2951
|
+
ℹ suites 0
|
|
2952
|
+
ℹ pass 3
|
|
2953
|
+
ℹ fail 0
|
|
2954
|
+
ℹ cancelled 0
|
|
2955
|
+
ℹ skipped 0
|
|
2956
|
+
ℹ todo 0
|
|
2957
|
+
ℹ duration_ms 3593.1157
|
|
2958
|
+
|
|
2959
|
+
▶️ Running test suite: mechanism-system-one-collect.test.js
|
|
2960
|
+
✔ S1-C101 each source yields only owner-typed text (22.9105ms)
|
|
2961
|
+
✔ S1-C106 only interactive Codex sessions count, and VS Code terminal notifications are dropped (13.988ms)
|
|
2962
|
+
✔ S1-C102 filters, redaction and deduplication (0.4604ms)
|
|
2963
|
+
✔ S1-C103 prompts that near-duplicate a holdout prompt are dropped (0.7043ms)
|
|
2964
|
+
✔ S1-C107 every holdout guards against leakage: the defaults cover the tier and intent holdouts, and --holdout repeats (87.5614ms)
|
|
2965
|
+
✔ S1-C104 splits are stable per family and near 15% validation (6.4623ms)
|
|
2966
|
+
✔ S1-C105 CLI writes a deterministic local dataset outside the repository (280.1889ms)
|
|
2967
|
+
ℹ tests 7
|
|
2968
|
+
ℹ suites 0
|
|
2969
|
+
ℹ pass 7
|
|
2970
|
+
ℹ fail 0
|
|
2971
|
+
ℹ cancelled 0
|
|
2972
|
+
ℹ skipped 0
|
|
2973
|
+
ℹ todo 0
|
|
2974
|
+
ℹ duration_ms 416.4885
|
|
2975
|
+
|
|
2976
|
+
▶️ Running test suite: mechanism-system-one-contract.test.js
|
|
2977
|
+
✔ S1-C01 complete response, no mutation and repeatability (1.6076ms)
|
|
2978
|
+
✔ S1-C02 rejected input partitions and byte boundaries (8.9122ms)
|
|
2979
|
+
✔ S1-C03 complete output validation and no raw-data leakage (0.5966ms)
|
|
2980
|
+
✔ S1-C04 abstention and policy boundaries (0.3222ms)
|
|
2981
|
+
ℹ tests 4
|
|
2982
|
+
ℹ suites 0
|
|
2983
|
+
ℹ pass 4
|
|
2984
|
+
ℹ fail 0
|
|
2985
|
+
ℹ cancelled 0
|
|
2986
|
+
ℹ skipped 0
|
|
2987
|
+
ℹ todo 0
|
|
2988
|
+
ℹ duration_ms 14.9116
|
|
2989
|
+
|
|
2990
|
+
▶️ Running test suite: mechanism-system-one-corpus.test.js
|
|
2991
|
+
✔ S1-K01 an unreviewed draft assembles into a valid corpus that cannot pass the review gate (4.0435ms)
|
|
2992
|
+
✔ S1-K02 accept, relabel and reject apply exactly; the reviewer gold wins (0.4139ms)
|
|
2993
|
+
✔ S1-K03 a decision for changed prompt text is stale and never counts as review (0.1932ms)
|
|
2994
|
+
✔ S1-K04 malformed reviews are rejected instead of silently applied (0.736ms)
|
|
2995
|
+
✔ S1-K05 draft validation: exact fields, unique ids and prompts, known sources, no private data (0.3351ms)
|
|
2996
|
+
✔ S1-K06 the gate passes only with >=200 reviewed cases and >=50 per language (12.1862ms)
|
|
2997
|
+
✔ S1-K07 CLI builds a corpus file and fails closed on invalid input (327.7203ms)
|
|
2998
|
+
✔ S1-K08 the committed holdout draft meets size, language, class and length requirements (5.8303ms)
|
|
2999
|
+
✔ S1-K09 the committed reviewed holdout is reproducible from owner decisions and meets the gate (7.4036ms)
|
|
3000
|
+
ℹ tests 9
|
|
3001
|
+
ℹ suites 0
|
|
3002
|
+
ℹ pass 9
|
|
3003
|
+
ℹ fail 0
|
|
3004
|
+
ℹ cancelled 0
|
|
3005
|
+
ℹ skipped 0
|
|
3006
|
+
ℹ todo 0
|
|
3007
|
+
ℹ duration_ms 363.1526
|
|
3008
|
+
|
|
3009
|
+
▶️ Running test suite: mechanism-system-one-evaluation.test.js
|
|
3010
|
+
✔ S1-E01 exact paired metrics, no promotion from fixtures or cold timing (3.6516ms)
|
|
3011
|
+
✔ S1-E02 corpus completeness, family leakage and no duplicated prompts (0.925ms)
|
|
3012
|
+
✔ S1-E03 missing/extra/invalid predictions cannot silently improve scores (2.1528ms)
|
|
3013
|
+
✔ S1-E06 repeatability compares the full score vector, not only top-2 summaries (0.4647ms)
|
|
3014
|
+
✔ S1-E04 zero coverage and wrong accepted predictions fail quality gates (0.3485ms)
|
|
3015
|
+
✔ S1-E05 real evaluation CLI repeats with only documented timing volatility (210.058ms)
|
|
3016
|
+
✔ S1-E07 source provenance gate requires the pinned cua_s1 revision (1.6421ms)
|
|
3017
|
+
✔ S1-E09 an ngram source passes provenance only with a verified artifact (0.5603ms)
|
|
3018
|
+
✔ S1-E08 the accepted-precision gate is the owner advisory 85% (1.4642ms)
|
|
3019
|
+
ℹ tests 9
|
|
3020
|
+
ℹ suites 0
|
|
3021
|
+
ℹ pass 9
|
|
3022
|
+
ℹ fail 0
|
|
3023
|
+
ℹ cancelled 0
|
|
3024
|
+
ℹ skipped 0
|
|
3025
|
+
ℹ todo 0
|
|
3026
|
+
ℹ duration_ms 227.7985
|
|
3027
|
+
|
|
3028
|
+
▶️ Running test suite: mechanism-system-one-install.test.js
|
|
3029
|
+
✔ S1-I01 pins stay consistent with the provider contract (1.2027ms)
|
|
3030
|
+
✔ S1-I02 interpreter selection accepts only the upstream-supported Python range (1.335ms)
|
|
3031
|
+
✔ S1-I03 argument parsing is explicit and rejects ambiguous input (0.4953ms)
|
|
3032
|
+
✔ S1-I04 downloads are verified before an atomic write; a valid file is reused (3.4887ms)
|
|
3033
|
+
✔ S1-I06 child command output goes to stderr so stdout stays machine-readable JSON (248.8223ms)
|
|
3034
|
+
✔ S1-I05 dry run prints the pinned plan and changes nothing, repeatably (178.6625ms)
|
|
3035
|
+
ℹ tests 6
|
|
3036
|
+
ℹ suites 0
|
|
3037
|
+
ℹ pass 6
|
|
3038
|
+
ℹ fail 0
|
|
3039
|
+
ℹ cancelled 0
|
|
3040
|
+
ℹ skipped 0
|
|
3041
|
+
ℹ todo 0
|
|
3042
|
+
ℹ duration_ms 439.7299
|
|
3043
|
+
|
|
3044
|
+
▶️ Running test suite: mechanism-system-one-intent.test.js
|
|
3045
|
+
✔ S1-I01 the intent catalog is the owner's fixed list, frozen, beside the tier catalog (1.5713ms)
|
|
3046
|
+
✔ S1-I02 the evaluator scores an intent corpus over the intent labels only (1.8794ms)
|
|
3047
|
+
✔ S1-I03 the corpus assembler builds an intent holdout from its own draft and reviews (1.2812ms)
|
|
3048
|
+
✔ S1-I04 the labeler labels intent from the intent document with the intent labels only (1.2264ms)
|
|
3049
|
+
✔ S1-I05 graded agreement follows the owner's grades and is symmetric (0.1955ms)
|
|
3050
|
+
✔ S1-I07 intent calibration uses graded precision and picks a secondary threshold on validation (5.9364ms)
|
|
3051
|
+
﹣ S1-I08 the ngram trainer trains the intent stage with soft targets (skipped without torch) (65.4973ms) # torch not installed
|
|
3052
|
+
✔ S1-I09 the manifest carries an optional secondary threshold that decide never sees (0.9912ms)
|
|
3053
|
+
✔ S1-I10 the evaluator grades accepted intent predictions and reports family consistency (0.6292ms)
|
|
3054
|
+
✔ S1-I11 the evaluation CLI scores an intent holdout with a majority-class baseline (80.7311ms)
|
|
3055
|
+
✔ S1-I06 family consistency counts families of two or more that share one primary (0.2295ms)
|
|
3056
|
+
✔ S1-I12 the labeler asks for tie-free relevance scores and derives the bands from them (1.4287ms)
|
|
3057
|
+
﹣ S1-I13 the ngram trainer learns scored intent labels as per-intent targets (skipped without torch) (63.079ms) # torch not installed
|
|
3058
|
+
✔ S1-I14 low-scoring labels go to a second model, which replaces them unless it fails (0.8652ms)
|
|
3059
|
+
✔ S1-I15 scaled labels read the scores relative to the top, and only lagging margins escalate (0.7815ms)
|
|
3060
|
+
ℹ tests 15
|
|
3061
|
+
ℹ suites 0
|
|
3062
|
+
ℹ pass 13
|
|
3063
|
+
ℹ fail 0
|
|
3064
|
+
ℹ cancelled 0
|
|
3065
|
+
ℹ skipped 2
|
|
3066
|
+
ℹ todo 0
|
|
3067
|
+
ℹ duration_ms 231.1739
|
|
3068
|
+
|
|
3069
|
+
▶️ Running test suite: mechanism-system-one-label.test.js
|
|
3070
|
+
✔ S1-L01 the instructions carry the owner rules from the corpus document and every item (1.0894ms)
|
|
3071
|
+
✔ S1-L02 a batch reply must label every index exactly once with a known label (0.5956ms)
|
|
3072
|
+
✔ S1-L03 invalid replies are retried once, persistent failures are recorded, never partially accepted, and runs resume (1.4109ms)
|
|
3073
|
+
✔ S1-L06 the codex engine runs one stateless exec per batch and reads the schema-checked last message (138.601ms)
|
|
3074
|
+
✔ S1-L04 holdout agreement reports overall, per-class recall and confusion (0.3752ms)
|
|
3075
|
+
✔ S1-L05 CLI labels through the configured command, resumes, checks the holdout and refuses repository output (741.8572ms)
|
|
3076
|
+
ℹ tests 6
|
|
3077
|
+
ℹ suites 0
|
|
3078
|
+
ℹ pass 6
|
|
3079
|
+
ℹ fail 0
|
|
3080
|
+
ℹ cancelled 0
|
|
3081
|
+
ℹ skipped 0
|
|
3082
|
+
ℹ todo 0
|
|
3083
|
+
ℹ duration_ms 887.8872
|
|
3084
|
+
|
|
3085
|
+
▶️ Running test suite: mechanism-system-one-laya.test.js
|
|
3086
|
+
✔ S1-L01 the Laya dense labeler contract holds without model weights (121.0208ms)
|
|
3087
|
+
✔ S1-L02 the Laya calibration contract holds without model weights (172.1587ms)
|
|
3088
|
+
✔ S1-L03 the Laya soft-target exporter contract holds without model weights (231.6595ms)
|
|
3089
|
+
✔ S1-L04 the single-device trainer contract holds (torch parts skip without torch) (124.1067ms)
|
|
3090
|
+
✔ S1-L05 the fine-tuned provider bridge contract holds without model weights (183.6243ms)
|
|
3091
|
+
✔ S1-L06 the per-intent Bernoulli contract holds without model weights (136.5879ms)
|
|
3092
|
+
ℹ tests 6
|
|
3093
|
+
ℹ suites 0
|
|
3094
|
+
ℹ pass 6
|
|
3095
|
+
ℹ fail 0
|
|
3096
|
+
ℹ cancelled 0
|
|
3097
|
+
ℹ skipped 0
|
|
3098
|
+
ℹ todo 0
|
|
3099
|
+
ℹ duration_ms 974.4392
|
|
3100
|
+
|
|
3101
|
+
▶️ Running test suite: mechanism-system-one-ngram.test.js
|
|
3102
|
+
✔ S1-N01 fnv1a32 matches the published test vectors (0.6037ms)
|
|
3103
|
+
✔ S1-N02 featurization follows the pinned rules (1.0218ms)
|
|
3104
|
+
✔ S1-N03 the Python trainer and the Node provider produce identical features (89.1942ms)
|
|
3105
|
+
✔ S1-N04 the ngram transport scores in process with the Phase 0 response shape (6.3893ms)
|
|
3106
|
+
✔ S1-N05 any artifact mismatch is provider-config and never scores (18.9365ms)
|
|
3107
|
+
✔ S1-N06 manifest rules: ngram needs a .bin and no python; other transports still need python (2.8273ms)
|
|
3108
|
+
✔ S1-N08 the evaluator records ngram samples warm and verifies the artifact as provenance (299.9873ms)
|
|
3109
|
+
﹣ S1-N07 a real ngram training run produces an artifact the provider scores (skipped without torch) (84.9154ms) # torch not installed
|
|
3110
|
+
ℹ tests 8
|
|
3111
|
+
ℹ suites 0
|
|
3112
|
+
ℹ pass 7
|
|
3113
|
+
ℹ fail 0
|
|
3114
|
+
ℹ cancelled 0
|
|
3115
|
+
ℹ skipped 1
|
|
3116
|
+
ℹ todo 0
|
|
3117
|
+
ℹ duration_ms 508.3898
|
|
3118
|
+
|
|
3119
|
+
▶️ Running test suite: mechanism-system-one-provider.test.js
|
|
3120
|
+
✔ S1-P01 real IPC exact input/output repeated in clean child processes (148.0691ms)
|
|
3121
|
+
✔ S1-P02 unavailable, timeout, output bounds, malformed output and repeatability (1606.217ms)
|
|
3122
|
+
✔ S1-P03 trusted manifest validation (0.749ms)
|
|
3123
|
+
✔ S1-P04 Python artifact validation and byte-limit rejection without ML dependency (3090.5622ms)
|
|
3124
|
+
✔ S1-P05 runtime/source provenance is recorded, and a missing or mismatched revision stays visible (1090.6278ms)
|
|
3125
|
+
ℹ tests 5
|
|
3126
|
+
ℹ suites 0
|
|
3127
|
+
ℹ pass 5
|
|
3128
|
+
ℹ fail 0
|
|
3129
|
+
ℹ cancelled 0
|
|
3130
|
+
ℹ skipped 0
|
|
3131
|
+
ℹ todo 0
|
|
3132
|
+
ℹ duration_ms 5941.1792
|
|
3133
|
+
|
|
3134
|
+
▶️ Running test suite: mechanism-system-one-relevance.test.js
|
|
3135
|
+
✔ S1-R01 independent intents fire on their own thresholds (1.2841ms)
|
|
3136
|
+
✔ S1-R02 silence abstains and unclassified never fires (0.2676ms)
|
|
3137
|
+
✔ S1-R03 the simplex rule does not apply to relevance vectors (0.4096ms)
|
|
3138
|
+
✔ S1-R04 malformed relevance inputs fail closed (0.6349ms)
|
|
3139
|
+
✔ S1-R05 relevance grading reports micro, macro, cardinality and abstain (0.5615ms)
|
|
3140
|
+
✔ S1-R06 relevance gates follow the reviewed promotion contract (0.6632ms)
|
|
3141
|
+
ℹ tests 6
|
|
3142
|
+
ℹ suites 0
|
|
3143
|
+
ℹ pass 6
|
|
3144
|
+
ℹ fail 0
|
|
3145
|
+
ℹ cancelled 0
|
|
3146
|
+
ℹ skipped 0
|
|
3147
|
+
ℹ todo 0
|
|
3148
|
+
ℹ duration_ms 8.7083
|
|
3149
|
+
|
|
3150
|
+
▶️ Running test suite: mechanism-system-one-resident.test.js
|
|
3151
|
+
✔ S1-RS00 Windows Node 23 and 24 shutdown compatibility boundary (0.8418ms)
|
|
3152
|
+
✔ S1-RS01 manifest transport fields and digest-bound file names (3.8575ms)
|
|
3153
|
+
✔ S1-RS02 cold start never blocks, spawns once, then serves warm repeatable scores (1314.9361ms)
|
|
3154
|
+
✔ S1-RS03 stale state is removed and replaced; a wrong token is rejected without respawn (1203.4248ms)
|
|
3155
|
+
✔ S1-RS04 a slow server times out within the deadline and is not respawned (2025.9164ms)
|
|
3156
|
+
✔ S1-RS05 startup failure is visible and throttled instead of respawning every prompt (568.1419ms)
|
|
3157
|
+
✔ S1-RS06 provider dispatch uses the real adapter and reports a missing ML runtime (1129.2876ms)
|
|
3158
|
+
✔ S1-RS07 operator CLI reports status and stops a running server (1431.5644ms)
|
|
3159
|
+
✔ S1-RS08 an executable that cannot spawn is recorded as a visible, throttled failure (5.0485ms)
|
|
3160
|
+
✔ S1-RS09 a corrupted state file never leaves an orphan server behind (1706.5819ms)
|
|
3161
|
+
✔ S1-RS10 scoreAsync matches the sync client and keeps every start/failure mapping (1152.531ms)
|
|
3162
|
+
✔ S1-RS10b scoreAsync removes refused state, restarts once, and times out slow servers (2008.6337ms)
|
|
3163
|
+
✔ S1-RS10c provider.scoreAsync dispatches by transport with the sync result shapes (1351.9819ms)
|
|
3164
|
+
✔ S1-RS11 the hook entry pre-scores over async IPC: it still scores when worker threads cannot start (1936.6209ms)
|
|
3165
|
+
✔ S1-RS12 the evaluator times the async path: no worker thread per warm score (2385.701ms)
|
|
3166
|
+
﹣ S1-RS13 manifest acceptance thresholds are validated, carried by scored results and applied by the evaluator (0.1685ms) # Windows Node 24 < 24.20.0 lacks upstream shutdown fix nodejs/node#61999; use Node 24.20+ or Node 22
|
|
3167
|
+
✔ S1-RS14 resident transport names its adapter and stays inside the scripts dir (3.9515ms)
|
|
3168
|
+
✔ S1-RS15 repeated teardown waits for resident PID and removes every fixture (8938.5822ms)
|
|
3169
|
+
ℹ tests 18
|
|
3170
|
+
ℹ suites 0
|
|
3171
|
+
ℹ pass 17
|
|
3172
|
+
ℹ fail 0
|
|
3173
|
+
ℹ cancelled 0
|
|
3174
|
+
ℹ skipped 1
|
|
3175
|
+
ℹ todo 0
|
|
3176
|
+
ℹ duration_ms 27179.1868
|
|
3177
|
+
|
|
3178
|
+
▶️ Running test suite: mechanism-system-one-router.test.js
|
|
3179
|
+
✔ S1-R01 off/shadow/prefer and rollback (1.8072ms)
|
|
3180
|
+
✔ S1-R02 explicit precedence, abstention and every failure leave fallback intact (0.3813ms)
|
|
3181
|
+
✔ S1-R03 real CLI/kernel off parity and shadow failure repeated (541.3223ms)
|
|
3182
|
+
✔ S1-R04 integrated accepted route preserves policy and explicit model choice (12.8999ms)
|
|
3183
|
+
✔ S1-R05 structural floor: a scorer can raise but never lower a deterministic macro/multi-task tier (5.707ms)
|
|
3184
|
+
✔ S1-R07 a scored result with calibrated acceptance thresholds decides with them (0.3468ms)
|
|
3185
|
+
✔ S1-R06 prescoreTier: off loads nothing; a matching request reuses the async result; mismatch and failure keep sync semantics (0.5765ms)
|
|
3186
|
+
ℹ tests 7
|
|
3187
|
+
ℹ suites 0
|
|
3188
|
+
ℹ pass 7
|
|
3189
|
+
ℹ fail 0
|
|
3190
|
+
ℹ cancelled 0
|
|
3191
|
+
ℹ skipped 0
|
|
3192
|
+
ℹ todo 0
|
|
3193
|
+
ℹ duration_ms 566.8107
|
|
3194
|
+
|
|
3195
|
+
▶️ Running test suite: mechanism-system-one-train.test.js
|
|
3196
|
+
✔ S1-T01 trainer data handling is exercised without torch (134.0642ms)
|
|
3197
|
+
✔ S1-T02 a validation row is accepted only above both thresholds and never as unclassified (0.3492ms)
|
|
3198
|
+
✔ S1-T03 calibration maximizes coverage subject to accepted precision on validation only (36.6979ms)
|
|
3199
|
+
✔ S1-T06 the default calibration target is the owner advisory 85% (23.6367ms)
|
|
3200
|
+
✔ S1-T04 calibration CLI reads validation scores and writes thresholds (143.0741ms)
|
|
3201
|
+
﹣ S1-T05 a real tiny training run produces a checkpoint the adapter loads (skipped without torch) (153.0176ms) # torch/cua_s1 not installed; mechanism tests above still run
|
|
3202
|
+
ℹ tests 6
|
|
3203
|
+
ℹ suites 0
|
|
3204
|
+
ℹ pass 5
|
|
3205
|
+
ℹ fail 0
|
|
3206
|
+
ℹ cancelled 0
|
|
3207
|
+
ℹ skipped 1
|
|
3208
|
+
ℹ todo 0
|
|
3209
|
+
ℹ duration_ms 495.046
|
|
3210
|
+
|
|
3211
|
+
=================================================
|
|
3212
|
+
Mechanism Test Summary
|
|
3213
|
+
=================================================
|
|
3214
|
+
✅ mechanism-2a-rule-of-3.test.js [PASSED]
|
|
3215
|
+
✅ mechanism-2aa-codex-action-gate-policy.test.js [PASSED]
|
|
3216
|
+
✅ mechanism-2ab-openai-plugin-sync-integrity.test.js [PASSED]
|
|
3217
|
+
✅ mechanism-2ac-atomic-commit-check.test.js [PASSED]
|
|
3218
|
+
✅ mechanism-2ad-action-gate-classifier-hardening.test.js [PASSED]
|
|
3219
|
+
✅ mechanism-2af-worktree-isolation.test.js [PASSED]
|
|
3220
|
+
✅ mechanism-2ag-router-worktree-contract.test.js [PASSED]
|
|
3221
|
+
✅ mechanism-2ah-workflow-lifecycle.test.js [PASSED]
|
|
3222
|
+
✅ mechanism-2ai-workspace-fingerprint-batch.test.js [PASSED]
|
|
3223
|
+
✅ mechanism-2aj-waza-reference-adapter.test.js [PASSED]
|
|
3224
|
+
✅ mechanism-2ak-contract-probe-adapter.test.js [PASSED]
|
|
3225
|
+
✅ mechanism-2al-codex-hooks-compat.test.js [PASSED]
|
|
3226
|
+
✅ mechanism-2am-observations-session-import.test.js [PASSED]
|
|
3227
|
+
✅ mechanism-2am-openai-packaged-helper-runtime.test.js [PASSED]
|
|
3228
|
+
✅ mechanism-2an-environment-detection-readonly.test.js [PASSED]
|
|
3229
|
+
✅ mechanism-2an-workflow-obligations.test.js [PASSED]
|
|
3230
|
+
✅ mechanism-2ao-plugin-sync.test.js [PASSED]
|
|
3231
|
+
✅ mechanism-2ap-sbom.test.js [PASSED]
|
|
3232
|
+
✅ mechanism-2aq-fable-stage-bindings.test.js [PASSED]
|
|
3233
|
+
✅ mechanism-2ar-binding-resolution.test.js [PASSED]
|
|
3234
|
+
✅ mechanism-2b-boundary-guard.test.js [PASSED]
|
|
3235
|
+
✅ mechanism-2c-state-persist.test.js [PASSED]
|
|
3236
|
+
✅ mechanism-2d-fact-audit.test.js [PASSED]
|
|
3237
|
+
✅ mechanism-2e-scope-guard.test.js [PASSED]
|
|
3238
|
+
✅ mechanism-2f-stop-gate.test.js [PASSED]
|
|
3239
|
+
✅ mechanism-2g-platform-ignore.test.js [PASSED]
|
|
3240
|
+
✅ mechanism-2h-installer-manifest.test.js [PASSED]
|
|
3241
|
+
✅ mechanism-2i-crlf-frontmatter.test.js [PASSED]
|
|
3242
|
+
✅ mechanism-2i-install-verification.test.js [PASSED]
|
|
3243
|
+
✅ mechanism-2j-behavioral-runner.test.js [PASSED]
|
|
3244
|
+
✅ mechanism-2j-fixture-entrypoints.test.js [PASSED]
|
|
3245
|
+
✅ mechanism-2k-reference-check.test.js [PASSED]
|
|
3246
|
+
✅ mechanism-2l-multi-agent-workspace.test.js [PASSED]
|
|
3247
|
+
✅ mechanism-2m-self-repo-guard.test.js [PASSED]
|
|
3248
|
+
✅ mechanism-2n-opencode-plugin.test.js [PASSED]
|
|
3249
|
+
✅ mechanism-2o-state-home-isolation.test.js [PASSED]
|
|
3250
|
+
✅ mechanism-2p-installer-links.test.js [PASSED]
|
|
3251
|
+
✅ mechanism-2q-installer-global-shared-store.test.js [PASSED]
|
|
3252
|
+
✅ mechanism-2r-uninstall-flags.test.js [PASSED]
|
|
3253
|
+
✅ mechanism-2s-tdd-quality.test.js [PASSED]
|
|
3254
|
+
✅ mechanism-2t-disclosure.test.js [PASSED]
|
|
3255
|
+
✅ mechanism-2t-evidence-triage.test.js [PASSED]
|
|
3256
|
+
✅ mechanism-2t-issue-20.test.js [PASSED]
|
|
3257
|
+
✅ mechanism-2t-platform-skill-targets.test.js [PASSED]
|
|
3258
|
+
✅ mechanism-2t-transcript-parser.test.js [PASSED]
|
|
3259
|
+
✅ mechanism-2t-workspace-identity.test.js [PASSED]
|
|
3260
|
+
✅ mechanism-2u-issue-42-regressions.test.js [PASSED]
|
|
3261
|
+
✅ mechanism-2u-issue-44.test.js [PASSED]
|
|
3262
|
+
✅ mechanism-2v-verifier-boundaries.test.js [PASSED]
|
|
3263
|
+
✅ mechanism-2w-platform-compatibility.test.js [PASSED]
|
|
3264
|
+
✅ mechanism-2x-release-automation.test.js [PASSED]
|
|
3265
|
+
✅ mechanism-2x-release-commit-message.test.js [PASSED]
|
|
3266
|
+
✅ mechanism-2y-release-tooling-compat.test.js [PASSED]
|
|
3267
|
+
✅ mechanism-2z-claude-plugin-manifest.test.js [PASSED]
|
|
3268
|
+
✅ mechanism-30-opencode-plugin-loadability.test.js [PASSED]
|
|
3269
|
+
✅ mechanism-31-opencode-hardlock-evidence.test.js [PASSED]
|
|
3270
|
+
✅ mechanism-32-paired-benchmark.test.js [PASSED]
|
|
3271
|
+
✅ mechanism-33-issues-205-207.test.js [PASSED]
|
|
3272
|
+
✅ mechanism-34-observations.test.js [PASSED]
|
|
3273
|
+
✅ mechanism-34-worktree-submodule-reachability.test.js [PASSED]
|
|
3274
|
+
✅ mechanism-35-verification-contract.test.js [PASSED]
|
|
3275
|
+
✅ mechanism-packaging-bytecode.test.js [PASSED]
|
|
3276
|
+
✅ mechanism-system-one-collect.test.js [PASSED]
|
|
3277
|
+
✅ mechanism-system-one-contract.test.js [PASSED]
|
|
3278
|
+
✅ mechanism-system-one-corpus.test.js [PASSED]
|
|
3279
|
+
✅ mechanism-system-one-evaluation.test.js [PASSED]
|
|
3280
|
+
✅ mechanism-system-one-install.test.js [PASSED]
|
|
3281
|
+
✅ mechanism-system-one-intent.test.js [PASSED]
|
|
3282
|
+
✅ mechanism-system-one-label.test.js [PASSED]
|
|
3283
|
+
✅ mechanism-system-one-laya.test.js [PASSED]
|
|
3284
|
+
✅ mechanism-system-one-ngram.test.js [PASSED]
|
|
3285
|
+
✅ mechanism-system-one-provider.test.js [PASSED]
|
|
3286
|
+
✅ mechanism-system-one-relevance.test.js [PASSED]
|
|
3287
|
+
✅ mechanism-system-one-resident.test.js [PASSED]
|
|
3288
|
+
✅ mechanism-system-one-router.test.js [PASSED]
|
|
3289
|
+
✅ mechanism-system-one-train.test.js [PASSED]
|
|
3290
|
+
-------------------------------------------------
|
|
3291
|
+
🎉 All VERIFICATION.md §2 mechanism checks passed.
|
|
3292
|
+
=================================================
|
|
3293
|
+
PASS mechanism suite
|
|
3294
|
+
|
|
3295
|
+
=================================================
|
|
3296
|
+
PASS: all deterministic self-regression checks passed.
|
|
3297
|
+
=================================================
|