30 lines
1.7 KiB
Markdown
30 lines
1.7 KiB
Markdown
|
|
# 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.
|