Skip to content

trim(preflight): move STOP-row narrative out of the baseline; add Kind column (lazy-load PR 1) - #570

Merged
MendixMau merged 2 commits into
masterfrom
claude/loving-gates-hauc1n-lazy-pr1
Oct 23, 2026
Merged

MendixMau merged 2 commits into
masterfrom
claude/loving-gates-hauc1n-lazy-pr1

Conversation

@MendixMau

Copy link
Copy Markdown
Owner

Direct lane

What changed and why (one paragraph):
PR 1 of the "Option C" lazy-loading plan. It moves text and adds an index. Only skills/learned-mdl-preflight.md changes, plus its destination and the CHANGELOG. What moved to process/baseline-incident-history.md § PF1 (new section, in that file's existing format, verbatim):

  • the "Re-probed on…" line and the old "Version context" line;
  • the whole Version notes (mxcli ≥ v0.20.0) block;
  • the STOP table as it stood before the trim, all 34 rows verbatim. That includes the 15 retired rows (1c 2 3 5 6 6b 7 8 9 10 11 13 15 17 27) and every live row's full root cause.

In the skill:

  • The retired rows collapse to one line that lists their numbers and points to § PF1.
  • Each live row keeps its If and Then cells unchanged, plus one short failure clause in a "Fails as" column.
  • A new Kind column sits at the end of each row: page | microflow | access | workflow | any. No live row came out as entity; row 23 covers documents and entities, so it is any.
  • Pointers to § PF1 sit where the text moved: the Version context line, a line above the table, and the retired-rows line.

Protected text that stays:

  • every live row's If/Then text, verbatim;
  • row 1's safe CLI alternative, its ContentParams ban and per-value colours, which were in the root-cause cell (they are rewrites);
  • 1b's "read the page back with describe page";
  • 22's "the exit code is the only signal: never ignore it";
  • 23's BUG-146 "check each - Attribute against DESCRIBE ENTITY";
  • Step 0, all MDL gotchas, the final self-check and every denominator;
  • the workflow DECISION STOP (BUG-76, "never force with --no-check") and the #879 "read the ledger entry before a first marketplace install" pointer. Both used to sit in the version notes and are kept as one line.

Parsers kept working:

  • test-mdl-scan.sh:56: the scan key dynamictext (Attribute: "State") is only in this file, not the ledger. It stays in row 1.
  • :90: the | <n> 🔎 markers still match exactly 1/12/16/26. The Kind column sits at the row end, and the retired line starts | 1c 2 … with no 🔎.
  • No other parser in bin/ or tests/ reads the table's content. sync-project.sh, wiring-item3.sh, gate-check.sh and the bug06, bug12, sync-dup and context-audit fixtures only use the file path.

Impact

Row Answer
Process none: no gate or step added or removed
Dependencies skills/learned-mdl-preflight.md, process/baseline-incident-history.md, CHANGELOG.md. No shared script touched.
Context cost render-routing.sh --check baseline 73,946 → 72,891 words (−1,055), budget 80,000; routing surfaces in sync. Stage 5 mdl role 30,443 → 29,388; the other stages and roles are unchanged. Below the ~−1.3k estimate because the If/Then cells, which hold most of the remaining words (rows 16, 21, 22, 23, 24), are protected.
Behaviour Reduced A/B, M = origin/master 888b4b2, T = 4f5734e. 3 page + 3 mf per arm, plus 1 rep per arm of 5 new planted traps (STOP 12, 26, 1b, 33, 29): 22 reps. Every rep was a fresh claude -p (claude-opus-5-5, Read/Write only) run from an empty directory with no CLAUDE.md. T no worse than M on every metric; no losses. Details below.
Runtime n/a

Moved-text check: bin/check-moved-text.sh process/baseline-incident-history.md skills/learned-mdl-preflight.md found 43 of 43 removed non-blank lines verbatim in the destination (exit 0).

Fixtures (scoped): tests/wave2/test-mdl-scan.sh: 52 passed, 0 failed. bin/render-routing.sh --check: in sync. The full suites were not run.

A/B detail:

  • All 22 reps read their pack to the end (read_all=1), so there were no partial reads.
  • page, M and T alike: sections 4/4, report 1, planted 1/1/1, scan 0, crumbs 2/3, h1 2/2, empty 1, uixref 1, folder 1/3.
  • page quoted: M 100/92/95, T 100/100/100.
  • mf, M and T alike: planted 1/1/1, mfpre 1, cinloop/rinloop/pos 0, vfb 1, scan 0.
  • mf quoted: M 89/84/88, T 90/90/87.
  • check = NA in both arms (no mxcli binary).
  • Traps (planted / flagged): 12, 26, 1b, 33 and 29 each scored 1/1 in both M and T.

The trap tasks and their scorer were ad hoc. They were not added to tests/behaviour/, because score.sh scores a planted request only for page and mf, and adding tasks would widen this PR. A run used 7 turns in both arms. Tokens per run: page M 384–482k, T 340–396k; mf M 258–480k, T 356–462k.

Field evidence: n/a. Text only; no instrument changed.

  • No client data anywhere in the diff
  • Size cap: 3 files, 78+/44−
  • Test tier: scoped fixture + render-routing check + behaviour A/B (reduced)
  • CHANGELOG.md line appended in this PR

Review: pending independent review


Generated by Claude Code

…d column (lazy-load PR 1)

Pure move plus an index, skills/learned-mdl-preflight.md only:
- retired STOP rows (1c 2 3 5 6 6b 7 8 9 10 11 13 15 17 27) collapse to one
  line naming their numbers and pointing at the history file;
- version notes and every live row's root-cause narrative beyond one failure
  clause move to process/baseline-incident-history.md § PF1, verbatim;
- new Kind column at the end of each row (page/microflow/access/workflow/any).

Protected text stays: every live row's If/Then, Step 0, the gotchas, the
final self-check, the workflow DECISION STOP and the #879 read-first pointer.

check-moved-text: 43 of 43 removed lines found. render-routing --check:
baseline 73946 -> 72891 words, in sync. test-mdl-scan.sh: 52 passed, 0 failed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013jQvaonym9V1wKKfAEPmRr
Review nit on #570.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013jQvaonym9V1wKKfAEPmRr
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants