Source identity
| Field | Recorded value |
|---|---|
| Source type | GitHub source |
| Original record | Janady13/missionmatch / docs/evidence/phase2/README.txt |
| Date | Not specified in source |
| Repository | Janady13/missionmatch |
| Revision | 720d47fae476b0d38477ae4401697d372b1ea2bc |
| Branch | feature/opportunity-to-outcome |
| Path or archive member | docs/evidence/phase2/README.txt |
| Original SHA-256 | 730473ddc9da721bb1dd61ff6a45cddc4ba87b73e5b0215d0236ab1f216d8494 |
| Git blob SHA | 39beccde2c81bb8b0019eaf84c83955ad9363a4e |
| Reading-copy SHA-256 | 730473ddc9da721bb1dd61ff6a45cddc4ba87b73e5b0215d0236ab1f216d8494 |
Recovered source transcript
Download complete source text ↓98 lines · 6.4 KB
PHASE 2 EVIDENCE BUNDLE
Filed 30 July 2026, after the Gate A, C and D reruns. Supersedes the 28 July filing.
This directory is the whole of what Phase 2 can prove about itself. Every measurement was taken
at HEAD after the last change, rather than collected across a day, because a bundle whose parts
describe different states of the tree is a scrapbook and not evidence.
THE RULE THAT SHAPES EVERY FILE HERE:
A NEGATIVE RESULT IS ONLY EVIDENCE WHEN THE INSTRUMENT IS KNOWN TO WORK.
Instances of an instrument reporting a clean negative while measuring nothing have now been
catalogued SEVENTEEN times in this build, ten of them found during these reruns. So every check
that could pass by doing nothing carries a positive control that is run FIRST and MUST fail.
GATE_E.md The human gate. Read this first and read it alone if you read one file.
It leads with what is wrong, including a Gate C coverage limit and the
two production defects these reruns uncovered.
functional/ GATE A. VERDICT: PASS.
gate-a-rerun.txt is the current run: 55 packages ok and 0 fail, 217
integration tests with 0 fail and 1 skip, and the six defects fixed to
get there, two of them production defects.
THE EARLIER gate-a-phase2-close.txt IS WITHDRAWN AS EVIDENCE. Three of
its tests could not have passed against a correctly granted database,
so that verdict was taken either without them or with other credentials.
It is kept only as the working record it always was.
known-good-fixture.txt is the recorded fixture the D18 standing rule
enforces against: 16 documents, 9 done, 7 failed, 836 chunks.
stress/ GATE B. VERDICT: PASS.
gate-b-results-2.txt. Race at 8 and 32, load, and the 30 minute soak at
2,028,801 samples, each with a control. This gate needed no rerun: it
was completed at HEAD and nothing since has touched its subject.
visual/ GATE C. VERDICT: PASS WITH ONE NAMED COVERAGE LIMIT.
gate-c-rerun.txt is the current run and its addendum carries the pixel
regression half, which DID NOT EXIST until this filing despite two
earlier write ups describing it as merely unapproved.
88 captures across both surfaces, 0 findings. Baselines approved and
proven both ways: 48 and 40 compared with 0 regressions, and controls
detecting 48 of 48 and 40 of 40.
THE LIMIT, stated plainly: 48 authenticated captures hold only 18
distinct images, because both fixture accounts hold one tool so most
routes render the same denial panel.
Baselines live on Bubbles at ~/gatec-baselines/{authenticated,public}
with APPROVAL.txt in each.
drift/ GATE D. VERDICT: PASS.
gate-d-rerun.txt. Engine diff 0 with the anchor AND path asserted at
both ends and controlled against the wrong anchor at 1476 lines. Schema
level at 85 across tenant, staging and control plane, each queried
directly. Production API binary byte identical to the pre build hash.
Zero Python and zero dashes, each with a planted control. Item 2 FAILED
when first run properly and was fixed rather than excused.
findings/ THE FOUR FINDINGS THAT HELD PHASE 2 OPEN, all closed.
finding-3-external-normalize-path.txt and
finding-4-secret-sweep-out-of-repo.txt carry the full working records.
Findings one and two closed by recorded owner decision; see GATE_E.md.
deploys/, trial/ Working records from the build, kept because they hold the reasoning that
produced the tests rather than only the results.
WHAT THIS BUNDLE DOES NOT CLAIM
NOTHING IS DEPLOYED TO PRODUCTION. The API binary is byte identical to the pre build hash and
every Phase 2 route answers 404 there while the control routes answer 200. Closing Phase 2 is
a statement that the work is proven, not that a customer has it.
GATE C's SCREEN DIVERSITY IS BOUNDED by the fixture org's single tool, stated above. A
complete matrix needs a second pass with an org holding every tool.
THE EXTERNAL MODEL LANE WAS NEVER SERVED. Three calls left the machine and OpenAI refused all
three for want of account credit, so prose authored by an external model has not passed the
verifier. Accepted by recorded decision, with the residual risk stated rather than rounded off.
ONE INTEGRATION TEST IS SKIPPED, the per tenant database isolation test, because those
databases do not exist. It is the only coverage Gate A does not have.
THE SCREENSHOTS ARE NOT COMMITTED, on purpose. 88 full page PNGs plus 88 baselines, several
megabytes, regenerated by rerunning the sweep. The contact sheets and JSON summaries are what a
person reviews and they are in the run directories on Bubbles. An instrument you can rerun is
worth more than an archive you cannot question.
HOW TO REPRODUCE ANY OF IT
Gate A GOFIPS140=v1.0.0 go test ./... -count=1
MM_MIGRATOR_DSN=... MM_APP_DSN=... MM_COMPLIANCE_DSN=... MM_AIOE_DSN=... \
MM_MEGAMIND_URL=... MM_MEGAMIND_TOKEN=... GOFIPS140=v1.0.0 \
go test -tags=integration ./internal/integration/... -count=1
SUPPLYING EVERY VARIABLE IS NOT OPTIONAL RIGOUR. Omitting one silently removes tests.
Gate B go run ./tools/verify/stress -dsn <staging migrator> -profile race|load|soak [-control]
Gate C node sweep.js --base <staging> --out DIR --control # must FAIL first
MM_SWEEP_ROLES='<role>:<pw>,...' node sweep.js --base <staging> --out DIR \
--baselines <dir> [--approve]
node sweep.js --base <staging> --surface public --out DIR --baselines <dir>
Gate D every item is one command, listed in order with its control in gate-d-rerun.txt.
Sweep MM_MEGAMIND_PW=... bash tools/verify/secret-sweep/sweep.sh --control --out-of-repo
then the same without --control. The control comes FIRST.