Repository navigation
Conversation
The always-on baseline tier counted by bin/render-routing.sh --check was at 79,735 of its 80,000-word cap. This frees 3,772 words (now 75,964) by moving narrative and setup-only text out of baseline files, keeping every rule, STOP, denominator and gate cell in place, each rule still paired with a one-line failure example plus a pointer to the full text. - conversion-runbook.md, source-triage.md, interview-protocol.md: long incident narratives -> one line + pointer; originals verbatim in new on-demand process/baseline-incident-history.md (R1-R20, AR1, ST1-ST4, IP1-IP3). Runbook's duplicate open-questions status table now defers to interview-protocol.md section 4. - agent-roles.md: the six template shapes (setup-only) moved to agents/README.md, which installers never copy (explicit MXTK_AGENTS). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
…low", ST1 id Independent review of #315: obligations.tsv still pointed at agent-roles.md for step 8a, which moved to agents/README.md; agent-roles.md said the example bodies are "below"; the history header cited a non-existent section id. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
…ract before the first wireframe Part 1 of 3 for #291. Stage 3 now writes design/interaction-model.md after the role model is CONFIRMED and before the first wireframe: a home per role, an inbox per BRD user task, and per screen how it is reached, its page parameter / context object, its data view source, nav entry and roles. Every wireframe opens with a wf-contract block (Page parameter:, Reached from:, Drawn as role:), which page-fidelity treats as annotation and the prototype hides behind Show bindings. Wired: design-artifacts.md Step 2b + Step 3 contract + output tree, conversion-runbook.md Stage 3 "Agent produces" (3 words; baseline is now exactly at its 80,000-word budget), routing row (ondemand, Stage 3, lead + architect) re-rendered. Refs #291 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
…eat/interaction-model-skill
…t, gate clause - Routing row now lead,ba,architect (ba runs the Stage-3 interviews); re-rendered. - Page parameter written as Module.Entity or "none — <reason>" in both the skill's table and design-artifacts.md Step 3, since a later gate parses it. - Full paths design/ vs skills/interaction-model.md where ambiguous. - Runbook Stage-3 Gate row names the two-objects-two-roles walk. - Step 4 walk is a paper walk unless wireframes draw two records. - Trimmed "Why this exists"; changed the min-width example value. Refs #291 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
MendixMau
pushed a commit
that referenced
this pull request
Oct 13, 2026
Review: MERGE (after fix round + confirmation) — ba routed, one Page parameter format, full paths, Gate-row walk; no client names from #291 leaked (grepped all names); baseline 76,270.
This was referenced Oct 13, 2026
MendixMau
added a commit
that referenced
this pull request
Oct 14, 2026
) Every constituent PR was reviewed by a fresh agent that did not write it (CLAUDE.md "Merging a PR"); only MERGE verdicts joined. CI green on each constituent head and on this head (40814fc); full suites run on the branch. Review lines (per merged PR): - #315 context trim — MERGE; 360/385 removed lines found verbatim in their new homes, rest read by hand; baseline 79,997 -> 76,259. - #316 independent-review + word-budget rules — MERGE-AFTER-FIX (3 rounds), fixes applied as specified. - #318 page-fidelity displayed text — MERGE after fix round + confirmation. - #317 interaction-model skill (#291 part 1) — MERGE after fix round + confirmation; no client names leaked. - #321 PROOF-OF-LOOK per section; final-look not due before derived Stage 6 — MERGE after fix round + confirmation. - #307 graph-sweep guard; per-BRD conformance ledgers — MERGE after two fix rounds + confirmation. - #325 extraction-quality section; token-burn fixes — MERGE after fix round + confirmation. - #310 e2e OQL by alias, negative-span liveness, APP-DOWN, #302 credential regression fix — MERGE after fix round + 3 confirmations. - #323 inbox promotions — MERGE after fix round + confirmation. - #308 lint gate BLIND on reverted stock rules — MERGE (FIRST-SEEN reverted) after two fix rounds + confirmation. - #328 pipefail + grep -q flake — MERGE; 0/30 flakes vs 15/100 on master. Follow-up: run-all resolves bin/lib/ subjects (reviewed, MERGE). - #319 test-stack-up command-line ownership proof — MERGE after fix round + 2 confirmations. - #327 change-intake core + on-demand detail; CRLF-safe change log — MERGE after fix round + confirmation. - #320 follow-ups to #290/#292; Dispatching split out — MERGE after fix round + confirmation. - #326 status delivery rounds (existing-app mode) — MERGE after fix round + confirmation. - #312 lint batch 4: SEC014, toolkit CONV009 — MERGE after review + 2 fix rounds + confirmation; field run on mxcli 0.26. - #324 exec.sh change classes, shared stale-lock takeover, SEC014 note echo — MERGE (joint review); follow-up owed for a takeover race after a mid-takeover crash. - #322 MxTest after-startup guard, mxcli-run pid check — MERGE (joint review). - #314 doctor property-set exit code; sync announces its bound — MERGE (joint review). - #330 review follow-ups (exit 4/5 docs, pipefail, NUL strip) — MERGE-AFTER-FIX, fixes applied; takeover re-check dropped. Field runs are still owed for most instruments in this batch (stated in each PR). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw
4 of 5 tasks
Owner
Author
|
Landed on master as part of the integration squash #329 (commit 31e90ae), after independent review — its Generated by Claude Code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
#291, part 1 of 3: skill and wiring
Depends on #315. This branch merges
chore/baseline-word-trim(#315), which frees room in the baseline word budget. Merge #315 first; this diff will then shrink to this PR's own changes.Problem
Stage 3 never asks three questions:
Wireframes get drawn as one role looking at one record, and every later check inherits that view. In three apps built with the toolkit, every gate passed:
Meanwhile one of those apps had these defects:
A navigation review of a second app found 16 more defects of the same kinds.
Fix
New skill
skills/interaction-model.md(on demand). It runs at Stage 3, after the role model is CONFIRMED and before the first wireframe, and producesdesign/interaction-model.mdwith:The skill also contains:
show pagecalled without its argument;min-width;Wireframe page contract (
skills/design-artifacts.mdStep 3). Every wireframe now opens with a<div class="wf-contract">block containing three lines:Page parameter:, written asModule.Entityornone — <reason>. The skill's per-page table uses exactly the same form, because a later gate will parse this line.Reached from:Drawn as role:Because the block uses the
wf-prefix,page-fidelity.jsdrops it as annotation andassemble-prototype.jshides it behind Show bindings.Wiring:
skills/design-artifacts.md:skills/interaction-model.md;design/interaction-model.mdadded to the output tree.skills/conversion-runbook.md, Stage 3:design/interaction-model.md(first);bin/lib/skill-routing.tsv: new row, on demand, stage 3,lead,ba,architect(ba runs the Stage-3 interviews), groupdesign. The re-render changed these files:gate-check.shstage_protocol_pathsEvidence
page-fidelity.jsontests/wave2/fixtures/page-fidelity-mocks/bind-contract.htmltwice: once as is and once with awf-contractblock injected. The output was byte-identical.Risks
Baseline word count (
bin/render-routing.sh --check):The +8 words are the Gate-row clause.
Protocol notice reaches every stage: projects will be told the protocol changed once they sync.
skills/interaction-model.mdis added to the Stage-3 protocol paths. More importantly,conversion-runbook.mdchanged, and it is always relevant, so projects at any stage see the notice. That is intended: the runbook text changed.No other behaviour change for existing projects: there is no new gate or blocking check yet.
Checks run
bin/check-scripts.shbin/render-routing.sh --checkbin/check-portability.shbin/check-no-private-citations.shbin/check-pr-discipline.sh origin/masterLEAKGUARD_ALLOW_NO_DENYLIST=1 bin/check-no-client-data.shNo fixture is included because no instrument changed. By inspection, the existing fixtures that mention the touched skills don't assert on the changed text.
Flake seen in
render-routing.sh --check: twice it reported a random, actually routed skill (learned-microflow-patterns.md, thenmodule-brief.md) as UNROUTED, with rc 2. Repeat runs passed. The two reported files are unrelated to this change, so it looks pre-existing.Field-run status
Still owed. The skill has not yet been used on a real project's Stage 3.
Design for the follow-ups (not in this PR)
Part 2: Stage-3 gate facts (
bin/gate-check.sh <p> 3, facts only). This also needs an artifact-manifest row fordesign/interaction-model.md(bin/lib/artifact-manifest.tsv, with Stage-3 consumers cited), so that a missing artifact reportsPENDINGout loud.The gate reports
PENDINGwhen the artifact is absent, andFAILwhen:design/wireframes/*.htmlfile has noPage parameter:line inside awf-contractblock, or the line matches neitherModule.Entitynornone — <reason>.These findings are waivable in the register. Projects already past an
--adoptpoint reportADOPTED.checkpoint-design.mdalso gains a question, "who lands where, and how does each role find its work", asked alongside the layout question. Fixtures will be synthetic project trees, each failing on master.Part 3: model-side check (Stage 5; a
project-binscript or lint rules). It readsdescribe navigation, page data views andshow pagecalls, then reports:firstfrom an entity that is not a singleton;show page Pwith no argument, where P takes an object;min-widthon grid selectors in the theme.Its test input must be captured
describeoutput from a real model, never hand-written. The acceptance target from the issue: on the affected app it reports at least 8 current-object pages, 1 home for 6 roles, and 3 stage menu items.Journey and seed changes belong to
testing-shape.mdandjourney-proof.md, which other PRs own. Those changes are 2+ open objects, and one journey per non-primary role starting at its home.Refs #291
🤖 Generated with Claude Code
https://claude.ai/code/session_01VJgWP5vEoAsNsJYqCDMGNw