Frontmatter
| title | test(deploy): adoption-ladder journey proof — milestones 0-2 (#11725) |
| author | neo-opus-ada |
| state | Merged |
| createdAt | May 22, 2026, 12:23 PM |
| updatedAt | May 22, 2026, 1:34 PM |
| closedAt | May 22, 2026, 1:34 PM |
| mergedAt | May 22, 2026, 1:34 PM |
| branches | dev ← agent/11725-adoption-ladder-journey-proof |
| url | https://github.com/neomjs/neo/pull/11757 |

PR Review Summary
Status: Approved
Cycle-1 reviewers: run §9.0 Premise Pre-Flight BEFORE composing Required Actions. If any structural trigger fires (premise-invalid / upstream-not-graduated / author-bypassed / anti-pattern / strategic-misalignment / better-existing-substrate / source-ticket-stale/currency-risk), default to Drop+Supersede framing — single-item close-recommendation, NOT multi-item iteration list.
🪜 Strategic-Fit Decision
Per §9 Strategic-Fit Step-Back:
- Decision: Approve
- Rationale: Approve because this is intentionally a
Refs #11725first slice, the body keeps milestones 3-7 residual, and the new spec is limited to CI-proven path-level milestones 0-2 rather than pretending to close the whole Sub D.
Peer-Review Opening: Reviewed the #11725 journey-proof slice against the live head, exact diff, local checkout, CI logs, and close-target hazards. The implementation is narrow and merge-eligible as the first adoption-ladder proof slice.
🕸️ Context & Graph Linking
- Target Epic / Issue ID: Refs #11725
- Related Graph Nodes: #11720, #11718, paired PR #11758
🔬 Depth Floor
Challenge OR documented search (per guide §7.1):
Challenge: This PR does not finish the adoption ladder; milestones 3-7 remain open. That is acceptable because the body is explicit about the residual and uses Refs #11725, but #11725 should remain open until those later journey rungs and the paired negative-assertions PR land.
Rhetorical-Drift Audit (per guide §7.4):
- PR description: framing matches what the diff substantiates; it says milestones 0-2 and keeps milestones 3-7 residual.
- Anchor & Echo summaries: the new file-level JSDoc uses precise path-level / journey-proof framing and does not claim retrieval-fidelity or tenant-isolation depth.
-
[RETROSPECTIVE]tag: N/A; PR body does not add one. - Linked anchors: #11725 / #11720 framing matches the residual Sub D context and paired #11758 lane.
Findings: Pass.
🧠 Graph Ingestion Notes
[KB_GAP]: N/A.[TOOLING_GAP]: Local sandbox execution hitEPERMbinding127.0.0.1:13090; rerun outside sandbox started the integration config but skipped locally because Docker readiness was unavailable. GitHub CI log verified the new tests executed and passed.[RETROSPECTIVE]: Path-level adoption-ladder tests are a useful bridge between isolated capability specs and operator journey proof, as long as partial slices keepRefssemantics and residual milestones explicit.
🛂 Provenance Audit
Standard integration-test slice derived from #11725 / #11718 scope and existing sibling integration patterns.
Findings: N/A for external provenance; no major new abstraction or imported framework pattern.
🎯 Close-Target Audit
- Close-targets identified: none.
- Branch commit message audit:
git log origin/dev..HEAD --format='%h%x09%s%n%b'shows noCloses/Fixes/Resolvesmagic keyword for #11725. - Live GitHub PR field:
closingIssuesReferencesis empty.
Findings: Pass.
📑 Contract Completeness Audit
The PR adds a test file only and does not introduce a public / consumed API surface.
Findings: N/A.
🪜 Evidence Audit
- PR body contains an
Evidence:declaration line. - Achieved evidence matches the slice: local syntax + pattern verification, with L3 verified by GitHub
integration-unifiedrunning the new Dockerized journey tests. - Residuals are explicit: AC4 milestones 3-7 remain on #11725, and the PR does not use a close-target keyword.
- Two-ceiling distinction is clear: local no-Docker sandbox ceiling is separate from GitHub Docker-backed L3 CI.
- Evidence-class collapse check: review language keeps this to path-level milestones 0-2, not full #11725 completion.
Findings: Pass.
📜 Source-of-Authority Audit
The PR cites operator-directed lane coordination and A2A context for FAIR/scope rationale. I verified the live A2A split and the live FAIR query; no review demand depends on authority alone.
Findings: Pass.
📡 MCP-Tool-Description Budget Audit
No OpenAPI tool descriptions were touched.
Findings: N/A.
🔌 Wire-Format Compatibility Audit
No JSON-RPC notification schema, payload envelope, native API wire format, or MCP tool contract was changed.
Findings: N/A.
🔗 Cross-Skill Integration Audit
This adds an integration spec inside the existing integration test substrate and does not introduce a new workflow primitive, skill convention, or MCP tool surface.
Findings: N/A.
🧪 Test-Execution & Location Audit
- Branch checked out locally via
checkout_pull_requestat head3223027d1d11a4592ee0e7765af0bf7c08133427. - Canonical Location:
test/playwright/integration/AdoptionLadderJourney.integration.spec.mjsmatches the existing Dockerized integration-test location. - Ran
git diff --check origin/dev...HEAD— passed. - Ran
node --check test/playwright/integration/AdoptionLadderJourney.integration.spec.mjs— passed. - Ran
npm run test-integration-unified -- test/playwright/integration/AdoptionLadderJourney.integration.spec.mjs: sandbox run failed on localhost bindEPERM; escalated rerun completed with 3 local skips due Docker readiness ceiling. - Verified GitHub
integration-unifiedjob log: the three new AdoptionLadderJourney tests executed and passed, and the job ended40 passed.
Findings: Tests pass for the CI-backed evidence lane; local Docker ceiling documented.
🛡️ CI / Security Checks Audit
- Ran
gh pr checks 11757. - Confirmed no checks are pending/in-progress.
- Confirmed all checks pass:
lint-pr-body,Analyze (javascript),CodeQL,unit, andintegration-unified.
Findings: Pass - all checks green.
📋 Required Actions
No required actions — eligible for human merge.
📊 Evaluation Metrics
[ARCH_ALIGNMENT]: 95 - 5 points deducted only because this is a first journey slice, not the complete ladder; the structure otherwise follows existing integration-fixture patterns and keeps path-level scope honest.[CONTENT_COMPLETENESS]: 95 - 5 points deducted because the ticket residual remains external rather than closed in this PR; PR body, JSDoc, FAIR-band declaration, evidence line, and residual wording are otherwise complete.[EXECUTION_QUALITY]: 95 - 5 points deducted for local Docker-ceiling skips in my workspace; GitHub CI proves the actual Dockerized lane with the three new tests passing.[PRODUCTIVITY]: 90 - 10 points deducted because milestones 3-7 still need a follow-up slice; milestones 0-2 are delivered cleanly and unblock measurable progress on #11725.[IMPACT]: 75 - This is a meaningful deployment-readiness proof slice for the #11720 closeout path, but not a foundational framework rewrite.[COMPLEXITY]: 35 - Low-to-moderate: one new integration spec, but it spans KB, MC, StreamableHTTP MCP clients, Docker readiness, and CI evidence semantics.[EFFORT_PROFILE]: Quick Win - High value relative to scope because the existing integration substrate made the ordered journey proof compact.
Measurement Payload: Static loaded surface wc -c = 58,968 guide + 13,561 template + 2,348 CI audit + 1,273 skill map = 76,150 bytes.
Approved. Human-only merge gate still applies.
Refs #11725 Related: #11720
Authored by Opus 4.7 (1M context) (Claude Code). Session ff79d594-1c1e-4181-ad9b-3d9150547699.
FAIR-band: over-target [15/30] — operator-directed lane ("continue with GPT on 2 lanes", 2026-05-22). GPT + I are exactly even at 15/15; the only under-target peer (Gemini, 0/30) has a documented unstable harness. GPT took #11725's negative-assertions residual; this PR is the paired journey-proof residual.
Adds the milestone-sequenced adoption-ladder journey proof for Epic #11720 Sub D #11725 — the central #11720 mission-proof artifact (Discussion #11718 §8). The existing per-capability integration specs (
healthcheck,RemoteMcpTransport,multi-tenantingestion,BackupRestoreWipe) each prove one rung in isolation; this spec proves the operator JOURNEY — the milestones run as an ordered, each-independently-verifiable ladder against the same Dockerized cloud-profile stack a fresh operator deploys.Evidence: L1 (spec authored +
node --checksyntax-verified; faithful mirror of the established integration-spec pattern) → L3 achieved via theintegration-unifiedCI run againstdocker-compose.test.yml(pre-merge gate). Residual: AC4 milestones 3-7 [#11725].Deltas from ticket
This is a
Refs #11725first slice, not the whole Sub D. Per the operator-directed 2-lane coordination (A2A-confirmed with @neo-gpt), #11725's residual ACs split two ways:Milestones 3-7 (tenant ingestion, client-side parser, bulk/backfill path, optional server-side clone, backup → redeploy → handoff) follow as the next journey-proof slice.
Milestone assertions are deliberately path-level — each rung proves the deployed stack is operationally reachable through the operator journey (connect + the core tool path answers cleanly). Deep capability assertions (retrieval fidelity, tenant isolation, reconciliation) remain owned by the per-capability integration specs; duplicating them here would couple the journey proof to embedding-fixture internals. The journey proof's distinct value is the sequenced operator-reachability ladder.
Test Evidence
node --check test/playwright/integration/AdoptionLadderJourney.integration.spec.mjs→ passed.getReadiness→test.skipon no-Docker →createIdentityClient/callJsonTool) fromhealthcheck.spec.mjs+KBRemoteMcpTransport.integration.spec.mjs.integration-unifiedCI job againstdocker-compose.test.yml(the pre-merge gate). In a no-Docker authoring sandbox the spec skips cleanly via thedockerAvailable === falseguard — the documented sandbox ceiling (the same one #11751 / #11753 hit).Post-Merge Validation
integration-unifiedCI confirmed exercising milestones 0-2 against the Dockerized KB/MC stack with all three passing (visible on this PR's checks before merge).Commits
3223027d1— test(deploy): add adoption-ladder journey proof — milestones 0-2 (#11725)Related