TenantAtlas/specs/428-exchange-teams-content-backed-evidence-promotion/tasks.md
ahmido a981853748 spec: add Exchange Teams content-backed evidence promotion (#495)
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
2026-07-04 00:32:53 +00:00

82 lines
6.3 KiB
Markdown

# 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 --short` in `specs/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/`, or `apps/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.md` and copy the final source-contract matrix into the Spec 428 implementation report.
- [ ] T007 Map `exchange.transportRule` to repo canonical `transportRule`.
- [ ] T008 Map `exchange.acceptedDomain` to repo canonical `acceptedDomain`.
- [ ] T009 Map `teams.appPermissionPolicy` to repo canonical `appPermissionPolicy`.
- [ ] T010 Map `teams.meetingPolicy` to repo canonical `meetingPolicy`.
- [ ] T011 Record `transportRule` final state as `contract_blocked_repo_adapter_missing` and Spec 428 outcome as `not_eligible_noop`.
- [ ] T012 Record `acceptedDomain` final state as `contract_blocked_repo_adapter_missing` and Spec 428 outcome as `not_eligible_noop`.
- [ ] T013 Record `appPermissionPolicy` final state as `contract_blocked_repo_adapter_missing` and Spec 428 outcome as `not_eligible_noop`.
- [ ] T014 Record `meetingPolicy` final state as `contract_blocked_repo_adapter_missing` and Spec 428 outcome as `not_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 `TenantConfigurationResource` or `TenantConfigurationResourceEvidence` creation/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 --short` and 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.php` if 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.