I0832 — generate-site-data instrumented and its hot spots removed
Declare phases per section of the site generator, rank them, and remove the repeated work in the two most expensive sections.
READY wave 2 · p0 · implementation profile · runs alone
Part of M004 — Performance is executable evidence, and the hot path does no canonical work twice.
Ready. Every dependency is done, so majordomus plan start I0832 will be accepted.
Objective
Declare phases per section of the site generator, rank them, and remove the repeated work in the two most expensive sections.
Why
The generator's --check runs in CI and in case 51; it costs 27 s on this repository.
Current state
No phase inside the generator is timed.
Desired state
--check under 8 s on this repository, output byte-identical.
Scope
- scripts/generate-site-data
- test/cases/10_site_data.sh
- test/cases/51_derived_artifacts_committed.sh
Out of scope
- Changing the generated data
Dependencies
- I0817DONE Phase timing and work counters behind MJ_TIMING
- I0819DONE The project model is loaded with one flatten per file and no per-file lookups
What waits on this
Acceptance criteria
- Byte-identical site/data/generated before and after
- The phase ranking is printed under MJ_TIMING
Validation
- MJ_TIMING=1 scripts/generate-site-data --check
Evidence required
- batch_reads
Evidence
None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.
Risk
The generator shares lib/common.sh, so the flatten cache and the batch loaders apply to it directly.
Timeline
- started
- —
- verified
- —
- completed
- —
Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.
Canonical record: .ai/repo/project/issues/I0832.yaml. Read it back with majordomus plan show I0832.