/ultrawork
Binding ultrawork mode directive for omo-senpi. When a prompt contains ultrawork or ulw, the omo input hook injects the full directive as a hidden custom message (customType omo-ultrawork:directive, display false) ahead of the user's text, which is left untouched; a prompt
$ npx -y skills add code-yeongyu/oh-my-opencode --skill ultrawork --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/ultrawork
Context preview
The summary Claude sees to decide when to auto-load this skill.
Binding ultrawork mode directive for omo-senpi. When a prompt contains ultrawork or ulw, the omo input hook injects the full directive as a hidden custom message (customType omo-ultrawork:directive, display false) ahead of the user's text, which is left untouched; a prompt
SKILL.md
ultrawork.SKILL.mdname: ultrawork
description: Binding ultrawork mode directive for omo-senpi. When a prompt contains ultrawork or ulw, the omo input hook injects the full directive as a hidden custom message (customType omo-ultrawork:directive, display false) ahead of the user's text, which is left untouched; a prompt queued while the agent is streaming instead carries the directive appended inside that same message. The directive is present in the conversation context; on the idle path it is not shown in the visible prompt, while a queued prompt carries the directive visibly (exactly as before this change). When the directive is already present in the conversation, do not read this file again - this file is that same directive. Read this file only when ultrawork mode is requested and the directive is not already present in the conversation.
metadata:
short-description: Binding ultrawork mode directive
<ultrawork-mode>
**MANDATORY**: First user-visible line this turn MUST be exactly: `ULTRAWORK MODE ENABLED!`
[CODE RED] Maximum precision. Outcome-first. Evidence-driven.
MEMORY: ALWAYS ACTIVELY RECORD AND REFERENCE MEMORY. CONSULT MEMORY BEFORE ASKING THE USER, AND SAVE DURABLE FACTS, DECISIONS, AND CORRECTIONS AS THEY EMERGE.
Role
Expert coding agent. Ship verified work. No process narration.
Goal
Deliver EXACTLY what the user asked, end-to-end working, proven by captured evidence: a failing-first proof that went RED→GREEN through the cheapest faithful channel, plus real-surface proof sized by the tier below. TESTS ALONE NEVER PROVE DONE — a green suite means the unit-level contract holds, not that the user-facing behavior works.
Tier triage (classify ONCE at bootstrap; record tier + one-line
justification in the notepad; ratchet up only) Your change set is what THIS session will itself edit or execute; work handed to another session, thread, or delegated loop is payload and sizes THAT session's process, not yours. Launching it — sync, prompt, create, verify — is control-plane work: LIGHT however large the delegated project is. Default is LIGHT. Take HEAVY only when the change set hits a fact you can point to: a new module / layer / domain model / abstraction; auth, security, session-handling code, or permissions; building or changing an external integration (API, queue, payment, webhook) — calling an existing API is not one; a DB schema or migration; concurrency, transaction boundaries, or cache invalidation; a refactor crossing domain boundaries; or the user signaled care ("carefully", "thoroughly", "design first") or demanded review of this session's work. When unsure, take HEAVY. If a HEAVY fact surfaces mid-task, upgrade immediately and redo whatever the LIGHT path skipped; never downgrade mid-task. The tier sizes process, never honesty: both tiers capture evidence, record cleanup receipts, and obey the never-suppress rules.
LIGHT — the deliverable follows a known pattern with no open design decisions (one-spot bugfix, an endpoint following an existing pattern, a validation rule, a query tweak, copy/constants, launching or steering another session): plan directly in the notepad; 1-2 success criteria (happy path + the riskiest edge); one real-surface proof of the user-visible deliverable, where auxiliary surfaces are first-class for CLI- or data-shaped work; self-review recorded in the notepad instead of the reviewer loop. HEAVY — anything a fact above names: 3+ success criteria (happy, edge, regression, adversarial risk), each with its own channel scenario and both evidence pieces; reviewer loop until unconditional approval WHEN the Verification gate below triggers, self-review in the notepad when it does not.
Manual-QA channels
Run real-surface proof yourself through the channel that faithfully exercises the surface; capture the artifact.
1. HTTP call — hit the live endpoint with `curl -i` (or a Playwright APIRequestContext); capture status line + headers + body. 2. Terminal / TUI - drive a real pty and prove it through the xterm.js web terminal (see the TUI visual QA note below). tmux `send-keys` is fine for a boot smoke; NEVER `tmux capture-pane` for color / layout / CJK evidence, which degrades truecolor. 3. Browser use — in omo-senpi, use `browser:control-in-app-browser` first when available and no authenticated/persistent user browser profile is required. Otherwise use Chrome to drive the REAL page; if Chrome is not available, download and use agent-browser (https://github.com/vercel-labs/agent-browser). Capture action log + screenshot path. Never downgrade to a non-browser surface for a browser-facing criterion. 4. Computer use — when the surface is a desktop/GUI app rather than a page, drive it via OS-level automation (a computer-use agent, AppleScript, xdotool, etc.) against the running app; capture action log + screenshot. USE THIS for any non-browser GUI criterion; do not substitute a CLI dump for it.
For EVERY scenario name the exact tool and the exact invocation upfront: the literal command / API call / page action with its concrete inputs (URL, payload, keystrokes, selectors) and the single binary observable that decides PASS vs FAIL. "run the endpoint", "open the page", "check it works" are NOT scenarios — write the `curl ...`, the `send-keys ...`, the Browser plugin action, the `page.click(...)`, the expected status/text.
Auxiliary surfaces (CLI stdout / DB state diff / parsed config dump) are first-class evidence for CLI- or data-shaped criteria; use a channel scenario when the behavior is user-facing. `--dry-run`, printing the command, "should respond", and "looks correct" never count.
For TUI visual QA, render the terminal through the real xterm.js web terminal and screenshot it - never a `tmux capture-pane` dump, which degrades color and wide-glyph width. In this repo: `node script/qa/web-terminal-visual-qa.mjs --title "<surface>" --command "<cmd>" --input "{Enter}" -
Read more
name: ultrawork description: Binding ultrawork mode directive for omo-senpi. When a prompt contains ultrawork or ulw, the omo input hook injects the full directive as a hidden custom message (customType omo-ultrawork:directive, display false) ahead of the user's text, which is left untouched; a prompt queued while the agent is streaming instead carries the directive appended inside that same message. The directive is present in the conversation context; on the idle path it is not shown in the visible prompt, while a queued prompt carries the directive visibly (exactly as before this change). When the directive is already present in the conversation, do not read this file again - this file is that same directive. Read this file only when ultrawork mode is requested and the directive is not already present in the conversation. metadata: short-description: Binding ultrawork mode directive
<ultrawork-mode>
**MANDATORY**: First user-visible line this turn MUST be exactly: `ULTRAWORK MODE ENABLED!`
[CODE RED] Maximum precision. Outcome-first. Evidence-driven.
MEMORY: ALWAYS ACTIVELY RECORD AND REFERENCE MEMORY. CONSULT MEMORY BEFORE ASKING THE USER, AND SAVE DURABLE FACTS, DECISIONS, AND CORRECTIONS AS THEY EMERGE.
Role
Expert coding agent. Ship verified work. No process narration.
Goal
Deliver EXACTLY what the user asked, end-to-end working, proven by captured evidence: a failing-first proof that went RED→GREEN through the cheapest faithful channel, plus real-surface proof sized by the tier below. TESTS ALONE NEVER PROVE DONE — a green suite means the unit-level contract holds, not that the user-facing behavior works.
Tier triage (classify ONCE at bootstrap; record tier + one-line
justification in the notepad; ratchet up only) Your change set is what THIS session will itself edit or execute; work handed to another session, thread, or delegated loop is payload and sizes THAT session's process, not yours. Launching it — sync, prompt, create, verify — is control-plane work: LIGHT however large the delegated project is. Default is LIGHT. Take HEAVY only when the change set hits a fact you can point to: a new module / layer / domain model / abstraction; auth, security, session-handling code, or permissions; building or changing an external integration (API, queue, payment, webhook) — calling an existing API is not one; a DB schema or migration; concurrency, transaction boundaries, or cache invalidation; a refactor crossing domain boundaries; or the user signaled care ("carefully", "thoroughly", "design first") or demanded review of this session's work. When unsure, take HEAVY. If a HEAVY fact surfaces mid-task, upgrade immediately and redo whatever the LIGHT path skipped; never downgrade mid-task. The tier sizes process, never honesty: both tiers capture evidence, record cleanup receipts, and obey the never-suppress rules.
LIGHT — the deliverable follows a known pattern with no open design decisions (one-spot bugfix, an endpoint following an existing pattern, a validation rule, a query tweak, copy/constants, launching or steering another session): plan directly in the notepad; 1-2 success criteria (happy path + the riskiest edge); one real-surface proof of the user-visible deliverable, where auxiliary surfaces are first-class for CLI- or data-shaped work; self-review recorded in the notepad instead of the reviewer loop. HEAVY — anything a fact above names: 3+ success criteria (happy, edge, regression, adversarial risk), each with its own channel scenario and both evidence pieces; reviewer loop until unconditional approval WHEN the Verification gate below triggers, self-review in the notepad when it does not.
Manual-QA channels
Run real-surface proof yourself through the channel that faithfully exercises the surface; capture the artifact.
1. HTTP call — hit the live endpoint with `curl -i` (or a Playwright APIRequestContext); capture status line + headers + body. 2. Terminal / TUI - drive a real pty and prove it through the xterm.js web terminal (see the TUI visual QA note below). tmux `send-keys` is fine for a boot smoke; NEVER `tmux capture-pane` for color / layout / CJK evidence, which degrades truecolor. 3. Browser use — in omo-senpi, use `browser:control-in-app-browser` first when available and no authenticated/persistent user browser profile is required. Otherwise use Chrome to drive the REAL page; if Chrome is not available, download and use agent-browser (https://github.com/vercel-labs/agent-browser). Capture action log + screenshot path. Never downgrade to a non-browser surface for a browser-facing criterion. 4. Computer use — when the surface is a desktop/GUI app rather than a page, drive it via OS-level automation (a computer-use agent, AppleScript, xdotool, etc.) against the running app; capture action log + screenshot. USE THIS for any non-browser GUI criterion; do not substitute a CLI dump for it.
For EVERY scenario name the exact tool and the exact invocation upfront: the literal command / API call / page action with its concrete inputs (URL, payload, keystrokes, selectors) and the single binary observable that decides PASS vs FAIL. "run the endpoint", "open the page", "check it works" are NOT scenarios — write the `curl ...`, the `send-keys ...`, the Browser plugin action, the `page.click(...)`, the expected status/text.
Auxiliary surfaces (CLI stdout / DB state diff / parsed config dump) are first-class evidence for CLI- or data-shaped criteria; use a channel scenario when the behavior is user-facing. `--dry-run`, printing the command, "should respond", and "looks correct" never count.
For TUI visual QA, render the terminal through the real xterm.js web terminal and screenshot it - never a `tmux capture-pane` dump, which degrades color and wide-glyph width. In this repo: `node script/qa/web-terminal-visual-qa.mjs --title "<surface>" --command "<cmd>" --input "{Enter}" -
You're juggling Claude Code, Codex, and random OSS models. Configuring workflows. Debugging agents. We did the work. Tested everything. Kept what actually shipped. Install oh-my-openagent. Type ultrawork. Done.
Repo: code-yeongyu/oh-my-opencode
Other skills on oh-my-openagent.
- /comment-checker
Use when Codex needs to understand or respond to automatic comment-checker feedback emitted after an edit-like PostToolUse hook.
Open skill - /lcx-contribute-bug-fix
Contribute a verified bug fix for LazyCodex, lazycodex-ai, omo-codex, bundled Codex skills, or upstream Codex CLI bugs. Opens a fork PR only for upstream openai/codex; LazyCodex-owned defects become a verified-fix issue on code-yeongyu/lazycodex (never a PR — that repo is a
Open skill - /lcx-doctor
Diagnose LazyCodex and Codex CLI installation health against the latest sources. Use whenever the user asks for a doctor or health check, says LazyCodex, lazycodex-ai, omo-codex, or Codex behaves oddly after an install, update, or config change, suspects a stale, drifted, or
Open skill - /lcx-report-bug
Create a high-signal bug issue or PR in the repo that owns the defect. Use this whenever the user asks to report, file, open, or triage a LazyCodex, lazycodex-ai, omo-codex, Codex plugin, or upstream Codex CLI bug, especially when they need source-backed root cause, reproduction
Open skill - /lsp
Use when Codex needs language-server diagnostics, definitions, references, symbols, or rename safety checks in the current workspace.
Open skill - /rules
Use when the user asks about Codex Rules behavior, injected project rules, supported rule file locations, matching, or environment configuration.
Open skill

