Repository navigation
new(process-map): process map that pins each question to the step it is about (draft at Stage 2 close, full at Stage 3) - #429
Merged
Conversation
…ess step One swimlane board per business process. Each step sits in its role lane, shows its wireframe and what the system does, and carries a pin for every open question and ASSUMED decision about that moment, so a reviewer can answer a question where it happens instead of in a flat list. - skills/process-board.md: when, model authoring, anchoring, build, verify by looking - project-bin/process-board.js + template: validate, anchor (derived plus judged by fingerprint, global counted), build (self-contained, light and dark, deterministic) - Stage 3 Agent produces and Surface rows, process-board manifest row, swimlanes opt-in discharged by the model, CAC-4 line, routing row, install pair, check_stage_3 FAIL on a missing or stale board - tests/wave2/test-process-board.sh on a synthetic order approval fixture Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… default, visible click cues Pass 1 at Stage 2 close shows each consolidated question in its place in the work before it is raised, and feeds module boundaries, journeys and the screen list. Pass 2 only re-runs the script once wireframes exist. Board opens light; a how-to bar, an Open footer per card and a first-step pulse make the click targets obvious. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d theme Cards render the wireframe at 640px wide (was 1280) so text is legible; the drawer preview is larger. Screens drop any hard-coded theme and follow the Theme button. iframe sandbox now allow-same-origin (still no scripts): an empty sandbox left srcdoc frames blank in Chrome. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Fallback path, anchor --json stdout, judged entry placement, id examples, standard buckets, exit codes, screenshot flags, step count guidance, ignorePages option, dashboard and export rule. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… committed, pass 1 without screens, CAC-3 wiring, optin row, routing re-render) Merges origin/master (CHANGELOG both sides kept). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hitecture Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
# Conflicts: # CHANGELOG.md
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.
new(process-map): process map that pins each question to the step it is about (draft at Stage 2 close, full at Stage 3)
Why
At Stage 3 a reviewer gets the open questions, the ASSUMED decisions and the wireframes as three separate lists. A business owner who reads "Should a rejected order go back to draft?" cannot tell where in the work that happens, so the question gets answered blind or not at all. In a requirements-driven rebuild POC (2026-10-16) the reviewer said exactly this: "I really don't understand where in the process they fit."
Name
"Process" in the progress report means the toolkit's own stages; this page shows the app's business process. Distinct names avoid the confusion, so it is the process map (renamed from "process board" after review). The progress report (separate PR #434) will link to it later; not in this PR.
Review fixes
tests/wave2/fixtures/process-map/brd/, read throughbrdDirs), so the suite passes on a clean checkout.optinwith corrected line cites; a wireframe edit marks the map stale in the gate; the full-size screen link keeps the sandbox.What
Two passes over one model. Pass 1 at Stage 2 close: right after the BRDs validate and the questions are consolidated, the map is drawn without screens, so each question is raised in its place in the work. It also feeds Stage 3: the processes and lanes inform module boundaries, the journeys and the screen list. Pass 2 at Stage 3: after the wireframes exist, only the script re-runs and the screens appear on the steps. The hand work happens once.
skills/process-map.md: when to run it, how to authordesign/process-model.json(lanes per role, steps on wireframes, decisions, standalone use cases), how to anchor every item (derived first, judged with a basis for the rest, global buckets counted), build, and verify by looking at headless Chrome screenshots.project-bin/process-map.js(Node stdlib, deterministic) plusprocess-map.template.html:validate [--strict]: a step page with no wireframe, a task without a page, an unknown use case, a use case on no process and not standalone, a decision with fewer than two outcomes, two steps in one cell, a brokennext, a duplicate id.--strictalso fails on unanchored items.anchor: places items mechanically (named microflow, listed or named use case, named screen, overlapping source lines, a decision naming a placed question). Keeps judged entries by fingerprint, so a reworded question is unplaced again instead of silently wrong.build: writesdesign/process-map.html. It is self-contained and offline. It opens light, and the Theme button switches the map and the screens together (a wireframe's own hard-coded theme is dropped). It has an index and one swimlane map per process. Each step shows a wireframe thumbnail. Pins are coloured by blocking, open or assumption. There is a "Blocking only" filter. Clicking a step opens a drawer with the large screen, a prototype link, the question cards and technical details behind a click. Field feedback was "I didn't know I had to click", so a how-to bar, an "N questions · Open ›" footer on every card and a pulse on the first step (until the first click) make the click targets obvious. Card screens render at 640px wide so text stays legible.conversion-runbook.md.process-maprow inartifact-manifest.tsv(optin: an existing model counts as opting in).design/process-model.jsonadded to theswimlanesopt-in paths, because the map draws the same lanes.skill-routing.tsvrow, rendered.install-manifest.shinstalls the generator and the template as a pair.check_stage_3FAILs when the model exists but the map does not, or when the map is older than its model, its anchors or any wireframe.tests/wave2/test-process-map.shon a synthetic order approval fixture intests/wave2/fixtures/process-map/.Evidence
Field run (customer data kept local, not in this PR): 9 processes, 73 steps, 110 use cases (6 standalone), 37 wireframes, 102 pinnable items: 48 derived, 54 judged (19 of them global), 0 unanchored. Index and maps checked by screenshot, light and dark.
tests/wave2/test-process-map.sh: 74 ok, 0 FAIL on a clean checkout (fresh worktree), including pass 1 without screens and a committed synthetic BRD.Related suites still pass: closeout, wireframe-count, bug03-gates, bug06-freshness, surface-column, routing-tier, baseline-pack, render-routing, manifest-clean-checkout, prototype-links, assemble-prototype, runbook-slice (with
LC_ALL=C).bin/render-routing.sh --check,bin/check-skill-routing.shandbin/check-scripts.share clean.bin/check-no-client-data.shis clean against the denylist.Pre-existing, unrelated:
test-app-facts-db-uri(9 pass, 1 fail),test-app-restart(killed on its sleep) andtest-runbook-slice(needs an argument) fail the same way on currentmaster.Not in this PR
Making the map the front page of the Stage 2 surface (
brd-report.htmllinking into it) is a follow-up.No Windows run yet. The script is Node stdlib only, and the gate addition uses the same
-ottest as the blueprint check.The map does not yet feed
journey-proof.mdmechanically. Today the link is the same process names.Reproduction test
A fresh Sonnet agent, given only the skill (then named process-board), rebuilt the map for a field project. Verdict: close. Structure and placement nearly the same; the process split differed because the reproduction gave the dashboard and the document export their own processes.
validate --strictandbuildpassed.anchor --jsonstdout, where judged entries go, second use case id example, standard global buckets, exit code 1 while items remain, Chrome flags, board width, wireframe layout sketches, dashboard and export rule, questions file path). The latest commit fixes them: newignorePagesoption inprocess-model.json,anchor --jsonkeeps stdout pure JSON, and a test case for both.Advice: replace or front the BRD report. This needs to be decided by the main sessions.
The map could become the Stage 2 front page, or replace
brd-report.html.Replacing would need:
brd-report.html.Recommendation: front first (board as the entry, BRD report one click away). Replace only after a field review.
🤖 Generated with Claude Code
🤖 Generated with Claude Code