prometeu-studio/docs/studio/pull-requests/PR-10d-bank-composition-family-policies-and-section-coordinator.md
2026-03-24 13:42:49 +00:00

3.2 KiB

PR-10d Bank Composition Family Policies and Section Coordinator

Domain owner: docs/studio Cross-domain impact: docs/packer

Briefing

Introduce the section-scoped coordinator for Bank Composition, built around StudioFormSession<BankCompositionDraft>, plus the first family-specific draft factories and policies.

This is the slice where the section starts behaving like an actual editor instead of just a shell.

Objective

After this PR:

  • Bank Composition has a section-scoped coordinator built around StudioFormSession<BankCompositionDraft>;
  • the section can enter edit mode and maintain draft state;
  • draft state can transfer rows between available and selected;
  • right-list ordering can update draft state;
  • family-specific rules are applied through draft factories and policies, not component-local logic.

Dependencies

Scope

  • add BankCompositionDraft
  • add the section-scoped coordinator around StudioFormSession<BankCompositionDraft>
  • add family-specific draft factories
  • add family-specific policies for:
    • transfer eligibility
    • reorder effects
    • capacity usage
    • hard-limit blockers
  • publish one section-facing view model for shell, lists, meter, blockers, and hints

Non-Goals

  • no public workspaceBus contract yet
  • no packer apply persistence yet
  • no final cross-domain mutation messages yet

Execution Method

  1. Add the draft model for bank composition.
  2. Add the section-scoped coordinator around StudioFormSession.
  3. Add the first family-specific policy/factory implementations.
  4. Route dual-list and meter inputs through the coordinator view model.
  5. Support edit, reset, and cancel with real draft recomputation.
  6. Keep apply stubbed or disabled until the write path lands.

Acceptance Criteria

  • the section can enter editing mode and maintain draft state
  • dual-list moves update draft state through the coordinator
  • right-list ordering updates draft state through the coordinator
  • meter state reflects policy-driven capacity calculations
  • tile and sound family differences are modeled through policies, not through component branches
  • reset and cancel work through StudioFormSession

Validation

  • unit tests for BankCompositionDraft
  • unit tests for tile and sound policy behavior
  • unit tests for transfer blocking and reorder effects
  • unit tests for StudioFormSession integration and draft lifecycle

Affected Artifacts

  • prometeu-studio/src/main/java/p/studio/workspaces/assets/details/...
  • family-specific policy and draft-factory classes under prometeu-studio/src/main/java/p/studio/workspaces/assets/...
  • tests for coordinator and policy behavior
  • cross-domain touchpoint: any details data gaps exposed by the new policy logic