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

3.0 KiB
Raw Permalink Blame History

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.