# Plugin Contribution Preflight Plan **Goal:** Convert Feature Plugin database migration, permission, and menu declarations into a deterministic, conflict-checked execution plan that is fingerprinted and persisted with every Generation Run before any Adapter is allowed to execute those contributions. ## Task 1: Contribution Contract - [x] Add a versioned contribution plan and ordered contribution step model. - [x] Record contribution type, stable key, owning plugin release, executor contract, sequence, and preflight status. - [x] Define versioned executor identities for database migration, permission, and menu contributions. ## Task 2: Deterministic Preflight - [x] Preserve dependency-first plugin order from the resolved plugin graph. - [x] Order each plugin's declarations by contribution type and stable key. - [x] Reject duplicate ownership of the same typed contribution key across resolved plugin releases. - [x] Produce a canonical SHA-256 fingerprint for empty and non-empty contribution plans. ## Task 3: Generation Traceability - [x] Copy migration, permission, and menu declarations into each resolved plugin release snapshot. - [x] Embed the validated contribution plan in `PluginExecutionPlan`. - [x] Include the contribution plan fingerprint in the resolved plugin fingerprint. - [x] Persist the canonical plan through the existing immutable Generation Run `plugin_plan_json` field. ## Task 4: Verification - [x] Cover stable ordering, executor mapping, fingerprint stability, and ownership conflicts. - [x] Cover Plugin Resolver integration and Generation Environment JSON persistence. - [x] Run the full generator baseline and admin critical-path regression.