docs(perf): implementation plan for detail-page server/client split

Nine tasks mapping to the spec's commit sequence, each ending in an
independently testable deliverable.

Also corrects the spec's section-sharing table: measured similarity shows
Admissions (14%) and History (40%) are not shareable between the two views,
only Ofsted (80%) and Finances (91%). This costs no bytes -- the win comes
from sections being server components, not from sharing them -- and cuts the
diff and regression risk.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Tudor
2026-08-01 20:52:56 +01:00
co-authored by Claude Opus 5
parent 97dd69a512
commit 7199c3a90b
2 changed files with 975 additions and 5 deletions
@@ -100,12 +100,32 @@ shell but to stop the other ~750 lines being attached to it.
### Section sharing
| Shared by both views | Primary only | Secondary only |
| --- | --- | --- |
| Ofsted, Admissions, History, Finances, and the shell | Results (KS2), Inclusion, School Life, Local Area | Wellbeing |
Sharing is decided by measured similarity, not assumption. Comparing the two
views' section bodies line-by-line (`difflib.SequenceMatcher` on stripped lines):
All-through schools render both the KS2 and KS4 section sets. The shared library
makes this natural rather than duplicated.
| Section | Primary | Secondary | Similarity | Decision |
| --- | --- | --- | --- | --- |
| Finances | 29 lines | 35 | 91% | Shared |
| Ofsted | 88 | 107 | 80% | Shared |
| History | 121 | 47 | 40% | Separate |
| Admissions | 89 | 55 | 14% | Separate |
Admissions and History were assumed shareable when this design was first drafted;
measurement during planning showed they are not — primary's admissions carries
the year/trend toggle and chart, secondary's is a much simpler panel.
**This costs nothing in bytes.** The client-JS win comes from a section being a
*server* component, not from being shared between views. Sharing is a
maintainability benefit, taken only where it is cheap. Forcing the two
low-similarity sections together would inflate the diff and the regression risk
for no performance gain.
| Shared | Primary only | Secondary only |
| --- | --- | --- |
| Ofsted, Finances, `sectionShared` primitives, and the shell | Results (KS2), Admissions, History, Inclusion, School Life, Local Area | GCSEs, Admissions, History, Wellbeing |
All-through schools render both the KS2 and KS4 section sets via the primary
composer.
### CSS strategy