Repository navigation
Roadmap, rest: studio, walkthroughs, the design step held by the instrument, blind pairwise preference, a second ticket - #6
Merged
Conversation
…e a person decides `uxcli studio [dir] [--serve [--port=N]] [--shot=FILE] [--json]` builds one page, .uxcli/studio/index.html, from what is under .uxcli/ and the shipped library: each journey a band, its workflows side by side as lanes, each step a column with the screen as drawn (variants A/B, the pick), as built (the last walk's screenshot, experience findings pinned where the browser found the element, a dashed bar when below the fold) and as each named version left it, steps joined by arrows. Pan by dragging, zoom by scroll or pinch, fit, an outline of every step with a dot for findings and open picks, an inspector for the frame in hand (variants and what the agent says of each, the pick, a redraw asked; metrics, findings with sources, verdicts; a version's note and numbers), and Context (actors, unknowns, insights) and Library (lenses, templates) tabs. The model is inlined, so the page works from disk. --serve runs it on 127.0.0.1, rebuilds and pushes a refresh when a file under .uxcli/ changes, serves nothing outside .uxcli/, and takes the two decisions a person makes there: choose a drawing, written as pick.json with the drawing's hash, or ask for a redraw, written as revise.json — each through the parser the file is read with, and neither overwrites. --shot photographs the fitted board, so an agent working through the CLI can look at the same thing the person does. Skill: look at the board with --shot; send the person to --serve when a pick is theirs. .uxcli/studio/ and .uxcli/experience/ are derived and ignored. Gate: studio-pairs (24) — one column per step, the pick and the drawings on the board; a pick of a missing drawing refused, a valid one written with its hash, a second refused, an empty redraw refused; the server answering page and model, refusing a path outside .uxcli/ and an unparseable pick; in Chrome no page error, drag and zoom move the canvas, a frame fills the inspector, and the four page probes find no fail on the board. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011TUCUpbzmTpBE6ND7eHfzx
… walkthroughs, studio compare and notes Library. Two topic pools researched from the source repositories of USWDS, GOV.UK, Primer, Carbon, Polaris and the W3C, every quote checked verbatim: navigation and information architecture (10) and motion and feedback (10); the lenses carry 187 viewpoints. Templates `content` (docs, help centres) and `mobile-app`. `template apply` records the template in .uxcli/template.json, and `context show` names it, the lens for each kind of screen, and the lens each screen of the journey was reviewed against. Evidence. schemas/trace.schema.json (a step of a walk; a typed value stored instead of its hash does not fit) and experience.schema.json (the report), held by the experience pairs. Walkthrough. `uxcli walkthrough <journey> [--as=<actor>] [--for=…] | check`: the four questions of Wharton, Rieman, Lewis & Polson (1994) at every step of a walk, answered from its screenshot, as an actor the project wrote. check refuses a step left out, an answer without why, a no without where, a persona nobody wrote, an agent answering for nobody, and a yes the walk contradicts (noticing a control measured below the fold; progress where the step did not arrive). "No" and "unsure" are findings, shown on the studio's inspector. Schema and references/walkthrough.md. Studio. Two named versions compare on the board; a note on a built frame becomes a `redesign` proposal citing the walk; a frame's picture opens on its own. Gate: walkthrough-pairs (12), experience-pairs (46), studio-pairs (27), template-pairs (28), lens-pairs (47). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011TUCUpbzmTpBE6ND7eHfzx
… experiment scored on the walk A page that had not changed at all after an action read as settled at 0 ms: a Save that answers after two silent seconds measured as instant. The observer now marks the action's start, waits up to 2.5 s for the first change when there has been none, records timing.firstChangeMs (Nielsen's response, from the page's own clock), and during a wait past a second whether a progress signal was shown (a progressbar, a busy region, a visible status text). Live: a Save with a status message answers in 79 ms; the silent one in 2051 ms with progressSeen false. `experience` reads response from the first change; a wait with a signal shown is not a finding until ten seconds. Trace schema and pairs (48). The experiment scores each session on the walk too (score.mjs: the happy workflow's estimate, scrolls and findings by metric), and rescore.mjs scores every session again with one instrument, staging the fixture with the page the session wrote. Three sessions an arm, Sonnet: ticket alone 0/3, with the skill 3/3 at both viewports, the ticket arm's pages leaving the call step unreached. Recorded in the experiment's README; ROADMAP and VISION say what it shows and does not. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011TUCUpbzmTpBE6ND7eHfzx
…a screen's journey Ten fresh Sonnet sessions an arm, scored by `uxcli run` and `uxcli experience` with one instrument: ticket alone 0/10, with the skill 8/10, experience findings median 2 against 1 (the ticket arm's pages leave the call step unreached). The two failing skill sessions ran only page runs and never read the journey's card; `uxcli run <url>` now says which journey and state a screen is, and sends the agent to `context show` (src/core/journey-of.js, held by brief-pairs). The draw arm removes the lead page's two drawings and records the workspace template, so the sequence asks for a lens, variants and a person's pick before building. `context show` now prints, per screen of the journey, drawn / picked / neither, and BEFORE YOU BUILD for screens with no drawing. Twenty sessions, ten before and ten after that line (8 of 10 saw it): 0/20 drew or reviewed, 20/20 built the page, 19/20 said they had skipped the design step. The library's exit is measured and not met; the README, ROADMAP, VISION and the mockups paragraph's record in skills/pair.json say so and name the owner's decision it needs. run.mjs gains the draw arm and records the lenses and template a session reached for, what it drew and reviewed; summarize.mjs reports them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011TUCUpbzmTpBE6ND7eHfzx
…nd ticket - policy project.design (off | drawn | picked): a journey walk with no fail exits 3, DESIGN STEP OPEN, while a walked screen lacks two drawings and a lens review (or a person's pick); the run packet keeps the design block beside its verdicts; a fail keeps exit 2. context show says what the policy asks for. Gate: design-pairs. - uxcli prefer make|serve|tally: blind pairwise preference — pictures renamed so nothing names a group, each judge's order and sides by their seed, the side recorded by the server, a judgment only a person's, a sign test in the tally. references/prefer.md. Gate: prefer-pairs. - experiment: gate arm (three wordings, 30 sessions: 0 drew unasked, 29 said not done), asked arm (10/10 read the workspace lens, drew, reviewed, closed at exit 0), ticket 2 where the agent decides the steps (20/20 recorded the outcome on the server; one tap 9.2 s x18, two taps 11.9 s x2), and the skill-vs-ticket study for designers to judge. The fixture server gains the call-outcome API. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011TUCUpbzmTpBE6ND7eHfzx
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.
This PR adds the five commits that landed after #5 was merged. Together they finish the roadmap items an agent can carry out alone.
Studio, walkthroughs, schemas, library
uxcli studio [--serve] [--shot]: the project as a board, laid out like a design file.redesignproposal.uxcli walkthrough <journey> [--as=<actor>] | check: the four questions of Wharton et al. (1994) at every step. A "yes" that the walk contradicts is refused.contentandmobile-app.context shownames the template and the lens for each screen, and whether each screen has been drawn and picked.The design step, held by the instrument
project.design: off | drawn | picked(default off).DESIGN STEP OPEN) while a screen it walked lacks two drawings and a complete lens review. Underpickedit also needs a person's pick.designblock next to its verdicts, not among them. A fail still exits 2.design-pairs.before-done.md: the measured paragraph is unchanged and still matches its recorded hash. Exit 3 is explained in a new paragraph after it.Blind pairwise preference
uxcli prefer make|serve|tally <study>:tallyreports a two-sided sign test.references/prefer.md; gateprefer-pairs.experiments/understanding-before-design/study/(skill vs ticket, 390×844, 10 pairs).The experiment
Sonnet, fresh sessions, scored by the instrument.
drawn, three wordings)workspacelens, drew 2 variants per screen, wrote complete reviews, closed at exit 0Validation
uxcli gatepasses locally on the final tree.design,prefer.Limits and what needs people
n/ashare in agent reviews is about 40%.askedrescore: it reads exit 3 with one screen open. The harness had not kept theworkspace_readyreviews; it now keeps all of.uxcli/mockups/. The live scores are in the experiment README.🤖 Generated with Claude Code
https://claude.ai/code/session_011TUCUpbzmTpBE6ND7eHfzx
Generated by Claude Code