harness-everything 0.11.6 → 0.12.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/CHANGELOG.md +45 -0
- package/README.md +7 -3
- package/behavioral-evals/README.md +37 -0
- package/behavioral-evals/cases/self-evolve-retrieval-recurrence.yaml +48 -0
- package/behavioral-evals/paired-benchmark.js +211 -5
- package/ci/contract-integrity.test.js +68 -2
- package/ci/mechanism-2a-rule-of-3.test.js +71 -0
- package/ci/mechanism-2ah-workflow-lifecycle.test.js +276 -0
- package/ci/mechanism-2c-state-persist.test.js +45 -2
- package/ci/mechanism-2t-issue-20.test.js +0 -8
- package/ci/mechanism-30-opencode-plugin-loadability.test.js +39 -7
- package/ci/mechanism-32-paired-benchmark.test.js +139 -0
- package/ci/openai-plugin-package.test.js +17 -0
- package/ci/self-evolve-loop.test.js +37 -2
- package/ci/telemetry.test.js +31 -1
- package/docs/architecture.md +17 -0
- package/docs/audit.md +52 -5
- package/docs/release-evidence.md +3 -0
- package/docs/workflow-runtime.md +13 -0
- package/docs/workflows/environment-detection.md +47 -37
- package/docs/workflows/eval-harness.md +45 -38
- package/docs/workflows/fable-discipline.md +45 -33
- package/docs/workflows/git-commit.md +53 -45
- package/docs/workflows/grill-me.md +36 -38
- package/docs/workflows/grill-with-docs.md +36 -46
- package/docs/workflows/harness-everything.md +59 -57
- package/docs/workflows/improve-codebase-architecture.md +36 -44
- package/docs/workflows/install-cognitive-os.md +36 -29
- package/docs/workflows/repo-docs.md +29 -40
- package/docs/workflows/rewrite-commits.md +40 -36
- package/docs/workflows/security-review.md +34 -53
- package/docs/workflows/skill-creator.md +39 -56
- package/docs/workflows/skill-style.md +35 -40
- package/docs/workflows/using-git-worktrees.md +40 -44
- package/docs/workflows/verification-loop.md +43 -48
- package/docs/workflows/verify-before-claim.md +37 -40
- package/docs/workflows/zoom-out.md +39 -51
- package/grill-with-docs/ADR-FORMAT.md +22 -0
- package/grill-with-docs/SKILL.md +1 -1
- package/harness-everything/SKILL.md +1 -1
- package/harness-everything/scripts/kernel-router.js +38 -10
- package/hooks/scripts/lib/learning-opportunity.js +22 -0
- package/hooks/scripts/lib/telemetry.js +40 -0
- package/hooks/scripts/lib/workflow-isolation.js +30 -1
- package/hooks/scripts/lib/workflow-runtime.js +18 -1
- package/hooks/scripts/rule-of-3-tracker.js +17 -9
- package/hooks/scripts/state-persist.js +19 -7
- package/hooks/scripts/workflow-disposition.js +19 -8
- package/hooks/scripts/workflow-gate.js +21 -4
- package/multi-agent-workspace/SKILL.md +1 -1
- package/multi-agent-workspace/scripts/index_memory.js +28 -0
- 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/contract-integrity/scripts/audit.js +536 -0
- package/plugins/harness-everything/hooks/scripts/lib/learning-opportunity.js +22 -0
- package/plugins/harness-everything/hooks/scripts/lib/telemetry.js +40 -0
- package/plugins/harness-everything/hooks/scripts/lib/workflow-isolation.js +30 -1
- package/plugins/harness-everything/hooks/scripts/lib/workflow-runtime.js +18 -1
- package/plugins/harness-everything/hooks/scripts/rule-of-3-tracker.js +17 -9
- package/plugins/harness-everything/hooks/scripts/state-persist.js +19 -7
- package/plugins/harness-everything/hooks/scripts/workflow-disposition.js +19 -8
- package/plugins/harness-everything/hooks/scripts/workflow-gate.js +21 -4
- package/plugins/harness-everything/plugin.json +1 -1
- package/plugins/harness-everything/skills/grill-with-docs/ADR-FORMAT.md +22 -0
- package/plugins/harness-everything/skills/grill-with-docs/SKILL.md +1 -1
- package/plugins/harness-everything/skills/harness-everything/SKILL.md +1 -1
- package/plugins/harness-everything/skills/harness-everything/scripts/kernel-router.js +38 -10
- package/plugins/harness-everything/skills/multi-agent-workspace/SKILL.md +1 -1
- package/plugins/harness-everything/skills/multi-agent-workspace/scripts/index_memory.js +28 -0
- package/plugins/harness-everything/skills/self-evolve/SKILL.md +1 -1
- package/plugins/harness-everything/skills/self-evolve/scripts/lesson-candidate.js +52 -0
- package/plugins/harness-everything/skills/to-spec/SKILL.md +1 -1
- package/plugins/harness-everything/skills/to-spec/references/process.md +26 -0
- package/plugins/harness-everything/skills/to-spec/templates/cli-reference.md +14 -0
- package/plugins/harness-everything/skills/to-spec/templates/dev-doc.md +14 -0
- package/plugins/harness-everything/skills/to-spec/templates/feature-spec.md +14 -0
- package/plugins/harness-everything/skills/to-spec/templates/schema-doc.md +14 -0
- package/plugins/harness-everything/skills/to-tickets/SKILL.md +1 -1
- package/plugins/harness-everything/skills/to-tickets/references/publishing-and-templates.md +20 -1
- package/plugins/harness-everything/skills/verification-loop/SKILL.md +3 -2
- package/plugins/harness-everything/skills/verification-loop/references/verification-phases.md +25 -1
- package/plugins/harness-everything/skills/verification-loop/scripts/contract-integrity-audit.js +31 -0
- package/plugins/harness-everything/skills/verification-loop/templates/verification-report.template.md +3 -0
- package/scripts/sync-openai-plugin.js +12 -0
- package/self-evolve/SKILL.md +1 -1
- package/self-evolve/scripts/lesson-candidate.js +52 -0
- package/telemetry/schemas/event.schema.json +141 -22
- package/telemetry/scripts/report.js +42 -0
- package/to-spec/SKILL.md +1 -1
- package/to-spec/references/process.md +26 -0
- package/to-spec/templates/cli-reference.md +14 -0
- package/to-spec/templates/dev-doc.md +14 -0
- package/to-spec/templates/feature-spec.md +14 -0
- package/to-spec/templates/schema-doc.md +14 -0
- package/to-tickets/SKILL.md +1 -1
- package/to-tickets/references/publishing-and-templates.md +20 -1
- package/verification-loop/SKILL.md +3 -2
- package/verification-loop/references/verification-phases.md +25 -1
- package/verification-loop/scripts/contract-integrity-audit.js +31 -0
- package/verification-loop/templates/verification-report.template.md +3 -0
- package/docs/issue-20-rollup.md +0 -47
- package/docs/reviews/pr-142-issue-131.md +0 -89
|
@@ -56,4 +56,18 @@ A description of the things that are out of scope for this spec.
|
|
|
56
56
|
|
|
57
57
|
Any further notes about the feature.
|
|
58
58
|
|
|
59
|
+
## Contract Requirements
|
|
60
|
+
|
|
61
|
+
For every normative behavior this document owns, assign a stable requirement identity:
|
|
62
|
+
|
|
63
|
+
```md
|
|
64
|
+
### REQ-001 — <short behavior name>
|
|
65
|
+
**Status:** CURRENT
|
|
66
|
+
**Revision:** 1
|
|
67
|
+
**Decision lineage:** ADR-0001 (or None)
|
|
68
|
+
<observable behavior / acceptance boundary>
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Do not recycle requirement IDs. When approved behavior changes, increment the revision and reconcile the living spec before implementation completion.
|
|
72
|
+
|
|
59
73
|
</spec-template>
|
|
@@ -28,4 +28,18 @@ What breaks for existing consumers, if anything, and what the mitigation is (dua
|
|
|
28
28
|
|
|
29
29
|
One realistic, complete example instance of the schema.
|
|
30
30
|
|
|
31
|
+
## Contract Requirements
|
|
32
|
+
|
|
33
|
+
For every normative schema behavior this document owns, assign a stable requirement identity:
|
|
34
|
+
|
|
35
|
+
```md
|
|
36
|
+
### REQ-001 — <short behavior name>
|
|
37
|
+
**Status:** CURRENT
|
|
38
|
+
**Revision:** 1
|
|
39
|
+
**Decision lineage:** ADR-0001 (or None)
|
|
40
|
+
<observable validation, compatibility, or migration contract>
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Do not recycle requirement IDs. A changed schema/validation contract increments the revision before implementation completion.
|
|
44
|
+
|
|
31
45
|
</spec-template>
|
package/to-tickets/SKILL.md
CHANGED
|
@@ -48,6 +48,19 @@ Give each ticket its **blocking edges** — the other tickets that must complete
|
|
|
48
48
|
|
|
49
49
|
**Wide refactors are the exception to vertical slicing.** A **wide refactor** is one mechanical change — rename a column, retype a shared symbol — whose **blast radius** fans across the whole codebase, so a single edit breaks thousands of call sites at once and no vertical slice can land green. Don't force it into a tracer bullet; sequence it as **expand–contract**. First expand: add the new form beside the old so nothing breaks. Then migrate the call sites over in batches sized by blast radius (per package, per directory), each batch its own ticket blocked by the expand, keeping CI green batch to batch because the old form still exists. Finally contract: delete the old form once no caller remains, in a ticket blocked by every migrate batch. When even the batches can't stay green alone, keep the sequence but let them share an integration branch that all block a final integrate-and-verify ticket — green is promised only there.
|
|
50
50
|
|
|
51
|
+
# Contract lineage and change impact
|
|
52
|
+
|
|
53
|
+
When a ticket comes from an authoritative spec, it must carry the exact source requirement identity and revision. A ticket may refine implementation scope, but it never silently rewrites the approved contract.
|
|
54
|
+
|
|
55
|
+
Every ticket must classify its impact:
|
|
56
|
+
|
|
57
|
+
- **none** — bookkeeping/non-behavioral work; explain why no contract changes.
|
|
58
|
+
- **implementation** — implementation changes while approved behavior and architectural rationale stay unchanged.
|
|
59
|
+
- **behavior** — caller/user-visible behavior changes. Update the living spec requirement and revision first, then obtain requirement-linked RED evidence before accepting implementation.
|
|
60
|
+
- **architecture** — a hard-to-reverse decision/rationale changes. Publish a new/superseding ADR, update the living spec requirement/revision, then obtain RED evidence.
|
|
61
|
+
|
|
62
|
+
If the impact classification changes during implementation, stop treating the original ticket as completion authority. Reconcile the source artifacts first, then update the ticket's source revision.
|
|
63
|
+
|
|
51
64
|
# Ticket Templates
|
|
52
65
|
|
|
53
66
|
<local-ticket-template>
|
|
@@ -58,9 +71,15 @@ Give each ticket its **blocking edges** — the other tickets that must complete
|
|
|
58
71
|
|
|
59
72
|
**Blocked by:** the numbers/titles of the tickets that gate this one, or "None — can start immediately".
|
|
60
73
|
|
|
74
|
+
**Source requirements:** `REQ-001@rev1` (add every requirement this ticket changes or proves).
|
|
75
|
+
|
|
76
|
+
**Change impact:** `none | implementation | behavior | architecture`
|
|
77
|
+
|
|
78
|
+
**Impact rationale:** one sentence explaining why this classification is correct.
|
|
79
|
+
|
|
61
80
|
**Status:** ready-for-agent
|
|
62
81
|
|
|
63
|
-
- [ ] Acceptance criterion 1
|
|
82
|
+
- [ ] [REQ-001] Acceptance criterion 1
|
|
64
83
|
- [ ] Acceptance criterion 2
|
|
65
84
|
|
|
66
85
|
</local-ticket-template>
|
|
@@ -4,7 +4,7 @@ description: "Run objective verification gates (build, types, lint, tests, secur
|
|
|
4
4
|
license: Apache-2.0
|
|
5
5
|
metadata:
|
|
6
6
|
author: Miya Daniel
|
|
7
|
-
version: 0.
|
|
7
|
+
version: 0.12.0
|
|
8
8
|
---
|
|
9
9
|
|
|
10
10
|
# Verification Loop
|
|
@@ -41,6 +41,7 @@ and rerun from the first affected gate.
|
|
|
41
41
|
4. Tests and coverage: `npm run test -- --coverage`.
|
|
42
42
|
5. Security scan: secrets and stray logs.
|
|
43
43
|
6. Diff review: `git diff --stat` and unintended-change checks.
|
|
44
|
-
7.
|
|
44
|
+
7. Contract reconciliation when the work cites `REQ-*` / ADR/spec/ticket lineage or a contract-integrity trace exists: run the strict `<this-skill-dir>/scripts/contract-integrity-audit.js` gate with current #58 evidence. `AUDIT`, `NOT_EVALUATED`, stale source binding, or drift is **not ready** for delivery.
|
|
45
|
+
8. Fill `<this-skill-dir>/templates/verification-report.template.md` with evidence.
|
|
45
46
|
|
|
46
47
|
Deep dive: `<this-skill-dir>/references/verification-phases.md`
|
|
@@ -10,8 +10,14 @@ flowchart TD
|
|
|
10
10
|
Lint --> Test[4. Phase 4: Test Suite Execution]
|
|
11
11
|
Test --> Security[5. Phase 5: Security & Secret Scan]
|
|
12
12
|
Security --> Diff[6. Phase 6: Diff Review]
|
|
13
|
+
Diff --> Contract{7. Contract lineage applicable?}
|
|
14
|
+
Contract -- Yes --> Reconcile[Run contract-integrity strict reconciliation]
|
|
15
|
+
Contract -- No --> CheckScript
|
|
16
|
+
Reconcile --> ContractResult{PASS?}
|
|
17
|
+
ContractResult -- No --> Fix
|
|
18
|
+
ContractResult -- Yes --> CheckScript
|
|
13
19
|
|
|
14
|
-
Diff --> CheckScript{
|
|
20
|
+
Diff --> CheckScript{8. Is verify-gate.js / Template Available?}
|
|
15
21
|
|
|
16
22
|
CheckScript -- Yes --> RunScript[Run harness-everything/scripts/verify-gate.js / Fill verification-report.template.md]
|
|
17
23
|
CheckScript -- No --> DirectReport[Output Verification Report Inline in Response]
|
|
@@ -93,6 +99,24 @@ Review each changed file for:
|
|
|
93
99
|
- Missing error handling
|
|
94
100
|
- Potential edge cases
|
|
95
101
|
|
|
102
|
+
## Phase 7: Contract Reconciliation
|
|
103
|
+
|
|
104
|
+
This phase is applicable when any of the following is true:
|
|
105
|
+
|
|
106
|
+
- the task/spec/ticket cites stable `REQ-*` identities;
|
|
107
|
+
- an ADR/spec/ticket change is classified as `behavior` or `architecture`;
|
|
108
|
+
- the project has a contract-integrity trace for the affected scope.
|
|
109
|
+
|
|
110
|
+
Use the current trace plus current #58 TDD evidence:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
node "<this-skill-dir>/scripts/contract-integrity-audit.js" <trace.json> --tdd-evidence <tdd-evidence.json> --output <report.json> --markdown <report.md>
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Delivery requires strict **PASS**. Treat `FAIL`, `AUDIT`, `NOT_EVALUATED`, source conflicts/defects, stale spec/test/implementation lineage, surviving required probes, and audit-only output as **NOT READY**. Do not downgrade the gate merely because build/tests are otherwise green.
|
|
117
|
+
|
|
118
|
+
If this phase is not applicable, record `NOT_APPLICABLE` with a one-line reason. Never use `NOT_APPLICABLE` to hide known requirement lineage.
|
|
119
|
+
|
|
96
120
|
## Output Format
|
|
97
121
|
|
|
98
122
|
After running all phases, fill in `verification-loop/templates/verification-report.template.md` with the actual results and present it.
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
const fs = require('fs');
|
|
5
|
+
const path = require('path');
|
|
6
|
+
|
|
7
|
+
function resolveAuditRuntime() {
|
|
8
|
+
const candidates = [
|
|
9
|
+
path.resolve(__dirname, '../../contract-integrity/scripts/audit.js'),
|
|
10
|
+
path.resolve(__dirname, '../../../contract-integrity/scripts/audit.js'),
|
|
11
|
+
];
|
|
12
|
+
for (const candidate of candidates) {
|
|
13
|
+
if (fs.existsSync(candidate)) return candidate;
|
|
14
|
+
}
|
|
15
|
+
throw new Error('contract-integrity audit runtime is not packaged with this verification-loop installation');
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
function main() {
|
|
19
|
+
try {
|
|
20
|
+
const target = resolveAuditRuntime();
|
|
21
|
+
const { runCli } = require(target);
|
|
22
|
+
if (typeof runCli !== 'function') throw new Error('contract-integrity audit runtime does not export runCli');
|
|
23
|
+
process.exitCode = runCli([process.execPath, target, ...process.argv.slice(2)]);
|
|
24
|
+
} catch (error) {
|
|
25
|
+
console.error('[Verification Contract Gate] ' + error.message);
|
|
26
|
+
process.exitCode = 2;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
if (require.main === module) main();
|
|
31
|
+
module.exports = { resolveAuditRuntime };
|
|
@@ -7,6 +7,9 @@ Lint: [PASS/FAIL] (X warnings)
|
|
|
7
7
|
Tests: [PASS/FAIL] (X/Y passed, Z% coverage)
|
|
8
8
|
Security: [PASS/FAIL] (X issues)
|
|
9
9
|
Diff: [X files changed]
|
|
10
|
+
Contract: [PASS/FAIL/NOT_APPLICABLE] (REQ IDs / trace report / reason)
|
|
11
|
+
Strict PASS required when contract lineage is applicable.
|
|
12
|
+
AUDIT or NOT_EVALUATED is NOT READY.
|
|
10
13
|
|
|
11
14
|
Overall: [READY/NOT READY] for PR
|
|
12
15
|
|
package/docs/issue-20-rollup.md
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# Issue #20 umbrella rollup
|
|
2
|
-
|
|
3
|
-
This rollup turns issue #20's historical checklist into bounded acceptance decisions. The review snapshot is `main` at `ba7853b`, checked on 2026-09-07. The umbrella owns coordination and release evidence; implementation details remain with the linked issue.
|
|
4
|
-
|
|
5
|
-
## Closure status
|
|
6
|
-
|
|
7
|
-
Issue #20 remains open after this PR. This branch adds deterministic parser,
|
|
8
|
-
collision-gate, plugin-runner, and negative-control coverage, but it does not
|
|
9
|
-
provide live opencode session evidence, a paid behavioral rerun, the proposed
|
|
10
|
-
100-case study, or the three skill-specific improvements below. Those gaps are
|
|
11
|
-
recorded explicitly rather than treated as closed by the deterministic gates.
|
|
12
|
-
|
|
13
|
-
## Workstream decisions
|
|
14
|
-
|
|
15
|
-
| Workstream | Evidence in the review snapshot | Acceptance state | Remaining claim boundary |
|
|
16
|
-
| --- | --- | --- | --- |
|
|
17
|
-
| #37 opencode enforcement | The real plugin API is implemented and mechanism coverage exists in `ci/mechanism-2n-opencode-plugin.test.js`; the integrated reflection lifecycle is `d790e7f` on the integration branch. | Integrated, pending final integration gates | No live opencode loading or session smoke evidence was available; do not claim live enforcement. |
|
|
18
|
-
| #52 behavioral transcript parsing | Claude stream fixtures and parser coverage are integrated in `77efb06`; deterministic parser tests are available. | Integrated, pending final integration gates | No new paid behavioral rerun is part of this umbrella. Parse failures and missing tool visibility remain evidence states, not skill failures. |
|
|
19
|
-
| Systematic gate hardening | The local gates now execute real negative controls; YAML frontmatter parsing fails closed in `ci/description-collision.js`, `ci/routing-check.js` skips clearly when waza is absent, and `ci/mechanism-2t-issue-20.test.js` covers CRLF behavioral parsing and plugin validation. | Deterministic hardening integrated | Live platform loading and model behavior remain unverified. |
|
|
20
|
-
| #42 workspace identity and migration | Workspace-keyed state and migration coverage are integrated in `9dd2e3d`; the issue review identified session and migration acceptance as the relevant boundary. | Integrated, pending final integration gates | Do not claim every host/session migration path is live verified until the integration gate and targeted fixtures pass. |
|
|
21
|
-
| #43 multi-agent workspace layout | The reviewed plan makes its root contract depend on #42. No implementation commit was present in the issue #20 review snapshot. | Deferred to its owner | Do not duplicate its layout or runtime work in this umbrella. |
|
|
22
|
-
| #44 progressive disclosure | Documentation and reference checks are integrated in `b33f598`; `ci/disclosure-check.js` and its mechanism coverage are present. | Integrated, pending final integration gates | This records repository documentation evidence; it does not establish behavioral-model effectiveness. |
|
|
23
|
-
| #56 behavioral rubric triage | The review found grader/source-boundary issues, including `command_exit_0` proving the grader command rather than the agent action. | Deferred to its owner | Do not reuse the historical pass-rate claims until the rubric and trace evidence are corrected. |
|
|
24
|
-
| Extended 100-case study | The original issue proposed 100 cases, but the review did not establish a decision threshold or clean attribution between skill text, plugin enforcement, and grader behavior. | Explicitly deferred | No uncontrolled 100-case run is authorized by this rollup. Define paired design, failure taxonomy, and decision rule first. |
|
|
25
|
-
| Five historical baseline failures | The committed 2026-08-27 records show one failed expectation in each of `baseline-debugging` (edge-case consideration), `baseline-performance` (binary-search suggestion), `baseline-security-review` (MD5 identification), `baseline-simple-bugfix` (function understanding), and `verify-before-done` (verification actually run). | Explicitly deferred | These are historical observations, not a new causal investigation or rerun; do not claim they were fixed by this PR. |
|
|
26
|
-
| Skill-specific improvements | No targeted changes were made to `verification-loop`, `zoom-out`, or `security-review` in this branch. | Explicitly deferred | Strengthening verification enforcement, reflection-report detection, and vulnerability detection requires separate design and behavioral evidence. |
|
|
27
|
-
| Release | The tag-triggered full gate and provenance publish workflow already exists. Historical `0.3.6` evidence is recorded in [docs/release-evidence.md](release-evidence.md). | Documentation complete; next release unproven | A prepared `0.3.7-beta` version is not evidence of a tag, npm publication, or GitHub release. |
|
|
28
|
-
|
|
29
|
-
## Focused acceptance checks
|
|
30
|
-
|
|
31
|
-
The integration owner should run these checks after incorporating the issue branches:
|
|
32
|
-
|
|
33
|
-
```text
|
|
34
|
-
npm test
|
|
35
|
-
npm run test:mechanism
|
|
36
|
-
npm run test:consistency
|
|
37
|
-
npm run test:references
|
|
38
|
-
npm run test:release
|
|
39
|
-
npm run test:collision
|
|
40
|
-
npm run test:routing:skills
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
The checks establish deterministic repository and routing health. They do not substitute for live opencode loading, a paid behavioral run, or npm/GitHub release evidence. Those claims require the artifacts named in [RELEASING.md](../RELEASING.md) and [docs/release-evidence.md](release-evidence.md).
|
|
44
|
-
|
|
45
|
-
## Historical evidence boundary
|
|
46
|
-
|
|
47
|
-
The local review artifact `.git/issue-review-20260907/release-evidence.md` records a successful `0.3.6` workflow (`33466676632`) and npm observation. It explicitly says that this is not proof of a `0.3.7-beta` release. This rollup preserves that distinction so an old successful release cannot be mistaken for current publication evidence.
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# PR #142 / issue #131 completion review
|
|
2
|
-
|
|
3
|
-
This review covers the implementation in the commit containing this report,
|
|
4
|
-
starting from PR head `8b99baec44745e171f078fe9eb3dac6fd812b5c8`. It evaluates
|
|
5
|
-
Harness engineering and the latest #131 decision, including mandatory mutation
|
|
6
|
-
isolation. It is not a measured agent-performance benchmark.
|
|
7
|
-
|
|
8
|
-
## Findings resolved
|
|
9
|
-
|
|
10
|
-
| Original gap | Delivered behavior | Regression evidence |
|
|
11
|
-
| --- | --- | --- |
|
|
12
|
-
| Escape changed the whole workflow state and skipped isolation | Stage-scoped escape; isolation survives legacy escape and blocked states | `mechanism-2af-worktree-isolation.test.js`, `mechanism-2ah-workflow-lifecycle.test.js` |
|
|
13
|
-
| Only cwd was checked | Registered linked checkout of the bound repo; direct/patch targets, move destinations, traversal, and links checked | `mechanism-2af-worktree-isolation.test.js` |
|
|
14
|
-
| Windows runner used 8.3 paths while Git reported long names | Native physical-path resolution equates both spellings without relaxing isolation | Windows path regression and worktree suites |
|
|
15
|
-
| Read-only shell prefixes accepted writes | Reject redirects, substitutions, chained commands and dangerous options; require isolated cwd for mutation/unknown commands | `mechanism-2af-worktree-isolation.test.js` |
|
|
16
|
-
| Next prompt erased unresolved obligations | Stable workflow identity across steering prompts; stronger route requires replan | `mechanism-2ah-workflow-lifecycle.test.js` |
|
|
17
|
-
| Same strategy/timestamp loosely matched any Fable run | Exact workflow, session and run correlation | `mechanism-2ah-workflow-lifecycle.test.js` |
|
|
18
|
-
| Entry gate blocked its own bootstrap path | One bounded stage-specification file and trusted start controller; state/source writes remain gated | `mechanism-2ah-workflow-lifecycle.test.js` |
|
|
19
|
-
| Stop trusted directory contents and pass labels | Expected manifest stages, correlated exit-zero evidence, worker attribution and fresh verifier required | `mechanism-2ah-workflow-lifecycle.test.js` |
|
|
20
|
-
| Stop retry silently passed unresolved work | Retry records blocked; no satisfied state without required evidence | `mechanism-2ah-workflow-lifecycle.test.js` |
|
|
21
|
-
| Failures could not recover cleanly | Observed fail-to-pass checks; explicit bounded replan; retained prior run evidence | `mechanism-2ah-workflow-lifecycle.test.js` |
|
|
22
|
-
| Runtime policy scraped human-readable output | Kernel imports the structured core result; complete invariants persist with the plan | routing tests and lifecycle tests |
|
|
23
|
-
| Current documents contradicted the PR | README, platform matrix, routing, architecture, Fable/worktree references and mirrors aligned | consistency/capability/reference gates |
|
|
24
|
-
| Existing CI selected the first matching hook group | Action-gate regression finds its actual adapter among shared tool matchers | `ci/action-gate.test.js` |
|
|
25
|
-
|
|
26
|
-
The first added isolation regression run failed 16 assertions against the PR
|
|
27
|
-
baseline, then passed after repair. The baseline's four failing GitHub CI jobs
|
|
28
|
-
also reported the action-gate matcher defect. The initial local checkout lacked
|
|
29
|
-
dependencies, producing a separate CRLF-fixture setup failure; `npm ci` resolved
|
|
30
|
-
that environment prerequisite.
|
|
31
|
-
|
|
32
|
-
## Verification
|
|
33
|
-
|
|
34
|
-
Local environment: Windows, PowerShell, Node.js 24.15.0, npm 11.12.1. Work was
|
|
35
|
-
performed in an isolated linked worktree; the primary checkout remained clean.
|
|
36
|
-
|
|
37
|
-
All 14 required gate categories passed: `npm test`, mutations, mechanism,
|
|
38
|
-
consistency, repository contract, capability docs, references, release,
|
|
39
|
-
collision, positive skill routing, routing invariants, OpenAI package/runtime,
|
|
40
|
-
public submission, and platform compatibility. Failed checks were corrected and
|
|
41
|
-
the affected gates rerun. The final `npm test` includes **44 mechanism suites**.
|
|
42
|
-
|
|
43
|
-
The new lifecycle suite exercises **50 assertions against source and the same
|
|
44
|
-
50 against the packaged OpenAI layout**, using actual child processes, Git
|
|
45
|
-
repositories, worktrees, controller commands and hook payloads. Host payloads
|
|
46
|
-
are fixtures: these are deterministic mechanism tests, not live agent sessions.
|
|
47
|
-
|
|
48
|
-
Waza passed 30 canonical/nested skill readiness checks, 26 routing-spec checks,
|
|
49
|
-
and token validation (57 successful commands). Positive routing covered 34
|
|
50
|
-
cases across 26 direct skills and classified four nested skills.
|
|
51
|
-
|
|
52
|
-
Build/types/lint have no separate project scripts; repository syntax and
|
|
53
|
-
consistency gates apply. No coverage percentage is claimed. The security scanner
|
|
54
|
-
reported 12 pre-existing documentation/test-pattern matches, including its own
|
|
55
|
-
patterns and an explicitly fake token fixture; changed production code added no
|
|
56
|
-
scanner findings. `npm ci` reported zero dependency vulnerabilities. Diff review
|
|
57
|
-
and `git diff --check` passed. See the retained [gate summary](../../benchmarks/results/reviews/pr142-verification.json).
|
|
58
|
-
|
|
59
|
-
Remote CI is a separate evidence layer. Its result must be read at the final PR
|
|
60
|
-
head; this local record does not assert a future GitHub Actions outcome.
|
|
61
|
-
|
|
62
|
-
## Reassessment
|
|
63
|
-
|
|
64
|
-
Scores are review judgments about engineering readiness, each out of 100.
|
|
65
|
-
Each row has four equally weighted criteria (25 points each), with the observed
|
|
66
|
-
deductions shown. They are not success probabilities or benchmark results.
|
|
67
|
-
|
|
68
|
-
| Dimension | Criteria scores | Total | Remaining deductions |
|
|
69
|
-
| --- | --- | ---: | --- |
|
|
70
|
-
| Contract coherence | entry 22, transitions 23, scoped exceptions 24, docs 23 | 92 | Skill applicability and iterative budgets still partly rely on executor compliance |
|
|
71
|
-
| Mutation safety | worktree identity 23, targets 23, shell handling 17, state trust 12 | 75 | Arbitrary script effects need a host sandbox; runtime state is agent-writable |
|
|
72
|
-
| Deterministic verification | gate breadth 25, negative cases 24, package parity 24, evidence checks 18 | 91 | Host-shaped fixtures cannot establish real host behavior or semantic check quality |
|
|
73
|
-
| Operation and maintenance | entry/recovery 22, modularity 21, distribution 23, diagnostics/migration 18 | 84 | Manual stage setup, missing-metadata blocks and legacy-state repair add operator work |
|
|
74
|
-
|
|
75
|
-
Equal-weight engineering score: **85.5/100** (approximately **86/100**).
|
|
76
|
-
The system now has substantially stronger tested lifecycle and isolation
|
|
77
|
-
contracts. It is suitable for further host validation with explicit boundaries.
|
|
78
|
-
|
|
79
|
-
**Live-host reliability of these new gates remains unverified. Behavioral gain
|
|
80
|
-
from this PR remains unmeasured.** Neither receives an invented effectiveness
|
|
81
|
-
score. Older retained OpenCode evidence and older behavioral cases cannot prove
|
|
82
|
-
this workflow change. This review does not claim superiority over other skill
|
|
83
|
-
collections, reduced token cost, or improved task success rates.
|
|
84
|
-
|
|
85
|
-
The next evidence needed is a retained Claude/Codex session showing routing,
|
|
86
|
-
entry, mutation denial/allow, numeric stage results, worker correlation and Stop
|
|
87
|
-
resolution; then paired same-model/same-task behavioral runs. OpenCode needs its
|
|
88
|
-
own adapter before parity can be claimed. See [runtime limits](../workflow-runtime.md)
|
|
89
|
-
and [platform capabilities](../platform-capabilities.md).
|