Robert Bond
f5bdf6a7b0
Merged PR 2493: updated ministerial decision and removed inspectors decision for sips
...
updated ministerial decision and removed inspectors decision for sips
Related work items: #24335
2026-07-21 11:36:22 +00:00
Robert Bond
7b6af58065
Merged PR 2441: electricity shouldnt be showing reps available
...
electricity shouldnt be showing reps available
Related work items: #24008
2026-06-29 08:39:39 +00:00
Robert Bond
e195e09429
Merged PR 2407: Extract representation entry specialist rules to domain policy
...
Extract representation entry specialist rules to domain policy
Related work items: #23754
2026-06-19 11:21:17 +00:00
Robert Bond
c6e42fc314
Merged PR 2381: ROW case stage updates
...
Related work items: #23564 , #23779 , #23780
2026-06-10 10:12:11 +00:00
Robert Bond
c39e4bcc9a
Merged PR 2375: update representation policy
...
## Summary
Introduces a new `representation-policy` domain boundary and incrementally extracts low-risk representation entry policy logic while preserving existing behaviour.
This PR intentionally stops before extracting ROW and Advert entry rules because characterization uncovered behavioural differences between consumers that require a separate business decision.
## What Changed
Added:
```text
lib/domain/representation-policy/
```
Including:
- `resolveRepresentationWindow(...)`
- `isRepresentationWindowOpen(...)`
- `isRepresentationWindowClosed(...)`
- `canShowRepresentationButtonForAppealType(...)`
- `canStartHouseholderRepresentation(...)`
- `canStartCpoRepresentation(...)`
Updated consumers:
```text
components/case/summary/utils/representationEntry.js
components/search/repsonresults.js
```
## Extracted Behaviour
### Representation Window Calculation
Centralised shared representation window logic and adopted it in both consumers.
### Appeal Type Entry Gating
Centralised excluded appeal-type logic while preserving existing behaviour.
### Householder Rule
Centralised Householder (`846040004`) entry rule.
Preserved behaviour:
```text
Householder representations can only be started by LPAs.
```
### CPO Rule
Centralised CPO (`846040019`) entry rule.
Preserved behaviour using:
```text
pinswg_startdate
pinswg_statementduedate
```
No fallback date broadening introduced.
## Characterization Added
### ROW (`846040015`)
Documented:
- hearing vs non-hearing behaviour
- specialist-process field behaviour
- date gating
- appeal-type coercion behaviour
### Advert (`846040018`)
Documented:
- LPA/non-LPA behaviour
- specialist-process behaviour
- appeal-type coercion behaviour
## Important Findings
### ROW Divergence
Summary and Search consumers currently behave differently when only:
```text
pinswg_speacialistcaseprocess
```
exists.
### Advert Divergence
Summary and Search consumers currently use different specialist-process resolution paths.
### CRM Compatibility
Both fields remain in production use and must be preserved:
```text
pinswg_specialistcaseprocess
pinswg_speacialistcaseprocess
```
## Documentation
Added:
```text
lib/domain/representation-policy/README.md
```
Documenting:
- ownership
- non-goals
- CRM compatibility requirements
- ROW divergence
- Advert divergence
- future extraction constraints
## Validation
Executed during the slice series:
```bash
node tests/phase22/representation-window.test.cjs
node tests/phase22/representation-appeal-type-entry-gating.test.cjs
node tests/phase22/representation-householder-entry-rule.test.cjs
node tests/phase22/representation-cpo-entry-rule.test.cjs
node tests/phase22/representation-row-entry-rule.test.cjs
node tests/phase22/representation-advert-entry-rule.test.cjs
npm run lint
```
All passing.
## Out of Scope
No changes to:
- submission/finalisation
- uploads
- dashboards
- CRM/OData queries
- API routes
- Redux state
- translations
- blocked-message rendering
- CTA l...
2026-06-08 10:51:02 +00:00
Robert Bond
9595ad86df
Merged PR 2374: addeding domain layer extrraction
...
# Summary
This PR introduces a **Case Lifecycle Domain Boundary** to centralize lifecycle decision logic and reduce coupling within the appeals application.
The work is **behaviour-preserving** and introduces no intentional changes to business rules, CRM integrations, translations, dashboards, API routes, or user-facing functionality.
## What was added
New lifecycle boundary:
```text
lib/domain/case-lifecycle/
```
Key responsibilities extracted:
- Specialist process normalization
- Appeal type mapping
- Specialist process stage override mapping
- Stage case-type resolution
- Stage catalogue lookup
- Closed-case status recognition
- Lifecycle stage index resolution
- Lifecycle stage status assignment
## Behaviour preserved
Characterization tests were added before each extraction to preserve:
- Appeal type mapping and aliases
- Specialist process handling
- Lifecycle stage progression
- Closed-case handling
- Status assignment (`complete`, `in-progress`, `not-started`)
- Existing ROW behaviour
- Existing `statuscode` lifecycle semantics
Closed-case recognition remains unchanged for:
```text
1000
5
6
846040013
846040059
846040060
```
## Documentation
Added:
```text
lib/domain/case-lifecycle/README.md
```
Documenting:
- Boundary ownership
- Non-goals
- Lifecycle invariants
- Known architectural constraints
- Future extraction roadmap
## Testing
Added lifecycle characterization coverage for:
- Stage wrapper behaviour
- Specialist process normalization
- Appeal type mapping
- Specialist process stage mapping
- Stage case-type resolution
- Stage catalogue lookup
- Progress behaviour
- Closed-case status handling
- Stage index resolution
- Stage status assignment
## Validation
- Lifecycle characterization tests passed
- `npm run lint` passed with no errors
## Out of Scope
No changes to:
- Stage catalogue ownership
- Representation eligibility
- Dashboard calculations
- CRM/OData queries
- API routes
- Redux state
- EN/CY translations
- Event visibility logic
## Risk
**Low risk**
The refactor was delivered through small, characterization-first slices with no functional changes intended.
Related work items: #23527
2026-06-08 09:34:30 +00:00
Robert Bond
2262f3ab74
Merged PR 2369: added dns sips case close message and in welsh
...
added dns sips case close message and in welsh
Related work items: #23555
2026-06-03 14:48:58 +00:00
Robert Bond
d0cae0fff1
Merged PR 2368: case stage ROW updates and case closed variants and adv search fix
...
Related work items: #23551 , #23555 , #23559
2026-06-03 12:44:59 +00:00
Robert Bond
4ced5d0f42
Merged PR 2363: updated status and welsh
...
updated status and welsh
Related work items: #23319 , #23359
2026-06-02 08:34:51 +00:00
Robert Bond
905c82f598
Merged PR 2349: updated dropdown to show all new case stages
...
updated dropdown to show all new case stages
Related work items: #23447
2026-05-28 07:05:06 +00:00
Robert Bond
26e8464d46
Merged PR 2348: corrected welsh version of representations period
...
corrected welsh version of representations period
Related work items: #23319
2026-05-27 14:29:20 +00:00
Robert Bond
1df5573fce
Merged PR 2346: updated close status on non val
...
updated close status on non val
Related work items: #23365
2026-05-26 16:11:48 +00:00
Robert Bond
25485d73ed
Merged PR 2345: typo
...
typo
Related work items: #23365
2026-05-26 14:57:34 +00:00
Robert Bond
6d8d56d745
Merged PR 2343: update to non val
...
Related work items: #23365
2026-05-26 13:42:09 +00:00
Robert Bond
f6bbaa5c1d
Merged PR 2342: ammend case status and descriptions per bugs
...
ammend case status and descriptions per bugs
Related work items: #23319 , #23357 , #23359 , #23365 , #23394
2026-05-26 07:50:33 +00:00
Robert Bond
149238dd4e
Merged PR 2330: welsh translation update and reps and site visit fix
...
welsh translation update and reps and site visit fix
Related work items: #23087 , #23088
2026-05-18 12:18:03 +00:00
Robert Bond
9860f47cbe
Merged PR 2324: updated status message for case started/case in progrsss
...
updated status message for case started/case in progrsss
Related work items: #23064
2026-05-15 13:14:23 +00:00
Robert Bond
5a8fd73bfd
Merged PR 2321: updated welsh status on search results and status tab descriptions
...
updated welsh status on search results and status tab descriptions
Related work items: #23044 , #23045
2026-05-14 15:03:36 +00:00
Robert Bond
9140476a2a
Merged PR 2285: tweak to live link
...
tweak to live link
Related work items: #22423
2026-04-29 17:03:50 +00:00
Robert Bond
baf5b1838d
Merged PR 2283: Data driven status pages from CRM
...
Related work items: #22805
2026-04-29 15:29:54 +00:00
Robert Bond
d604d4f264
Merged PR 2269: added link for streaming events
...
added link for streaming events
Related work items: #22423
2026-04-23 14:34:08 +00:00
Robert Bond
37a81522d5
Merged PR 2260: refactor(representations): complete slice-based refactor of representations flow
...
## Representations Refactor — Behaviour-Preserving Structural Improvements
This PR delivers a full refactor of the representations flow, improving structure, readability, and maintainability while preserving all existing behaviour.
The work was completed using a controlled, slice-based approach with strict guardrails and regression validation at each step. No changes have been made to user journeys, payloads, routing, or EN/CY behaviour.
The result is a cleaner, more maintainable codebase with reduced coupling and clearer separation of concerns, ready for future enhancements without increased risk.
---
## What Was Done
The refactor was delivered incrementally across the following slices:
- **R1** — Representation entry logic extraction
- **R2** — Page loader separation (SSR/data orchestration)
- **R3** — Journey step resolution extraction
- **R4** — Flow shell decomposition
- **R5** — Representation elements normalisation
- **R6** — Data/service layer cleanup
- **R7** — Summary rendering proof slice
- **R8** — Submission/finalisation boundary isolation
- **R9** — Summary rollout (Batch 1)
Each slice:
- was isolated to a single concern
- followed strict guardrails
- was validated before merge
Full detail is available in:
`context/representations-refactor-tracker.md`
---
## Key Improvements
- Reduced coupling across the representations journey
- Separated data loading, orchestration, and rendering concerns
- Simplified complex conditional logic into testable helpers
- Standardised summary rendering using shared primitives (`SummaryCard`, `SummaryRow`)
- Isolated submission/finalisation sequencing into explicit boundaries
- Improved overall readability and maintainability
---
## Behaviour Preservation
This refactor does **not** change:
- User journeys (APP / IP / Agent / LPA)
- Route and query behaviour
- Payload contracts and API interactions
- Redux state shape and usage
- Validation rules and messaging
- EN/CY behaviour
- File upload / PDF / email sequencing
- Linked-case logic
All changes are structural only.
---
## Validation
### Automated
- `npm run lint` — passed (warnings only, no new errors)
- `npm run test:reps` — passed (7/7)
### Manual
Validated end-to-end across:
- APP
- IP
- Agent
- LPA
Including:
- representation creation
- editing/resuming representations
- submission flow
- confirmation/completion behaviour
- summary rendering across case types
- EN/CY parity
---
## Risk Management
The refactor targeted several high-risk areas:
- Case summary entry logic
- Representation submission/finalisation sequencing
- Dual-mode entry (new vs existing representation)
Risk was controlled through:
- small, incremental slices
- one branch per slice
- regression validation per slice
- strict behaviour-preservation guardrails
- controlled rollout for summary rendering changes
---
## Reviewer Guidance
Suggested areas to focus on:
- End-to-end representation journey (create → submit → complete)
- S...
2026-04-20 13:09:07 +00:00
robbond
344b6efed1
chore(lint): unblock next lint and fix current eslint errors
2026-03-13 06:24:38 +00:00
robbond
49374640e5
21187 add bilingual helper function
2026-01-27 11:57:44 +00:00
robbond
e04f87323f
App error on selecting case
2025-05-28 13:02:35 +01:00
robbond
ad5c726b54
14624 rep button logic for sips
2025-04-27 14:14:18 +01:00