Spec package for 428 Exchange Teams content-backed evidence promotion. Includes spec, plan, tasks, and requirements checklist. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #495
6.3 KiB
6.3 KiB
Tasks: Spec 428 - Exchange/Teams Content-Backed Evidence Promotion
Input: Design documents from specs/428-exchange-teams-content-backed-evidence-promotion/
Prerequisites: spec.md, plan.md, checklists/requirements.md
Implementation Mode: fail-safe/no-op. Do not edit application runtime code.
Test Governance Checklist
- Lane assignment is named as no-runtime/no-op with optional fast-feedback existing regressions only.
- New or changed tests are not added unless implementation is amended into runtime scope.
- Shared helpers, factories, seeds, fixtures, and context defaults remain unchanged.
- Planned validation commands cover the no-op closure without pulling in unrelated lane cost.
- Browser proof is explicitly
N/A - no rendered UI surface changed. - Human Product Sanity and Product Surface implementation-report close-out are
N/A - no rendered UI surface changed. - Any future runtime source-adapter or evidence-capture work is escalated to an amended or separate spec.
Phase 1: Preflight
- T001 Capture current branch, HEAD, and
git status --shortinspecs/428-exchange-teams-content-backed-evidence-promotion/implementation-report.md. - T002 Confirm completed Specs 414, 415, 417, 419, 420, 422, 426, and 427 are read-only context and are not edited.
- T003 Confirm the active implementation diff contains only
specs/428-exchange-teams-content-backed-evidence-promotion/unless the spec is formally amended. - T004 Confirm no runtime files under
apps/platform/app/,apps/platform/config/,apps/platform/database/,apps/platform/resources/,apps/platform/routes/, orapps/platform/tests/are changed. - T005 Confirm no UI, route, navigation, Filament provider, browser-rendered product surface, report, Review Pack, PDF, export, restore, certification, or customer-output scope is planned.
Phase 2: Spec 427 Eligibility Matrix
- T006 Read
specs/427-exchange-teams-verified-source-contract-enablement/implementation-report.mdand copy the final source-contract matrix into the Spec 428 implementation report. - T007 Map
exchange.transportRuleto repo canonicaltransportRule. - T008 Map
exchange.acceptedDomainto repo canonicalacceptedDomain. - T009 Map
teams.appPermissionPolicyto repo canonicalappPermissionPolicy. - T010 Map
teams.meetingPolicyto repo canonicalmeetingPolicy. - T011 Record
transportRulefinal state ascontract_blocked_repo_adapter_missingand Spec 428 outcome asnot_eligible_noop. - T012 Record
acceptedDomainfinal state ascontract_blocked_repo_adapter_missingand Spec 428 outcome asnot_eligible_noop. - T013 Record
appPermissionPolicyfinal state ascontract_blocked_repo_adapter_missingand Spec 428 outcome asnot_eligible_noop. - T014 Record
meetingPolicyfinal state ascontract_blocked_repo_adapter_missingand Spec 428 outcome asnot_eligible_noop. - T015 Record the final eligibility count as zero.
Phase 3: No-Promotion Guard
- T016 Confirm no source contract, provider adapter, Graph endpoint, provider permission, runtime Microsoft docs fetch, direct HTTP call, or provider SDK bypass is added.
- T017 Confirm no
TenantConfigurationResourceorTenantConfigurationResourceEvidencecreation/update path is added. - T018 Confirm no OperationRun, queue job, scheduler entry, OperationRun type, notification, or audit event is added for Exchange/Teams capture.
- T019 Confirm no capture outcome is changed from blocked to empty/success/content-backed.
- T020 Confirm no content-backed, comparable, renderable, certified, restore-ready, customer-ready, full Exchange, full Teams, or full M365 claim is added.
- T021 Confirm no
tenant_id, legacy adapter, fallback reader, dual write, Coverage v1 bridge, or fake evidence fixture is introduced as product truth. - T022 Confirm existing Spec 422 compare/render support is treated as completed context only and not expanded by this spec.
Phase 4: Validation
- T023 Run
git diff --check. - T024 Run
git status --shortand confirm only active Spec 428 artifacts changed. - T025 Optionally run
cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Unit/Support/TenantConfiguration/Spec427ExchangeTeamsSourceContractStateTest.php tests/Unit/Support/TenantConfiguration/Spec420M365CaptureEligibilityTest.phpif Sail is available; if skipped, document why no runtime tests are required for the no-op closure. - T026 Do not run browser tests; record
N/A - no rendered UI surface changed.
Phase 5: Implementation Report
- T027 Create
specs/428-exchange-teams-content-backed-evidence-promotion/implementation-report.md. - T028 Record Candidate Selection Gate result: PASS WITH CONDITIONS as fail-safe/no-op only.
- T029 Record Spec Readiness Gate result, Preparation Analyze Gate result, and any residual risk.
- T030 Record dirty state before/after.
- T031 Record files changed.
- T032 Record eligible target type list as empty.
- T033 Record blocked target type list with all four target types.
- T034 Record no OperationRun proof because no capture runs.
- T035 Record no evidence persistence proof because no evidence rows.
- T036 Record no payload hash, normalization, identity, permission failure, or redaction runtime proof because no capture occurred.
- T037 Record no compare/render, no certification, no restore, no customer claim, no
tenant_id, and no mini-platform confirmation. - T038 Record Product Surface impact as
N/A - no rendered UI surface changed. - T039 Record Livewire v4 compliance unchanged, provider registration unchanged under
apps/platform/bootstrap/providers.php, global search unchanged, destructive/high-impact actions none, asset strategy none, deployment impact none. - T040 Record deferred work: source-adapter/source-contract enablement before any future content-backed evidence promotion.
Stop Conditions
Stop before implementation and amend or replace this spec if any of the following becomes true:
- any target type reaches
contract_verified_pending_capture; - runtime evidence capture is requested;
- source adapters or Graph contracts are required;
- UI/customer/report/restore/certification/compare-render changes are required;
- application code or tests need to change for reasons other than documenting the no-op.