oh-my-opencode 4.4.0 → 4.5.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/get-unpublished-changes.md +148 -0
- package/.agents/command/omomomo.md +37 -0
- package/.agents/command/publish.md +376 -0
- package/.agents/command/remove-deadcode.md +221 -0
- package/.agents/command/security-research.md +16 -0
- package/.agents/skills/get-unpublished-changes/SKILL.md +24 -0
- package/.agents/skills/github-triage/SKILL.md +587 -0
- package/.agents/skills/github-triage/scripts/gh_fetch.py +398 -0
- package/.agents/skills/hyperplan/SKILL.md +450 -0
- package/.agents/skills/omomomo/SKILL.md +36 -0
- package/.agents/skills/pre-publish-review/SKILL.md +407 -0
- package/.agents/skills/publish/SKILL.md +428 -0
- package/.agents/skills/remove-deadcode/SKILL.md +216 -0
- package/.agents/skills/security-research/SKILL.md +204 -0
- package/.agents/skills/work-with-pr/SKILL.md +360 -0
- package/.agents/skills/work-with-pr-workspace/evals/evals.json +76 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/benchmark.json +138 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/benchmark.md +42 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/eval_metadata.json +57 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/grading.json +15 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/code-changes.md +454 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/execution-plan.md +136 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/pr-description.md +47 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/verification-strategy.md +163 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/timing.json +1 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/grading.json +15 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/code-changes.md +615 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/execution-plan.md +99 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/pr-description.md +50 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/verification-strategy.md +111 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/timing.json +1 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/eval_metadata.json +37 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/grading.json +11 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/code-changes.md +205 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/execution-plan.md +78 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/pr-description.md +42 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/verification-strategy.md +87 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/timing.json +1 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/grading.json +11 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/code-changes.md +334 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/execution-plan.md +86 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/pr-description.md +23 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/verification-strategy.md +119 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/timing.json +1 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/eval_metadata.json +32 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/grading.json +10 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +221 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/execution-plan.md +104 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/pr-description.md +41 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/verification-strategy.md +84 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/timing.json +1 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/grading.json +10 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +342 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/execution-plan.md +131 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/pr-description.md +39 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/verification-strategy.md +128 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/timing.json +1 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/eval_metadata.json +32 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/grading.json +10 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/code-changes.md +143 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/execution-plan.md +82 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/pr-description.md +51 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/verification-strategy.md +69 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/timing.json +1 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/grading.json +10 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/code-changes.md +252 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/execution-plan.md +83 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/pr-description.md +33 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/verification-strategy.md +101 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/timing.json +1 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/eval_metadata.json +32 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/grading.json +10 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/code-changes.md +387 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +112 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/pr-description.md +51 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/verification-strategy.md +75 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/timing.json +1 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/grading.json +10 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/code-changes.md +529 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/execution-plan.md +127 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/pr-description.md +42 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/verification-strategy.md +120 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/timing.json +1 -0
- package/.agents/skills/work-with-pr-workspace/iteration-1/review.html +1326 -0
- package/.opencode/command/get-unpublished-changes.md +148 -0
- package/.opencode/command/omomomo.md +37 -0
- package/.opencode/command/publish.md +376 -0
- package/.opencode/command/remove-deadcode.md +221 -0
- package/.opencode/command/security-research.md +16 -0
- package/.opencode/skills/github-triage/SKILL.md +587 -0
- package/.opencode/skills/github-triage/scripts/gh_fetch.py +398 -0
- package/.opencode/skills/hyperplan/SKILL.md +450 -0
- package/.opencode/skills/pre-publish-review/SKILL.md +407 -0
- package/.opencode/skills/work-with-pr/SKILL.md +360 -0
- package/.opencode/skills/work-with-pr-workspace/evals/evals.json +76 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/benchmark.json +138 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/benchmark.md +42 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/eval_metadata.json +57 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/grading.json +15 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/code-changes.md +454 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/execution-plan.md +136 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/pr-description.md +47 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/outputs/verification-strategy.md +163 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/with_skill/timing.json +1 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/grading.json +15 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/code-changes.md +615 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/execution-plan.md +99 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/pr-description.md +50 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/outputs/verification-strategy.md +111 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-1/without_skill/timing.json +1 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/eval_metadata.json +37 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/grading.json +11 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/code-changes.md +205 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/execution-plan.md +78 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/pr-description.md +42 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/outputs/verification-strategy.md +87 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/with_skill/timing.json +1 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/grading.json +11 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/code-changes.md +334 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/execution-plan.md +86 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/pr-description.md +23 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/outputs/verification-strategy.md +119 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-2/without_skill/timing.json +1 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/eval_metadata.json +32 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/grading.json +10 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/code-changes.md +221 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/execution-plan.md +104 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/pr-description.md +41 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/outputs/verification-strategy.md +84 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/with_skill/timing.json +1 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/grading.json +10 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/code-changes.md +342 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/execution-plan.md +131 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/pr-description.md +39 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/outputs/verification-strategy.md +128 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-3/without_skill/timing.json +1 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/eval_metadata.json +32 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/grading.json +10 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/code-changes.md +143 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/execution-plan.md +82 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/pr-description.md +51 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/outputs/verification-strategy.md +69 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/with_skill/timing.json +1 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/grading.json +10 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/code-changes.md +252 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/execution-plan.md +83 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/pr-description.md +33 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/outputs/verification-strategy.md +101 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-4/without_skill/timing.json +1 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/eval_metadata.json +32 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/grading.json +10 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/code-changes.md +387 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/execution-plan.md +112 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/pr-description.md +51 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/outputs/verification-strategy.md +75 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/with_skill/timing.json +1 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/grading.json +10 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/code-changes.md +529 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/execution-plan.md +127 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/pr-description.md +42 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/outputs/verification-strategy.md +120 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/eval-5/without_skill/timing.json +1 -0
- package/.opencode/skills/work-with-pr-workspace/iteration-1/review.html +1326 -0
- package/README.ja.md +1 -1
- package/README.ko.md +1 -1
- package/README.md +1 -1
- package/README.ru.md +1 -1
- package/README.zh-cn.md +1 -1
- package/dist/agents/atlas/agent.d.ts +6 -6
- package/dist/agents/prometheus/gemini.d.ts +0 -11
- package/dist/agents/prometheus/gpt.d.ts +0 -10
- package/dist/agents/prometheus/system-prompt.d.ts +2 -20
- package/dist/agents/types.d.ts +1 -16
- package/dist/cli/index.js +178 -129
- package/dist/config/schema/agent-names.d.ts +3 -3
- package/dist/config/schema/agent-overrides.d.ts +208 -208
- package/dist/config/schema/categories.d.ts +28 -28
- package/dist/config/schema/fallback-models.d.ts +20 -20
- package/dist/config/schema/oh-my-opencode-config.d.ts +208 -208
- package/dist/features/background-agent/parent-wake-notifier.d.ts +8 -1
- package/dist/help/schema/acp.d.ts +95 -0
- package/dist/help/schema/doctor.d.ts +147 -0
- package/dist/help/schema/sandbox.d.ts +74 -0
- package/dist/help/schema/status.d.ts +139 -0
- package/dist/hooks/keyword-detector/analyze/default.d.ts +1 -1
- package/dist/hooks/keyword-detector/hyperplan/default.d.ts +1 -1
- package/dist/hooks/keyword-detector/search/default.d.ts +1 -1
- package/dist/hooks/keyword-detector/team/default.d.ts +2 -7
- package/dist/hooks/keyword-detector/ultrawork/default.d.ts +1 -9
- package/dist/hooks/keyword-detector/ultrawork/gemini.d.ts +1 -16
- package/dist/hooks/keyword-detector/ultrawork/gpt.d.ts +1 -10
- package/dist/hooks/keyword-detector/ultrawork/planner.d.ts +1 -5
- package/dist/hooks/ralph-loop/no-progress-turn-detector.d.ts +7 -0
- package/dist/hooks/ralph-loop/pending-verification-handler.d.ts +1 -0
- package/dist/hooks/ralph-loop/types.d.ts +1 -0
- package/dist/hooks/runtime-fallback/error-classifier.d.ts +1 -0
- package/dist/index.js +52205 -50528
- package/dist/shared/prompt-async-gate/pending-tool-turn.d.ts +1 -0
- package/dist/shared/prompt-async-gate/types.d.ts +4 -3
- package/package.json +19 -13
- package/dist/agents/atlas/default-prompt-sections.d.ts +0 -6
- package/dist/agents/atlas/default.d.ts +0 -2
- package/dist/agents/atlas/gemini-prompt-sections.d.ts +0 -6
- package/dist/agents/atlas/gemini.d.ts +0 -2
- package/dist/agents/atlas/gpt-prompt-sections.d.ts +0 -6
- package/dist/agents/atlas/gpt.d.ts +0 -2
- package/dist/agents/atlas/kimi-prompt-sections.d.ts +0 -6
- package/dist/agents/atlas/kimi.d.ts +0 -2
- package/dist/agents/atlas/opus-4-7-prompt-sections.d.ts +0 -6
- package/dist/agents/atlas/opus-4-7.d.ts +0 -2
- package/dist/agents/atlas/shared-prompt.d.ts +0 -9
- package/dist/agents/prometheus/behavioral-summary.d.ts +0 -6
- package/dist/agents/prometheus/high-accuracy-mode.d.ts +0 -6
- package/dist/agents/prometheus/identity-constraints.d.ts +0 -7
- package/dist/agents/prometheus/interview-mode.d.ts +0 -7
- package/dist/agents/prometheus/plan-generation.d.ts +0 -7
- package/dist/agents/prometheus/plan-template.d.ts +0 -7
- package/dist/agents/prometheus/spec-driven-mode.d.ts +0 -7
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Compare HEAD with the latest published npm version and list all unpublished changes
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<command-instruction>
|
|
6
|
+
IMMEDIATELY output the analysis. NO questions. NO preamble.
|
|
7
|
+
|
|
8
|
+
## CRITICAL: DO NOT just copy commit messages!
|
|
9
|
+
|
|
10
|
+
For each commit, you MUST:
|
|
11
|
+
1. Read the actual diff to understand WHAT CHANGED
|
|
12
|
+
2. Describe the REAL change in plain language
|
|
13
|
+
3. Explain WHY it matters (if not obvious)
|
|
14
|
+
|
|
15
|
+
## Steps:
|
|
16
|
+
1. Run `git diff v{published-version}..HEAD` to see actual changes
|
|
17
|
+
2. Group by type (feat/fix/refactor/docs) with REAL descriptions
|
|
18
|
+
3. Note breaking changes if any
|
|
19
|
+
4. Recommend version bump (major/minor/patch)
|
|
20
|
+
|
|
21
|
+
## Output Format:
|
|
22
|
+
- feat: "Added X that does Y" (not just "add X feature")
|
|
23
|
+
- fix: "Fixed bug where X happened, now Y" (not just "fix X bug")
|
|
24
|
+
- refactor: "Changed X from A to B, now supports C" (not just "rename X")
|
|
25
|
+
</command-instruction>
|
|
26
|
+
|
|
27
|
+
<version-context>
|
|
28
|
+
<published-version>
|
|
29
|
+
!`npm view oh-my-opencode version 2>/dev/null || echo "not published"`
|
|
30
|
+
</published-version>
|
|
31
|
+
<local-version>
|
|
32
|
+
!`node -p "require('./package.json').version" 2>/dev/null || echo "unknown"`
|
|
33
|
+
</local-version>
|
|
34
|
+
<latest-tag>
|
|
35
|
+
!`git tag --sort=-v:refname | head -1 2>/dev/null || echo "no tags"`
|
|
36
|
+
</latest-tag>
|
|
37
|
+
</version-context>
|
|
38
|
+
|
|
39
|
+
<git-context>
|
|
40
|
+
<commits-since-release>
|
|
41
|
+
!`npm view oh-my-opencode version 2>/dev/null | xargs -I{} git log "v{}"..HEAD --oneline 2>/dev/null || echo "no commits since release"`
|
|
42
|
+
</commits-since-release>
|
|
43
|
+
<diff-stat>
|
|
44
|
+
!`npm view oh-my-opencode version 2>/dev/null | xargs -I{} git diff "v{}"..HEAD --stat 2>/dev/null || echo "no diff available"`
|
|
45
|
+
</diff-stat>
|
|
46
|
+
<files-changed-summary>
|
|
47
|
+
!`npm view oh-my-opencode version 2>/dev/null | xargs -I{} git diff "v{}"..HEAD --stat 2>/dev/null | tail -1 || echo ""`
|
|
48
|
+
</files-changed-summary>
|
|
49
|
+
</git-context>
|
|
50
|
+
|
|
51
|
+
<output-format>
|
|
52
|
+
## Unpublished Changes (v{published} → HEAD)
|
|
53
|
+
|
|
54
|
+
### feat
|
|
55
|
+
| Scope | What Changed |
|
|
56
|
+
|-------|--------------|
|
|
57
|
+
| X | Description of actual changes |
|
|
58
|
+
|
|
59
|
+
### fix
|
|
60
|
+
| Scope | What Changed |
|
|
61
|
+
|-------|--------------|
|
|
62
|
+
| X | Description of actual changes |
|
|
63
|
+
|
|
64
|
+
### refactor
|
|
65
|
+
| Scope | What Changed |
|
|
66
|
+
|-------|--------------|
|
|
67
|
+
| X | Description of actual changes |
|
|
68
|
+
|
|
69
|
+
### docs
|
|
70
|
+
| Scope | What Changed |
|
|
71
|
+
|-------|--------------|
|
|
72
|
+
| X | Description of actual changes |
|
|
73
|
+
|
|
74
|
+
### Breaking Changes
|
|
75
|
+
None or list
|
|
76
|
+
|
|
77
|
+
### Files Changed
|
|
78
|
+
{diff-stat}
|
|
79
|
+
|
|
80
|
+
### Suggested Version Bump
|
|
81
|
+
- **Recommendation**: patch|minor|major
|
|
82
|
+
- **Reason**: Reason for recommendation
|
|
83
|
+
</output-format>
|
|
84
|
+
|
|
85
|
+
<oracle-safety-review>
|
|
86
|
+
## Oracle Deployment Safety Review (Only when user explicitly requests)
|
|
87
|
+
|
|
88
|
+
**Trigger keywords**: "safe to deploy", "can I deploy", "is it safe", "review", "check", "oracle"
|
|
89
|
+
|
|
90
|
+
When user includes any of the above keywords in their request:
|
|
91
|
+
|
|
92
|
+
### 1. Pre-validation
|
|
93
|
+
```bash
|
|
94
|
+
bun run typecheck
|
|
95
|
+
bun test
|
|
96
|
+
```
|
|
97
|
+
- On failure → Report "❌ Cannot deploy" immediately without invoking Oracle
|
|
98
|
+
|
|
99
|
+
### 2. Oracle Invocation Prompt
|
|
100
|
+
|
|
101
|
+
Collect the following information and pass to Oracle:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
## Deployment Safety Review Request
|
|
105
|
+
|
|
106
|
+
### Changes Summary
|
|
107
|
+
{Changes table analyzed above}
|
|
108
|
+
|
|
109
|
+
### Key diffs (organized by feature)
|
|
110
|
+
{Core code changes for each feat/fix/refactor - only key parts, not full diff}
|
|
111
|
+
|
|
112
|
+
### Validation Results
|
|
113
|
+
- Typecheck: ✅/❌
|
|
114
|
+
- Tests: {pass}/{total} (✅/❌)
|
|
115
|
+
|
|
116
|
+
### Review Items
|
|
117
|
+
1. **Regression Risk**: Are there changes that could affect existing functionality?
|
|
118
|
+
2. **Side Effects**: Are there areas where unexpected side effects could occur?
|
|
119
|
+
3. **Breaking Changes**: Are there changes that affect external users?
|
|
120
|
+
4. **Edge Cases**: Are there missed edge cases?
|
|
121
|
+
5. **Deployment Recommendation**: SAFE / CAUTION / UNSAFE
|
|
122
|
+
|
|
123
|
+
### Request
|
|
124
|
+
Please analyze the above changes deeply and provide your judgment on deployment safety.
|
|
125
|
+
If there are risks, explain with specific scenarios.
|
|
126
|
+
Suggest keywords to monitor after deployment if any.
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 3. Output Format After Oracle Response
|
|
130
|
+
|
|
131
|
+
## 🔍 Oracle Deployment Safety Review Result
|
|
132
|
+
|
|
133
|
+
### Verdict: ✅ SAFE / ⚠️ CAUTION / ❌ UNSAFE
|
|
134
|
+
|
|
135
|
+
### Risk Analysis
|
|
136
|
+
| Area | Risk Level | Description |
|
|
137
|
+
|------|------------|-------------|
|
|
138
|
+
| ... | 🟢/🟡/🔴 | ... |
|
|
139
|
+
|
|
140
|
+
### Recommendations
|
|
141
|
+
- ...
|
|
142
|
+
|
|
143
|
+
### Post-deployment Monitoring Keywords
|
|
144
|
+
- ...
|
|
145
|
+
|
|
146
|
+
### Conclusion
|
|
147
|
+
{Oracle's final judgment}
|
|
148
|
+
</oracle-safety-review>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Easter egg command - about oh-my-opencode
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
<command-instruction>
|
|
6
|
+
You found an easter egg! 🥚✨
|
|
7
|
+
|
|
8
|
+
Print the following message to the user EXACTLY as written (in a friendly, celebratory tone):
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# 🎉 oMoMoMoMoMo···
|
|
13
|
+
|
|
14
|
+
**You found the easter egg!** 🥚✨
|
|
15
|
+
|
|
16
|
+
## What is Oh My OpenCode?
|
|
17
|
+
|
|
18
|
+
**Oh My OpenCode** is a powerful OpenCode plugin that transforms your AI agent into a full development team:
|
|
19
|
+
|
|
20
|
+
- 🤖 **Multi-Agent Orchestration**: Oracle (GPT-5.2), Librarian (Claude), Explore (Grok), Frontend Engineer (Gemini), and more
|
|
21
|
+
- 🔧 **LSP Tools**: Full IDE capabilities for your agents - hover, goto definition, find references, rename, code actions
|
|
22
|
+
- 🔍 **AST-Grep**: Structural code search and replace across 25 languages
|
|
23
|
+
- 📚 **Built-in MCPs**: Context7 for docs, Exa for web search, grep.app for GitHub code search
|
|
24
|
+
- 🔄 **Background Agents**: Run multiple agents in parallel like a real dev team
|
|
25
|
+
- 🎯 **Claude Code Compatibility**: Your existing Claude Code config just works
|
|
26
|
+
|
|
27
|
+
## Who Made This?
|
|
28
|
+
|
|
29
|
+
Created with ❤️ by **[code-yeongyu](https://github.com/code-yeongyu)**
|
|
30
|
+
|
|
31
|
+
🔗 **GitHub**: https://github.com/code-yeongyu/oh-my-opencode
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
*Enjoy coding on steroids!* 🚀
|
|
36
|
+
|
|
37
|
+
</command-instruction>
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Publish oh-my-opencode to npm via GitHub Actions workflow
|
|
3
|
+
argument-hint: <patch|minor|major>
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
<command-instruction>
|
|
7
|
+
You are the release manager for oh-my-opencode. Execute the FULL publish workflow from start to finish.
|
|
8
|
+
|
|
9
|
+
## CRITICAL: ARGUMENT REQUIREMENT
|
|
10
|
+
|
|
11
|
+
**You MUST receive a version bump type from the user.** Valid options:
|
|
12
|
+
- `patch`: Bug fixes, backward-compatible (1.1.7 → 1.1.8)
|
|
13
|
+
- `minor`: New features, backward-compatible (1.1.7 → 1.2.0)
|
|
14
|
+
- `major`: Breaking changes (1.1.7 → 2.0.0)
|
|
15
|
+
|
|
16
|
+
**If the user did not provide a bump type argument, STOP IMMEDIATELY and ask:**
|
|
17
|
+
> "To proceed with deployment, please specify a version bump type: `patch`, `minor`, or `major`"
|
|
18
|
+
|
|
19
|
+
**DO NOT PROCEED without explicit user confirmation of bump type.**
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## STEP 0: REGISTER TODO LIST (MANDATORY FIRST ACTION)
|
|
24
|
+
|
|
25
|
+
**Before doing ANYTHING else**, create a detailed todo list using TodoWrite:
|
|
26
|
+
|
|
27
|
+
```
|
|
28
|
+
[
|
|
29
|
+
{ "id": "confirm-bump", "content": "Confirm version bump type with user (patch/minor/major)", "status": "in_progress", "priority": "high" },
|
|
30
|
+
{ "id": "check-uncommitted", "content": "Check for uncommitted changes and commit if needed", "status": "pending", "priority": "high" },
|
|
31
|
+
{ "id": "sync-remote", "content": "Sync with remote (pull --rebase && push if unpushed commits)", "status": "pending", "priority": "high" },
|
|
32
|
+
{ "id": "run-workflow", "content": "Trigger GitHub Actions publish workflow", "status": "pending", "priority": "high" },
|
|
33
|
+
{ "id": "wait-workflow", "content": "Wait for workflow completion (poll every 30s)", "status": "pending", "priority": "high" },
|
|
34
|
+
{ "id": "verify-and-preview", "content": "Verify release created + preview auto-generated changelog & contributor thanks", "status": "pending", "priority": "high" },
|
|
35
|
+
{ "id": "draft-summary", "content": "Draft enhanced release summary (mandatory for minor/major, optional for patch — ask user)", "status": "pending", "priority": "high" },
|
|
36
|
+
{ "id": "apply-summary", "content": "Prepend enhanced summary to release (if user opted in)", "status": "pending", "priority": "high" },
|
|
37
|
+
{ "id": "verify-npm", "content": "Verify npm package published successfully", "status": "pending", "priority": "high" },
|
|
38
|
+
{ "id": "wait-platform-workflow", "content": "Wait for publish-platform workflow completion", "status": "pending", "priority": "high" },
|
|
39
|
+
{ "id": "verify-platform-binaries", "content": "Verify all 7 platform binary packages published", "status": "pending", "priority": "high" },
|
|
40
|
+
{ "id": "final-confirmation", "content": "Final confirmation to user with links", "status": "pending", "priority": "low" }
|
|
41
|
+
]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
**Mark each todo as `in_progress` when starting, `completed` when done. ONE AT A TIME.**
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## STEP 1: CONFIRM BUMP TYPE
|
|
49
|
+
|
|
50
|
+
If bump type provided as argument, confirm with user:
|
|
51
|
+
> "Version bump type: `{bump}`. Proceed? (y/n)"
|
|
52
|
+
|
|
53
|
+
Wait for user confirmation before proceeding.
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## STEP 2: CHECK UNCOMMITTED CHANGES
|
|
58
|
+
|
|
59
|
+
Run: `git status --porcelain`
|
|
60
|
+
|
|
61
|
+
- If there are uncommitted changes, warn user and ask if they want to commit first
|
|
62
|
+
- If clean, proceed
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## STEP 2.5: SYNC WITH REMOTE (MANDATORY)
|
|
67
|
+
|
|
68
|
+
Check if there are unpushed commits:
|
|
69
|
+
```bash
|
|
70
|
+
git log origin/master..HEAD --oneline
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
**If there are unpushed commits, you MUST sync before triggering workflow:**
|
|
74
|
+
```bash
|
|
75
|
+
git pull --rebase && git push
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
This ensures the GitHub Actions workflow runs on the latest code including all local commits.
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## STEP 3: TRIGGER GITHUB ACTIONS WORKFLOW
|
|
83
|
+
|
|
84
|
+
Run the publish workflow:
|
|
85
|
+
```bash
|
|
86
|
+
gh workflow run publish -f bump={bump_type}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Wait 3 seconds, then get the run ID:
|
|
90
|
+
```bash
|
|
91
|
+
gh run list --workflow=publish --limit=1 --json databaseId,status --jq '.[0]'
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
---
|
|
95
|
+
|
|
96
|
+
## STEP 4: WAIT FOR WORKFLOW COMPLETION
|
|
97
|
+
|
|
98
|
+
Poll workflow status every 30 seconds until completion:
|
|
99
|
+
```bash
|
|
100
|
+
gh run view {run_id} --json status,conclusion --jq '{status: .status, conclusion: .conclusion}'
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Status flow: `queued` → `in_progress` → `completed`
|
|
104
|
+
|
|
105
|
+
**IMPORTANT: Use polling loop, NOT sleep commands.**
|
|
106
|
+
|
|
107
|
+
If conclusion is `failure`, show error and stop:
|
|
108
|
+
```bash
|
|
109
|
+
gh run view {run_id} --log-failed
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
## STEP 5: VERIFY RELEASE & PREVIEW AUTO-GENERATED CONTENT
|
|
115
|
+
|
|
116
|
+
Two goals: confirm the release exists, then show the user what the workflow already generated.
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Pull latest (workflow committed version bump)
|
|
120
|
+
git pull --rebase
|
|
121
|
+
NEW_VERSION=$(node -p "require('./package.json').version")
|
|
122
|
+
|
|
123
|
+
# Verify release exists on GitHub
|
|
124
|
+
gh release view "v${NEW_VERSION}" --json tagName,url --jq '{tag: .tagName, url: .url}'
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**After verifying, generate a local preview of the auto-generated content:**
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
bun run script/generate-changelog.ts
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
<agent-instruction>
|
|
134
|
+
After running the preview, present the output to the user and say:
|
|
135
|
+
|
|
136
|
+
> **The following content is ALREADY included in the release automatically:**
|
|
137
|
+
> - Commit changelog (grouped by feat/fix/refactor)
|
|
138
|
+
> - Contributor thank-you messages (for non-team contributors)
|
|
139
|
+
>
|
|
140
|
+
> You do NOT need to write any of this. It's handled.
|
|
141
|
+
>
|
|
142
|
+
> **For a patch release**, this is usually sufficient on its own. However, if there are notable bug fixes or changes worth highlighting, an enhanced summary can be added.
|
|
143
|
+
> **For a minor/major release**, an enhanced summary is **required** — I'll draft one in the next step.
|
|
144
|
+
|
|
145
|
+
Wait for the user to acknowledge before proceeding.
|
|
146
|
+
</agent-instruction>
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## STEP 6: DRAFT ENHANCED RELEASE SUMMARY
|
|
151
|
+
|
|
152
|
+
<decision-gate>
|
|
153
|
+
|
|
154
|
+
| Release Type | Action |
|
|
155
|
+
|-------------|--------|
|
|
156
|
+
| **patch** | ASK the user: "Would you like me to draft an enhanced summary highlighting the key bug fixes / changes? Or is the auto-generated changelog sufficient?" If user declines → skip to Step 8. If user accepts → draft a concise bug-fix / change summary below. |
|
|
157
|
+
| **minor** | MANDATORY. Draft a concise feature summary. Do NOT proceed without one. |
|
|
158
|
+
| **major** | MANDATORY. Draft a full release narrative with migration notes if applicable. Do NOT proceed without one. |
|
|
159
|
+
|
|
160
|
+
</decision-gate>
|
|
161
|
+
|
|
162
|
+
### What You're Writing (and What You're NOT)
|
|
163
|
+
|
|
164
|
+
You are writing the **headline layer** — a product announcement that sits ABOVE the auto-generated commit log. Think "release blog post", not "git log".
|
|
165
|
+
|
|
166
|
+
<rules>
|
|
167
|
+
- NEVER duplicate commit messages. The auto-generated section already lists every commit.
|
|
168
|
+
- NEVER write generic filler like "Various bug fixes and improvements" or "Several enhancements".
|
|
169
|
+
- ALWAYS focus on USER IMPACT: what can users DO now that they couldn't before?
|
|
170
|
+
- ALWAYS group by THEME or CAPABILITY, not by commit type (feat/fix/refactor).
|
|
171
|
+
- ALWAYS use concrete language: "You can now do X" not "Added X feature".
|
|
172
|
+
</rules>
|
|
173
|
+
|
|
174
|
+
<examples>
|
|
175
|
+
<bad title="Commit regurgitation — DO NOT do this">
|
|
176
|
+
## What's New
|
|
177
|
+
- feat(auth): add JWT refresh token rotation
|
|
178
|
+
- fix(auth): handle expired token edge case
|
|
179
|
+
- refactor(auth): extract middleware
|
|
180
|
+
</bad>
|
|
181
|
+
|
|
182
|
+
<good title="User-impact narrative — DO this">
|
|
183
|
+
## 🔐 Smarter Authentication
|
|
184
|
+
|
|
185
|
+
Token refresh is now automatic and seamless. Sessions no longer expire mid-task — the system silently rotates credentials in the background. If you've been frustrated by random logouts, this release fixes that.
|
|
186
|
+
</good>
|
|
187
|
+
|
|
188
|
+
<bad title="Vague filler — DO NOT do this">
|
|
189
|
+
## Improvements
|
|
190
|
+
- Various performance improvements
|
|
191
|
+
- Bug fixes and stability enhancements
|
|
192
|
+
</bad>
|
|
193
|
+
|
|
194
|
+
<good title="Specific and measurable — DO this">
|
|
195
|
+
## ⚡ 3x Faster Rule Parsing
|
|
196
|
+
|
|
197
|
+
Rules are now cached by file modification time. If your project has 50+ rule files, you'll notice startup is noticeably faster — we measured a 3x improvement in our test suite.
|
|
198
|
+
</good>
|
|
199
|
+
</examples>
|
|
200
|
+
|
|
201
|
+
### Drafting Process
|
|
202
|
+
|
|
203
|
+
1. **Analyze** the commit list from Step 5's preview. Identify 2-5 themes that matter to users.
|
|
204
|
+
2. **Write** the summary to `/tmp/release-summary-v${NEW_VERSION}.md`.
|
|
205
|
+
3. **Present** the draft to the user for review and approval before applying.
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
# Write your draft here
|
|
209
|
+
cat > /tmp/release-summary-v${NEW_VERSION}.md << 'SUMMARY_EOF'
|
|
210
|
+
{your_enhanced_summary}
|
|
211
|
+
SUMMARY_EOF
|
|
212
|
+
|
|
213
|
+
cat /tmp/release-summary-v${NEW_VERSION}.md
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
<agent-instruction>
|
|
217
|
+
After drafting, ask the user:
|
|
218
|
+
> "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. Want me to adjust anything before applying?"
|
|
219
|
+
|
|
220
|
+
Do NOT proceed to Step 7 without user confirmation.
|
|
221
|
+
</agent-instruction>
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## STEP 7: APPLY ENHANCED SUMMARY TO RELEASE
|
|
226
|
+
|
|
227
|
+
**Skip this step ONLY if the user opted out of the enhanced summary in Step 6** — proceed directly to Step 8.
|
|
228
|
+
|
|
229
|
+
<architecture>
|
|
230
|
+
The final release note structure:
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
┌─────────────────────────────────────┐
|
|
234
|
+
│ Enhanced Summary (from Step 6) │ ← You wrote this
|
|
235
|
+
│ - Theme-based, user-impact focused │
|
|
236
|
+
├─────────────────────────────────────┤
|
|
237
|
+
│ --- (separator) │
|
|
238
|
+
├─────────────────────────────────────┤
|
|
239
|
+
│ Auto-generated Commit Changelog │ ← Workflow wrote this
|
|
240
|
+
│ - feat/fix/refactor grouped │
|
|
241
|
+
│ - Contributor thank-you messages │
|
|
242
|
+
└─────────────────────────────────────┘
|
|
243
|
+
```
|
|
244
|
+
</architecture>
|
|
245
|
+
|
|
246
|
+
<zero-content-loss-policy>
|
|
247
|
+
- Fetch the existing release body FIRST
|
|
248
|
+
- PREPEND your summary above it
|
|
249
|
+
- The existing auto-generated content must remain 100% INTACT
|
|
250
|
+
- NOT A SINGLE CHARACTER of existing content may be removed or modified
|
|
251
|
+
</zero-content-loss-policy>
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
# 1. Fetch existing auto-generated body
|
|
255
|
+
EXISTING_BODY=$(gh release view "v${NEW_VERSION}" --json body --jq '.body')
|
|
256
|
+
|
|
257
|
+
# 2. Combine: enhanced summary on top, auto-generated below
|
|
258
|
+
{
|
|
259
|
+
cat /tmp/release-summary-v${NEW_VERSION}.md
|
|
260
|
+
echo ""
|
|
261
|
+
echo "---"
|
|
262
|
+
echo ""
|
|
263
|
+
echo "$EXISTING_BODY"
|
|
264
|
+
} > /tmp/final-release-v${NEW_VERSION}.md
|
|
265
|
+
|
|
266
|
+
# 3. Update the release (additive only)
|
|
267
|
+
gh release edit "v${NEW_VERSION}" --notes-file /tmp/final-release-v${NEW_VERSION}.md
|
|
268
|
+
|
|
269
|
+
# 4. Confirm
|
|
270
|
+
echo "✅ Release v${NEW_VERSION} updated with enhanced summary."
|
|
271
|
+
gh release view "v${NEW_VERSION}" --json url --jq '.url'
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## STEP 8: VERIFY NPM PUBLICATION
|
|
277
|
+
|
|
278
|
+
Poll npm registry until the new version appears:
|
|
279
|
+
```bash
|
|
280
|
+
npm view oh-my-opencode version
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
Compare with expected version. If not matching after 2 minutes, warn user about npm propagation delay.
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## STEP 8.5: WAIT FOR PLATFORM WORKFLOW COMPLETION
|
|
288
|
+
|
|
289
|
+
The main publish workflow triggers a separate `publish-platform` workflow for platform-specific binaries.
|
|
290
|
+
|
|
291
|
+
1. Find the publish-platform workflow run triggered by the main workflow:
|
|
292
|
+
```bash
|
|
293
|
+
gh run list --workflow=publish-platform --limit=1 --json databaseId,status,conclusion --jq '.[0]'
|
|
294
|
+
```
|
|
295
|
+
|
|
296
|
+
2. Poll workflow status every 30 seconds until completion:
|
|
297
|
+
```bash
|
|
298
|
+
gh run view {platform_run_id} --json status,conclusion --jq '{status: .status, conclusion: .conclusion}'
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
**IMPORTANT: Use polling loop, NOT sleep commands.**
|
|
302
|
+
|
|
303
|
+
If conclusion is `failure`, show error logs:
|
|
304
|
+
```bash
|
|
305
|
+
gh run view {platform_run_id} --log-failed
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
---
|
|
309
|
+
|
|
310
|
+
## STEP 8.6: VERIFY PLATFORM BINARY PACKAGES
|
|
311
|
+
|
|
312
|
+
After publish-platform workflow completes, verify all 7 platform packages are published:
|
|
313
|
+
|
|
314
|
+
```bash
|
|
315
|
+
PLATFORMS="darwin-arm64 darwin-x64 linux-x64 linux-arm64 linux-x64-musl linux-arm64-musl windows-x64"
|
|
316
|
+
for PLATFORM in $PLATFORMS; do
|
|
317
|
+
npm view "oh-my-opencode-${PLATFORM}" version
|
|
318
|
+
done
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
All 7 packages should show the same version as the main package (`${NEW_VERSION}`).
|
|
322
|
+
|
|
323
|
+
**Expected packages:**
|
|
324
|
+
| Package | Description |
|
|
325
|
+
|---------|-------------|
|
|
326
|
+
| `oh-my-opencode-darwin-arm64` | macOS Apple Silicon |
|
|
327
|
+
| `oh-my-opencode-darwin-x64` | macOS Intel |
|
|
328
|
+
| `oh-my-opencode-linux-x64` | Linux x64 (glibc) |
|
|
329
|
+
| `oh-my-opencode-linux-arm64` | Linux ARM64 (glibc) |
|
|
330
|
+
| `oh-my-opencode-linux-x64-musl` | Linux x64 (musl/Alpine) |
|
|
331
|
+
| `oh-my-opencode-linux-arm64-musl` | Linux ARM64 (musl/Alpine) |
|
|
332
|
+
| `oh-my-opencode-windows-x64` | Windows x64 |
|
|
333
|
+
|
|
334
|
+
If any platform package version doesn't match, warn the user and suggest checking the publish-platform workflow logs.
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
## STEP 9: FINAL CONFIRMATION
|
|
339
|
+
|
|
340
|
+
Report success to user with:
|
|
341
|
+
- New version number
|
|
342
|
+
- GitHub release URL: https://github.com/code-yeongyu/oh-my-opencode/releases/tag/v{version}
|
|
343
|
+
- npm package URL: https://www.npmjs.com/package/oh-my-opencode
|
|
344
|
+
- Platform packages status: List all 7 platform packages with their versions
|
|
345
|
+
|
|
346
|
+
---
|
|
347
|
+
|
|
348
|
+
## ERROR HANDLING
|
|
349
|
+
|
|
350
|
+
- **Workflow fails**: Show failed logs, suggest checking Actions tab
|
|
351
|
+
- **Release not found**: Wait and retry, may be propagation delay
|
|
352
|
+
- **npm not updated**: npm can take 1-5 minutes to propagate, inform user
|
|
353
|
+
- **Permission denied**: User may need to re-authenticate with `gh auth login`
|
|
354
|
+
- **Platform workflow fails**: Show logs from publish-platform workflow, check which platform failed
|
|
355
|
+
- **Platform package missing**: Some platforms may fail due to cross-compilation issues, suggest re-running publish-platform workflow manually
|
|
356
|
+
|
|
357
|
+
## LANGUAGE
|
|
358
|
+
|
|
359
|
+
Respond to user in English.
|
|
360
|
+
|
|
361
|
+
</command-instruction>
|
|
362
|
+
|
|
363
|
+
<current-context>
|
|
364
|
+
<published-version>
|
|
365
|
+
!`npm view oh-my-opencode version 2>/dev/null || echo "not published"`
|
|
366
|
+
</published-version>
|
|
367
|
+
<local-version>
|
|
368
|
+
!`node -p "require('./package.json').version" 2>/dev/null || echo "unknown"`
|
|
369
|
+
</local-version>
|
|
370
|
+
<git-status>
|
|
371
|
+
!`git status --porcelain`
|
|
372
|
+
</git-status>
|
|
373
|
+
<recent-commits>
|
|
374
|
+
!`npm view oh-my-opencode version 2>/dev/null | xargs -I{} git log "v{}"..HEAD --oneline 2>/dev/null | head -15 || echo "no commits"`
|
|
375
|
+
</recent-commits>
|
|
376
|
+
</current-context>
|