- Move the vendored skills from .config/opencode/skills to .config/omo/skills, with provenance and local changes in its README - Rewrite Impeccable's script paths to ~/.omo/agent/skills/impeccable so its detector and live-server verbs resolve under omo - frontend-workflow hands screenshots to a visual-engineering task instead of opencode run - Move the notes commands and /impeccable to .config/omo/prompts as omo prompt templates; setup-mcp stays behind because it writes opencode.json - Archive DEVELOPMENT-WORKFLOW.md and UI-WORKFLOW.md under .config/omo/archive; nothing loads them - link-ai-configs.sh links the skills into omo and Claude Code only and stops linking OpenCode's config, TUI, plugins and workflow docs - setup-mac.sh and Brewfile.apps stop installing OpenCode; README and .withcontextconfig.jsonc follow the new layout ~/.config/opencode/AGENTS.md stays linked: omo's rules engine reads it before ~/.claude/CLAUDE.md and stops at the first hit, so it carries the shared preferences and keeps OMC's instructions out of omo.
3.3 KiB
Command guidance
Workflow questions
Give advice without executing commands; the menu below is only for bare invocations. Consult relevant command references as needed for prerequisites and scope. Link to the docs for the broader workflow guide. If the user also requests execution, follow that request.
No-argument routing: the context-aware menu
Read this when the user invokes /impeccable with no argument. They are asking "what should I do?" Make the menu context-aware instead of static.
Setup has already run impeccable context. If that reported NO_PRODUCT_MD, the project has no captured context yet: lead the menu with /impeccable init as the top recommendation (one line on why) and still show the rest below; don't silently jump into init. Otherwise run ~/.omo/agent/skills/impeccable/scripts/impeccable signals once and read its JSON, then lead with the 2-3 highest-value next commands, each with a one-line reason pulled from the signals, followed by the full menu (the Commands table in SKILL.md, grouped by category). Never auto-run a command; the recommendation is a suggestion the user confirms.
Reason over the signals; there is no score to obey:
setup.hasDesignfalse whilesetup.hasCodetrue →document(capture the visual system).critique.latestisnull→ the project has never been critiqued; for a set-up project with a real surface, offering/impeccable critique <surface>is a strong default.critique.latestwith a lowscoreor non-zerop0/p1→polish(it reads that snapshot as its backlog and closes it when stale or cleared).git.changedFilespointing at one surface → scopeauditorpolishto those files specifically, naming them.devServer.runningtrue →liveis available for in-browser iteration, andgeneratefor one-shot variant runs on a named element; if false, don't lead with either.live,generate, and the bundledimpeccable detectare web-only. Ifsetup.platformisios,android, oradaptive, don't lead with any of them; the browser overlay and the HTML rule engine don't apply to native app code.- Otherwise group by intent (build new / improve what's there / iterate visually), tailored to the current surface and
setup.platform.
If scan.targets is non-empty and setup.platform is not ios/android/adaptive, run ~/.omo/agent/skills/impeccable/scripts/impeccable detect --json <scan.targets joined by spaces> once (the bundled detector over local files: no network, no npx; it reads HTML/CSS, so skip it for native projects). scan.via tells you what they are: git-changes (the markup/style files in your dirty tree, the most relevant set), source-dir (e.g. src, app), html, or root. Fold the hits into your picks: many quality / contrast hits → audit or polish; a specific slop family → the matching command (gradient text or eyebrows → quieter / typeset, flat or gray palette → colorize, and so on). It's a real, current signal that beats guessing. If detect errors or the tree is large and slow, skip it and recommend the user run audit themselves; never block the suggestion on it.
Keep it to 2-3 pointed picks with the exact command to type. The menu stays the fallback; the recommendation is the lede.