oh-my-opencode 4.16.3 → 4.17.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/command/omomomo.md +1 -1
- package/.agents/command/publish.md +31 -58
- package/.agents/skills/hyperplan/SKILL.md +3 -3
- package/.agents/skills/omomomo/SKILL.md +1 -1
- package/.agents/skills/pre-publish-review/SKILL.md +1 -1
- package/.agents/skills/publish/SKILL.md +32 -59
- package/.opencode/command/omomomo.md +1 -1
- package/.opencode/command/publish.md +31 -58
- package/.opencode/skills/hyperplan/SKILL.md +3 -3
- package/.opencode/skills/pre-publish-review/SKILL.md +4 -1
- package/README.ja.md +4 -4
- package/README.ko.md +4 -4
- package/README.md +2 -2
- package/README.ru.md +4 -4
- package/README.zh-cn.md +4 -4
- package/dist/cli/index.js +195 -76
- package/dist/cli-node/index.js +195 -76
- package/dist/features/team-mode/test-support/async-test-helpers.d.ts +2 -2
- package/dist/index.js +310 -299
- package/dist/plugin/chat-message/types.d.ts +4 -0
- package/dist/plugin/command-execute-before.d.ts +1 -0
- package/dist/plugin/stop-continuation.d.ts +17 -0
- package/dist/skills/remove-ai-slops/SKILL.md +2 -2
- package/dist/skills/review-work/SKILL.md +10 -2
- package/dist/skills/start-work/SKILL.md +6 -3
- package/dist/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
- package/dist/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/dist/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/dist/skills/ulw-plan/SKILL.md +2 -1
- package/dist/skills/ulw-plan/references/full-workflow.md +1 -1
- package/dist/skills/ulw-plan/references/intent-unclear.md +4 -4
- package/dist/skills/ulw-plan/scripts/scaffold-plan.mjs +2 -2
- package/dist/skills/visual-qa/SKILL.md +9 -5
- package/dist/tui.js +79 -32
- package/package.json +15 -14
- package/packages/git-bash-mcp/package.json +27 -0
- package/packages/lsp-daemon/dist/cli.js +7 -13
- package/packages/lsp-daemon/dist/daemon-client.js +3 -5
- package/packages/lsp-daemon/dist/index.js +12 -18
- package/packages/lsp-daemon/dist/request-routing.js +6 -8
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +3 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +1080 -1017
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/AGENTS.md +2 -2
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/cli.js +6 -2
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/dist/codex-hook.js +6 -2
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/src/codex-hook.ts +6 -2
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/cli.test.ts +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/test/codex-hook.test.ts +67 -2
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +14 -14
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/test/package-smoke.test.ts +0 -13
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.5.md +2 -2
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.6.md +3 -3
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +1 -79
- package/packages/omo-codex/plugin/components/teammode/AGENTS.md +2 -2
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/skills/teammode/SKILL.md +33 -16
- package/packages/omo-codex/plugin/components/teammode/skills/teammode/scripts/team.mjs +2 -1
- package/packages/omo-codex/plugin/components/teammode/test/v2-spawn-schema.test.ts +69 -0
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/agents/explorer.toml +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-code-reviewer.toml +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-gate-reviewer.toml +6 -6
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-qa-executor.toml +5 -5
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-high.toml +26 -0
- package/packages/omo-codex/plugin/components/ultrawork/agents/{lazycodex-executor.toml → lazycodex-worker-low.toml} +6 -4
- package/packages/omo-codex/plugin/components/ultrawork/agents/lazycodex-worker-medium.toml +26 -0
- package/packages/omo-codex/plugin/components/ultrawork/agents/librarian.toml +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/agents/plan.toml +7 -7
- package/packages/omo-codex/plugin/components/ultrawork/directive.md +76 -37
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ultrawork/SKILL.md +76 -37
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +2 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +4 -4
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/scaffold-plan.mjs +2 -2
- package/packages/omo-codex/plugin/components/ultrawork/test/codex-hook.test.ts +25 -0
- package/packages/omo-codex/plugin/components/ultrawork/test/package-smoke.test.ts +0 -68
- package/packages/omo-codex/plugin/components/ulw-loop/AGENTS.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/CHANGELOG.md +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/README.md +3 -1
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +76 -37
- package/packages/omo-codex/plugin/components/ulw-loop/dist/checkpoint.js +6 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.d.ts +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli-subcommands.js +13 -2
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +405 -25
- package/packages/omo-codex/plugin/components/ulw-loop/dist/codex-goal-instruction.js +12 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/domain-types.d.ts +4 -2
- package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.d.ts +7 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/paths.js +16 -1
- package/packages/omo-codex/plugin/components/ulw-loop/dist/plan-crud.js +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-verdicts.d.ts +6 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate-verdicts.js +20 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.d.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/quality-gate.js +12 -9
- package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.d.ts +3 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/spawn-guard.js +148 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.d.ts +2 -0
- package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +209 -0
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +25 -2
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +14 -15
- package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +30 -28
- package/packages/omo-codex/plugin/components/ulw-loop/src/checkpoint.ts +6 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli-subcommands.ts +14 -3
- package/packages/omo-codex/plugin/components/ulw-loop/src/cli.ts +10 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/codex-goal-instruction.ts +12 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/domain-types.ts +4 -2
- package/packages/omo-codex/plugin/components/ulw-loop/src/paths.ts +27 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/plan-crud.ts +1 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate-verdicts.ts +23 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/quality-gate.ts +16 -9
- package/packages/omo-codex/plugin/components/ulw-loop/src/spawn-guard.ts +138 -0
- package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +208 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-create-goals.test.ts +12 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/cli-entrypoint.test.ts +4 -1
- package/packages/omo-codex/plugin/components/ulw-loop/test/codex-goal-instruction.test.ts +8 -35
- package/packages/omo-codex/plugin/components/ulw-loop/test/fixtures/quality-gate-builder.ts +24 -13
- package/packages/omo-codex/plugin/components/ulw-loop/test/package-smoke.test.ts +5 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/paths.test.ts +43 -8
- package/packages/omo-codex/plugin/components/ulw-loop/test/quality-gate.test.ts +55 -2
- package/packages/omo-codex/plugin/components/ulw-loop/test/spawn-guard.test.ts +228 -0
- package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +193 -0
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +18 -0
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +17 -0
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +2 -2
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/model-catalog.json +16 -7
- package/packages/omo-codex/plugin/package-lock.json +13 -13
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/catalog.mjs +16 -7
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +8 -2
- package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +2 -2
- package/packages/omo-codex/plugin/skills/refactor/SKILL.md +2 -2
- package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +4 -4
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +18 -4
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +6 -3
- package/packages/omo-codex/plugin/skills/teammode/SKILL.md +33 -16
- package/packages/omo-codex/plugin/skills/teammode/scripts/team.mjs +2 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
- package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +76 -37
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +14 -15
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +30 -28
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +2 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +4 -4
- package/packages/omo-codex/plugin/skills/ulw-plan/scripts/scaffold-plan.mjs +2 -2
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +2 -2
- package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +11 -7
- package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +76 -16
- package/packages/omo-codex/plugin/test/aggregate-hooks.test.mjs +23 -2
- package/packages/omo-codex/plugin/test/aggregate-manifest.test.mjs +1 -1
- package/packages/omo-codex/plugin/test/aggregate-model-catalog.test.mjs +4 -4
- package/packages/omo-codex/plugin/test/auto-update.test.mjs +4 -4
- package/packages/omo-codex/plugin/test/component-hook-contract-cases.mjs +2 -2
- package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +4 -101
- package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +14 -14
- package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +11 -0
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +1 -1
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +5 -3
- package/packages/omo-codex/plugin/test/teammode-transport.test.mjs +25 -0
- package/packages/omo-codex/plugin/test/ulw-plan-scope-contract.test.mjs +24 -0
- package/packages/omo-codex/plugin/test/ulw-plan-skill-contract.test.mjs +9 -40
- package/packages/omo-codex/plugin/test/ulw-research-skill-contract.test.mjs +4 -277
- package/packages/omo-codex/scripts/install-config-reasoning.test.mjs +5 -5
- package/packages/omo-codex/scripts/install-config.test.mjs +22 -3
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +98 -30
- package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +2 -2
- package/packages/shared-skills/skills/review-work/SKILL.md +10 -2
- package/packages/shared-skills/skills/start-work/SKILL.md +6 -3
- package/packages/shared-skills/skills/ultimate-browsing/ATTRIBUTION.md +2 -2
- package/packages/shared-skills/skills/ultimate-browsing/engine/templates/package.json +1 -1
- package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +11 -11
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +2 -1
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +1 -1
- package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +4 -4
- package/packages/shared-skills/skills/ulw-plan/scripts/scaffold-plan.mjs +2 -2
- package/packages/shared-skills/skills/visual-qa/SKILL.md +9 -5
- package/dist/skills/visual-qa/scripts/skill-prompt-contract.test.ts +0 -296
- package/packages/omo-codex/plugin/components/ulw-loop/test/skill-contract.test.ts +0 -70
- package/packages/omo-codex/plugin/test/ulw-research-epistemic-contract.test.mjs +0 -98
- package/packages/shared-skills/skills/visual-qa/scripts/skill-prompt-contract.test.ts +0 -296
|
@@ -17,7 +17,7 @@ Print the following message to the user EXACTLY as written (in a friendly, celeb
|
|
|
17
17
|
|
|
18
18
|
**Oh My OpenCode** is a powerful OpenCode plugin that transforms your AI agent into a full development team:
|
|
19
19
|
|
|
20
|
-
- 🤖 **Multi-Agent Orchestration**: Oracle (GPT-5.5), Librarian
|
|
20
|
+
- 🤖 **Multi-Agent Orchestration**: Oracle (GPT-5.5), Librarian & Explore (GPT-5.4 Mini Fast), Frontend Engineer (Gemini), and more
|
|
21
21
|
- 🔧 **LSP Tools**: Full IDE capabilities for your agents - hover, goto definition, find references, rename, code actions
|
|
22
22
|
- 🔍 **AST-Grep**: Structural code search and replace across 25 languages
|
|
23
23
|
- 📚 **Built-in MCPs**: Context7 for docs, Exa for web search, grep.app for GitHub code search
|
|
@@ -6,13 +6,21 @@ argument-hint: <patch|minor|major>
|
|
|
6
6
|
<command-instruction>
|
|
7
7
|
You are the release manager for oh-my-opencode. Execute the FULL publish workflow from start to finish.
|
|
8
8
|
|
|
9
|
+
## CRITICAL: PUBLISH IS SHIP-ONLY — GO STRAIGHT TO THE WORKFLOW
|
|
10
|
+
|
|
11
|
+
`origin/dev` is already gated: every PR and push ran CI (test/typecheck/codex-compatibility on 3 OSes), and the publish workflow re-runs those same gates before anything is published.
|
|
12
|
+
|
|
13
|
+
- **NEVER run `/pre-publish-review`, `/review-work`, or any code re-review as part of a publish request.** Those run ONLY when the user explicitly asks for a review.
|
|
14
|
+
- **NEVER "fix" code, open PRs, or enter fix-and-re-audit loops during a publish.** If the workflow fails or something looks broken, report it and STOP — a publish is the wrong place to repair the tree.
|
|
15
|
+
- A publish request with a bump type goes from Step 0 to Step 3 (trigger) in minutes. The only human-scale work is release notes, drafted while CI runs.
|
|
16
|
+
|
|
9
17
|
## CRITICAL: FULL WORKFLOW MEANS THREE RELEASE SURFACES
|
|
10
18
|
|
|
11
19
|
Publishing is complete only after all release surfaces are verified:
|
|
12
20
|
|
|
13
21
|
| Release layer | Surface | Required proof |
|
|
14
22
|
|---|---|---|
|
|
15
|
-
| `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | `/get-unpublished-changes`
|
|
23
|
+
| `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | Release notes call out layer-specific version impact (from the workflow changelog, or `/get-unpublished-changes` when the user requested it). |
|
|
16
24
|
| `omo opencode` | `oh-my-opencode` and `oh-my-openagent` npm packages plus platform packages | npm versions and GitHub release exist for the selected bump. |
|
|
17
25
|
| `omo codex` | `lazycodex-ai`, Codex plugin metadata, and `code-yeongyu/lazycodex` marketplace release | Codex plugin metadata is stamped with the release version, `lazycodex-ai` publishes, and the LazyCodex repo release is created when the marketplace payload changed. |
|
|
18
26
|
|
|
@@ -48,8 +56,7 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
|
|
|
48
56
|
{ "id": "apply-summary", "content": "Prepend enhanced summary to release (if user opted in)", "status": "pending", "priority": "high" },
|
|
49
57
|
{ "id": "verify-npm", "content": "Verify npm package published successfully", "status": "pending", "priority": "high" },
|
|
50
58
|
{ "id": "verify-lazycodex", "content": "Verify lazycodex-ai publish, Codex plugin metadata version stamp, and code-yeongyu/lazycodex release/sync", "status": "pending", "priority": "high" },
|
|
51
|
-
{ "id": "
|
|
52
|
-
{ "id": "verify-platform-binaries", "content": "Verify all 7 platform binary packages published", "status": "pending", "priority": "high" },
|
|
59
|
+
{ "id": "verify-platform-binaries", "content": "Spot-check platform binary packages on npm", "status": "pending", "priority": "high" },
|
|
53
60
|
{ "id": "final-confirmation", "content": "Final confirmation to user with links", "status": "pending", "priority": "low" }
|
|
54
61
|
]
|
|
55
62
|
```
|
|
@@ -60,10 +67,7 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
|
|
|
60
67
|
|
|
61
68
|
## STEP 1: CONFIRM BUMP TYPE
|
|
62
69
|
|
|
63
|
-
If bump type
|
|
64
|
-
> "Version bump type: `{bump}`. Proceed? (y/n)"
|
|
65
|
-
|
|
66
|
-
Wait for user confirmation before proceeding.
|
|
70
|
+
If the user already named a bump type (argument or message), that IS the confirmation — state it and continue immediately. Only ask and wait when no bump type was given.
|
|
67
71
|
|
|
68
72
|
---
|
|
69
73
|
|
|
@@ -80,7 +84,7 @@ Run: `git status --porcelain`
|
|
|
80
84
|
|
|
81
85
|
Check if there are unpushed commits:
|
|
82
86
|
```bash
|
|
83
|
-
git log
|
|
87
|
+
git log @{u}..HEAD --oneline
|
|
84
88
|
```
|
|
85
89
|
|
|
86
90
|
**If there are unpushed commits, you MUST sync before triggering workflow:**
|
|
@@ -108,14 +112,21 @@ gh run list --workflow=publish --limit=1 --json databaseId,status --jq '.[0]'
|
|
|
108
112
|
|
|
109
113
|
## STEP 4: WAIT FOR WORKFLOW COMPLETION
|
|
110
114
|
|
|
111
|
-
|
|
115
|
+
The publish run is a single workflow with sequential stages. Expected timeline (from recent real runs, ~30 min total):
|
|
116
|
+
|
|
117
|
+
| Stage (job) | What it does | Typical |
|
|
118
|
+
|---|---|---|
|
|
119
|
+
| `test` / `typecheck` / `codex-compatibility` (3 OS) | Re-runs the CI gates on the release source | 4–8 min (Windows is the long pole) |
|
|
120
|
+
| `prepare-release-state` | Stamps versions, opens + auto-merges the `release: vX.Y.Z` PR, waits for that PR's required CI checks | 10–15 min (dominant stage) |
|
|
121
|
+
| `publish-platform` (build + publish, 12 targets) | Builds and publishes both platform package families | 3–4 min |
|
|
122
|
+
| `publish-main` → `release` | Publishes `oh-my-opencode` / `oh-my-openagent` / `lazycodex-ai`, creates the GitHub release, syncs `code-yeongyu/lazycodex` | 4–6 min |
|
|
123
|
+
|
|
124
|
+
Poll job-level status every 30 seconds and report stage transitions to the user:
|
|
112
125
|
```bash
|
|
113
|
-
gh run view {run_id} --json status,conclusion --jq '{status: .status
|
|
126
|
+
gh run view {run_id} --json status,conclusion,jobs --jq '{status, conclusion, stage: ([.jobs[] | select(.status=="in_progress") | .name] | join(", "))}'
|
|
114
127
|
```
|
|
115
128
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
**IMPORTANT: Use polling loop, NOT sleep commands.**
|
|
129
|
+
**IMPORTANT: Use polling loop, NOT sleep commands.** Use the waiting time to draft the enhanced release summary (Step 6) — do not sit idle, and do not start any review activity.
|
|
119
130
|
|
|
120
131
|
If conclusion is `failure`, show error and stop:
|
|
121
132
|
```bash
|
|
@@ -297,54 +308,17 @@ Compare with expected version. If not matching after 2 minutes, warn user about
|
|
|
297
308
|
|
|
298
309
|
---
|
|
299
310
|
|
|
300
|
-
## STEP 8.5:
|
|
301
|
-
|
|
302
|
-
The main publish workflow triggers a separate `publish-platform` workflow for platform-specific binaries.
|
|
303
|
-
|
|
304
|
-
1. Find the publish-platform workflow run triggered by the main workflow:
|
|
305
|
-
```bash
|
|
306
|
-
gh run list --workflow=publish-platform --limit=1 --json databaseId,status,conclusion --jq '.[0]'
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
2. Poll workflow status every 30 seconds until completion:
|
|
310
|
-
```bash
|
|
311
|
-
gh run view {platform_run_id} --json status,conclusion --jq '{status: .status, conclusion: .conclusion}'
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
**IMPORTANT: Use polling loop, NOT sleep commands.**
|
|
315
|
-
|
|
316
|
-
If conclusion is `failure`, show error logs:
|
|
317
|
-
```bash
|
|
318
|
-
gh run view {platform_run_id} --log-failed
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
---
|
|
322
|
-
|
|
323
|
-
## STEP 8.6: VERIFY PLATFORM BINARY PACKAGES
|
|
311
|
+
## STEP 8.5: SPOT-CHECK PLATFORM BINARY PACKAGES
|
|
324
312
|
|
|
325
|
-
|
|
313
|
+
Platform packages are built and published by the `publish-platform` jobs INSIDE the same publish run — there is no separate workflow to wait for, and `publish-main` already refuses to publish unless matching platform binaries exist. Spot-check a representative sample:
|
|
326
314
|
|
|
327
315
|
```bash
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
npm view "oh-my-opencode-${PLATFORM}" version
|
|
316
|
+
for PKG in oh-my-opencode-darwin-arm64 oh-my-openagent-linux-x64 oh-my-opencode-windows-x64; do
|
|
317
|
+
npm view "$PKG" version
|
|
331
318
|
done
|
|
332
319
|
```
|
|
333
320
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
**Expected packages:**
|
|
337
|
-
| Package | Description |
|
|
338
|
-
|---------|-------------|
|
|
339
|
-
| `oh-my-opencode-darwin-arm64` | macOS Apple Silicon |
|
|
340
|
-
| `oh-my-opencode-darwin-x64` | macOS Intel |
|
|
341
|
-
| `oh-my-opencode-linux-x64` | Linux x64 (glibc) |
|
|
342
|
-
| `oh-my-opencode-linux-arm64` | Linux ARM64 (glibc) |
|
|
343
|
-
| `oh-my-opencode-linux-x64-musl` | Linux x64 (musl/Alpine) |
|
|
344
|
-
| `oh-my-opencode-linux-arm64-musl` | Linux ARM64 (musl/Alpine) |
|
|
345
|
-
| `oh-my-opencode-windows-x64` | Windows x64 |
|
|
346
|
-
|
|
347
|
-
If any platform package version doesn't match, warn the user and suggest checking the publish-platform workflow logs.
|
|
321
|
+
Each should show `${NEW_VERSION}`. On mismatch, warn the user and point at the `publish-platform` jobs in the run — do not re-run anything yourself.
|
|
348
322
|
|
|
349
323
|
---
|
|
350
324
|
|
|
@@ -354,7 +328,7 @@ Report success to user with:
|
|
|
354
328
|
- New version number
|
|
355
329
|
- GitHub release URL: https://github.com/code-yeongyu/oh-my-opencode/releases/tag/v{version}
|
|
356
330
|
- npm package URL: https://www.npmjs.com/package/oh-my-opencode
|
|
357
|
-
- Platform packages status:
|
|
331
|
+
- Platform packages status: spot-checked platform package versions
|
|
358
332
|
|
|
359
333
|
---
|
|
360
334
|
|
|
@@ -364,8 +338,7 @@ Report success to user with:
|
|
|
364
338
|
- **Release not found**: Wait and retry, may be propagation delay
|
|
365
339
|
- **npm not updated**: npm can take 1-5 minutes to propagate, inform user
|
|
366
340
|
- **Permission denied**: User may need to re-authenticate with `gh auth login`
|
|
367
|
-
- **Platform
|
|
368
|
-
- **Platform package missing**: Some platforms may fail due to cross-compilation issues, suggest re-running publish-platform workflow manually
|
|
341
|
+
- **Platform jobs fail**: Show logs from the `publish-platform` jobs in the same run, name the failing target, and stop — `publish-main` is blocked by design until they pass
|
|
369
342
|
|
|
370
343
|
## LANGUAGE
|
|
371
344
|
|
|
@@ -32,10 +32,10 @@ Required categories are `unspecified-low`, `unspecified-high`, `ultrabrain`, and
|
|
|
32
32
|
|
|
33
33
|
| Category | Model | Native Mindset | Why This Adversarial Role Fits |
|
|
34
34
|
|----------|-------|----------------|--------------------------------|
|
|
35
|
-
| `unspecified-low` |
|
|
35
|
+
| `unspecified-low` | gpt-5.6-luna xhigh | Mid-tier, simplicity-leaning, structure-demanding | Pragmatist Skeptic — model bias toward simplicity makes it the natural enemy of over-engineering |
|
|
36
36
|
| `unspecified-high` | claude-opus-4-7 max | High-effort, broad-impact, coordination-aware | Integration Tester — max-tier broad-scope thinking exposes cross-module fragility |
|
|
37
|
-
| `deep` | gpt-5.
|
|
38
|
-
| `ultrabrain` | gpt-5.
|
|
37
|
+
| `deep` | gpt-5.6-terra xhigh | Autonomous, exploration-heavy, evidence-driven | Autonomous Researcher — natural exploration bias attacks unfounded claims |
|
|
38
|
+
| `ultrabrain` | gpt-5.6-sol xhigh | Hard-logic, simplicity-biased, strategic advisor | Architect Strategist — xhigh reasoning sees structural flaws others miss |
|
|
39
39
|
| `artistry` | gemini-3.1-pro high | Unconventional, pattern-breaking, lateral | Creative Challenger — pattern-breaking bias attacks orthodox thinking |
|
|
40
40
|
|
|
41
41
|
### MEMBER 1: `skeptic` (category: `unspecified-low`)
|
|
@@ -17,7 +17,7 @@ Print the following message to the user EXACTLY as written (in a friendly, celeb
|
|
|
17
17
|
|
|
18
18
|
**Oh My OpenCode** is a powerful OpenCode plugin that transforms your AI agent into a full development team:
|
|
19
19
|
|
|
20
|
-
- 🤖 **Multi-Agent Orchestration**: Oracle (GPT-5.5), Librarian
|
|
20
|
+
- 🤖 **Multi-Agent Orchestration**: Oracle (GPT-5.5), Librarian & Explore (GPT-5.4 Mini Fast), Frontend Engineer (Gemini), and more
|
|
21
21
|
- 🔧 **LSP Tools**: Full IDE capabilities for your agents - hover, goto definition, find references, rename, code actions
|
|
22
22
|
- 🔍 **AST-Grep**: Structural code search and replace across 25 languages
|
|
23
23
|
- 📚 **Built-in MCPs**: Context7 for docs, Exa for web search, grep.app for GitHub code search
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pre-publish-review
|
|
3
|
-
description: "Nuclear-grade 16-agent pre-publish release gate. Runs /get-unpublished-changes to detect all changes since last npm release, spawns up to 10 ultrabrain agents for deep per-change analysis, invokes /review-work (5 agents) for holistic review, and 1 oracle for overall release synthesis.
|
|
3
|
+
description: "Nuclear-grade 16-agent pre-publish release gate. Runs /get-unpublished-changes to detect all changes since last npm release, spawns up to 10 ultrabrain agents for deep per-change analysis, invokes /review-work (5 agents) for holistic review, and 1 oracle for overall release synthesis. Runs ONLY when the user explicitly asks for a pre-publish review — a plain publish/release request MUST NOT trigger this; /publish ships directly. Triggers: 'pre-publish review', 'review before publish', 'release review', 'pre-release review', 'ready to publish?', 'can I publish?', 'pre-publish', 'safe to publish', 'publishing review', 'pre-publish check'."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Pre-Publish Review — 16-Agent Release Gate
|
|
@@ -1,17 +1,25 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: publish
|
|
3
|
-
description: "Publish oh-my-opencode to npm
|
|
3
|
+
description: "Publish oh-my-opencode to npm by triggering the GitHub Actions publish workflow and verifying its artifacts. Ship-only: never runs pre-publish-review or re-reviews merged code unless the user explicitly asks. Argument: <patch|minor|major>. Triggers: publish, release, deploy, npm publish."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
You are the release manager for oh-my-opencode. Execute the FULL publish workflow from start to finish.
|
|
7
7
|
|
|
8
|
+
## CRITICAL: PUBLISH IS SHIP-ONLY — GO STRAIGHT TO THE WORKFLOW
|
|
9
|
+
|
|
10
|
+
`origin/dev` is already gated: every PR and push ran CI (test/typecheck/codex-compatibility on 3 OSes), and the publish workflow re-runs those same gates before anything is published.
|
|
11
|
+
|
|
12
|
+
- **NEVER run `/pre-publish-review`, `/review-work`, or any code re-review as part of a publish request.** Those run ONLY when the user explicitly asks for a review.
|
|
13
|
+
- **NEVER "fix" code, open PRs, or enter fix-and-re-audit loops during a publish.** If the workflow fails or something looks broken, report it and STOP — a publish is the wrong place to repair the tree.
|
|
14
|
+
- A publish request with a bump type goes from Step 0 to Step 3 (trigger) in minutes. The only human-scale work is release notes, drafted while CI runs.
|
|
15
|
+
|
|
8
16
|
## CRITICAL: FULL WORKFLOW MEANS THREE RELEASE SURFACES
|
|
9
17
|
|
|
10
18
|
Publishing is complete only after all release surfaces are verified:
|
|
11
19
|
|
|
12
20
|
| Release layer | Surface | Required proof |
|
|
13
21
|
|---|---|---|
|
|
14
|
-
| `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | `/get-unpublished-changes`
|
|
22
|
+
| `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | Release notes call out layer-specific version impact (from the workflow changelog, or `/get-unpublished-changes` when the user requested it). |
|
|
15
23
|
| `omo opencode` | `oh-my-opencode` and `oh-my-openagent` npm packages plus platform packages | npm versions and GitHub release exist for the selected bump. |
|
|
16
24
|
| `omo codex` | `lazycodex-ai`, Codex plugin metadata, and `code-yeongyu/lazycodex` marketplace release | Codex plugin metadata is stamped with the release version, `lazycodex-ai` publishes, and the LazyCodex repo release is created when the marketplace payload changed. |
|
|
17
25
|
|
|
@@ -58,8 +66,7 @@ Publishing is not complete until the Discord release announcement has been attem
|
|
|
58
66
|
{ "id": "discord-announce", "content": "MANDATORY: post release announcement to Discord channel immediately after release notes are finalized", "status": "pending", "priority": "high" },
|
|
59
67
|
{ "id": "verify-npm", "content": "Verify npm package published successfully", "status": "pending", "priority": "high" },
|
|
60
68
|
{ "id": "verify-lazycodex", "content": "Verify lazycodex-ai publish, Codex plugin metadata version stamp, and code-yeongyu/lazycodex release/sync", "status": "pending", "priority": "high" },
|
|
61
|
-
{ "id": "
|
|
62
|
-
{ "id": "verify-platform-binaries", "content": "Verify all 7 platform binary packages published", "status": "pending", "priority": "high" },
|
|
69
|
+
{ "id": "verify-platform-binaries", "content": "Spot-check platform binary packages on npm", "status": "pending", "priority": "high" },
|
|
63
70
|
{ "id": "final-confirmation", "content": "Final confirmation to user with links", "status": "pending", "priority": "low" }
|
|
64
71
|
]
|
|
65
72
|
```
|
|
@@ -70,10 +77,7 @@ Publishing is not complete until the Discord release announcement has been attem
|
|
|
70
77
|
|
|
71
78
|
## STEP 1: CONFIRM BUMP TYPE
|
|
72
79
|
|
|
73
|
-
If bump type
|
|
74
|
-
> "Version bump type: `{bump}`. Proceed? (y/n)"
|
|
75
|
-
|
|
76
|
-
Wait for user confirmation before proceeding.
|
|
80
|
+
If the user already named a bump type (argument or message), that IS the confirmation — state it and continue immediately. Only ask and wait when no bump type was given.
|
|
77
81
|
|
|
78
82
|
---
|
|
79
83
|
|
|
@@ -90,7 +94,7 @@ Run: `git status --porcelain`
|
|
|
90
94
|
|
|
91
95
|
Check if there are unpushed commits:
|
|
92
96
|
```bash
|
|
93
|
-
git log
|
|
97
|
+
git log @{u}..HEAD --oneline
|
|
94
98
|
```
|
|
95
99
|
|
|
96
100
|
**If there are unpushed commits, you MUST sync before triggering workflow:**
|
|
@@ -118,14 +122,21 @@ gh run list --workflow=publish --limit=1 --json databaseId,status --jq '.[0]'
|
|
|
118
122
|
|
|
119
123
|
## STEP 4: WAIT FOR WORKFLOW COMPLETION
|
|
120
124
|
|
|
121
|
-
|
|
125
|
+
The publish run is a single workflow with sequential stages. Expected timeline (from recent real runs, ~30 min total):
|
|
126
|
+
|
|
127
|
+
| Stage (job) | What it does | Typical |
|
|
128
|
+
|---|---|---|
|
|
129
|
+
| `test` / `typecheck` / `codex-compatibility` (3 OS) | Re-runs the CI gates on the release source | 4–8 min (Windows is the long pole) |
|
|
130
|
+
| `prepare-release-state` | Stamps versions, opens + auto-merges the `release: vX.Y.Z` PR, waits for that PR's required CI checks | 10–15 min (dominant stage) |
|
|
131
|
+
| `publish-platform` (build + publish, 12 targets) | Builds and publishes both platform package families | 3–4 min |
|
|
132
|
+
| `publish-main` → `release` | Publishes `oh-my-opencode` / `oh-my-openagent` / `lazycodex-ai`, creates the GitHub release, syncs `code-yeongyu/lazycodex` | 4–6 min |
|
|
133
|
+
|
|
134
|
+
Poll job-level status every 30 seconds and report stage transitions to the user:
|
|
122
135
|
```bash
|
|
123
|
-
gh run view {run_id} --json status,conclusion --jq '{status: .status
|
|
136
|
+
gh run view {run_id} --json status,conclusion,jobs --jq '{status, conclusion, stage: ([.jobs[] | select(.status=="in_progress") | .name] | join(", "))}'
|
|
124
137
|
```
|
|
125
138
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
**IMPORTANT: Use polling loop, NOT sleep commands.**
|
|
139
|
+
**IMPORTANT: Use polling loop, NOT sleep commands.** Use the waiting time to draft the enhanced release summary (Step 6) — do not sit idle, and do not start any review activity.
|
|
129
140
|
|
|
130
141
|
If conclusion is `failure`, show error and stop:
|
|
131
142
|
```bash
|
|
@@ -366,54 +377,17 @@ Compare with expected version. If not matching after 2 minutes, warn user about
|
|
|
366
377
|
|
|
367
378
|
---
|
|
368
379
|
|
|
369
|
-
## STEP 8.5:
|
|
370
|
-
|
|
371
|
-
The main publish workflow triggers a separate `publish-platform` workflow for platform-specific binaries.
|
|
372
|
-
|
|
373
|
-
1. Find the publish-platform workflow run triggered by the main workflow:
|
|
374
|
-
```bash
|
|
375
|
-
gh run list --workflow=publish-platform --limit=1 --json databaseId,status,conclusion --jq '.[0]'
|
|
376
|
-
```
|
|
377
|
-
|
|
378
|
-
2. Poll workflow status every 30 seconds until completion:
|
|
379
|
-
```bash
|
|
380
|
-
gh run view {platform_run_id} --json status,conclusion --jq '{status: .status, conclusion: .conclusion}'
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
**IMPORTANT: Use polling loop, NOT sleep commands.**
|
|
384
|
-
|
|
385
|
-
If conclusion is `failure`, show error logs:
|
|
386
|
-
```bash
|
|
387
|
-
gh run view {platform_run_id} --log-failed
|
|
388
|
-
```
|
|
389
|
-
|
|
390
|
-
---
|
|
391
|
-
|
|
392
|
-
## STEP 8.6: VERIFY PLATFORM BINARY PACKAGES
|
|
380
|
+
## STEP 8.5: SPOT-CHECK PLATFORM BINARY PACKAGES
|
|
393
381
|
|
|
394
|
-
|
|
382
|
+
Platform packages are built and published by the `publish-platform` jobs INSIDE the same publish run — there is no separate workflow to wait for, and `publish-main` already refuses to publish unless matching platform binaries exist. Spot-check a representative sample:
|
|
395
383
|
|
|
396
384
|
```bash
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
npm view "oh-my-opencode-${PLATFORM}" version
|
|
385
|
+
for PKG in oh-my-opencode-darwin-arm64 oh-my-openagent-linux-x64 oh-my-opencode-windows-x64; do
|
|
386
|
+
npm view "$PKG" version
|
|
400
387
|
done
|
|
401
388
|
```
|
|
402
389
|
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
**Expected packages:**
|
|
406
|
-
| Package | Description |
|
|
407
|
-
|---------|-------------|
|
|
408
|
-
| `oh-my-opencode-darwin-arm64` | macOS Apple Silicon |
|
|
409
|
-
| `oh-my-opencode-darwin-x64` | macOS Intel |
|
|
410
|
-
| `oh-my-opencode-linux-x64` | Linux x64 (glibc) |
|
|
411
|
-
| `oh-my-opencode-linux-arm64` | Linux ARM64 (glibc) |
|
|
412
|
-
| `oh-my-opencode-linux-x64-musl` | Linux x64 (musl/Alpine) |
|
|
413
|
-
| `oh-my-opencode-linux-arm64-musl` | Linux ARM64 (musl/Alpine) |
|
|
414
|
-
| `oh-my-opencode-windows-x64` | Windows x64 |
|
|
415
|
-
|
|
416
|
-
If any platform package version doesn't match, warn the user and suggest checking the publish-platform workflow logs.
|
|
390
|
+
Each should show `${NEW_VERSION}`. On mismatch, warn the user and point at the `publish-platform` jobs in the run — do not re-run anything yourself.
|
|
417
391
|
|
|
418
392
|
---
|
|
419
393
|
|
|
@@ -423,7 +397,7 @@ Report success to user with:
|
|
|
423
397
|
- New version number
|
|
424
398
|
- GitHub release URL: https://github.com/code-yeongyu/oh-my-opencode/releases/tag/v{version}
|
|
425
399
|
- npm package URL: https://www.npmjs.com/package/oh-my-opencode
|
|
426
|
-
- Platform packages status:
|
|
400
|
+
- Platform packages status: spot-checked platform package versions
|
|
427
401
|
|
|
428
402
|
---
|
|
429
403
|
|
|
@@ -433,8 +407,7 @@ Report success to user with:
|
|
|
433
407
|
- **Release not found**: Wait and retry, may be propagation delay
|
|
434
408
|
- **npm not updated**: npm can take 1-5 minutes to propagate, inform user
|
|
435
409
|
- **Permission denied**: User may need to re-authenticate with `gh auth login`
|
|
436
|
-
- **Platform
|
|
437
|
-
- **Platform package missing**: Some platforms may fail due to cross-compilation issues, suggest re-running publish-platform workflow manually
|
|
410
|
+
- **Platform jobs fail**: Show logs from the `publish-platform` jobs in the same run, name the failing target, and stop — `publish-main` is blocked by design until they pass
|
|
438
411
|
|
|
439
412
|
## LANGUAGE
|
|
440
413
|
|
|
@@ -17,7 +17,7 @@ Print the following message to the user EXACTLY as written (in a friendly, celeb
|
|
|
17
17
|
|
|
18
18
|
**Oh My OpenCode** is a powerful OpenCode plugin that transforms your AI agent into a full development team:
|
|
19
19
|
|
|
20
|
-
- 🤖 **Multi-Agent Orchestration**: Oracle (GPT-5.5), Librarian
|
|
20
|
+
- 🤖 **Multi-Agent Orchestration**: Oracle (GPT-5.5), Librarian & Explore (GPT-5.4 Mini Fast), Frontend Engineer (Gemini), and more
|
|
21
21
|
- 🔧 **LSP Tools**: Full IDE capabilities for your agents - hover, goto definition, find references, rename, code actions
|
|
22
22
|
- 🔍 **AST-Grep**: Structural code search and replace across 25 languages
|
|
23
23
|
- 📚 **Built-in MCPs**: Context7 for docs, Exa for web search, grep.app for GitHub code search
|
|
@@ -6,13 +6,21 @@ argument-hint: <patch|minor|major>
|
|
|
6
6
|
<command-instruction>
|
|
7
7
|
You are the release manager for oh-my-opencode. Execute the FULL publish workflow from start to finish.
|
|
8
8
|
|
|
9
|
+
## CRITICAL: PUBLISH IS SHIP-ONLY — GO STRAIGHT TO THE WORKFLOW
|
|
10
|
+
|
|
11
|
+
`origin/dev` is already gated: every PR and push ran CI (test/typecheck/codex-compatibility on 3 OSes), and the publish workflow re-runs those same gates before anything is published.
|
|
12
|
+
|
|
13
|
+
- **NEVER run `/pre-publish-review`, `/review-work`, or any code re-review as part of a publish request.** Those run ONLY when the user explicitly asks for a review.
|
|
14
|
+
- **NEVER "fix" code, open PRs, or enter fix-and-re-audit loops during a publish.** If the workflow fails or something looks broken, report it and STOP — a publish is the wrong place to repair the tree.
|
|
15
|
+
- A publish request with a bump type goes from Step 0 to Step 3 (trigger) in minutes. The only human-scale work is release notes, drafted while CI runs.
|
|
16
|
+
|
|
9
17
|
## CRITICAL: FULL WORKFLOW MEANS THREE RELEASE SURFACES
|
|
10
18
|
|
|
11
19
|
Publishing is complete only after all release surfaces are verified:
|
|
12
20
|
|
|
13
21
|
| Release layer | Surface | Required proof |
|
|
14
22
|
|---|---|---|
|
|
15
|
-
| `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | `/get-unpublished-changes`
|
|
23
|
+
| `omo pure components` | Core/MCP/shared-skill changes inside the published package payload | Release notes call out layer-specific version impact (from the workflow changelog, or `/get-unpublished-changes` when the user requested it). |
|
|
16
24
|
| `omo opencode` | `oh-my-opencode` and `oh-my-openagent` npm packages plus platform packages | npm versions and GitHub release exist for the selected bump. |
|
|
17
25
|
| `omo codex` | `lazycodex-ai`, Codex plugin metadata, and `code-yeongyu/lazycodex` marketplace release | Codex plugin metadata is stamped with the release version, `lazycodex-ai` publishes, and the LazyCodex repo release is created when the marketplace payload changed. |
|
|
18
26
|
|
|
@@ -48,8 +56,7 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
|
|
|
48
56
|
{ "id": "apply-summary", "content": "Prepend enhanced summary to release (if user opted in)", "status": "pending", "priority": "high" },
|
|
49
57
|
{ "id": "verify-npm", "content": "Verify npm package published successfully", "status": "pending", "priority": "high" },
|
|
50
58
|
{ "id": "verify-lazycodex", "content": "Verify lazycodex-ai publish, Codex plugin metadata version stamp, and code-yeongyu/lazycodex release/sync", "status": "pending", "priority": "high" },
|
|
51
|
-
{ "id": "
|
|
52
|
-
{ "id": "verify-platform-binaries", "content": "Verify all 7 platform binary packages published", "status": "pending", "priority": "high" },
|
|
59
|
+
{ "id": "verify-platform-binaries", "content": "Spot-check platform binary packages on npm", "status": "pending", "priority": "high" },
|
|
53
60
|
{ "id": "final-confirmation", "content": "Final confirmation to user with links", "status": "pending", "priority": "low" }
|
|
54
61
|
]
|
|
55
62
|
```
|
|
@@ -60,10 +67,7 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
|
|
|
60
67
|
|
|
61
68
|
## STEP 1: CONFIRM BUMP TYPE
|
|
62
69
|
|
|
63
|
-
If bump type
|
|
64
|
-
> "Version bump type: `{bump}`. Proceed? (y/n)"
|
|
65
|
-
|
|
66
|
-
Wait for user confirmation before proceeding.
|
|
70
|
+
If the user already named a bump type (argument or message), that IS the confirmation — state it and continue immediately. Only ask and wait when no bump type was given.
|
|
67
71
|
|
|
68
72
|
---
|
|
69
73
|
|
|
@@ -80,7 +84,7 @@ Run: `git status --porcelain`
|
|
|
80
84
|
|
|
81
85
|
Check if there are unpushed commits:
|
|
82
86
|
```bash
|
|
83
|
-
git log
|
|
87
|
+
git log @{u}..HEAD --oneline
|
|
84
88
|
```
|
|
85
89
|
|
|
86
90
|
**If there are unpushed commits, you MUST sync before triggering workflow:**
|
|
@@ -108,14 +112,21 @@ gh run list --workflow=publish --limit=1 --json databaseId,status --jq '.[0]'
|
|
|
108
112
|
|
|
109
113
|
## STEP 4: WAIT FOR WORKFLOW COMPLETION
|
|
110
114
|
|
|
111
|
-
|
|
115
|
+
The publish run is a single workflow with sequential stages. Expected timeline (from recent real runs, ~30 min total):
|
|
116
|
+
|
|
117
|
+
| Stage (job) | What it does | Typical |
|
|
118
|
+
|---|---|---|
|
|
119
|
+
| `test` / `typecheck` / `codex-compatibility` (3 OS) | Re-runs the CI gates on the release source | 4–8 min (Windows is the long pole) |
|
|
120
|
+
| `prepare-release-state` | Stamps versions, opens + auto-merges the `release: vX.Y.Z` PR, waits for that PR's required CI checks | 10–15 min (dominant stage) |
|
|
121
|
+
| `publish-platform` (build + publish, 12 targets) | Builds and publishes both platform package families | 3–4 min |
|
|
122
|
+
| `publish-main` → `release` | Publishes `oh-my-opencode` / `oh-my-openagent` / `lazycodex-ai`, creates the GitHub release, syncs `code-yeongyu/lazycodex` | 4–6 min |
|
|
123
|
+
|
|
124
|
+
Poll job-level status every 30 seconds and report stage transitions to the user:
|
|
112
125
|
```bash
|
|
113
|
-
gh run view {run_id} --json status,conclusion --jq '{status: .status
|
|
126
|
+
gh run view {run_id} --json status,conclusion,jobs --jq '{status, conclusion, stage: ([.jobs[] | select(.status=="in_progress") | .name] | join(", "))}'
|
|
114
127
|
```
|
|
115
128
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
**IMPORTANT: Use polling loop, NOT sleep commands.**
|
|
129
|
+
**IMPORTANT: Use polling loop, NOT sleep commands.** Use the waiting time to draft the enhanced release summary (Step 6) — do not sit idle, and do not start any review activity.
|
|
119
130
|
|
|
120
131
|
If conclusion is `failure`, show error and stop:
|
|
121
132
|
```bash
|
|
@@ -297,54 +308,17 @@ Compare with expected version. If not matching after 2 minutes, warn user about
|
|
|
297
308
|
|
|
298
309
|
---
|
|
299
310
|
|
|
300
|
-
## STEP 8.5:
|
|
301
|
-
|
|
302
|
-
The main publish workflow triggers a separate `publish-platform` workflow for platform-specific binaries.
|
|
303
|
-
|
|
304
|
-
1. Find the publish-platform workflow run triggered by the main workflow:
|
|
305
|
-
```bash
|
|
306
|
-
gh run list --workflow=publish-platform --limit=1 --json databaseId,status,conclusion --jq '.[0]'
|
|
307
|
-
```
|
|
308
|
-
|
|
309
|
-
2. Poll workflow status every 30 seconds until completion:
|
|
310
|
-
```bash
|
|
311
|
-
gh run view {platform_run_id} --json status,conclusion --jq '{status: .status, conclusion: .conclusion}'
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
**IMPORTANT: Use polling loop, NOT sleep commands.**
|
|
315
|
-
|
|
316
|
-
If conclusion is `failure`, show error logs:
|
|
317
|
-
```bash
|
|
318
|
-
gh run view {platform_run_id} --log-failed
|
|
319
|
-
```
|
|
320
|
-
|
|
321
|
-
---
|
|
322
|
-
|
|
323
|
-
## STEP 8.6: VERIFY PLATFORM BINARY PACKAGES
|
|
311
|
+
## STEP 8.5: SPOT-CHECK PLATFORM BINARY PACKAGES
|
|
324
312
|
|
|
325
|
-
|
|
313
|
+
Platform packages are built and published by the `publish-platform` jobs INSIDE the same publish run — there is no separate workflow to wait for, and `publish-main` already refuses to publish unless matching platform binaries exist. Spot-check a representative sample:
|
|
326
314
|
|
|
327
315
|
```bash
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
npm view "oh-my-opencode-${PLATFORM}" version
|
|
316
|
+
for PKG in oh-my-opencode-darwin-arm64 oh-my-openagent-linux-x64 oh-my-opencode-windows-x64; do
|
|
317
|
+
npm view "$PKG" version
|
|
331
318
|
done
|
|
332
319
|
```
|
|
333
320
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
**Expected packages:**
|
|
337
|
-
| Package | Description |
|
|
338
|
-
|---------|-------------|
|
|
339
|
-
| `oh-my-opencode-darwin-arm64` | macOS Apple Silicon |
|
|
340
|
-
| `oh-my-opencode-darwin-x64` | macOS Intel |
|
|
341
|
-
| `oh-my-opencode-linux-x64` | Linux x64 (glibc) |
|
|
342
|
-
| `oh-my-opencode-linux-arm64` | Linux ARM64 (glibc) |
|
|
343
|
-
| `oh-my-opencode-linux-x64-musl` | Linux x64 (musl/Alpine) |
|
|
344
|
-
| `oh-my-opencode-linux-arm64-musl` | Linux ARM64 (musl/Alpine) |
|
|
345
|
-
| `oh-my-opencode-windows-x64` | Windows x64 |
|
|
346
|
-
|
|
347
|
-
If any platform package version doesn't match, warn the user and suggest checking the publish-platform workflow logs.
|
|
321
|
+
Each should show `${NEW_VERSION}`. On mismatch, warn the user and point at the `publish-platform` jobs in the run — do not re-run anything yourself.
|
|
348
322
|
|
|
349
323
|
---
|
|
350
324
|
|
|
@@ -354,7 +328,7 @@ Report success to user with:
|
|
|
354
328
|
- New version number
|
|
355
329
|
- GitHub release URL: https://github.com/code-yeongyu/oh-my-opencode/releases/tag/v{version}
|
|
356
330
|
- npm package URL: https://www.npmjs.com/package/oh-my-opencode
|
|
357
|
-
- Platform packages status:
|
|
331
|
+
- Platform packages status: spot-checked platform package versions
|
|
358
332
|
|
|
359
333
|
---
|
|
360
334
|
|
|
@@ -364,8 +338,7 @@ Report success to user with:
|
|
|
364
338
|
- **Release not found**: Wait and retry, may be propagation delay
|
|
365
339
|
- **npm not updated**: npm can take 1-5 minutes to propagate, inform user
|
|
366
340
|
- **Permission denied**: User may need to re-authenticate with `gh auth login`
|
|
367
|
-
- **Platform
|
|
368
|
-
- **Platform package missing**: Some platforms may fail due to cross-compilation issues, suggest re-running publish-platform workflow manually
|
|
341
|
+
- **Platform jobs fail**: Show logs from the `publish-platform` jobs in the same run, name the failing target, and stop — `publish-main` is blocked by design until they pass
|
|
369
342
|
|
|
370
343
|
## LANGUAGE
|
|
371
344
|
|
|
@@ -32,10 +32,10 @@ Required categories are `unspecified-low`, `unspecified-high`, `ultrabrain`, and
|
|
|
32
32
|
|
|
33
33
|
| Category | Model | Native Mindset | Why This Adversarial Role Fits |
|
|
34
34
|
|----------|-------|----------------|--------------------------------|
|
|
35
|
-
| `unspecified-low` |
|
|
35
|
+
| `unspecified-low` | gpt-5.6-luna xhigh | Mid-tier, simplicity-leaning, structure-demanding | Pragmatist Skeptic — model bias toward simplicity makes it the natural enemy of over-engineering |
|
|
36
36
|
| `unspecified-high` | claude-opus-4-7 max | High-effort, broad-impact, coordination-aware | Integration Tester — max-tier broad-scope thinking exposes cross-module fragility |
|
|
37
|
-
| `deep` | gpt-5.
|
|
38
|
-
| `ultrabrain` | gpt-5.
|
|
37
|
+
| `deep` | gpt-5.6-terra xhigh | Autonomous, exploration-heavy, evidence-driven | Autonomous Researcher — natural exploration bias attacks unfounded claims |
|
|
38
|
+
| `ultrabrain` | gpt-5.6-sol xhigh | Hard-logic, simplicity-biased, strategic advisor | Architect Strategist — xhigh reasoning sees structural flaws others miss |
|
|
39
39
|
| `artistry` | gemini-3.1-pro high | Unconventional, pattern-breaking, lateral | Creative Challenger — pattern-breaking bias attacks orthodox thinking |
|
|
40
40
|
|
|
41
41
|
### MEMBER 1: `skeptic` (category: `unspecified-low`)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pre-publish-review
|
|
3
|
-
description: "Nuclear-grade 16-agent pre-publish release gate. Runs /get-unpublished-changes to detect all changes since last npm release, spawns up to 10 ultrabrain agents for deep per-change analysis, invokes /review-work (5 agents) for holistic review, and 1 oracle for overall release synthesis.
|
|
3
|
+
description: "Nuclear-grade 16-agent pre-publish release gate. Runs /get-unpublished-changes to detect all changes since last npm release, spawns up to 10 ultrabrain agents for deep per-change analysis, invokes /review-work (5 agents) for holistic review, and 1 oracle for overall release synthesis. Runs ONLY when the user explicitly asks for a pre-publish review — a plain publish/release request MUST NOT trigger this; /publish ships directly. Triggers: 'pre-publish review', 'review before publish', 'release review', 'pre-release review', 'ready to publish?', 'can I publish?', 'pre-publish', 'safe to publish', 'publishing review', 'pre-publish check'."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Pre-Publish Review — 16-Agent Release Gate
|
|
@@ -89,6 +89,7 @@ For each change group, spawn one ultrabrain agent. Each gets only its portion of
|
|
|
89
89
|
```
|
|
90
90
|
task(
|
|
91
91
|
category="ultrabrain",
|
|
92
|
+
model="gpt-5.6-sol",
|
|
92
93
|
run_in_background=true,
|
|
93
94
|
load_skills=[],
|
|
94
95
|
description="Deep analysis: {GROUP_NAME}",
|
|
@@ -165,6 +166,7 @@ Spawn a sub-agent that loads the `/review-work` skill. The review-work skill int
|
|
|
165
166
|
```
|
|
166
167
|
task(
|
|
167
168
|
category="unspecified-high",
|
|
169
|
+
model="gpt-5.6-sol",
|
|
168
170
|
run_in_background=true,
|
|
169
171
|
load_skills=["review-work"],
|
|
170
172
|
description="Run /review-work on all unpublished changes",
|
|
@@ -195,6 +197,7 @@ The oracle gets the full picture — all commits, full diff stat, and changed fi
|
|
|
195
197
|
```
|
|
196
198
|
task(
|
|
197
199
|
subagent_type="oracle",
|
|
200
|
+
model="gpt-5.6-sol",
|
|
198
201
|
run_in_background=true,
|
|
199
202
|
load_skills=[],
|
|
200
203
|
description="Oracle: overall release synthesis and version bump recommendation",
|
package/README.ja.md
CHANGED
|
@@ -193,11 +193,11 @@ Read this and tell me why it's not just another boilerplate: https://raw.githubu
|
|
|
193
193
|
<td align="center"><img src=".github/assets/hephaestus.png" height="300" /></td>
|
|
194
194
|
</tr></table>
|
|
195
195
|
|
|
196
|
-
**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5
|
|
196
|
+
**Sisyphus** (`claude-opus-4-7` / **`kimi-k2.6`** / **`glm-5`**) はあなたのメインオーケストレーターです。計画を立て、専門家に委任し、攻撃的な並列実行でタスクを完了まで推進します。途中で投げ出すことはありません。
|
|
197
197
|
|
|
198
|
-
**Hephaestus** (`gpt-5.5`) はあなたの自律的なディープワーカーです。レシピではなく、目標を与えてください。手取り足取り教えなくても、コードベースを探索し、パターンを調査し、エンドツーエンドで実行します。*正当なる職人 (The Legitimate Craftsman).*
|
|
198
|
+
**Hephaestus** (OpenAI または Vercel では `gpt-5.6-sol`、その次に `gpt-5.5`) はあなたの自律的なディープワーカーです。レシピではなく、目標を与えてください。手取り足取り教えなくても、コードベースを探索し、パターンを調査し、エンドツーエンドで実行します。*正当なる職人 (The Legitimate Craftsman).*
|
|
199
199
|
|
|
200
|
-
**Prometheus** (`claude-opus-4-7` / **`
|
|
200
|
+
**Prometheus** (`claude-opus-4-7` / **`gpt-5.5`** / **`glm-5.2`**) はあなたの戦略プランナーです。インタビューモードで質問を投げ、スコープを特定し、コードに一行触れる前に詳細な計画を構築します。
|
|
201
201
|
|
|
202
202
|
すべてのエージェントは、それぞれのモデルの強みに合わせてチューニングされています。手動でモデルを切り替える必要はありません。[詳しくはこちら →](docs/guide/overview.md)
|
|
203
203
|
|
|
@@ -240,7 +240,7 @@ Sisyphus がサブエージェントにタスクを委任する際、モデル
|
|
|
240
240
|
| `quick` | 単一ファイルの変更、タイポの修正 |
|
|
241
241
|
| `ultrabrain` | ハードロジック、アーキテクチャの決定 |
|
|
242
242
|
|
|
243
|
-
エージェントは作業の種類を伝えるだけで、ハーネスが適切なモデルを選びます。`ultrabrain`
|
|
243
|
+
エージェントは作業の種類を伝えるだけで、ハーネスが適切なモデルを選びます。`ultrabrain` は OpenAI または Vercel で利用可能な場合は GPT-5.6 Sol xhigh に、その次に GPT-5.5 xhigh にルーティングされます。あなたが触るものは何もありません。
|
|
244
244
|
|
|
245
245
|
### Claude Code 互換性
|
|
246
246
|
|