skills/visual-wayfinder/SKILL.md
This skill should be used when the user asks to "open Visual Wayfinder", "answer a Wayfinder ticket visually", "turn this decision into a configurator", "show Wayfinder choices as a dashboard", "prototype the Wayfinder questionnaire", or wants interactive choice cards, tradeoff controls, rankings, ranges, toggles, and consequence previews for one active Wayfinder decision. It wraps the Wayfinder skill and JSON Render; it never replaces the tracker or resolves more than the active decision.
npx skillsauth add b-open-io/prompts visual-wayfinderInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Turn one active Wayfinder decision ticket into a focused visual workbench. Preserve Wayfinder as the planner and tracker authority. Use JSON Render only for the dynamic decision canvas, then return a renderer-independent semantic answer to Wayfinder.
Read the installed Wayfinder skill completely before acting. Treat every Wayfinder invariant as authoritative, including ticket claiming, one-ticket scope, HITL behavior, resolution comments, map updates, fog graduation, and concurrency.
For implementation work, also read the current installed skills for:
json-render-corejson-render-reactjson-render-shadcn when using its componentsjson-render-mcp and mcp-apps when embedding the workbench in an MCP hostgenerative-ui when designing or changing the catalogStop and report the missing dependency when Wayfinder is unavailable. Fall back to a text conversation when a renderer or visual host is unavailable.
Apply these invariants throughout:
Use a visual workbench when the decision benefits from comparing alternatives or manipulating several coupled settings. Prefer plain conversation for a single obvious yes/no question, a sensitive disclosure, an open-ended conceptual answer, or any case where controls would add ceremony without improving judgment.
Map question shapes to controls:
| Decision shape | Preferred control |
| --- | --- |
| Pick one path | ChoiceCards |
| Select several constraints | ToggleGroup |
| Order priorities | RankList |
| Set a bounded preference | RangeControl |
| Compare consequences | TradeoffTable |
| Explain nuance | TextResponse |
| Inspect derived effects | ConsequencePanel |
Combine controls only when their state contributes to the same ticket answer.
Load the map at low resolution, select or accept the active frontier ticket, and claim it through the tracker before generating UI. Read related tickets only as needed. Extract:
Do not expose unrelated ticket bodies or secrets to the renderer prompt.
Choose the answer envelope fields before selecting components. Keep choices identified by stable semantic keys rather than labels or element IDs. Define every control's units, bounds, direction, empty value, and default semantics; never make the renderer guess whether a larger number means more autonomy, more confirmation, or more risk. Read references/answer-envelope.md for the schema and validation rules.
Render destination, ticket identity, concise context, draft status, fallback access, and the final submit control outside JSON Render. Label the generated area as the decision workbench. Keep tracker mutation and navigation in host-owned code.
Expose only this minimal catalog unless a ticket clearly needs another reviewed component:
Stack, Grid, Section, Text, NoticeChoiceCards, ToggleGroup, RankList, RangeControlTradeoffTable, ConsequencePanel, TextResponseDo not register a generic Button, Link, iframe, HTML block, code runner, file picker, or tool-call component in the generated catalog. Implement deterministic consequences as registered functions or reviewed directives. Keep business rules and tracker operations outside model-generated expressions.
Generate the current flat JSON Render form with a string root and elements map. Read references/json-render-spec.md before producing or implementing a spec.
Validate the spec against the catalog and reject unknown types, actions, state paths, URLs, or oversized content. Apply only known lossless repairs. Regenerate once when validation fails; then switch to the semantic text fallback. Never show a broken or partially trusted canvas as authoritative.
Recompute previews locally from answer state. Mark estimates and assumptions plainly. Present effects as decision support, not predictions of fact. Preserve manual rationale even when the preview suggests a different choice.
Have the host-owned submit action:
Let Wayfinder decide whether more grilling is needed. Only Wayfinder records the resolution comment, closes the ticket, updates Decisions-so-far, and graduates fog.
Treat the skill itself as build-free. Produce a JSON spec, semantic answer, or static HTML asset as appropriate. Add a compiled application only when an owning host explicitly requests one.
For Agent Master or another plugin-settings host, expose a lightweight Open Visual Wayfinder link from the skill's settings/detail surface. Point the link to a host route or served bundled demo asset; do not require Visual Wayfinder to own a separate build. Keep this integration optional so CLI and unsupported desktop hosts retain the text path. Read references/architecture.md before wiring a host.
Negotiate io.modelcontextprotocol/ui support before returning a UI resource. Return useful text content and structured semantic data on every path. Serve a static ui:// resource, deliver dynamic ticket/spec data through structuredContent, use exact CSP allowlists, and mark draft/submit helpers app-only. Keep tracker administration and privileged Wayfinder tools unavailable to the iframe.
Use a local browser asset or text exchange when the host lacks MCP Apps support. Never assume a particular desktop client implements the extension.
Preserve keyboard operation, visible focus, labels, fieldsets, sufficient contrast, reduced-motion behavior, and error announcements. Do not encode choice only through color. Provide an explicit Other path and a rationale field whenever predefined choices may be incomplete. Preserve draft state locally per ticket without treating it as tracker state.
references/architecture.md — ownership boundaries, lifecycle, host linking, MCP delivery, and threat model.references/answer-envelope.md — renderer-independent answer contract and validation.references/json-render-spec.md — safe catalog guidance and current flat-spec examples.assets/visual-wayfinder-demo.html — polished build-free interactive example; open directly in a browser to inspect the intended experience.tools
This skill should be used when a Claude Code session needs to keep working after Anthropic usage runs out, or when the user asks to run the Claude Code harness on GPT-5.6 Sol. Trigger phrases include "my Anthropic usage ran out", "I'm out of Claude usage", "usage limit reached, what now", "keep working on another model", "run Claude Code on GPT-5.6 Sol", "use GPT-5.6 Sol as the model", "set up claudex", "claudex isn't working", "route the harness through CLIProxyAPI", or "bill against my ChatGPT/Codex subscription". It stands up a local proxy so the Claude Code CLI runs on OpenAI's Codex backend as an escape hatch, and diagnoses that setup when it drifts. macOS + Homebrew.
development
This skill should be used when the user asks to "make a visual proposal", "write this up so I can share it", "present these options visually", "diagram the trade-offs", "turn this plan into something reviewable", or requests a shareable design pitch, architecture proposal, RFC, options comparison, or visual roadmap for work that has not been built. It produces one self-contained, theme-aware HTML page led by grounded diagrams. Use visual-review instead for completed code changes; do not use this skill for internal task tracking.
tools
This skill should be used when the user asks to "add plugin settings", "make a plugin configurable", "store per-project plugin configuration", "use settings.local.json", "create a plugin state file", "expose skill settings in Agent Master", or "add a skill interface". Distinguishes official Claude Code settings from project-owned configuration and documents bOpen Agent Master skill interface discovery.
content-media
This skill should be used when the user asks for "game UI", "app-to-game UI", "video game HUD", "controller navigation", "D-pad navigation", "TV app", "ten-foot interface", "game UI key bindings", "controller-first menu", "console-style menu", "TV remote focus", or "directional navigation".