prometeu-studio/docs/studio/pull-requests/PR-10c-bank-composition-section-shell-and-form-session-integration.md
2026-03-24 13:42:49 +00:00

71 lines
2.9 KiB
Markdown

# PR-10c Bank Composition Section Shell and Form Session Integration
Domain owner: `docs/studio`
## Briefing
Add the `Bank Composition` section shell into `Asset Details`, aligned with `Runtime Contract` and the existing `StudioFormSession` section rhythm.
This slice lands the visible section and its staged-edit shell contract before full family-specific behavior is wired.
## Objective
After this PR:
- `Asset Details` contains a real `Bank Composition` section;
- the section is a `VBox` section aligned with the existing details composition;
- the section mirrors the `Runtime Contract` shell as closely as practical;
- the section exposes `change`, `apply`, `reset`, and `cancel`;
- outside editing it renders persisted state in read-only mode;
- before behavior wiring is complete it can still render disabled/read-only internals instead of looking absent.
## Dependencies
- [`../decisions/Bank Composition Section Shell Decision.md`](../decisions/Bank%20Composition%20Section%20Shell%20Decision.md)
- [`./PR-10a-bank-composition-details-dto-projection.md`](./PR-10a-bank-composition-details-dto-projection.md)
- [`./PR-10b-bank-composition-base-components.md`](./PR-10b-bank-composition-base-components.md)
- [`./PR-07c-asset-details-and-form-lifecycle.md`](./PR-07c-asset-details-and-form-lifecycle.md)
## Scope
- add the `Bank Composition` section to `Asset Details`
- align the shell with `Runtime Contract`
- integrate `StudioFormSession` staged-edit lifecycle at the section boundary
- render read-only or disabled internals when behavior is incomplete
- show persisted state outside edit mode
## Non-Goals
- no family-specific bank rules yet
- no final section-scoped coordinator yet
- no workspace-bus events yet
- no packer apply write path yet
## Execution Method
1. Introduce the section host into `Asset Details`.
2. Reuse the existing section/action-bar rhythm from `Runtime Contract`.
3. Bind the section shell to a `StudioFormSession` lifecycle.
4. Render read-only state outside edit mode.
5. Render disabled/read-only internals where behavior is still pending.
## Acceptance Criteria
- the `Bank Composition` section is visible in `Asset Details`
- the section shell matches the existing details-section rhythm
- `change`, `apply`, `reset`, and `cancel` are part of the shell contract
- outside edit mode the section shows persisted state in read-only form
- the section does not appear blank or absent while later slices are still pending
## Validation
- unit tests for section visibility and shell state
- unit tests for `StudioFormSession`-driven shell transitions
- UI smoke validation for read-only and editing shell modes
## Affected Artifacts
- `prometeu-studio/src/main/java/p/studio/workspaces/assets/details/AssetDetailsControl.java`
- new bank-composition section controls under `prometeu-studio/src/main/java/p/studio/workspaces/assets/details/...`
- tests for details section-shell lifecycle