oh-my-opencode 4.19.2 → 4.19.4
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/get-unpublished-changes.md +2 -0
- package/.agents/command/omomomo.md +1 -1
- package/.agents/command/publish.md +102 -28
- package/.agents/skills/get-unpublished-changes/SKILL.md +2 -0
- package/.agents/skills/hyperplan/SKILL.md +3 -3
- package/.agents/skills/omomomo/SKILL.md +1 -1
- package/.agents/skills/publish/SKILL.md +27 -6
- package/.opencode/command/get-unpublished-changes.md +2 -0
- package/.opencode/command/omomomo.md +1 -1
- package/.opencode/command/publish.md +102 -28
- package/.opencode/skills/hyperplan/SKILL.md +3 -3
- package/THIRD-PARTY-NOTICES.md +7 -7
- package/dist/agents/sisyphus-junior/agent.d.ts +1 -1
- package/dist/agents/sisyphus-runtime-prompt-reconciler.d.ts +1 -1
- package/dist/cli/config-migrate.d.ts +8 -0
- package/dist/cli/doctor/checks/deprecated-reasoning-keys.d.ts +2 -0
- package/dist/cli/doctor/checks/legacy-config-leftovers.d.ts +10 -0
- package/dist/cli/doctor/checks/model-resolution-config.d.ts +1 -1
- package/dist/cli/doctor/checks/tools-lsp.d.ts +1 -1
- package/dist/cli/doctor/framework/constants.d.ts +1 -1
- package/dist/cli/index.js +95684 -92814
- package/dist/cli-node/index.js +95650 -92780
- package/dist/config/schema/agent-overrides.d.ts +800 -0
- package/dist/config/schema/categories.d.ts +132 -0
- package/dist/config/schema/fallback-models.d.ts +50 -0
- package/dist/config/schema/oh-my-opencode-config.d.ts +818 -2
- package/dist/config/validate.d.ts +2 -1
- package/dist/config-migration/deep-diff.d.ts +1 -0
- package/dist/config-migration/discovery-paths.d.ts +11 -0
- package/dist/config-migration/discovery-roots.d.ts +7 -0
- package/dist/config-migration/discovery.d.ts +4 -0
- package/dist/config-migration/index.d.ts +10 -0
- package/dist/config-migration/legacy-history.d.ts +3 -0
- package/dist/config-migration/migration-executor.d.ts +4 -0
- package/dist/config-migration/migration-plans.d.ts +15 -0
- package/dist/config-migration/reasoning-unification.d.ts +3 -0
- package/dist/config-migration/record-values.d.ts +4 -0
- package/dist/config-migration/schema-url.d.ts +1 -0
- package/dist/config-migration/transform-config-jsonc.d.ts +2 -0
- package/dist/config-migration/transform-opencode.d.ts +2 -0
- package/dist/config-migration/transform-types.d.ts +24 -0
- package/dist/config-migration/types.d.ts +39 -0
- package/dist/features/builtin-commands/templates/hyperplan.d.ts +1 -1
- package/dist/features/team-mode/tools/lifecycle-test-fixture.d.ts +2 -0
- package/dist/hooks/auto-update-checker/constants.d.ts +3 -3
- package/dist/hooks/codegraph-bootstrap/command-runner.d.ts +1 -0
- package/dist/hooks/model-fallback/next-fallback.d.ts +1 -0
- package/dist/hooks/runtime-fallback/constants.d.ts +1 -1
- package/dist/index.js +12368 -9788
- package/dist/oh-my-opencode.schema.json +1672 -8
- package/dist/plugin-config/omo-config-chain.d.ts +14 -0
- package/dist/plugin-config/unknown-key-diagnostics.d.ts +5 -0
- package/dist/plugin-config.d.ts +2 -2
- package/dist/plugin-handlers/prometheus-agent-config-builder.d.ts +1 -0
- package/dist/shared/agent-display-names.d.ts +1 -1
- package/dist/shared/agent-variant.d.ts +11 -0
- package/dist/shared/jsonc-parser.d.ts +1 -1
- package/dist/shared/migration.d.ts +5 -1
- package/dist/shared/opencode-config-dir-types.d.ts +0 -1
- package/dist/shared/plugin-identity.d.ts +6 -8
- package/dist/shared/project-discovery-dirs.d.ts +0 -1
- package/dist/shared/session-prompt-params-helpers.d.ts +6 -1
- package/dist/skills/coding-agent-sessions/SKILL.md +4 -3
- package/dist/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
- package/dist/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
- package/dist/skills/data-scientist/SKILL.md +243 -0
- package/dist/skills/data-scientist/references/common-scenarios.md +176 -0
- package/dist/skills/data-scientist/references/execution-templates.md +197 -0
- package/dist/skills/data-scientist/references/integration-patterns.md +153 -0
- package/dist/skills/data-scientist/references/performance-benchmarks.md +37 -0
- package/dist/skills/data-scientist/references/uv-setup.md +78 -0
- package/dist/skills/data-scientist/scripts/quick-query.py +111 -0
- package/dist/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
- package/dist/skills/data-scientist/scripts/setup-uv.sh +60 -0
- package/dist/skills/debugging/SKILL.md +1 -1
- package/dist/skills/frontend/ATTRIBUTION.md +7 -0
- package/dist/skills/frontend/SKILL.md +4 -1
- package/dist/skills/frontend/references/design/README.md +8 -0
- package/dist/skills/frontend/references/design/_INDEX.md +14 -1
- package/dist/skills/frontend/references/design/interaction-skill.md +144 -0
- package/dist/skills/programming/SKILL.md +1 -2
- package/dist/skills/ulw-plan/SKILL.md +1 -1
- package/dist/skills/ulw-research/SKILL.md +122 -11
- package/dist/startup-migration.d.ts +28 -0
- package/dist/testing/create-plugin-module.d.ts +4 -0
- package/dist/tools/delegate-task/builtin-categories.d.ts +1 -0
- package/dist/tools/delegate-task/builtin-category-definition.d.ts +1 -0
- package/dist/tools/delegate-task/constants.d.ts +1 -1
- package/dist/tui.js +6040 -5443
- package/package.json +13 -13
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +21 -5
- package/packages/lsp-core/src/lsp/fixtures/workspace-edit-server.mjs +11 -2
- package/packages/omo-codex/THIRD-PARTY-NOTICES.md +2 -2
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +21 -3
- 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/AGENTS.md +11 -5
- package/packages/omo-codex/plugin/components/codegraph/NOTICE +1 -1
- package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +10373 -2570
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +7502 -574
- package/packages/omo-codex/plugin/components/codegraph/package.json +2 -2
- package/packages/omo-codex/plugin/components/codegraph/src/hook-input.ts +33 -0
- package/packages/omo-codex/plugin/components/codegraph/src/hook-types.ts +36 -10
- package/packages/omo-codex/plugin/components/codegraph/src/hook.ts +164 -159
- package/packages/omo-codex/plugin/components/codegraph/src/post-tool-use-hook.ts +34 -0
- package/packages/omo-codex/plugin/components/codegraph/src/serve.ts +20 -2
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-command.ts +106 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-cooldown.ts +145 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-hook-runtime.ts +21 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-lock.ts +139 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-outcome.ts +15 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-paths.ts +32 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-project.ts +109 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker-result.ts +148 -0
- package/packages/omo-codex/plugin/components/codegraph/src/session-start-worker.ts +126 -175
- package/packages/omo-codex/plugin/components/codegraph/test/hook-exclusion.test.ts +4 -4
- package/packages/omo-codex/plugin/components/codegraph/test/hook-session-start-guard.test.ts +160 -0
- package/packages/omo-codex/plugin/components/codegraph/test/hook-store-upgrade.test.ts +12 -138
- package/packages/omo-codex/plugin/components/codegraph/test/hook.test.ts +34 -24
- package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +3 -3
- package/packages/omo-codex/plugin/components/codegraph/test/package-runtime.test.ts +2 -2
- package/packages/omo-codex/plugin/components/codegraph/test/provisioned-node-guard.test.ts +5 -5
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +3 -3
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-facade.test.ts +1 -1
- package/packages/omo-codex/plugin/components/codegraph/test/serve-provision.test.ts +45 -0
- package/packages/omo-codex/plugin/components/codegraph/test/serve-unavailable.test.ts +2 -2
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-node-support.test.ts +70 -13
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-project.test.ts +58 -0
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-state.test.ts +104 -0
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-trust-boundary.test.ts +4 -2
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-cooldown.test.ts +116 -0
- package/packages/omo-codex/plugin/components/codegraph/test/session-start-worker-flow.test.ts +58 -57
- 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/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
- 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/rules/dist/cli.js +32 -15
- 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/rules/src/post-compact-budget.ts +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/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- 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/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- 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 +17 -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 +1 -1
- 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 +1 -1
- 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 +1 -1
- 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/package-lock.json +42 -41
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +6 -0
- package/packages/omo-codex/plugin/shared/src/config-loader.ts +165 -16
- package/packages/omo-codex/plugin/shared/src/config-migration.ts +162 -0
- package/packages/omo-codex/plugin/shared/test/config-loader.test.ts +186 -9
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +4 -3
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
- package/packages/omo-codex/plugin/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
- package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +243 -0
- package/packages/omo-codex/plugin/skills/data-scientist/agents/openai.yaml +2 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/common-scenarios.md +176 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/execution-templates.md +197 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/integration-patterns.md +153 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/performance-benchmarks.md +37 -0
- package/packages/omo-codex/plugin/skills/data-scientist/references/uv-setup.md +78 -0
- package/packages/omo-codex/plugin/skills/data-scientist/scripts/quick-query.py +111 -0
- package/packages/omo-codex/plugin/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
- package/packages/omo-codex/plugin/skills/data-scientist/scripts/setup-uv.sh +60 -0
- package/packages/omo-codex/plugin/skills/debugging/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/frontend/ATTRIBUTION.md +7 -0
- package/packages/omo-codex/plugin/skills/frontend/SKILL.md +4 -1
- package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +8 -0
- package/packages/omo-codex/plugin/skills/frontend/references/design/_INDEX.md +14 -1
- package/packages/omo-codex/plugin/skills/frontend/references/design/interaction-skill.md +144 -0
- package/packages/omo-codex/plugin/skills/programming/SKILL.md +1 -2
- package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +17 -0
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +1 -1
- package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +121 -11
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +7 -0
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +12 -0
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +24 -5
- package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +4 -3
- package/packages/shared-skills/skills/coding-agent-sessions/references/all-platforms.md +3 -1
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/aside_scanner.py +140 -0
- package/packages/shared-skills/skills/coding-agent-sessions/scripts/agent_sessions/scanners.py +3 -0
- package/packages/shared-skills/skills/data-scientist/SKILL.md +243 -0
- package/packages/shared-skills/skills/data-scientist/references/common-scenarios.md +176 -0
- package/packages/shared-skills/skills/data-scientist/references/execution-templates.md +197 -0
- package/packages/shared-skills/skills/data-scientist/references/integration-patterns.md +153 -0
- package/packages/shared-skills/skills/data-scientist/references/performance-benchmarks.md +37 -0
- package/packages/shared-skills/skills/data-scientist/references/uv-setup.md +78 -0
- package/packages/shared-skills/skills/data-scientist/scripts/quick-query.py +111 -0
- package/packages/shared-skills/skills/data-scientist/scripts/setup-uv.ps1 +53 -0
- package/packages/shared-skills/skills/data-scientist/scripts/setup-uv.sh +60 -0
- package/packages/shared-skills/skills/debugging/SKILL.md +1 -1
- package/packages/shared-skills/skills/frontend/ATTRIBUTION.md +7 -0
- package/packages/shared-skills/skills/frontend/SKILL.md +4 -1
- package/packages/shared-skills/skills/frontend/references/design/README.md +8 -0
- package/packages/shared-skills/skills/frontend/references/design/_INDEX.md +14 -1
- package/packages/shared-skills/skills/frontend/references/design/interaction-skill.md +144 -0
- package/packages/shared-skills/skills/programming/SKILL.md +1 -2
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +1 -1
- package/packages/shared-skills/skills/ulw-research/SKILL.md +122 -11
- package/dist/plugin-config/layered-config-loader.d.ts +0 -2
- package/dist/plugin-config/single-config-loader.d.ts +0 -4
- package/dist/shared/migrate-legacy-config-file.d.ts +0 -1
- package/dist/shared/migration/config-migration.d.ts +0 -1
|
@@ -22,6 +22,8 @@ Analyze every change against these exact layers:
|
|
|
22
22
|
| `omo opencode` | Root `oh-my-opencode` / `oh-my-openagent`, `src/`, `.opencode/`, `.agents/`, CLI, config, hooks, tools, docs | What semver bump should the OpenCode/OpenAgent npm packages use? |
|
|
23
23
|
| `omo codex` | `packages/omo-codex`, `lazycodex-ai`, Codex plugin metadata/hooks, bundled MCP runtimes, `code-yeongyu/lazycodex` marketplace payload | Does LazyCodex need the same bump, a Codex-only note, or a marketplace release? |
|
|
24
24
|
|
|
25
|
+
Exclude commits and paths matching `senpi`, `omo-senpi`, `senpi-task`, `pi-goal`, or `pi-webfetch` from user-facing notes and version recommendations. Record them only in a separate internal-adapter exclusion ledger.
|
|
26
|
+
|
|
25
27
|
## Steps:
|
|
26
28
|
1. Detect latest published versions for `oh-my-opencode`, `oh-my-openagent`, and `lazycodex-ai`.
|
|
27
29
|
2. Run `git diff v{published-version}..HEAD` to see actual changes.
|
|
@@ -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.6 Sol), Librarian & Explore (GPT
|
|
20
|
+
- 🤖 **Multi-Agent Orchestration**: Oracle (GPT-5.6 Sol), Librarian & Explore (GPT 5.6 Luna 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
|
|
@@ -3,7 +3,7 @@ description: Publish oh-my-opencode to npm via GitHub Actions workflow
|
|
|
3
3
|
argument-hint: <patch|minor|major>
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
|
|
7
7
|
You are the release manager for oh-my-opencode. Execute the FULL publish workflow from start to finish.
|
|
8
8
|
|
|
9
9
|
## CRITICAL: PUBLISH IS SHIP-ONLY — GO STRAIGHT TO THE WORKFLOW
|
|
@@ -26,6 +26,32 @@ Publishing is complete only after all release surfaces are verified:
|
|
|
26
26
|
|
|
27
27
|
The publish workflow must not be reported complete while any of `oh-my-opencode`, `oh-my-openagent`, `lazycodex-ai`, or `code-yeongyu/lazycodex` verification is unresolved.
|
|
28
28
|
|
|
29
|
+
## CRITICAL: FULL WORKFLOW MEANS DISCORD TOO
|
|
30
|
+
|
|
31
|
+
Publishing is not complete until the Discord release announcement has been attempted.
|
|
32
|
+
|
|
33
|
+
- **DO NOT stop after creating the GitHub release.**
|
|
34
|
+
- **DO NOT stop after drafting or applying release notes.**
|
|
35
|
+
- **DO NOT wait for a second user acknowledgement if the user already confirmed the publish.**
|
|
36
|
+
- After the release notes are finalized, immediately run Step 7.5 and post to Discord.
|
|
37
|
+
- If Discord posting fails after authentication/retry, report the failure clearly and continue the remaining verification steps. A skipped Discord step is a workflow failure.
|
|
38
|
+
|
|
39
|
+
## CRITICAL: NO EARLY TURN-END AFTER TRIGGER (COMPLETION CONTRACT)
|
|
40
|
+
|
|
41
|
+
Once `gh workflow run publish` succeeds, the publish is NOT done. A prior session forgot this: it triggered the workflow and ended its turn, leaving the release unverified, the enhanced summary unwritten, and the Discord announcement unsent. That mistake is why this section exists.
|
|
42
|
+
|
|
43
|
+
After Step 3 (trigger), you MUST drive the run to a terminal conclusion AND complete every post-trigger step before ending your turn. You may NOT end the turn, hand off, or stop for the day while ANY of these is unresolved:
|
|
44
|
+
|
|
45
|
+
1. **Run conclusion** — `gh run view <id> --json conclusion` must return `success` (poll while drafting notes; never sleep idle).
|
|
46
|
+
2. **Release exists** — Step 5: `gh release view v${NEW_VERSION}` resolves.
|
|
47
|
+
3. **Enhanced summary applied** — Step 6 + Step 7: draft (mandatory for patch/minor/major) AND `gh release edit --notes-file` applied. "Patch is optional" is wrong; patch summaries are MANDATORY.
|
|
48
|
+
4. **Discord announced** — Step 7.5: `agent-discordbot message send` attempted; either a message id is recorded OR a clear failure is reported to the user. A skipped Discord step is a workflow failure.
|
|
49
|
+
5. **npm verified** — Step 8: `npm view oh-my-opencode version` (and oh-my-openagent, lazycodex-ai) shows `${NEW_VERSION}`.
|
|
50
|
+
|
|
51
|
+
Only after all five are green may you end the turn. If the run fails, run `gh run view <id> --log-failed`, report it, and STOP (do not repair the tree mid-publish). If a post-trigger step fails for an external reason (npm propagation, Discord auth), report it clearly and continue the remaining steps — do not let one failure abort the rest.
|
|
52
|
+
|
|
53
|
+
This contract applies to the slash-command copies (`.agents/command/publish.md`, `.opencode/command/publish.md`) too; they are kept byte-identical to this skill per the `.agents/AGENTS.md` drift rule.
|
|
54
|
+
|
|
29
55
|
## CRITICAL: ARGUMENT REQUIREMENT
|
|
30
56
|
|
|
31
57
|
**You MUST receive a version bump type from the user.** Valid options:
|
|
@@ -52,8 +78,9 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
|
|
|
52
78
|
{ "id": "run-workflow", "content": "Trigger GitHub Actions publish workflow", "status": "pending", "priority": "high" },
|
|
53
79
|
{ "id": "wait-workflow", "content": "Wait for workflow completion (poll every 30s)", "status": "pending", "priority": "high" },
|
|
54
80
|
{ "id": "verify-and-preview", "content": "Verify release created + preview auto-generated changelog & contributor thanks", "status": "pending", "priority": "high" },
|
|
55
|
-
{ "id": "draft-summary", "content": "Draft enhanced release summary (mandatory for
|
|
56
|
-
{ "id": "apply-summary", "content": "Prepend enhanced summary to release
|
|
81
|
+
{ "id": "draft-summary", "content": "Draft enhanced release summary (mandatory for all release types)", "status": "pending", "priority": "high" },
|
|
82
|
+
{ "id": "apply-summary", "content": "Prepend enhanced summary to release", "status": "pending", "priority": "high" },
|
|
83
|
+
{ "id": "discord-announce", "content": "MANDATORY: post release announcement to Discord channel immediately after release notes are finalized", "status": "pending", "priority": "high" },
|
|
57
84
|
{ "id": "verify-npm", "content": "Verify npm package published successfully", "status": "pending", "priority": "high" },
|
|
58
85
|
{ "id": "verify-lazycodex", "content": "Verify lazycodex-ai publish, Codex plugin metadata version stamp, and code-yeongyu/lazycodex release/sync", "status": "pending", "priority": "high" },
|
|
59
86
|
{ "id": "verify-platform-binaries", "content": "Spot-check platform binary packages on npm", "status": "pending", "priority": "high" },
|
|
@@ -163,10 +190,9 @@ After running the preview, present the output to the user and say:
|
|
|
163
190
|
>
|
|
164
191
|
> You do NOT need to write any of this. It's handled.
|
|
165
192
|
>
|
|
166
|
-
> **For
|
|
167
|
-
> **For a minor/major release**, an enhanced summary is **required** — I'll draft one in the next step.
|
|
193
|
+
> **For all release types**, an enhanced summary is **required** — I'll draft one in the next step.
|
|
168
194
|
|
|
169
|
-
|
|
195
|
+
**APPROVAL GATE (single, binary):** The user's initial publish request with a named bump type IS the only approval this workflow requires. Do NOT wait for a separate acknowledgement here. Present the preview, then IMMEDIATELY proceed to Step 6. The only exception: if the user explicitly said "let me review the changelog before you continue" (or equivalent), stop and wait. Otherwise continue without ending the turn.
|
|
170
196
|
</agent-instruction>
|
|
171
197
|
|
|
172
198
|
---
|
|
@@ -177,12 +203,18 @@ Wait for the user to acknowledge before proceeding.
|
|
|
177
203
|
|
|
178
204
|
| Release Type | Action |
|
|
179
205
|
|-------------|--------|
|
|
180
|
-
| **patch** |
|
|
206
|
+
| **patch** | MANDATORY. Draft a concise bug-fix / change summary. Do NOT proceed without one. |
|
|
181
207
|
| **minor** | MANDATORY. Draft a concise feature summary. Do NOT proceed without one. |
|
|
182
208
|
| **major** | MANDATORY. Draft a full release narrative with migration notes if applicable. Do NOT proceed without one. |
|
|
183
209
|
|
|
184
210
|
</decision-gate>
|
|
185
211
|
|
|
212
|
+
### LAST RELEASE BEFORE THE OMO NATIVE CLI PUBLIC RELEASE
|
|
213
|
+
|
|
214
|
+
When the user identifies this as the final release before the OmO Native CLI public release, the GitHub summary MUST begin with this dedicated heading and the Discord announcement MUST repeat it as a dedicated heading immediately after `@here`:
|
|
215
|
+
|
|
216
|
+
`## LAST RELEASE BEFORE THE OMO NATIVE CLI PUBLIC RELEASE`
|
|
217
|
+
|
|
186
218
|
### What You're Writing (and What You're NOT)
|
|
187
219
|
|
|
188
220
|
You are writing the **headline layer** — a product announcement that sits ABOVE the auto-generated commit log. Think "release blog post", not "git log".
|
|
@@ -193,6 +225,7 @@ You are writing the **headline layer** — a product announcement that sits ABOV
|
|
|
193
225
|
- ALWAYS focus on USER IMPACT: what can users DO now that they couldn't before?
|
|
194
226
|
- ALWAYS group by THEME or CAPABILITY, not by commit type (feat/fix/refactor).
|
|
195
227
|
- ALWAYS use concrete language: "You can now do X" not "Added X feature".
|
|
228
|
+
- NEVER include internal adapter changes matching `senpi`, `omo-senpi`, `senpi-task`, `pi-goal`, or `pi-webfetch` in either release-note variant.
|
|
196
229
|
</rules>
|
|
197
230
|
|
|
198
231
|
<examples>
|
|
@@ -238,17 +271,17 @@ cat /tmp/release-summary-v${NEW_VERSION}.md
|
|
|
238
271
|
```
|
|
239
272
|
|
|
240
273
|
<agent-instruction>
|
|
241
|
-
|
|
242
|
-
> "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks.
|
|
274
|
+
Present the draft to the user:
|
|
275
|
+
> "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks."
|
|
243
276
|
|
|
244
|
-
|
|
277
|
+
**APPROVAL GATE (same single gate):** The initial publish confirmation covers this step too. Present the draft, then IMMEDIATELY proceed to Step 7 (apply) and Step 7.5 (Discord). Do NOT stop to wait for approval unless the user explicitly requested a release-note review hold before the publish started. The Discord announcement (Step 7.5) is mandatory and must not be blocked by a review hold that was never requested.
|
|
245
278
|
</agent-instruction>
|
|
246
279
|
|
|
247
280
|
---
|
|
248
281
|
|
|
249
282
|
## STEP 7: APPLY ENHANCED SUMMARY TO RELEASE
|
|
250
283
|
|
|
251
|
-
|
|
284
|
+
This step is MANDATORY. The enhanced summary from Step 6 must always be applied.
|
|
252
285
|
|
|
253
286
|
<architecture>
|
|
254
287
|
The final release note structure:
|
|
@@ -297,6 +330,64 @@ gh release view "v${NEW_VERSION}" --json url --jq '.url'
|
|
|
297
330
|
|
|
298
331
|
---
|
|
299
332
|
|
|
333
|
+
## STEP 7.5: POST RELEASE NOTES TO DISCORD
|
|
334
|
+
|
|
335
|
+
After the release notes are finalized, post them to the Discord channel. This step is mandatory for every publish run.
|
|
336
|
+
|
|
337
|
+
<hard-gate>
|
|
338
|
+
The workflow is not complete until this step has either:
|
|
339
|
+
1. Sent a Discord message successfully and recorded the message ID, or
|
|
340
|
+
2. Failed after `agent-discordbot auth status` plus one send retry, with the Jobdori bot-token failure reported to the user.
|
|
341
|
+
|
|
342
|
+
Never skip this step because the release summary was awaiting approval. If the user already confirmed the publish, continue through Discord before stopping.
|
|
343
|
+
</hard-gate>
|
|
344
|
+
|
|
345
|
+
<agent-discord-instruction>
|
|
346
|
+
1. Use the Jobdori bot token through `agent-discordbot` for release announcements. This is the required release path; do not use the personal `agent-discord` token unless the bot path is unavailable and the user explicitly approves the fallback. Pin the bot id so release messages go out as the Jobdori bot even if the local `agent-discordbot` current bot changes.
|
|
347
|
+
```bash
|
|
348
|
+
JOBDORI_BOT_ID=1486173823354146917
|
|
349
|
+
agent-discordbot auth status --bot "$JOBDORI_BOT_ID"
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
2. **Read recent messages** in the channel to match the existing announcement style:
|
|
353
|
+
```bash
|
|
354
|
+
JOBDORI_BOT_ID=1486173823354146917
|
|
355
|
+
agent-discordbot message list 1454708427392680067 --bot "$JOBDORI_BOT_ID" --limit 5
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
3. If `agent-discordbot` is unavailable or unauthorized, stop and report that the Jobdori token path failed. Only then may a human decide whether to use `agent-discord`.
|
|
359
|
+
|
|
360
|
+
4. Post the release announcement to channel `1454708427392680067` matching the style of previous announcements. The message should follow this structure:
|
|
361
|
+
```
|
|
362
|
+
@here
|
|
363
|
+
|
|
364
|
+
🎉 **oh-my-opencode v{VERSION} — {Short Tagline}**
|
|
365
|
+
|
|
366
|
+
**Feature 1** — one-line description.
|
|
367
|
+
|
|
368
|
+
**Feature 2** — one-line description.
|
|
369
|
+
|
|
370
|
+
**Feature 3** — one-line description.
|
|
371
|
+
|
|
372
|
+
Plus {summary of remaining changes}.
|
|
373
|
+
|
|
374
|
+
📦 Install / upgrade:
|
|
375
|
+
`bun i -g oh-my-opencode@{VERSION}` (or `npm`)
|
|
376
|
+
|
|
377
|
+
📝 Full release notes: {RELEASE_URL}
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
JOBDORI_BOT_ID=1486173823354146917
|
|
382
|
+
RELEASE_URL=$(gh release view "v${NEW_VERSION}" --json url --jq '.url')
|
|
383
|
+
agent-discordbot message send 1454708427392680067 "{your message following the style above}" --bot "$JOBDORI_BOT_ID"
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
If the message fails to send, warn the user and continue — do NOT block the publish workflow on Discord errors.
|
|
387
|
+
</agent-discord-instruction>
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
300
391
|
## STEP 8: VERIFY NPM PUBLICATION
|
|
301
392
|
|
|
302
393
|
Poll npm registry until the new version appears:
|
|
@@ -343,20 +434,3 @@ Report success to user with:
|
|
|
343
434
|
## LANGUAGE
|
|
344
435
|
|
|
345
436
|
Respond to user in English.
|
|
346
|
-
|
|
347
|
-
</command-instruction>
|
|
348
|
-
|
|
349
|
-
<current-context>
|
|
350
|
-
<published-version>
|
|
351
|
-
!`npm view oh-my-opencode version 2>/dev/null || echo "not published"`
|
|
352
|
-
</published-version>
|
|
353
|
-
<local-version>
|
|
354
|
-
!`node -p "require('./package.json').version" 2>/dev/null || echo "unknown"`
|
|
355
|
-
</local-version>
|
|
356
|
-
<git-status>
|
|
357
|
-
!`git status --porcelain`
|
|
358
|
-
</git-status>
|
|
359
|
-
<recent-commits>
|
|
360
|
-
!`npm view oh-my-opencode version 2>/dev/null | xargs -I{} git log "v{}"..HEAD --oneline 2>/dev/null | head -15 || echo "no commits"`
|
|
361
|
-
</recent-commits>
|
|
362
|
-
</current-context>
|
|
@@ -22,6 +22,8 @@ Analyze every change against these exact layers:
|
|
|
22
22
|
| `omo opencode` | Root `oh-my-opencode` / `oh-my-openagent`, `src/`, `.opencode/`, `.agents/`, CLI, config, hooks, tools, docs | What semver bump should the OpenCode/OpenAgent npm packages use? |
|
|
23
23
|
| `omo codex` | `packages/omo-codex`, `lazycodex-ai`, Codex plugin metadata/hooks, bundled MCP runtimes, `code-yeongyu/lazycodex` marketplace payload | Does LazyCodex need the same bump, a Codex-only note, or a marketplace release? |
|
|
24
24
|
|
|
25
|
+
Exclude commits and paths matching `senpi`, `omo-senpi`, `senpi-task`, `pi-goal`, or `pi-webfetch` from user-facing notes and version recommendations. Record them only in a separate internal-adapter exclusion ledger.
|
|
26
|
+
|
|
25
27
|
## Steps:
|
|
26
28
|
1. Detect latest published versions for `oh-my-opencode`, `oh-my-openagent`, and `lazycodex-ai`.
|
|
27
29
|
2. Run `git diff v{published-version}..HEAD` to see actual changes.
|
|
@@ -33,10 +33,10 @@ Required categories are `unspecified-low`, `unspecified-high`, `ultrabrain`, and
|
|
|
33
33
|
| Category | Model | Native Mindset | Why This Adversarial Role Fits |
|
|
34
34
|
|----------|-------|----------------|--------------------------------|
|
|
35
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
|
-
| `unspecified-high` | claude-opus-
|
|
37
|
-
| `deep` | gpt-5.6-
|
|
36
|
+
| `unspecified-high` | kimi-k3 max -> claude-opus-5 xhigh -> gpt-5.6-sol high | High-effort, broad-impact, coordination-aware | Integration Tester — max-tier broad-scope thinking exposes cross-module fragility |
|
|
37
|
+
| `deep` | gpt-5.6-sol medium | Autonomous, exploration-heavy, evidence-driven | Autonomous Researcher — natural exploration bias attacks unfounded claims |
|
|
38
38
|
| `ultrabrain` | gpt-5.6-sol xhigh | Hard-logic, simplicity-biased, strategic advisor | Architect Strategist — xhigh reasoning sees structural flaws others miss |
|
|
39
|
-
| `artistry` |
|
|
39
|
+
| `artistry` | claude-fable-5 xhigh | Unconventional, pattern-breaking, lateral | Creative Challenger — pattern-breaking bias attacks orthodox thinking |
|
|
40
40
|
|
|
41
41
|
### MEMBER 1: `skeptic` (category: `unspecified-low`)
|
|
42
42
|
|
|
@@ -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.6 Sol), Librarian & Explore (GPT
|
|
20
|
+
- 🤖 **Multi-Agent Orchestration**: Oracle (GPT-5.6 Sol), Librarian & Explore (GPT 5.6 Luna 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
|
|
@@ -35,6 +35,22 @@ Publishing is not complete until the Discord release announcement has been attem
|
|
|
35
35
|
- After the release notes are finalized, immediately run Step 7.5 and post to Discord.
|
|
36
36
|
- If Discord posting fails after authentication/retry, report the failure clearly and continue the remaining verification steps. A skipped Discord step is a workflow failure.
|
|
37
37
|
|
|
38
|
+
## CRITICAL: NO EARLY TURN-END AFTER TRIGGER (COMPLETION CONTRACT)
|
|
39
|
+
|
|
40
|
+
Once `gh workflow run publish` succeeds, the publish is NOT done. A prior session forgot this: it triggered the workflow and ended its turn, leaving the release unverified, the enhanced summary unwritten, and the Discord announcement unsent. That mistake is why this section exists.
|
|
41
|
+
|
|
42
|
+
After Step 3 (trigger), you MUST drive the run to a terminal conclusion AND complete every post-trigger step before ending your turn. You may NOT end the turn, hand off, or stop for the day while ANY of these is unresolved:
|
|
43
|
+
|
|
44
|
+
1. **Run conclusion** — `gh run view <id> --json conclusion` must return `success` (poll while drafting notes; never sleep idle).
|
|
45
|
+
2. **Release exists** — Step 5: `gh release view v${NEW_VERSION}` resolves.
|
|
46
|
+
3. **Enhanced summary applied** — Step 6 + Step 7: draft (mandatory for patch/minor/major) AND `gh release edit --notes-file` applied. "Patch is optional" is wrong; patch summaries are MANDATORY.
|
|
47
|
+
4. **Discord announced** — Step 7.5: `agent-discordbot message send` attempted; either a message id is recorded OR a clear failure is reported to the user. A skipped Discord step is a workflow failure.
|
|
48
|
+
5. **npm verified** — Step 8: `npm view oh-my-opencode version` (and oh-my-openagent, lazycodex-ai) shows `${NEW_VERSION}`.
|
|
49
|
+
|
|
50
|
+
Only after all five are green may you end the turn. If the run fails, run `gh run view <id> --log-failed`, report it, and STOP (do not repair the tree mid-publish). If a post-trigger step fails for an external reason (npm propagation, Discord auth), report it clearly and continue the remaining steps — do not let one failure abort the rest.
|
|
51
|
+
|
|
52
|
+
This contract applies to the slash-command copies (`.agents/command/publish.md`, `.opencode/command/publish.md`) too; they are kept byte-identical to this skill per the `.agents/AGENTS.md` drift rule.
|
|
53
|
+
|
|
38
54
|
## CRITICAL: ARGUMENT REQUIREMENT
|
|
39
55
|
|
|
40
56
|
**You MUST receive a version bump type from the user.** Valid options:
|
|
@@ -175,9 +191,7 @@ After running the preview, present the output to the user and say:
|
|
|
175
191
|
>
|
|
176
192
|
> **For all release types**, an enhanced summary is **required** — I'll draft one in the next step.
|
|
177
193
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
If the user already confirmed the publish workflow and did not explicitly ask to review the generated changelog before release-note editing, treat the publish confirmation as sufficient acknowledgement and continue. Do not end the assistant turn here.
|
|
194
|
+
**APPROVAL GATE (single, binary):** The user's initial publish request with a named bump type IS the only approval this workflow requires. Do NOT wait for a separate acknowledgement here. Present the preview, then IMMEDIATELY proceed to Step 6. The only exception: if the user explicitly said "let me review the changelog before you continue" (or equivalent), stop and wait. Otherwise continue without ending the turn.
|
|
181
195
|
</agent-instruction>
|
|
182
196
|
|
|
183
197
|
---
|
|
@@ -194,6 +208,12 @@ If the user already confirmed the publish workflow and did not explicitly ask to
|
|
|
194
208
|
|
|
195
209
|
</decision-gate>
|
|
196
210
|
|
|
211
|
+
### LAST RELEASE BEFORE THE OMO NATIVE CLI PUBLIC RELEASE
|
|
212
|
+
|
|
213
|
+
When the user identifies this as the final release before the OmO Native CLI public release, the GitHub summary MUST begin with this dedicated heading and the Discord announcement MUST repeat it as a dedicated heading immediately after `@here`:
|
|
214
|
+
|
|
215
|
+
`## LAST RELEASE BEFORE THE OMO NATIVE CLI PUBLIC RELEASE`
|
|
216
|
+
|
|
197
217
|
### What You're Writing (and What You're NOT)
|
|
198
218
|
|
|
199
219
|
You are writing the **headline layer** — a product announcement that sits ABOVE the auto-generated commit log. Think "release blog post", not "git log".
|
|
@@ -204,6 +224,7 @@ You are writing the **headline layer** — a product announcement that sits ABOV
|
|
|
204
224
|
- ALWAYS focus on USER IMPACT: what can users DO now that they couldn't before?
|
|
205
225
|
- ALWAYS group by THEME or CAPABILITY, not by commit type (feat/fix/refactor).
|
|
206
226
|
- ALWAYS use concrete language: "You can now do X" not "Added X feature".
|
|
227
|
+
- NEVER include internal adapter changes matching `senpi`, `omo-senpi`, `senpi-task`, `pi-goal`, or `pi-webfetch` in either release-note variant.
|
|
207
228
|
</rules>
|
|
208
229
|
|
|
209
230
|
<examples>
|
|
@@ -249,10 +270,10 @@ cat /tmp/release-summary-v${NEW_VERSION}.md
|
|
|
249
270
|
```
|
|
250
271
|
|
|
251
272
|
<agent-instruction>
|
|
252
|
-
|
|
253
|
-
> "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks.
|
|
273
|
+
Present the draft to the user:
|
|
274
|
+
> "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks."
|
|
254
275
|
|
|
255
|
-
|
|
276
|
+
**APPROVAL GATE (same single gate):** The initial publish confirmation covers this step too. Present the draft, then IMMEDIATELY proceed to Step 7 (apply) and Step 7.5 (Discord). Do NOT stop to wait for approval unless the user explicitly requested a release-note review hold before the publish started. The Discord announcement (Step 7.5) is mandatory and must not be blocked by a review hold that was never requested.
|
|
256
277
|
</agent-instruction>
|
|
257
278
|
|
|
258
279
|
---
|
|
@@ -22,6 +22,8 @@ Analyze every change against these exact layers:
|
|
|
22
22
|
| `omo opencode` | Root `oh-my-opencode` / `oh-my-openagent`, `src/`, `.opencode/`, `.agents/`, CLI, config, hooks, tools, docs | What semver bump should the OpenCode/OpenAgent npm packages use? |
|
|
23
23
|
| `omo codex` | `packages/omo-codex`, `lazycodex-ai`, Codex plugin metadata/hooks, bundled MCP runtimes, `code-yeongyu/lazycodex` marketplace payload | Does LazyCodex need the same bump, a Codex-only note, or a marketplace release? |
|
|
24
24
|
|
|
25
|
+
Exclude commits and paths matching `senpi`, `omo-senpi`, `senpi-task`, `pi-goal`, or `pi-webfetch` from user-facing notes and version recommendations. Record them only in a separate internal-adapter exclusion ledger.
|
|
26
|
+
|
|
25
27
|
## Steps:
|
|
26
28
|
1. Detect latest published versions for `oh-my-opencode`, `oh-my-openagent`, and `lazycodex-ai`.
|
|
27
29
|
2. Run `git diff v{published-version}..HEAD` to see actual changes.
|
|
@@ -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.6 Sol), Librarian & Explore (GPT
|
|
20
|
+
- 🤖 **Multi-Agent Orchestration**: Oracle (GPT-5.6 Sol), Librarian & Explore (GPT 5.6 Luna 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
|
|
@@ -3,7 +3,7 @@ description: Publish oh-my-opencode to npm via GitHub Actions workflow
|
|
|
3
3
|
argument-hint: <patch|minor|major>
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
|
|
7
7
|
You are the release manager for oh-my-opencode. Execute the FULL publish workflow from start to finish.
|
|
8
8
|
|
|
9
9
|
## CRITICAL: PUBLISH IS SHIP-ONLY — GO STRAIGHT TO THE WORKFLOW
|
|
@@ -26,6 +26,32 @@ Publishing is complete only after all release surfaces are verified:
|
|
|
26
26
|
|
|
27
27
|
The publish workflow must not be reported complete while any of `oh-my-opencode`, `oh-my-openagent`, `lazycodex-ai`, or `code-yeongyu/lazycodex` verification is unresolved.
|
|
28
28
|
|
|
29
|
+
## CRITICAL: FULL WORKFLOW MEANS DISCORD TOO
|
|
30
|
+
|
|
31
|
+
Publishing is not complete until the Discord release announcement has been attempted.
|
|
32
|
+
|
|
33
|
+
- **DO NOT stop after creating the GitHub release.**
|
|
34
|
+
- **DO NOT stop after drafting or applying release notes.**
|
|
35
|
+
- **DO NOT wait for a second user acknowledgement if the user already confirmed the publish.**
|
|
36
|
+
- After the release notes are finalized, immediately run Step 7.5 and post to Discord.
|
|
37
|
+
- If Discord posting fails after authentication/retry, report the failure clearly and continue the remaining verification steps. A skipped Discord step is a workflow failure.
|
|
38
|
+
|
|
39
|
+
## CRITICAL: NO EARLY TURN-END AFTER TRIGGER (COMPLETION CONTRACT)
|
|
40
|
+
|
|
41
|
+
Once `gh workflow run publish` succeeds, the publish is NOT done. A prior session forgot this: it triggered the workflow and ended its turn, leaving the release unverified, the enhanced summary unwritten, and the Discord announcement unsent. That mistake is why this section exists.
|
|
42
|
+
|
|
43
|
+
After Step 3 (trigger), you MUST drive the run to a terminal conclusion AND complete every post-trigger step before ending your turn. You may NOT end the turn, hand off, or stop for the day while ANY of these is unresolved:
|
|
44
|
+
|
|
45
|
+
1. **Run conclusion** — `gh run view <id> --json conclusion` must return `success` (poll while drafting notes; never sleep idle).
|
|
46
|
+
2. **Release exists** — Step 5: `gh release view v${NEW_VERSION}` resolves.
|
|
47
|
+
3. **Enhanced summary applied** — Step 6 + Step 7: draft (mandatory for patch/minor/major) AND `gh release edit --notes-file` applied. "Patch is optional" is wrong; patch summaries are MANDATORY.
|
|
48
|
+
4. **Discord announced** — Step 7.5: `agent-discordbot message send` attempted; either a message id is recorded OR a clear failure is reported to the user. A skipped Discord step is a workflow failure.
|
|
49
|
+
5. **npm verified** — Step 8: `npm view oh-my-opencode version` (and oh-my-openagent, lazycodex-ai) shows `${NEW_VERSION}`.
|
|
50
|
+
|
|
51
|
+
Only after all five are green may you end the turn. If the run fails, run `gh run view <id> --log-failed`, report it, and STOP (do not repair the tree mid-publish). If a post-trigger step fails for an external reason (npm propagation, Discord auth), report it clearly and continue the remaining steps — do not let one failure abort the rest.
|
|
52
|
+
|
|
53
|
+
This contract applies to the slash-command copies (`.agents/command/publish.md`, `.opencode/command/publish.md`) too; they are kept byte-identical to this skill per the `.agents/AGENTS.md` drift rule.
|
|
54
|
+
|
|
29
55
|
## CRITICAL: ARGUMENT REQUIREMENT
|
|
30
56
|
|
|
31
57
|
**You MUST receive a version bump type from the user.** Valid options:
|
|
@@ -52,8 +78,9 @@ The publish workflow must not be reported complete while any of `oh-my-opencode`
|
|
|
52
78
|
{ "id": "run-workflow", "content": "Trigger GitHub Actions publish workflow", "status": "pending", "priority": "high" },
|
|
53
79
|
{ "id": "wait-workflow", "content": "Wait for workflow completion (poll every 30s)", "status": "pending", "priority": "high" },
|
|
54
80
|
{ "id": "verify-and-preview", "content": "Verify release created + preview auto-generated changelog & contributor thanks", "status": "pending", "priority": "high" },
|
|
55
|
-
{ "id": "draft-summary", "content": "Draft enhanced release summary (mandatory for
|
|
56
|
-
{ "id": "apply-summary", "content": "Prepend enhanced summary to release
|
|
81
|
+
{ "id": "draft-summary", "content": "Draft enhanced release summary (mandatory for all release types)", "status": "pending", "priority": "high" },
|
|
82
|
+
{ "id": "apply-summary", "content": "Prepend enhanced summary to release", "status": "pending", "priority": "high" },
|
|
83
|
+
{ "id": "discord-announce", "content": "MANDATORY: post release announcement to Discord channel immediately after release notes are finalized", "status": "pending", "priority": "high" },
|
|
57
84
|
{ "id": "verify-npm", "content": "Verify npm package published successfully", "status": "pending", "priority": "high" },
|
|
58
85
|
{ "id": "verify-lazycodex", "content": "Verify lazycodex-ai publish, Codex plugin metadata version stamp, and code-yeongyu/lazycodex release/sync", "status": "pending", "priority": "high" },
|
|
59
86
|
{ "id": "verify-platform-binaries", "content": "Spot-check platform binary packages on npm", "status": "pending", "priority": "high" },
|
|
@@ -163,10 +190,9 @@ After running the preview, present the output to the user and say:
|
|
|
163
190
|
>
|
|
164
191
|
> You do NOT need to write any of this. It's handled.
|
|
165
192
|
>
|
|
166
|
-
> **For
|
|
167
|
-
> **For a minor/major release**, an enhanced summary is **required** — I'll draft one in the next step.
|
|
193
|
+
> **For all release types**, an enhanced summary is **required** — I'll draft one in the next step.
|
|
168
194
|
|
|
169
|
-
|
|
195
|
+
**APPROVAL GATE (single, binary):** The user's initial publish request with a named bump type IS the only approval this workflow requires. Do NOT wait for a separate acknowledgement here. Present the preview, then IMMEDIATELY proceed to Step 6. The only exception: if the user explicitly said "let me review the changelog before you continue" (or equivalent), stop and wait. Otherwise continue without ending the turn.
|
|
170
196
|
</agent-instruction>
|
|
171
197
|
|
|
172
198
|
---
|
|
@@ -177,12 +203,18 @@ Wait for the user to acknowledge before proceeding.
|
|
|
177
203
|
|
|
178
204
|
| Release Type | Action |
|
|
179
205
|
|-------------|--------|
|
|
180
|
-
| **patch** |
|
|
206
|
+
| **patch** | MANDATORY. Draft a concise bug-fix / change summary. Do NOT proceed without one. |
|
|
181
207
|
| **minor** | MANDATORY. Draft a concise feature summary. Do NOT proceed without one. |
|
|
182
208
|
| **major** | MANDATORY. Draft a full release narrative with migration notes if applicable. Do NOT proceed without one. |
|
|
183
209
|
|
|
184
210
|
</decision-gate>
|
|
185
211
|
|
|
212
|
+
### LAST RELEASE BEFORE THE OMO NATIVE CLI PUBLIC RELEASE
|
|
213
|
+
|
|
214
|
+
When the user identifies this as the final release before the OmO Native CLI public release, the GitHub summary MUST begin with this dedicated heading and the Discord announcement MUST repeat it as a dedicated heading immediately after `@here`:
|
|
215
|
+
|
|
216
|
+
`## LAST RELEASE BEFORE THE OMO NATIVE CLI PUBLIC RELEASE`
|
|
217
|
+
|
|
186
218
|
### What You're Writing (and What You're NOT)
|
|
187
219
|
|
|
188
220
|
You are writing the **headline layer** — a product announcement that sits ABOVE the auto-generated commit log. Think "release blog post", not "git log".
|
|
@@ -193,6 +225,7 @@ You are writing the **headline layer** — a product announcement that sits ABOV
|
|
|
193
225
|
- ALWAYS focus on USER IMPACT: what can users DO now that they couldn't before?
|
|
194
226
|
- ALWAYS group by THEME or CAPABILITY, not by commit type (feat/fix/refactor).
|
|
195
227
|
- ALWAYS use concrete language: "You can now do X" not "Added X feature".
|
|
228
|
+
- NEVER include internal adapter changes matching `senpi`, `omo-senpi`, `senpi-task`, `pi-goal`, or `pi-webfetch` in either release-note variant.
|
|
196
229
|
</rules>
|
|
197
230
|
|
|
198
231
|
<examples>
|
|
@@ -238,17 +271,17 @@ cat /tmp/release-summary-v${NEW_VERSION}.md
|
|
|
238
271
|
```
|
|
239
272
|
|
|
240
273
|
<agent-instruction>
|
|
241
|
-
|
|
242
|
-
> "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks.
|
|
274
|
+
Present the draft to the user:
|
|
275
|
+
> "Here's the release summary I drafted. This will appear AT THE TOP of the release notes, above the auto-generated commit changelog and contributor thanks."
|
|
243
276
|
|
|
244
|
-
|
|
277
|
+
**APPROVAL GATE (same single gate):** The initial publish confirmation covers this step too. Present the draft, then IMMEDIATELY proceed to Step 7 (apply) and Step 7.5 (Discord). Do NOT stop to wait for approval unless the user explicitly requested a release-note review hold before the publish started. The Discord announcement (Step 7.5) is mandatory and must not be blocked by a review hold that was never requested.
|
|
245
278
|
</agent-instruction>
|
|
246
279
|
|
|
247
280
|
---
|
|
248
281
|
|
|
249
282
|
## STEP 7: APPLY ENHANCED SUMMARY TO RELEASE
|
|
250
283
|
|
|
251
|
-
|
|
284
|
+
This step is MANDATORY. The enhanced summary from Step 6 must always be applied.
|
|
252
285
|
|
|
253
286
|
<architecture>
|
|
254
287
|
The final release note structure:
|
|
@@ -297,6 +330,64 @@ gh release view "v${NEW_VERSION}" --json url --jq '.url'
|
|
|
297
330
|
|
|
298
331
|
---
|
|
299
332
|
|
|
333
|
+
## STEP 7.5: POST RELEASE NOTES TO DISCORD
|
|
334
|
+
|
|
335
|
+
After the release notes are finalized, post them to the Discord channel. This step is mandatory for every publish run.
|
|
336
|
+
|
|
337
|
+
<hard-gate>
|
|
338
|
+
The workflow is not complete until this step has either:
|
|
339
|
+
1. Sent a Discord message successfully and recorded the message ID, or
|
|
340
|
+
2. Failed after `agent-discordbot auth status` plus one send retry, with the Jobdori bot-token failure reported to the user.
|
|
341
|
+
|
|
342
|
+
Never skip this step because the release summary was awaiting approval. If the user already confirmed the publish, continue through Discord before stopping.
|
|
343
|
+
</hard-gate>
|
|
344
|
+
|
|
345
|
+
<agent-discord-instruction>
|
|
346
|
+
1. Use the Jobdori bot token through `agent-discordbot` for release announcements. This is the required release path; do not use the personal `agent-discord` token unless the bot path is unavailable and the user explicitly approves the fallback. Pin the bot id so release messages go out as the Jobdori bot even if the local `agent-discordbot` current bot changes.
|
|
347
|
+
```bash
|
|
348
|
+
JOBDORI_BOT_ID=1486173823354146917
|
|
349
|
+
agent-discordbot auth status --bot "$JOBDORI_BOT_ID"
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
2. **Read recent messages** in the channel to match the existing announcement style:
|
|
353
|
+
```bash
|
|
354
|
+
JOBDORI_BOT_ID=1486173823354146917
|
|
355
|
+
agent-discordbot message list 1454708427392680067 --bot "$JOBDORI_BOT_ID" --limit 5
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
3. If `agent-discordbot` is unavailable or unauthorized, stop and report that the Jobdori token path failed. Only then may a human decide whether to use `agent-discord`.
|
|
359
|
+
|
|
360
|
+
4. Post the release announcement to channel `1454708427392680067` matching the style of previous announcements. The message should follow this structure:
|
|
361
|
+
```
|
|
362
|
+
@here
|
|
363
|
+
|
|
364
|
+
🎉 **oh-my-opencode v{VERSION} — {Short Tagline}**
|
|
365
|
+
|
|
366
|
+
**Feature 1** — one-line description.
|
|
367
|
+
|
|
368
|
+
**Feature 2** — one-line description.
|
|
369
|
+
|
|
370
|
+
**Feature 3** — one-line description.
|
|
371
|
+
|
|
372
|
+
Plus {summary of remaining changes}.
|
|
373
|
+
|
|
374
|
+
📦 Install / upgrade:
|
|
375
|
+
`bun i -g oh-my-opencode@{VERSION}` (or `npm`)
|
|
376
|
+
|
|
377
|
+
📝 Full release notes: {RELEASE_URL}
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
JOBDORI_BOT_ID=1486173823354146917
|
|
382
|
+
RELEASE_URL=$(gh release view "v${NEW_VERSION}" --json url --jq '.url')
|
|
383
|
+
agent-discordbot message send 1454708427392680067 "{your message following the style above}" --bot "$JOBDORI_BOT_ID"
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
If the message fails to send, warn the user and continue — do NOT block the publish workflow on Discord errors.
|
|
387
|
+
</agent-discord-instruction>
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
300
391
|
## STEP 8: VERIFY NPM PUBLICATION
|
|
301
392
|
|
|
302
393
|
Poll npm registry until the new version appears:
|
|
@@ -343,20 +434,3 @@ Report success to user with:
|
|
|
343
434
|
## LANGUAGE
|
|
344
435
|
|
|
345
436
|
Respond to user in English.
|
|
346
|
-
|
|
347
|
-
</command-instruction>
|
|
348
|
-
|
|
349
|
-
<current-context>
|
|
350
|
-
<published-version>
|
|
351
|
-
!`npm view oh-my-opencode version 2>/dev/null || echo "not published"`
|
|
352
|
-
</published-version>
|
|
353
|
-
<local-version>
|
|
354
|
-
!`node -p "require('./package.json').version" 2>/dev/null || echo "unknown"`
|
|
355
|
-
</local-version>
|
|
356
|
-
<git-status>
|
|
357
|
-
!`git status --porcelain`
|
|
358
|
-
</git-status>
|
|
359
|
-
<recent-commits>
|
|
360
|
-
!`npm view oh-my-opencode version 2>/dev/null | xargs -I{} git log "v{}"..HEAD --oneline 2>/dev/null | head -15 || echo "no commits"`
|
|
361
|
-
</recent-commits>
|
|
362
|
-
</current-context>
|
|
@@ -33,10 +33,10 @@ Required categories are `unspecified-low`, `unspecified-high`, `ultrabrain`, and
|
|
|
33
33
|
| Category | Model | Native Mindset | Why This Adversarial Role Fits |
|
|
34
34
|
|----------|-------|----------------|--------------------------------|
|
|
35
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
|
-
| `unspecified-high` | claude-opus-
|
|
37
|
-
| `deep` | gpt-5.6-
|
|
36
|
+
| `unspecified-high` | kimi-k3 max -> claude-opus-5 xhigh -> gpt-5.6-sol high | High-effort, broad-impact, coordination-aware | Integration Tester — max-tier broad-scope thinking exposes cross-module fragility |
|
|
37
|
+
| `deep` | gpt-5.6-sol medium | Autonomous, exploration-heavy, evidence-driven | Autonomous Researcher — natural exploration bias attacks unfounded claims |
|
|
38
38
|
| `ultrabrain` | gpt-5.6-sol xhigh | Hard-logic, simplicity-biased, strategic advisor | Architect Strategist — xhigh reasoning sees structural flaws others miss |
|
|
39
|
-
| `artistry` |
|
|
39
|
+
| `artistry` | claude-fable-5 xhigh | Unconventional, pattern-breaking, lateral | Creative Challenger — pattern-breaking bias attacks orthodox thinking |
|
|
40
40
|
|
|
41
41
|
### MEMBER 1: `skeptic` (category: `unspecified-low`)
|
|
42
42
|
|
package/THIRD-PARTY-NOTICES.md
CHANGED
|
@@ -24,43 +24,43 @@ Generator/checker note: update this file with the audited component list, then r
|
|
|
24
24
|
- Upstream URL: https://github.com/code-yeongyu/go-claude-code-comment-checker
|
|
25
25
|
- Where-bundled: root production dependency and vendored checker binary payload under `vendor/<platform>/`.
|
|
26
26
|
|
|
27
|
-
### @colbymchenry/codegraph@1.0
|
|
27
|
+
### @colbymchenry/codegraph@1.5.0
|
|
28
28
|
- License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
|
|
29
29
|
- Copyright: CodeGraph contributors.
|
|
30
30
|
- Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph
|
|
31
31
|
- Where-bundled: pinned CodeGraph provisioning payload for the CodeGraph OMO integration.
|
|
32
32
|
|
|
33
|
-
### @colbymchenry/codegraph-darwin-arm64@1.0
|
|
33
|
+
### @colbymchenry/codegraph-darwin-arm64@1.5.0
|
|
34
34
|
- License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
|
|
35
35
|
- Copyright: CodeGraph contributors.
|
|
36
36
|
- Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-darwin-arm64
|
|
37
37
|
- Where-bundled: optional CodeGraph platform bundle for darwin arm64, including CodeGraph runtime files, Node.js runtime binary, and tree-sitter WASM assets.
|
|
38
38
|
|
|
39
|
-
### @colbymchenry/codegraph-darwin-x64@1.0
|
|
39
|
+
### @colbymchenry/codegraph-darwin-x64@1.5.0
|
|
40
40
|
- License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
|
|
41
41
|
- Copyright: CodeGraph contributors.
|
|
42
42
|
- Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-darwin-x64
|
|
43
43
|
- Where-bundled: optional CodeGraph platform bundle for darwin x64, including CodeGraph runtime files, Node.js runtime binary, and tree-sitter WASM assets.
|
|
44
44
|
|
|
45
|
-
### @colbymchenry/codegraph-linux-arm64@1.0
|
|
45
|
+
### @colbymchenry/codegraph-linux-arm64@1.5.0
|
|
46
46
|
- License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
|
|
47
47
|
- Copyright: CodeGraph contributors.
|
|
48
48
|
- Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-linux-arm64
|
|
49
49
|
- Where-bundled: optional CodeGraph platform bundle for linux arm64, including CodeGraph runtime files, Node.js runtime binary, and tree-sitter WASM assets.
|
|
50
50
|
|
|
51
|
-
### @colbymchenry/codegraph-linux-x64@1.0
|
|
51
|
+
### @colbymchenry/codegraph-linux-x64@1.5.0
|
|
52
52
|
- License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
|
|
53
53
|
- Copyright: CodeGraph contributors.
|
|
54
54
|
- Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-linux-x64
|
|
55
55
|
- Where-bundled: optional CodeGraph platform bundle for linux x64, including CodeGraph runtime files, Node.js runtime binary, and tree-sitter WASM assets.
|
|
56
56
|
|
|
57
|
-
### @colbymchenry/codegraph-win32-arm64@1.0
|
|
57
|
+
### @colbymchenry/codegraph-win32-arm64@1.5.0
|
|
58
58
|
- License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
|
|
59
59
|
- Copyright: CodeGraph contributors.
|
|
60
60
|
- Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-win32-arm64
|
|
61
61
|
- Where-bundled: optional CodeGraph platform bundle for win32 arm64, including CodeGraph runtime files, Node.js runtime binary, and tree-sitter WASM assets.
|
|
62
62
|
|
|
63
|
-
### @colbymchenry/codegraph-win32-x64@1.0
|
|
63
|
+
### @colbymchenry/codegraph-win32-x64@1.5.0
|
|
64
64
|
- License: MIT, from npm package metadata. The inspected tarball did not include a separate LICENSE file.
|
|
65
65
|
- Copyright: CodeGraph contributors.
|
|
66
66
|
- Upstream URL: https://www.npmjs.com/package/@colbymchenry/codegraph-win32-x64
|