← back to Sample Followup Sweep
verification/e2e-proof.json
82 lines
{
"intent": "Centralize fail-closed compliance enforcement and require parsed-tree-visible, meaningfully labeled, injection-safe DW-owned compliance content",
"risk_tier": "R3",
"environment": "local repository only; injected HTTP spy; no George/Gmail/FileMaker/production network calls",
"build_identity": "Cycle 6 working tree based on 900aa26; final commit recorded after verification",
"timestamp": "2026-08-28T16:41:45-07:00",
"ticket": "TK-10940-centralize-sample-follow-up-pre-send-com",
"baseline": "Cycle 1 commit c74ebf7 had an ungated /api/drafts call, an ungated gmail_create_draft artifact, and accepted hidden/comment/plain-text/reserved-domain opt-out tokens",
"commands": [
"npm test",
"npm audit --audit-level=high",
"isolated PORT=64846 node server.js plus localhost auth/state/send-one canary",
"node --check on every changed JavaScript and MJS entry point",
"git diff --check"
],
"assertions": [
{
"boundary": "real local console API",
"verdict": "PASS",
"evidence": "isolated port 64846 returned 401 without auth, 200 for authenticated /api/state, and 422 PRE-SEND COMPLIANCE GATE BLOCKED for known stale dgd payload before George/Gmail"
},
{
"boundary": "compliance parser",
"verdict": "PASS",
"evidence": "parse5 HTML5 tree parsing plus test/pre-send-gate.test.js reject comments, hidden/malformed content, empty/hidden labels, attacker-owned URLs, and mailto cc/bcc/to/extra-query/duplicate-subject/multi-recipient/fragment/header-folding injection while accepting lib/compose.js and reconciled-footer output"
},
{
"boundary": "dependency integrity",
"verdict": "PASS",
"evidence": "parse5 is pinned at 7.3.0 in package-lock.json; npm audit reported 0 vulnerabilities"
},
{
"boundary": "George /api/send and /api/drafts",
"verdict": "PASS",
"evidence": "test/george-transport.test.js invokes both endpoints with a blocked payload and asserts the injected request function remains at zero calls"
},
{
"boundary": "gmail_create_draft artifacts",
"verdict": "PASS",
"evidence": "bin/run.js, scripts/make-drafts.js, and server.js queue creation call createGmailDraftArtifact before writing sendable payloads"
},
{
"boundary": "repository call-site coverage",
"verdict": "PASS",
"evidence": "test/sendable-callsite-coverage.test.js rejects direct /api/send or /api/drafts HTTP calls outside lib/george-transport.js and ungated artifact writers"
},
{
"boundary": "external side effects",
"verdict": "PASS",
"evidence": "No real transport, credential mutation, email/draft/send, FileMaker write, deployment, schedule change, or remote push was executed"
}
],
"negative_checks": [
"wrong From",
"misleading reply subject",
"missing postal address",
"missing opt-out anchor",
"opt-out anchor hidden in HTML comment",
"plain-text mailto token",
"reserved invalid.example unsubscribe URL",
"attacker-owned HTTPS unsubscribe URL",
"postal address hidden with hidden/display:none",
"postal address hidden with entity-encoded display:none",
"postal address hidden with CSS-comment display:/**/none",
"postal address present only in script/template",
"postal address and opt-out present in malformed unclosed script",
"opt-out link present only in script",
"approved opt-out destination with empty label",
"approved opt-out destination with whitespace or icon-only label",
"approved opt-out destination with label only in hidden descendant",
"approved mailto with cc/bcc/to or unknown query parameter",
"approved mailto with duplicate subject parameter",
"approved mailto with comma/encoded-comma/semicolon additional recipient",
"approved mailto with fragment",
"approved mailto with encoded CR/LF header folding",
"blocked transport makes zero requests"
],
"known_limit": "parse5 provides an HTML5 parsed tree, not browser layout or computed stylesheets; class-based CSS hiding is excluded by the trusted-template boundary and documented as a hardening limit",
"cleanup": "Isolated local server stopped with Ctrl-C; no external or persistent test state created; repository verification artifact intentionally retained",
"verdict": "PASS"
}