TenantAtlas/specs/261-provider-missing-policy-visibility/checklists/requirements.md
ahmido feeaadd5ad feat: add provider-missing policy visibility and restore continuity (#316)
## Summary
- separate provider-missing policy presence from local ignore semantics by introducing `missing_from_provider_at`
- update policy, backup, and restore surfaces so current-state capture stays honest while historical restore continuity remains available
- add focused sync, Filament, backup, restore, localization, and badge coverage for the new provider-missing behavior

## Scope
- policy sync and model truth
- policy resource visibility, badges, labels, and action gating
- backup/export eligibility and restore continuity messaging
- spec 261 artifacts and focused tests

## Validation
- feature-specific Pest coverage is included in the branch
- validation was not re-run as part of this commit/push/PR handoff

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #316
2026-05-01 20:18:27 +00:00

50 lines
3.8 KiB
Markdown

# Specification Quality Checklist: Provider-Missing Policy Visibility & Restore Continuity v1
**Purpose**: Validate the spec package before implementation planning and task execution
**Created**: 2026-05-01
**Feature**: [spec.md](../spec.md)
## Content Quality
- [x] The spec stays on one bounded policy-only provider-presence correction and does not drift into workspace/tenant lifecycle governance
- [x] Mandatory repo sections are completed, including candidate check, scope fields, cross-cutting reuse, provider boundary, guardrails, proportionality, and testing impact
- [x] Candidate selection is grounded in repo reality as well as product docs, including the already-prepared Specs 251-260 and the documented narrower lifecycle follow-up
- [x] No implementation diff leaks into the feature contract beyond concrete repo surfaces needed for local fit
## Requirement Completeness
- [x] No `[NEEDS CLARIFICATION]` markers remain
- [x] Functional requirements are testable and bounded
- [x] Success criteria are measurable and behavior-focused
- [x] Acceptance scenarios cover current-state policy truth, backup eligibility, restore continuity, and reappearance behavior
- [x] Edge cases cover ignored-plus-missing overlap, supported-type reclassification, and historical backup continuity
- [x] Dependencies, assumptions, and risks are explicit
## Guardrail & Surface Fit
- [x] The spec, plan, and package keep the same native Filament classification, shared-family relevance, and surface-role hierarchy for policy, backup, and restore screens
- [x] `ignored_at` is explicitly reserved for local suppression and `missing_from_provider_at` is the only new provider-presence truth proposed
- [x] Combined-state filter membership and blocked-reason precedence are explicit across the spec, data model, plan, and conceptual contract
- [x] Decision-first obligations are explicit for changed surfaces: one dominant next action, diagnostics-secondary ordering, hidden/capability-gated support detail, and no duplicate visible decision summary
- [x] No new page, panel, provider, asset strategy, lifecycle engine, or SoftDeletes path is introduced
- [x] OperationRun impact is explicitly bounded to existing sync/backup start surfaces with no new run type
- [x] Provider-specific semantics stay inside sync interpretation rather than leaking into platform-core operator vocabulary
## Test Governance
- [x] Planned validation stays in focused `fast-feedback` and `confidence` lanes only
- [x] The package reuses existing policy, backup, restore, and badge test families instead of introducing browser or heavy-governance proof
- [x] The US2 proving suite is aligned across spec, plan, quickstart, and tasks
- [x] Reviewer handoff and narrow Sail commands are explicit in the plan and quickstart artifacts
## Notes
- Reviewed against `docs/product/spec-candidates.md`, `docs/product/roadmap.md`, `docs/product/implementation-ledger.md`, `.specify/memory/constitution.md`, `apps/platform/app/Models/Policy.php`, `apps/platform/app/Services/Intune/PolicySyncService.php`, `apps/platform/app/Services/Intune/BackupService.php`, `apps/platform/app/Filament/Resources/PolicyResource.php`, `apps/platform/app/Filament/Resources/RestoreRunResource.php`, and the related sync/backup/restore tests on 2026-05-01.
- No application implementation was performed while preparing this spec package.
## Review Outcome
- **Outcome class**: `acceptable-special-case`
- **Outcome**: `keep`
- **Reason**: The package intentionally pulls one documented narrow follow-up ahead of the full lifecycle taxonomy, but it stays policy-only, uses one aligned proving suite, makes the combined-state contract explicit, reuses existing shared seams, and fixes a repo-visible truth bug without importing the broader lifecycle framework.
- **Workflow result**: Ready for implementation planning and task execution