diff --git a/docs/testing/ecc-2.2-release-readiness.tdd.md b/docs/testing/ecc-2.2-release-readiness.tdd.md new file mode 100644 index 000000000..ee674a8fd --- /dev/null +++ b/docs/testing/ecc-2.2-release-readiness.tdd.md @@ -0,0 +1,46 @@ +# ECC 2.2 release-readiness TDD evidence + +Date: 2026-08-24 + +## Scope + +This pass covers the release blockers found in the delta from `v2.1.0`: cumulative selective-install ownership, native Antigravity packaging, canonical OpenCode installation, provider-neutral OpenCode agents, `skill-comply` distribution, conservative legacy Codex uninstall, release-workflow safety, and guided-install filesystem boundaries. + +## RED + +Commit `6e66dfba` added release regressions before the repairs. All six focused commands exited nonzero on the `origin/main` baseline: + +- A second selective install retained only the second module in install-state. +- OpenCode resolved to `~/.opencode` instead of `~/.config/opencode`. +- Managed preflight accepted a plan without an install-state path. +- `skill-comply` was absent from the npm archive. +- Release workflows lacked registry-error discrimination, an exact-main gate, reviewed notes, and npm-first publication ordering. +- The packed lifecycle did not exercise Antigravity or OpenCode. + +Commit `528dbea0` added a security regression proving guided preflight accepted an identical copy source through a symbolic link. It failed before the no-follow snapshot repair. + +## GREEN + +- Focused installer, lifecycle, packaging, release-workflow, manifest, OpenCode, Antigravity, and uninstall tests passed. +- Full repository suite: 3,958 passed, 0 failed. +- `npm audit --audit-level=low`: 0 vulnerabilities. +- Supply-chain IOC scan: 207 files inspected, no findings. +- Both release workflow YAML files parsed successfully. +- Exact packed archive lifecycle passed on macOS with Node 24.9.0 using SHA-256 `c79fbabbbb2567835081c17804f692c77b0673f22e0e0a2e63e870b99a7b8592`. +- The packed lifecycle covered npm installation, public CLI setup, cumulative Cursor install, drift detection, repair, uninstall, user-file preservation, Antigravity install/doctor/uninstall, and OpenCode install/doctor/uninstall. + +## Focused coverage + +All three changed core modules exceeded the 80 percent line target: + +| Module | Lines | Functions | Branches | +| --- | ---: | ---: | ---: | +| `scripts/lib/multi-harness-setup.js` | 88.42% | 82.75% | 73.18% | +| `scripts/lib/install/claude-skill-migration.js` | 95.20% | 100% | 88.78% | +| `scripts/lib/install-targets/opencode-home.js` | 86.66% | 100% | 78.94% | + +Coverage commands used `c8 --check-coverage --lines 80` against the corresponding focused test files. + +## Release boundary + +No merge, release tag, GitHub Release, or npm publication was performed during this pass.