# PR-10e Bank Composition WorkspaceBus Events and Local Orchestration

Domain owner: `docs/studio`

## Briefing

Connect the `Bank Composition` section-scoped coordinator to the Studio workspace event model using the minimal notification-oriented contract already decided.

This slice keeps user actions local while making draft, capacity, and apply lifecycle visible to the rest of the workspace when needed.

## Objective

After this PR:

- the section keeps user commands local to the section-scoped coordinator;
- the minimal `workspaceBus` notifications exist for bank-composition state changes;
- external observers can react to draft, capacity, and apply lifecycle without owning section-local commands.

## Dependencies

- [`../decisions/Bank Composition WorkspaceBus Interaction Decision.md`](../decisions/Bank%20Composition%20WorkspaceBus%20Interaction%20Decision.md)
- [`./PR-10d-bank-composition-family-policies-and-section-coordinator.md`](./PR-10d-bank-composition-family-policies-and-section-coordinator.md)

## Scope

- add the first public bank-composition events:
  - `BankCompositionDraftChanged`
  - `BankCompositionCapacityChanged`
  - `BankCompositionApplyRequested`
  - `BankCompositionApplied`
  - `BankCompositionApplyFailed`
- keep section-local actions local to the coordinator
- publish capacity notifications with:
  - `progress`
  - `severity`
  - `blocked`
- wire section subscribers/publishers as needed inside `Asset Details`

## Non-Goals

- no conversion of all section actions into public bus commands
- no cross-workspace event taxonomy expansion beyond the minimal first-wave set
- no packer write-path implementation in this slice

## Execution Method

1. Add the event classes and payloads.
2. Publish draft and capacity notifications from the coordinator.
3. Publish apply-requested/applied/apply-failed lifecycle notifications at the right boundaries.
4. Keep move/reorder/edit/reset/cancel orchestration local.
5. Add tests for event publication and subscription behavior.

## Acceptance Criteria

- the minimal first-wave bank-composition events exist on `workspaceBus`
- user actions such as move and reorder are not exposed as public bus commands
- capacity events publish absolute `0..1` progress plus severity and blocked state
- apply lifecycle notifications are observable outside the section

## Validation

- unit tests for event publication
- unit tests for event payload correctness
- unit tests confirming section-local actions remain local

## Affected Artifacts

- `prometeu-studio/src/main/java/p/studio/events/...`
- `prometeu-studio/src/main/java/p/studio/workspaces/assets/details/...`
- tests for bank-composition event flow
