Automated PR created by Copilot: adds lifecycle governance taxonomy spec and supporting docs (spec 262). Includes new files under `specs/262-lifecycle-governance-taxonomy` and `docs/product/standards/lifecycle-governance.md`. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #318
11 KiB
Tasks: Workspace, Tenant & Managed Object Lifecycle Governance v1
Input: Design documents from /specs/262-lifecycle-governance-taxonomy/
Prerequisites: plan.md, spec.md, checklists/requirements.md, research.md, data-model.md, quickstart.md, contracts/lifecycle-governance-taxonomy.yaml
Tests (TEST-GOV-001): N/A - docs/standards-only package. Validation stays repo-based and artifact-based using the search commands already captured in plan.md and quickstart.md. Do not add browser, heavy-governance, or runtime unit/feature families for this slice.
Operations: No new OperationRun, queue, scheduled work, or runtime mutation is introduced. This package only defines the governance rule for how future lifecycle work chooses audit-only versus shared OperationRun execution paths.
RBAC: No new authorization behavior is introduced. The package documents that lifecycle state must never replace scope entitlement or capability checks.
UI / Surface Guardrails: No operator-facing runtime surface is changed. This is a workflow-only guardrail package and must not smuggle UI implementation into the lifecycle candidate.
Organization: Tasks are grouped by user story so later implementation can remain bounded to standards and governance artifacts only.
Test Governance Checklist
- Lane assignment stays
N/Abecause the slice is docs-only. - Validation remains artifact and repo-search based; no new runtime tests are added.
- No browser or heavy-governance family is introduced.
- The close-out note records the explicit workflow outcome and test-governance outcome inside the spec package.
Phase 1: Setup (Repo Truth Inventory)
Purpose: Lock the lifecycle source inputs and standards landing zone before drafting the shared contract.
- T001 [P] Verify the current lifecycle-bearing repo sources across
specs/143-tenant-lifecycle-operability-context-semantics/spec.md,specs/251-commercial-entitlements-billing-state/spec.md,specs/261-provider-missing-policy-visibility/spec.md,specs/091-backupschedule-retention-lifecycle/spec.md,apps/platform/app/Models/Tenant.php,apps/platform/app/Models/Policy.php,apps/platform/app/Models/ReviewPack.php,apps/platform/app/Models/BackupSet.php,apps/platform/app/Models/RestoreRun.php,apps/platform/app/Console/Commands/PruneReviewPacksCommand.php, andapps/platform/config/tenantpilot.php - T002 [P] Verify the standards landing zone and index expectations in
docs/product/standards/README.md - T003 [P] Verify the promotion context and follow-up slice names in
docs/product/spec-candidates.md
Checkpoint: The repo-real lifecycle inputs and the standards landing zone are locked before the lifecycle contract is written.
Phase 2: Foundational Contract (Blocking)
Purpose: Author the shared lifecycle taxonomy and the machine-readable matrix before any downstream standards or candidate-history updates land.
CRITICAL: No downstream standard or candidate-history work should begin until this phase is complete.
- T004 Create
docs/product/standards/lifecycle-governance.mdfrom the approved taxonomy inspec.md,research.md,data-model.md, andcontracts/lifecycle-governance-taxonomy.yaml - T005 Copy the six lifecycle dimensions, authoritative source mapping, current repo-real values, reserved follow-up values, and forbidden proxy meanings from
contracts/lifecycle-governance-taxonomy.yamlinto the standard indocs/product/standards/lifecycle-governance.md, keeping the YAML contract as the canonical machine-readable source - T006 Update
docs/product/standards/README.mdto add the new lifecycle-governance standard to the standards index and explain when future specs must use it
Checkpoint: The shared lifecycle standard exists and the standards index points at it.
Phase 3: User Story 1 - Classify lifecycle concerns before implementation (Priority: P1) 🎯 MVP
Goal: Give future specs one authoritative map from lifecycle concern to lifecycle dimension.
Independent Test: Review the standard and contract artifacts and confirm that each current repo-real lifecycle example maps to exactly one primary lifecycle dimension.
Validation for User Story 1
- T007 [P] [US1] Run the repo-search validation from
quickstart.mdand confirm that tenant lifecycle, provider presence, commercial lifecycle, retention signals, and restore continuity all map into one dimension each - T008 [P] [US1] Re-run
checklists/requirements.mdand confirm the package still distinguishes current repo-real values from reserved follow-up values
Implementation for User Story 1
- T009 [US1] Finalize the dimension definitions, current repo-real examples, and forbidden proxy rules in
docs/product/standards/lifecycle-governance.md - T010 [US1] Finalize the machine-readable dimension data in
contracts/lifecycle-governance-taxonomy.yamlso it stays aligned with the standard
Checkpoint: Every lifecycle concern in scope maps to one dimension and one authoritative source.
Phase 4: User Story 2 - Choose the right transition safeguards (Priority: P1)
Goal: Make confirmation, audit, OperationRun, and export/retention preconditions explicit before later runtime slices start.
Independent Test: Review the standard and contract artifacts and confirm that archive/delete, provider observation, commercial suspension, retention/purge, and restoreability transitions all have explicit safeguard rules.
Validation for User Story 2
- T011 [P] [US2] Review the transition-governance table in
docs/product/standards/lifecycle-governance.mdagainstdata-model.mdandcontracts/lifecycle-governance-taxonomy.yaml, confirming thatexport requestedremains a reserved retention/compliance value whileData Export Before Deletion v1remains a separate runtime slice - T012 [P] [US2] Confirm that audit-only versus
OperationRun-backed guidance is explicit and does not imply new runtime behavior in this slice
Implementation for User Story 2
- T013 [US2] Finalize the transition-governance matrix in
docs/product/standards/lifecycle-governance.md, including confirmation, audit, OperationRun, export-before-delete, and retention-review rules - T014 [US2] Keep
contracts/lifecycle-governance-taxonomy.yamlaligned with the final transition-governance rules
Checkpoint: Future lifecycle slices can choose the correct safeguard path without guessing.
Phase 5: User Story 3 - Keep follow-up slices bounded (Priority: P2)
Goal: Prevent the promoted lifecycle candidate from collapsing back into one oversized umbrella change.
Independent Test: Review the standard, spec package, and candidate history and confirm that every major adjacent concern is listed as an explicit follow-up slice rather than hidden in primary scope.
Validation for User Story 3
- T015 [P] [US3] Verify that
export requestedappears as a reserved retention/compliance value and thatProvider-Missing Managed Object Truth v1,Workspace & Tenant Closure Lifecycle v1,Data Export Before Deletion v1,Retention & Purge Governance v1, andRestoreability Expiry & Evidence Retention v1appear consistently acrossspec.md,quickstart.md,data-model.md, andcontracts/lifecycle-governance-taxonomy.yaml - T016 [P] [US3] Verify that the standard in
docs/product/standards/lifecycle-governance.mdpoints future runtime work at these follow-up slices instead of absorbing them locally
Implementation for User Story 3
- T017 [US3] Verify that
docs/product/spec-candidates.mdstill records the explicit promotion to Spec 262 without turning the active queue back into an auto-prep target, and refine any stale promotion-versus-deferred wording if the retained history drifts - T018 [US3] Add the follow-up slice boundaries and review instructions to
docs/product/standards/lifecycle-governance.md
Checkpoint: The lifecycle-governance candidate is promoted cleanly and its adjacent concerns stay explicitly separated.
Phase 6: Polish & Final Validation
Purpose: Reconcile wording and finish the bounded review path.
- T019 [P] Reconcile any remaining terminology drift for
archived,deleted,ignored,provider missing,expired,retained,export requested,purge due, andrestorableacrossspec.md,plan.md,data-model.md,quickstart.md,contracts/lifecycle-governance-taxonomy.yaml, anddocs/product/standards/lifecycle-governance.md - T020 Run the repo-search validation commands from
quickstart.md - T021 [P] Record the final review outcome, workflow outcome, and test-governance outcome in
checklists/requirements.md,plan.md, andquickstart.md
Implementation Evidence
docs/product/standards/lifecycle-governance.mdcreated as the reviewer-facing lifecycle standard.docs/product/standards/README.mdupdated to index lifecycle governance and route lifecycle-bearing specs through it.contracts/lifecycle-governance-taxonomy.yamlaligned with the standard throughstandards_document, transition ownership, and execution-path fields.- Validation passed with the focused repo-search commands from
quickstart.md, YAML parse for six dimensions and six transition rules, andgit diff --check. - Browser smoke test is not applicable because this slice changes no operator-facing runtime surface.
Dependencies & Execution Order
Phase Dependencies
- Setup (Phase 1): starts immediately and locks the repo-real lifecycle inputs.
- Foundational Contract (Phase 2): depends on Setup and blocks all later work.
- User Story 1 (Phase 3): depends on Foundational Contract.
- User Story 2 (Phase 4): depends on User Story 1 because the transition rules rely on the final dimension map.
- User Story 3 (Phase 5): depends on User Stories 1 and 2 so follow-up slices reflect the final taxonomy and safeguard rules.
- Polish (Phase 6): depends on all desired user stories being complete.
User Story Dependencies
- US1: no dependencies beyond Foundational Contract.
- US2: depends on US1.
- US3: depends on US1 and US2.
Parallel Opportunities
T001,T002, andT003can run in parallel during Setup.T004,T005, andT006run in sequence during the Foundational Contract phase.T007andT008can run in parallel for User Story 1.T011andT012can run in parallel for User Story 2.T015andT016can run in parallel for User Story 3.
Notes
- Suggested MVP scope: Phase 1 through Phase 4 only. That is the minimum needed to answer the deferred candidate's lifecycle-question set safely.
- Explicit non-goals remain: runtime deletion, closure, purge, migration, panel/provider work, assets, lifecycle dashboard, and lifecycle framework implementation.
- All tasks above stay on the standards and documentation path only.