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
82 lines
6.3 KiB
Markdown
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.
|