UI/UX designer seller: the model designs, the review pipeline is tooling - #989
Open
maxy-player wants to merge 12 commits into
Open
UI/UX designer seller: the model designs, the review pipeline is tooling#989maxy-player wants to merge 12 commits into
maxy-player wants to merge 12 commits into
Conversation
added 12 commits
September 8, 2026 20:20
…+ measured contrast ledger, licensed reference corpus
…tool, before/after redesign samples
…raster, authored mark + negative controls
…te drives the real agent path
… rationale, smoke gate with negative controls and external manifest verification
…l driver claude-agent-acp is refused at prompt time by a standing org spend limit (probed twice, an hour apart). codex-acp answers: gpt-5.6-sol, end_turn, non-zero output tokens. Driven through the ACTUAL maxplayer local driver built from this tree (0.5.8 e72e9bd, --features acp; stock 0.1.0-rc.3 refuses the run path): the model wrote hello.txt=PONG on disk, exit 0, 18 events, turn_ended completed. No relay, wallet, sats or deployment. Adds the natural-language Nova status-page brief with NO supplied candidate, for the corrected gate to hand the agent.
Corrects the e72e9bd verdict. agent/design-run.mjs hands a natural-language brief with NO supplied candidate to a real model harness through the ACTUAL maxplayer local driver, and refuses to report success without evidence: - the run must finish (job.execution_changed completed / turn_ended); - status.html must exist, be non-trivial, and not be byte-identical to anything this repo ships; - the driver log must show the AGENT invoking shoot.mjs and a11y.mjs; - the agent's own axe JSON must show a real page load and zero violations at desktop AND mobile. First live run: 358.5s, 444 job events, 47 tool calls, model authored a 14942-byte status.html plus DESIGN-NOTES.md, screenshotted both viewports and audited itself to 0 violations / 15 passes each (axe-core 4.11.4, 225 elements, title 'Nova service status'). Two streams, not one: events.jsonl nests type under .payload and never carries tool calls; the ACP session updates and turn_ended are on driver stdout. Reading only the first made this gate accuse a passing run of never rendering anything. It now reads both, and --verify-only re-checks finished evidence without spending another model turn.
Check 3 is now the model authoring a design from a natural-language brief with no candidate supplied; the deterministic review pipeline moves to 3b, explicitly labelled tooling. Adds a fourth negative control: a generative run with its deliverable deleted must not be reported as a pass, proving the check reads real artifacts rather than trusting its own summary.
… run Full gate green end to end: 9 checks run, 0 failed. The generative check verdict is PASS with an empty failures array, and all four negative controls exited nonzero as required, including the new one that deletes a generative run's deliverable and must not be reported as a pass.
Report and README now lead with what the package actually is: a model harness that authors designs, driven through maxplayer's own local driver, with the deterministic review pipeline demoted to tooling. Records the harness probe honestly (claude-agent-acp refused by a standing org spend limit, codex-acp used), the acp-built binary prerequisite, the passing 9-check gate, and the detector bug that once failed a run that was correct on the merits. New limitations stated rather than buried: output varies between runs, the gate is not deterministic and costs real tokens, it rests on a single harness account, and no human designer has judged the output.
|
Someone is attempting to deploy a commit to the MakePrisms Team on Vercel. A member of the Team first needs to authorize it. |
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.
What this is
A runnable UI/UX designer seller package, not a persona file. A real model harness, driven
through maxplayer's own local driver, is handed a natural-language brief and authors the design
itself — then renders it, inspects its own screenshots, and audits its own accessibility.
This is the corrected round. The previous revision was rejected because its "designer" could only
accept a supplied candidate and rewrite it deterministically — it could not create a design. That
pipeline is retained here but demoted to tooling.
The gate
Last verified run: 9 checks run, 0 failed,
SMOKE GATE PASSED.Expect several minutes — the gate spends a real model turn letting the agent design something.
The generative path (check 3)
briefs/nova-status-brief.mdis prose, phone-first, with red/green-colour-blindness andscreen-reader constraints. No candidate implementation is supplied or present in the tree. The
model must author
status.html, render it, read the tool output, and iterate to zero accessibilityviolations at both viewports.
It runs through the actual maxplayer local driver — no relay, wallet, sats, or deployment. The
stock release refuses this path (
maxplayer run requires rebuilding with the acp feature), so thebinary is built from source.
From the passing run (
runs/generative-smoke/summary.json, verdictPASS,failures: []):job.execution_changed → completedstatus.htmlauthored by the model, ~14 KB, not byte-identical to anything shippedshoot.mjstrue,a11y.mjstrueagent/design-run.mjsrefuses to report success without evidence: the run must finish, thedeliverable must exist and be non-trivial, the driver log must show the agent invoking the
tools, and the agent's own axe JSON must show a real page load and zero violations at both
viewports.
--verify-onlyre-checks finished evidence without spending another model turn.Harness — probed, not assumed
Presence on
PATHis not availability, so each adapter was driven over ACP stdio:claude-agent-acperrorKind: rate_limit, org monthly spend limit — reproduced twice, an hour apartcodex-acpgpt-5.6-sol,stopReason: end_turn, non-zero output tokensclaude-code-acp,cursor-agent,cursor-agent-acp,gooseDetail in
sellers/ui-ux-designer/evidence/RUNTIME.md.Four negative controls, each of which must exit nonzero
status.htmlhas been deleted is not reported as a pass.A gate that cannot fail proves nothing.
A detector bug worth recording
The first generative run passed on the merits, yet the gate failed it, claiming the agent "never
rendered its design". The driver writes two streams:
events.jsonlnests its type under.payloadand never carries tool calls, while the ACP tool calls andturn_endedarrive on driverstdout. Reading only the first produced a confident false accusation against correct work. The
gate now reads both.
Limitations (not exhaustive — see report §7)
payment remain entirely unexercised. This proves the agent and its tools, not that the seat earns.
codex-acpalone. If that account hits its limit the check failsloudly rather than falling back to deterministic execution.
Holds observed
No wallet, no sats, no paid service, no new subscription, no production deployment, no merge, no
tag, no push to
main. Delivery is a branch on the fork plus this PR. Git identity was setper-command;
git configwas never run.