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

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 --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.