# Plugin Payload Publication Guard Plan **Goal:** Make contribution payload content part of immutable Feature Plugin release identity and prevent publishing, restoring, or bootstrapping destructive releases that do not provide a trusted rollback strategy. ## Task 1: Resource-Backed Payloads - [x] Add classpath resource and rollback resource metadata to structured payloads. - [x] Load UTF-8 apply and rollback content through one trusted resource loader. - [x] Reject missing, empty, or unsafe classpath resource paths. ## Task 2: Release Integrity - [x] Validate Manifest declarations and implementation payloads as an exact typed set during Registry startup. - [x] Validate target, output path, content, duplicate output ownership, and rollback resource content. - [x] Fingerprint ordered apply content, rollback content, resource identity, and reversibility metadata. - [x] Build non-empty contribution release descriptors from both Manifest and payload fingerprints. - [x] Preserve the legacy Manifest-only descriptor for releases with no contribution payloads. ## Task 3: Publication And Restore Guard - [x] Reject publication of destructive contributions without rollback content. - [x] Reject restore when either the target or outgoing current release is irreversible. - [x] Apply the same guard to trusted release bootstrap publication. - [x] Separate stored Manifest fingerprint validation from the complete release descriptor check. ## Task 4: Operator Visibility And Verification - [x] Add payload count, payload fingerprint, and reversibility to Registry readiness output. - [x] Mark irreversible releases as not ready and expose the reason in Plugin Center. - [x] Add Plugin Center contribution and rollback status columns. - [x] Run frontend production build, full generator baseline, and admin critical-path regression.