Files
pedwfrontend/context/refactor-branch-charter.md

162 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Refactor Branch Charter — Portal Journeys
## Purpose
This branch exists to safely refactor **core portal journeys** so they are:
- easier to maintain
- safer to change
- better structured for future extensibility
This is a **behaviour-preserving refactor branch**, not a feature branch.
---
## Primary Goal
Improve internal structure of portal workflows while preserving all current live behaviour.
---
## Scope
### In Scope
- behaviour-preserving refactor of:
- new appeal flow (`pages/newappeal/**`, `components/newappeal/**`)
- representations flow (case summary → representation journey)
- extraction of reusable workflow logic
- improved separation between:
- UI
- workflow orchestration
- data fetching
- integrations
- preparation for future extensibility
---
### Out of Scope
- business rule changes
- UI redesign
- payload/schema changes
- replacing dynamic/config-driven logic with hardcoding
- feature delivery mixed with refactor work
---
## Branch Model
### Roles
- `SIPS-Development`
- BAU branch
- ongoing production work
- `refactor`
- refactor integration branch
- feature branches
- created from `refactor`
- one per slice
---
### Flow
SIPS-Development → refactor → slice branches → refactor → SIPS-Development
---
## Refactor Streams
### 1. New Appeal Flow (Completed)
- Slice-based refactor (Slices 18)
- Behaviour preserved (S78)
- Improved structure and maintainability
This serves as the **reference model for future refactors**
---
### 2. Representations Flow (Active)
Scope includes:
- Case summary entry (CTA logic)
- Representation journey:
- capacity selection
- representation type
- content entry
- file upload
- check answers
- submission
- completion
- SSR/data loading and Redux hydration
- integration points (CRM, blob storage)
---
## Non-Negotiable Principles
1. Preserve live behaviour
2. Prefer extraction over rewrite
3. Work in small, safe slices
4. Keep changes reversible
5. Protect:
- save/resume flows
- upload behaviour
- submission/finalisation
6. Maintain EN/CY parity
---
## Target Direction
Move towards:
- shared journey/workflow engine
- smaller, composable components
- clear separation of:
- decision logic
- rendering
- integration logic
- ability to support:
- multiple appeal types
- additional portal journeys (like representations)
---
## Definition of Success
This branch is successful when:
- behaviour is preserved across all journeys
- complexity is reduced
- code is easier to understand and change
- regression risk is lower
- new journeys/types can be added safely
---
## Delivery Model
Each refactor stream must:
1. follow slice-based approach
2. implement one concern per slice
3. validate behaviour after each slice
4. merge into `refactor` only when safe
5. merge to `SIPS-Development` only when stable
---
## Safety Reminder
This is a live system.
If there is any doubt:
> Preserve behaviour, reduce risk, and keep changes small.