## 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
3.8 KiB
3.8 KiB
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
Content Quality
- The spec stays on one bounded policy-only provider-presence correction and does not drift into workspace/tenant lifecycle governance
- Mandatory repo sections are completed, including candidate check, scope fields, cross-cutting reuse, provider boundary, guardrails, proportionality, and testing impact
- 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
- No implementation diff leaks into the feature contract beyond concrete repo surfaces needed for local fit
Requirement Completeness
- No
[NEEDS CLARIFICATION]markers remain - Functional requirements are testable and bounded
- Success criteria are measurable and behavior-focused
- Acceptance scenarios cover current-state policy truth, backup eligibility, restore continuity, and reappearance behavior
- Edge cases cover ignored-plus-missing overlap, supported-type reclassification, and historical backup continuity
- Dependencies, assumptions, and risks are explicit
Guardrail & Surface Fit
- The spec, plan, and package keep the same native Filament classification, shared-family relevance, and surface-role hierarchy for policy, backup, and restore screens
ignored_atis explicitly reserved for local suppression andmissing_from_provider_atis the only new provider-presence truth proposed- Combined-state filter membership and blocked-reason precedence are explicit across the spec, data model, plan, and conceptual contract
- 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
- No new page, panel, provider, asset strategy, lifecycle engine, or SoftDeletes path is introduced
- OperationRun impact is explicitly bounded to existing sync/backup start surfaces with no new run type
- Provider-specific semantics stay inside sync interpretation rather than leaking into platform-core operator vocabulary
Test Governance
- Planned validation stays in focused
fast-feedbackandconfidencelanes only - The package reuses existing policy, backup, restore, and badge test families instead of introducing browser or heavy-governance proof
- The US2 proving suite is aligned across spec, plan, quickstart, and tasks
- 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