Prove that what already worked still works after an agent changed the code. Picture checks, guards for fixed bugs, a pre-release walkthrough, and known-good markers — as a CLI and as an MCP server.
Strong domain-specific tool design with excellent descriptions tailored for agent consumption. All 13 tools have clear, detailed descriptions (avg 180 chars) explaining WHAT, WHEN, and WHY. Input schemas are present and properly typed with additionalProperties: false. However, several tools lack parameter descriptions (staysfixed_screens, staysfixed_status, staysfixed_capabilities have empty property objects), and output schemas are not documented. Tool naming is domain-specific but not verb-first (staysfixed_check, staysfixed_approve follow a pattern but lack action clarity). Error handling guidance is absent from descriptions. No tool annotations (readOnlyHint/destructiveHint) despite clear risk classifications in metadata.
Accept the new picture of a screen as the correct one from now on. This project has turned this on for agents; it is off by default, because approving is normally a human decision. Only use it when the change was asked for and you can say plainly why the new look is right.
What can be checked on this machine right now, what cannot and why, what is missing that would unlock more, and the exact shape of every reply. Call this FIRST, once per session.
Photograph one screen of the real app right now and hand you the picture, without comparing it to anything. Use it to see what your change actually looks like, or to look at a screen before you touch it. It approves nothing and changes nothing.
Prove that nothing which already worked has changed. Call this after you finish editing and BEFORE you tell anyone you are done. It opens the real app, photographs every screen this project watches, compares each against the approved picture, and runs every guard. You get back only the differences you did not intend — everything unchanged is skipped and never reaches you, and the count of what was skipped is in the reply so the silence is legible.
Prove that what already worked still works. Call this after you finish editing and BEFORE you tell anyone you are done. It opens the real app, photographs every screen this project watches, compares each against the approved picture, and runs every guard (one check per bug that was already fixed once). You get a short verdict, a line for anything that is not passing, and the diff image of each changed screen so you can see what moved.
Discovery tools (staysfixed_screens, staysfixed_status, staysfixed_capabilities) have empty inputSchema properties with no parameter descriptions.
No output schemas documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing response structure. Rubric requires documented return types for A+ tools.
Tool names do not follow verb_noun convention. 'staysfixed_check', 'staysfixed_approve' are domain-specific but lack action clarity. Rubric baseline: 90% of A+ tools start with action verbs (get_, create_, update_, delete_, search_, list_). Consider: check_regression, approve_screenshot, capture_screen, list_screens, get_status.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2025-06-18+ | v2 |
Get the full details of one finding: what changed, where, and the evidence. Fetches on request, never volunteered.
Seal what you MEANT to change before you do the work. Declares which paths and classes you intend to touch, so later the check can tell you only about the differences you did not plan.
Pin this moment as known-good, so a future regression can be traced back to it. Everything is checked first and the marker is refused if anything is not passing. Use it at a release, or just before you start something risky.
Find out which change caused a difference. Reverts files one at a time and re-runs the check to isolate the cause.
List the screens and the guards this project watches, each with its plain-language description. Cheap — it does not open the app. Call this first, so you know what is protected before you change anything.
A quick read on the project: how many approved pictures and guards exist, the known-good markers, how the last check went, and any check that has been condemned for flaking. Does not open the app.
Find out which change broke a screen. Compares how the screen looks now against the known-good markers and reports the last marker where it still looked right, the first one where it did not, and the commits in between. Use it when staysfixed_check says something changed and you did not expect it to.
Record that a difference was intended. Five classes are sealed off entirely and cannot be waived by an agent: money, signing in, losing data, a crash, and anything a named guard covers. Those go to a person.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk classifications in metadata (READ_ONLY, WRITE). Spec 2026-07-28 rewards tool annotations for agent safety and planning.
Error handling descriptions absent. Tools do not explain what to do on failure (retry, ask user, fatal). Rubric requires: 'Error responses must tell the LLM what to do next.' E.g., staysfixed_check should document: 'If check fails, call staysfixed_explain to see details.'