Skip to content

I3235 — The site generator reads the use-case catalogue once per run

Parse the use-case catalogue once in scripts/generate-site-data and hand the parsed form to every section that needs it, with output byte-identical.

BLOCKED wave 3 · p2 · implementation profile · parallel safe

Part of a-change-is-judged-in-minutes — A change is derived in under a second and judged in minutes, and nothing that could have changed is skipped.

Blocked. This issue cannot start until I2521, I0832 are done. The status is derived from that, not declared.

Objective

Parse the use-case catalogue once in scripts/generate-site-data and hand the parsed form to every section that needs it, with output byte-identical.

Why

Board p3 (Codex) audit 2026-10-18: stage B parses the catalogue four times. Rule project.hot-path-reads-once. Past derive wins came from removing repeated passes and spawns (c265#8). It extends milestone M004. Sources: chatgpt-majordomus:c292#2.

Current state

scripts/generate-site-data is 2638 lines (wc -l on master 707a04c, 2026-10-18). The board p3 audit (2026-10-18) counted four parses of the use-case catalogue per run; that count is the audit's, not re-measured here. I0832 'generate-site-data instrumented and its hot spots removed' (READY, p0) times the generator's phases and removes the repeated work in its two most expensive sections; this issue is the catalogue-parse delta on top of it.

Desired state

One parse per run, counted by MJ_TIMING work counters.

Scope

  • scripts/generate-site-data
  • test/cases/10_site_data.sh

Out of scope

  • Scenario reuse (I2526)
  • Porting the generator off shell
  • Phase timing and ranking of the generator, and its two most expensive sections (I0832)

Dependencies

Acceptance criteria

  • The work counter shows one catalogue parse per run
  • Site data is byte-identical before and after
  • generate-site-data --check passes

Validation

  • MJ_TIMING=1 scripts/generate-site-data --check
  • bash test/run.sh 10_site_data

Evidence required

  • catalogue_read_once_counter

Evidence

None recorded. Every token above needs a command or an artifact behind it before this issue can be completed; narrative is refused.

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/I3235.yaml. Read it back with majordomus plan show I3235.

Searches the titles and descriptions of every page this site publishes.