Files
oh-my-opencode/packages/omo-codex/plugin/components/ultragoal
YeonGyu-Kim 73e8988f31 feat(omo-codex): enumerate 4 manual-QA channels + forbid tests-alone verification in ultrawork/ultragoal
Promote the four real-usage QA channels (HTTP call, tmux, Browser use, Computer use) into a dedicated top-level `# Manual-QA channels` section in both the Codex ultrawork directive and the ultragoal skill. Each channel ships with the concrete invocation (`curl -i`, `tmux new-session` + `send-keys` + `capture-pane`, Playwright / puppeteer / Chromium, OS-level GUI automation) and the artifact to capture. The Goal section now declares `TESTS ALONE NEVER PROVE DONE` and requires every criterion to build a fresh real-usage scenario and run it through one of the four channels every time. Auxiliary surfaces (CLI stdout / DB diff / parsed config dump) are explicitly demoted: they only satisfy genuinely CLI- or data-shaped criteria, never user-facing behavior.

Bootstrap criterion item 2 and execution step 4 used to repeat the same surface enumeration; they now collapse onto the new channel table (single source of truth, less drift). EXECUTE-AS-SCENARIO in the ultragoal skill follows the same compression. The previous CLEANUP (paired teardown + receipt) + leftover-state stop rule from the prior commit are preserved.

Regression tests in `components/ultrawork/hooks/ultrawork-hooks.test.mjs` pin: the `# Manual-QA channels` heading, all four channel labels (`HTTP call`, `tmux`, `Browser use`, `Computer use`), `TESTS ALONE NEVER PROVE DONE`, `every criterion needs its own real-usage scenario`, and `every time`. README + CHANGELOGs document the restructure and the new size (11,005 chars / 232 lines). All 11 ultrawork hook tests + 7 aggregate tests pass. Installed locally via `runCodexInstaller` into `~/.codex/plugins/cache/code-yeongyu-codex-plugins/omo/0.1.0/`; cache hooks emit the new directive end-to-end and the identifier-like `ulw_helper.ts` keyword-boundary check still suppresses.
2026-05-28 13:58:12 +09:00
..

codex-ultragoal

ci license: MIT

Codex plugin scaffold for durable repo-native multi-goal orchestration with embedded success criteria and observable evidence audit.

Behavior

Subcommand Purpose
omo ultragoal create-goals Create repo-native goals from a brief and seed criteria.
omo ultragoal record-evidence Record observable evidence for the active criterion.
omo ultragoal criteria Inspect or revise goal success criteria.
omo ultragoal complete-goals Complete eligible goals after criteria pass.
omo ultragoal checkpoint Refuse completion until criteria and evidence gates pass.
omo ultragoal steer Apply steering updates to the plan.
omo ultragoal status Report active goal, criteria, and evidence state.

Wave 1 is scaffold only. Command behavior lands in later waves.

Codex Plugin

The plugin ships:

  • .codex-plugin/plugin.json for Codex plugin discovery.
  • hooks/hooks.json for the UserPromptSubmit hook.
  • skills/ultragoal/ as the future skill directory.

The hook command is:

node "${PLUGIN_ROOT}/dist/cli.js" hook user-prompt-submit

No MCP server or Codex tool is exposed in this scaffold.

Local Development

npm install
npm test
npm run typecheck
npm run check
npm pack --dry-run

Local Codex Installation

From the marketplace root containing this plugin:

codex plugin marketplace add /path/to/codex-plugins
node /path/to/codex-plugins/scripts/install-local.mjs /path/to/codex-plugins

If your local Codex build exposes plugin install commands, you can install from the UI or CLI instead. For older local builds, the marketplace installer builds and copies the plugin into ~/.codex/plugins/cache/<marketplace>/omo/0.1.0, installs runtime dependencies there, and enables:

[features]
plugins = true
plugin_hooks = true

[plugins."omo@code-yeongyu-codex-plugins"]
enabled = true

Privacy

This plugin runs locally. The scaffold does not call a network service by itself.

License

MIT.