{ "work_package": "P3-WP13", "mode": "ENGINEERING_EVIDENCE_ONLY", "enterprise_input": "TBD_EXTERNAL", "cases": [ {"id": "WP13-FI-01", "failure": "NFKC/confusable or sensitive manifest key", "expected": "manifest rejected before registry persistence"}, {"id": "WP13-FI-02", "failure": "payload public key, URL, script, credential, raw rows or artifact mismatch", "expected": "closed registry/manifest rejection"}, {"id": "WP13-FI-03", "failure": "network/file/secret/child process permission requested", "expected": "default-deny manifest rejection"}, {"id": "WP13-FI-04", "failure": "unsigned or unapproved version invocation", "expected": "startup/invocation count remains zero"}, {"id": "WP13-FI-05", "failure": "approval actor/scope/digest/expiry mismatch or self-review", "expected": "one-time approval binding denied"}, {"id": "WP13-FI-06", "failure": "runtime direct fact-table read/write after role-init replay", "expected": "PostgreSQL permission denied"}, {"id": "WP13-FI-07", "failure": "late worker, changed idempotency replay, timeout or breaker trip", "expected": "fence/replay reject then retry/dead-letter digest evidence"}, {"id": "WP13-FI-08", "failure": "runtime login calls legacy direct writer or SET ROLE to plugin control", "expected": "legacy function absent and PostgreSQL role escalation denied"}, {"id": "WP13-FI-09", "failure": "runtime requests dead-letter recovery without an approval/incident/scope/fence-bound recovery claim, or replays/changes that claim", "expected": "control or runtime gateway rejects without changing the dead-letter fact"}, {"id": "WP13-FI-10", "failure": "approval body supplies reviewer_ref, review actor self-approves, or a reviewer is forged", "expected": "closed HTTP schema or v4 persisted-review identity gate rejects"}, {"id": "WP13-FI-11", "failure": "claim input/operation/idempotency changes, capability escalates, or an exact claim is reused", "expected": "v3 DB canonical digest, capability and one-shot claim gates reject without a second run"}, {"id": "WP13-FI-12", "failure": "registry/review/incident fact exists while claims are empty and an operator requests downgrade to 556 or 555", "expected": "557/558/559 first-step fence rejects, preserves head and never restores a legacy execute surface"}, {"id": "WP13-FI-13", "failure": "approval is signed before review, by the current reviewer, by the submitter, or consumed after review actor/generation/review time changes", "expected": "v5 control gateway rejects pre-review/self-review/submitter/stale approval without changing lifecycle facts"} ] }