Automated giteaflow PR from branch 429-exchange-teams-source-surface-catalog-adapter-strategy. Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #496
14 KiB
Tasks: Spec 429 - Exchange/Teams Source Surface Catalog & Adapter Strategy
Input: Design documents from specs/429-exchange-teams-source-surface-catalog-adapter-strategy/
Prerequisites: spec.md, plan.md, checklists/requirements.md
Implementation Mode: catalog/strategy only. Do not edit application runtime code.
Test Governance Checklist
- Lane assignment is named as docs/spec/catalog validation only.
- New or changed tests are not added unless optional static JSON validation is introduced.
- Shared helpers, factories, seeds, fixtures, and context defaults remain unchanged.
- Planned validation commands cover the no-runtime catalog 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 adapter, capture, evidence, or UI work is escalated to Spec 430 or later.
Phase 1: Preflight
Goal: Prove the work starts from safe repo state and completed specs stay read-only.
- T001 Capture current branch, HEAD, and
git status --shortinspecs/429-exchange-teams-source-surface-catalog-adapter-strategy/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 Spec 428 is a prepared fail-safe/no-op package and record why it is non-blocking for this catalog-only spec.
- T004 Confirm the active implementation diff is limited to
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/. - T005 Confirm no files under
apps/platform/app/,apps/platform/config/,apps/platform/database/,apps/platform/resources/,apps/platform/routes/, orapps/platform/tests/are changed. - T006 Confirm no runtime adapter, provider call, evidence, OperationRun, UI, report, Review Pack/PDF output, restore/apply, certification, customer claim, or
tenant_idwork is planned.
Phase 2: Catalog Artifact Setup
Goal: Create the static catalog artifact surface for the documentation-only implementation.
- T007 Create
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/. - T008 Create
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md. - T009 Create
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md. - T010 Create
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-type-matrix.md. - T011 Create
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/cohort-plan.md. - T012 Create
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md.
Phase 3: Source Reference Collection
Goal: Ground catalog decisions in official Microsoft documentation and current repo truth.
- T013 [P] Record official Exchange Online PowerShell, app-only auth, cmdlet module, and Exchange Online Admin API references in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md. - T014 [P] Record official Teams PowerShell, Teams policy, external/guest access, and Microsoft Graph Teams overview references in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md. - T015 [P] Record repo source evidence from
apps/platform/app/Services/TenantConfiguration/ResourceTypeRegistry.php,SupportedScopeResolver.php,CoverageSourceContractResolver.php, and completed Specs 419, 420, 422, 426, 427, and 428 inspecs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-type-matrix.md. - T016 [P] Record source authority rules and forbidden source-authority rules in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md.
Phase 4: Exchange Source Surface Catalog
Goal: Catalog Exchange administration/configuration families without implementing adapters.
- T017 [US1] Catalog mail flow and transport families in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md. - T018 [US1] Catalog domains and connector families in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md. - T019 [US1] Catalog organization, sharing, relationship, role assignment, mailbox plan, address book, and admin audit families in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md. - T020 [US1] Catalog protection/hygiene families and classify Defender/Purview boundaries in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md. - T021 [US1] Catalog recipient/mailbox boundary families and document per-mailbox explosion risk in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-source-surface-catalog.md. - T022 [US1] For each Exchange family, record source surface class, adapter pattern, expected object shape, identity risk, permission risk, response-shape risk, redaction risk, customer/MSP value, and blocker reason in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-type-matrix.md.
Phase 5: Teams Source Surface Catalog
Goal: Catalog Teams policy/configuration families without implementing adapters.
- T023 [US1] Catalog app governance families in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md. - T024 [US1] Catalog meetings/events families in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md. - T025 [US1] Catalog messaging/channels families in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md. - T026 [US1] Catalog calling/voice families and license/complexity risks in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md. - T027 [US1] Catalog external/guest access families in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md. - T028 [US1] Catalog files/storage/integration boundaries and classify SharePoint/OneDrive overlap in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/teams-source-surface-catalog.md. - T029 [US1] For each Teams family, record source surface class, adapter pattern, expected object shape, identity risk, permission risk, response-shape risk, redaction risk, customer/MSP value, and blocker reason in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-type-matrix.md.
Phase 6: Target Type Matrix And Cohorts
Goal: Make later implementation bounded and reviewable.
- T030 [US2] Ensure every row in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-type-matrix.mdincludes all fields required by FR-429-008. - T031 [US2] Validate documentation-only source surface, adapter pattern, status, risk, and complexity values against FR-429-009 through FR-429-013.
- T032 [US2] Select Cohort 1 in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/cohort-plan.mdwith both Exchange and Teams represented and roughly 12-20 candidates unless a narrower exception is documented. - T033 [US2] Define Cohort 2 in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/cohort-plan.mdwith reasons each type is not Cohort 1. - T034 [US2] Define deferred, unsupported, and unknown backlogs in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/cohort-plan.md. - T035 [US2] Add target type summary and Cohort 1 matrices to
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md.
Phase 7: Adapter Strategy
Goal: Turn catalog findings into an actionable Spec 430 implementation path.
- T036 [US3] Document Graph-native contract path, Graph v1/beta handling, permissions, pagination, identity fields, response shape, redaction, and
GraphClientInterfacecompatibility inspecs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md. - T037 [US3] Document Exchange Online Admin API path, preview/focused-scope limitation, permissions/RBAC, POST-only behavior, response shape, and non-replacement boundary in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md. - T038 [US3] Document Exchange PowerShell adapter path, app-only/certificate auth feasibility, tenant consent, execution environment, module dependencies, throttling, error normalization, response serialization, redaction, and fake command-runner testability in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md. - T039 [US3] Document Teams PowerShell adapter path, policy/cmdlet boundaries, permission risks, execution environment, response serialization, redaction, and fake command-runner testability in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md. - T040 [US3] Document Security & Compliance/Purview, Defender, SharePoint/OneDrive, unsupported/manual, and unknown follow-up paths in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md. - T041 [US3] Define the first Spec 430 implementation slice, non-goals, stop conditions, and validation strategy in
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/adapter-strategy.md. - T042 [US3] Add adapter strategy matrix to
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md.
Phase 8: No Runtime / No Claim Proof
Goal: Prove the catalog did not become runtime support or product readiness.
- T043 Confirm no application services, provider clients, migrations, models, jobs, commands, policies, routes, views, Filament/Livewire UI, tests, or runtime config consumed by the app changed.
- T044 Confirm no runtime provider call, PowerShell execution, application-side documentation lookup, application-side direct HTTP request, provider SDK bypass, or Microsoft source-fetch code was added.
- T045 Confirm no
TenantConfigurationResource,TenantConfigurationResourceEvidence, OperationRun, coverage-level, compare/render, certification, restore, report, Review Pack, PDF, customer output, ortenant_idchange was added. - T046 Confirm no claim was added for Exchange evidence readiness, Teams evidence readiness, content-backed Exchange/Teams, comparable/renderable Exchange/Teams, certification, full M365 readiness, customer-ready proof, or restore readiness.
- T047 Add no-promotion and no-runtime matrices to
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md.
Phase 9: Validation And Checklist
Goal: Close the docs/catalog implementation with reviewable proof.
- T048 Run
git diff --check. - T049 Run
git diff --name-onlyand confirm changed files are limited tospecs/429-exchange-teams-source-surface-catalog-adapter-strategy/. - T050 Run
git status --shortand record final dirty state inspecs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md. - T051 If
catalog/exchange-teams-target-types.jsonis added, runpython3 -m json.tool specs/429-exchange-teams-source-surface-catalog-adapter-strategy/catalog/exchange-teams-target-types.json > /dev/null. N/A - no JSON catalog was added. - T052 Review and, if needed, update
specs/429-exchange-teams-source-surface-catalog-adapter-strategy/checklists/requirements.mdafter catalog artifacts and the implementation report are complete; record if no checklist changes are needed. - T053 Record browser status as
N/A - no rendered UI surface changedinspecs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md. - T054 Record Livewire v4 unchanged, provider registration unchanged under
apps/platform/bootstrap/providers.php, global search unchanged, destructive/high-impact actions none, asset strategy none, deployment impact none, visible complexity neutral, and no completed-spec rewrite proof inspecs/429-exchange-teams-source-surface-catalog-adapter-strategy/implementation-report.md.
Dependencies & Execution Order
- Phase 1 must complete before any catalog artifact work.
- Phase 2 creates files required by Phases 3-7.
- Phase 3 source collection must precede final catalog classifications.
- Exchange and Teams catalog work in Phases 4 and 5 can run in parallel after Phase 3.
- Phase 6 depends on enough catalog rows to select Cohort 1 and Cohort 2.
- Phase 7 depends on target classifications and cohort decisions.
- Phases 8 and 9 close after catalog and adapter strategy are complete.
Parallel Opportunities
- T013-T016 can run in parallel after catalog files exist.
- Exchange family tasks T017-T021 can run in parallel if merge coordination is explicit.
- Teams family tasks T023-T028 can run in parallel if merge coordination is explicit.
- No application-code task is parallelizable because no application-code task is allowed.
Stop Conditions
Stop and amend or replace this spec if any of the following becomes true:
- runtime adapters, provider clients, provider calls, or PowerShell execution are required;
- application code, migrations, routes, views, tests, jobs, commands, policies, or runtime config need to change;
- evidence rows, OperationRuns, coverage-level promotion, compare/render, certification, restore, reports, Review Pack/PDF output, or customer claims are required;
- catalog terms need to become runtime enums/statuses/registries;
tenant_id, legacy compatibility, fallback readers, dual writes, or Coverage v1 bridges appear;- official source research cannot support a safe Cohort 1 decision.
Recommended MVP Scope
Complete Phases 1-9 as a single docs/catalog package. Do not split before Cohort 1 and adapter strategy exist, because the value of Spec 429 is the combined map that makes Spec 430 safe.