Skip to content

docs: Settings Phase 2 feature-folder migration plan#204

Open
antosubash wants to merge 1 commit into
mainfrom
settings-phase2-plan
Open

docs: Settings Phase 2 feature-folder migration plan#204
antosubash wants to merge 1 commit into
mainfrom
settings-phase2-plan

Conversation

@antosubash
Copy link
Copy Markdown
Owner

Summary

Implementation plan for Phase 2 of the vertical-slice feature-folder migration: converting the Settings module (16 API endpoints across 3 resource groups, 2 cross-module contract services) to the layout validated by the Notifications pilot in #200.

Docs only — no code changes. Execution is gated on #200 merging (the plan depends on the migration tooling and conventions shipped there).

What the plan covers

  • 8 implementation tasks, modeled on the Phase 1 plan with TDD-style steps, exact file paths, exact code blocks, and per-task commit messages.
  • Two services to partial-class-split: `SettingsService` → `ISettingsContracts` (6 methods) and `PublicMenuService` → `IPublicMenuProvider` (9 methods).
  • 25-row TSV manifest scoped: 5 Infrastructure moves, 16 endpoint moves, 4 feature-scoped Contracts DTO moves. Entities, value objects, shared DTOs, events, and the contract interface stay at `Contracts/` root.
  • Recon-confirmed: zero cross-module blast radius for the Contracts split. The 11 external consumers of `SimpleModule.Settings.Contracts` all reference root-namespace types only (`ISettingsContracts`, `Setting`, `SettingsFilter`, events).
  • Integration tests deliberately stay in `Integration/` — they cover cross-feature HTTP flows by design (lesson learned in refactor: vertical-slice feature folders (Notifications pilot) #200).
  • Explicit execution prerequisites and exit criteria. Cross-module consumer build check baked into pilot verification.

Why a separate PR

Test plan

  • Review reads end-to-end — the plan should be runnable as-written by an agent with no prior context.
  • Recon claims in the plan match the actual codebase (file counts, service method signatures, cross-module consumer locations).
  • No requirement in the plan depends on something not in refactor: vertical-slice feature folders (Notifications pilot) #200 or on `main`.

Related

Mirrors the Phase 1 (Notifications) plan structure but applies to a larger
module: 16 endpoints across 3 resource groups, two cross-module contract
services (SettingsService → ISettingsContracts, PublicMenuService →
IPublicMenuProvider). Recon confirms ~zero cross-module blast radius for the
Contracts split because external consumers only use root-namespace types
(ISettingsContracts, Setting, SettingsFilter, events).

Execution prerequisites and exit criteria documented. Not started yet.
@cloudflare-workers-and-pages
Copy link
Copy Markdown

Deploying simplemodule-website with  Cloudflare Pages  Cloudflare Pages

Latest commit: ba6919e
Status: ✅  Deploy successful!
Preview URL: https://9f1a41c9.simplemodule-website.pages.dev
Branch Preview URL: https://settings-phase2-plan.simplemodule-website.pages.dev

View logs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant