6.8 KiB
6.8 KiB
Phase 0 release gate
Scope: Phase 0.4 evidence only. No commit, no production server/public/root-package modification, no network refetch, and no local instance URL/name/secret is recorded here.
Gate result
| Check | Status | Evidence / rationale |
|---|---|---|
| RED first | RECORDED | Process evidence: expanded acceptance tests first failed because structured exports were absent; this historical step is not machine-recomputable from the final tree. |
Repository npm test |
PASS | Final recomputation: 84 tests passed, 0 failed. |
| Phase 0 acceptance tests | PASS | packages/operation-registry/test/acceptance-gate.test.ts: 12/12 pass, including exact partitions, fixture-bound real classes and metadata-only categories, product prose, policies, and control-plane rows. |
| Independent safety baseline | PASS | Phase 0.2 commit 9dffadbec271227da7ffb192f31dc78c6ee3c2be independently freezes exact 117 unique operationId + risk + confirmation + capability + execution-policy tuples. Tests read that committed Git object with git show, never current docs/current Registry for expected values; a missing/wrong object fails, and synchronized working-tree matrix/fixture edits cannot bypass it. Risk, confirmation, capability, and execution-policy mutation tests all fail closed. Baseline changes require explicit safety review. |
| Registry parity | PASS | exact 117 operations, 100 paths, GET 50 / POST 62 / DELETE 5; operation IDs unique and frozen route parity tests pass. |
| Acceptance ledger | PASS | exact 117 operation-to-section mapping plus independent exact policy/scenario/availability operation-ID partitions; each partition rejects overlap, omission, and unknown IDs; route ownership, Registry risk/confirmation, scenario applicability, and high-risk/auth/write policies are enforced without method/risk fallback. |
| Registry risk distribution | PASS | R0 50, R1 28, R2 21, R3 18. Product prose now defers to the Registry-backed ledger; eSIM download/enable and notifications config conflicts are corrected. |
| Fixture disposition | PASS | authoritative map exact 117: 39 captured-readonly, 11 denied-readonly-candidate, 67 not-eligible-readonly-capture; selection and deny reasons are recomputed from the collector. No operation remains currently pending. |
| Real fixture manifest | PASS | 78 real fixtures, 0 synthetic, exactly two aliases per 39 eligible operation; manifest SHA-256 4f2475bdd6ee2c4ca6057d951161eb97d2e842cdf9d378e44195d7d6c87af459. Every matrix row renders metadata-only categories= sorted from fixture disposition (success, unsupported, auth-required only), or none when uncaptured; no fixture body/response, alias, identity, or URL is rendered. |
| Explicit readonly denials | PASS | exact 11 and equal to collector DENY_REASONS; active connectivity/operator scan and privacy-sensitive/query endpoints are not misrepresented as captures. |
| Batch semantics | PASS | Registry batchable is treated as resource bulk, never Fleet authorization. postSmsBatchDelete: resource bulk true / Fleet false. getHealth: Fleet true read refresh / per-item aggregation. All writes Fleet false. |
| Dedicated auth | PASS | setup/password/settings/login/logout use dedicated auth strategy/flow; login/logout session-sensitive, no automatic replay, credential metadata-only audit. Control-plane acceptance is listed in the matrix. |
| R2/R3 and Job lineage | PASS | fresh preflight blocks when unavailable; one-use Registry confirmation; R3 Registry capability is Job; retry creates new Job lineage and never mutates/replays successful source items. |
| Capability/404, stale, orthogonal state, partial policies | PASS | machine ledger plus generated matrix bind these policies per operation; a fixture 404 is evidence, not a permanent unsupported declaration. |
| Real vs simulated acceptance | PASS | exact fixture-bound classification: 39 captured reads are REAL_READ; 11 denied candidates are REAL_READ_DEFERRED; no uncaptured GET claims real evidence; remaining writes/noneligible operations use deferred, simulated, or contract-only classes. |
| Timeout / non-JSON real coverage | DEFERRED | neither category occurred in the 78 real captures. Unit categorization tests pass, but real timeout/non-JSON acceptance is deferred to controlled fault injection; no coverage is claimed. |
| Listener introduced by Phase 0 commands | RECORDED | Process evidence: validation used Node test/inject and did not intentionally start a listener; this is not labeled machine-recomputable. |
| Old production tree unchanged | PASS | git diff -- server public package.json is empty. Root package.json was not changed. |
| Frozen upstream provenance | PASS with accepted gap | Upstream URL: https://github.com/3899/SimAdmin; full commit 58e220411d6599609f0eeda01eb7016e9212f970; snapshot paths: packages/operation-registry/test/fixtures/upstream-58e2204/; mechanism: snapshot manifest.json pins SHA-256 per whole file and tests re-hash exact files/handler slices. Fetch/capture time is not recorded and is an accepted provenance gap; no value was invented and no network was used. |
| Frozen whitespace exception | N/A | Frozen upstream files were not edited. Existing snapshot bytes and hashes are authoritative, including upstream whitespace; no formatter is run over the snapshot. |
| Secret scan scope | PASS | Existing fixture test recursively scans configured credential strings and every fixture string leaf (including tags/capabilities/auth/password) without printing values; all 78 real fixture envelopes, hashes, response-shape baseline, and redaction contracts pass. This is fixture-scope evidence, not a claim of a future workspace-wide scanner. |
git diff --check |
PASS | No whitespace errors. |
| pnpm workspace | N/A | Phase 1 workspace does not exist; not run and not marked PASS. |
| lint | N/A | No Phase 1 workspace lint command exists; not run and not marked PASS. |
| strict typecheck | N/A | No Phase 1 workspace typecheck command exists; not run and not marked PASS. |
| E2E | N/A | Phase 1+ application/E2E harness does not exist; not run and not marked PASS. |
| Independent Phase 0.4 specification/security review | PASS | Final specification review passed after exact-partition, scenario, availability and gate corrections. Independent quality/security reviews also approved the committed-Git-object safety baseline and metadata-only fixture matrix; the original synchronized-risk mutation was reproduced in /tmp and now fails closed. |
| full product/security audit | DEFERRED | The independent Phase 8/9 audit is not performed or claimed here. |
Release decision
PASS. Phase 0 is complete and may enter the Phase 1 workspace/contract bootstrap. Deferred timeout/non-JSON real coverage, Phase 1 lint/typecheck, and Phase 5 E2E remain outside Phase 0 and must not be relabeled as completed evidence.