Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/test-flow-next.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,12 @@ jobs:

- name: Check ralph.sh syntax (Unix)
if: runner.os != 'Windows'
run: bash -n .opencode/skill/flow-next-ralph-init/templates/ralph.sh
run: bash -n .opencode/skill/flow-next-opencode-ralph-init/templates/ralph.sh

- name: Check ralph.sh syntax (Windows Git Bash)
if: runner.os == 'Windows'
shell: bash
run: bash -n .opencode/skill/flow-next-ralph-init/templates/ralph.sh
run: bash -n .opencode/skill/flow-next-opencode-ralph-init/templates/ralph.sh

- name: Smoke check flowctl (Unix)
if: runner.os != 'Windows'
Expand Down
4 changes: 2 additions & 2 deletions .opencode/command/flow-next/export-context.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
description: Export RepoPrompt context for external LLM review
---

# IMPORTANT: This command MUST invoke the skill `flow-next-export-context`
# IMPORTANT: This command MUST invoke the skill `flow-next-opencode-export-context`

The ONLY purpose of this command is to call the `flow-next-export-context` skill. You MUST use that skill now.
The ONLY purpose of this command is to call the `flow-next-opencode-export-context` skill. You MUST use that skill now.

**Arguments:** $ARGUMENTS

Expand Down
4 changes: 2 additions & 2 deletions .opencode/command/flow-next/impl-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
description: John Carmack-level implementation review via RepoPrompt or OpenCode
---

# IMPORTANT: This command MUST invoke the skill `flow-next-impl-review`
# IMPORTANT: This command MUST invoke the skill `flow-next-opencode-impl-review`

The ONLY purpose of this command is to call the `flow-next-impl-review` skill. You MUST use that skill now.
The ONLY purpose of this command is to call the `flow-next-opencode-impl-review` skill. You MUST use that skill now.

**Arguments:** $ARGUMENTS

Expand Down
4 changes: 2 additions & 2 deletions .opencode/command/flow-next/interview.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
description: Interview & refine an epic, task, or spec file in-depth
---

# IMPORTANT: This command MUST invoke the skill `flow-next-interview`
# IMPORTANT: This command MUST invoke the skill `flow-next-opencode-interview`

The ONLY purpose of this command is to call the `flow-next-interview` skill. You MUST use that skill now.
The ONLY purpose of this command is to call the `flow-next-opencode-interview` skill. You MUST use that skill now.

**User input:** $ARGUMENTS

Expand Down
4 changes: 2 additions & 2 deletions .opencode/command/flow-next/plan-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
description: Carmack-level plan review via RepoPrompt or OpenCode
---

# IMPORTANT: This command MUST invoke the skill `flow-next-plan-review`
# IMPORTANT: This command MUST invoke the skill `flow-next-opencode-plan-review`

The ONLY purpose of this command is to call the `flow-next-plan-review` skill. You MUST use that skill now.
The ONLY purpose of this command is to call the `flow-next-opencode-plan-review` skill. You MUST use that skill now.

**Arguments:** $ARGUMENTS

Expand Down
4 changes: 2 additions & 2 deletions .opencode/command/flow-next/plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
description: Draft a clear build plan from a short request
---

# IMPORTANT: This command MUST invoke the skill `flow-next-plan`
# IMPORTANT: This command MUST invoke the skill `flow-next-opencode-plan`

The ONLY purpose of this command is to call the `flow-next-plan` skill. You MUST use that skill now.
The ONLY purpose of this command is to call the `flow-next-opencode-plan` skill. You MUST use that skill now.

**User request:** $ARGUMENTS

Expand Down
4 changes: 2 additions & 2 deletions .opencode/command/flow-next/ralph-init.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
description: Scaffold repo-local Ralph autonomous harness (scripts/ralph/)
---

# IMPORTANT: This command MUST invoke the skill `flow-next-ralph-init`
# IMPORTANT: This command MUST invoke the skill `flow-next-opencode-ralph-init`

The ONLY purpose of this command is to call the `flow-next-ralph-init` skill. You MUST use that skill now.
The ONLY purpose of this command is to call the `flow-next-opencode-ralph-init` skill. You MUST use that skill now.

Creates `scripts/ralph/` in the current repo.
4 changes: 2 additions & 2 deletions .opencode/command/flow-next/setup.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
description: Optional local install of flowctl CLI and project docs
---

# IMPORTANT: This command MUST invoke the skill `flow-next-setup`
# IMPORTANT: This command MUST invoke the skill `flow-next-opencode-setup`

The ONLY purpose of this command is to call the `flow-next-setup` skill. You MUST use that skill now.
The ONLY purpose of this command is to call the `flow-next-opencode-setup` skill. You MUST use that skill now.

This is an **optional** setup for power users. Flow-next works without it.
4 changes: 2 additions & 2 deletions .opencode/command/flow-next/work.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
description: Execute a plan end-to-end with checks
---

# IMPORTANT: This command MUST invoke the skill `flow-next-work`
# IMPORTANT: This command MUST invoke the skill `flow-next-opencode-work`

The ONLY purpose of this command is to call the `flow-next-work` skill. You MUST use that skill now.
The ONLY purpose of this command is to call the `flow-next-opencode-work` skill. You MUST use that skill now.

**User input:** $ARGUMENTS

Expand Down
2 changes: 1 addition & 1 deletion .opencode/plugin/flow-next-ralph-guard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,7 @@ export default async function (_input: PluginInput): Promise<Hooks> {
if (subagent !== allowedReviewer) {
block(
`BLOCKED: Ralph mode only allows task tool for reviewer '${allowedReviewer}'. ` +
"Use the skill tool (flow-next-plan-review / flow-next-work) and do NOT spawn generic tasks.",
"Use the skill tool (flow-next-opencode-plan-review / flow-next-opencode-work) and do NOT spawn generic tasks.",
)
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: flow-next-export-context
name: flow-next-opencode-export-context
description: Export RepoPrompt context for external LLM review (ChatGPT, Claude web, etc.). Use when you want to review code or plans with an external model. Triggers on /flow-next:export-context.
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: flow-next-impl-review
name: flow-next-opencode-impl-review
description: John Carmack-level implementation review via RepoPrompt or OpenCode. Use when reviewing code changes, PRs, or implementations. Triggers on /flow-next:impl-review.
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: flow-next-interview
name: flow-next-opencode-interview
description: Interview user in-depth about an epic, task, or spec file to extract complete implementation details. Use when user wants to flesh out a spec, refine requirements, or clarify a feature before building. Triggers on /flow-next:interview with Flow IDs (fn-1, fn-1.2) or file paths.
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: flow-next-plan-review
name: flow-next-opencode-plan-review
description: Carmack-level plan review via RepoPrompt or OpenCode. Use when reviewing Flow epic specs or design docs. Triggers on /flow-next:plan-review.
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: flow-next-plan
name: flow-next-opencode-plan
description: Create structured build plans from feature requests or Flow IDs. Use when planning features or designing implementation. Triggers on /flow-next:plan with text descriptions or Flow IDs (fn-1, fn-1.2).
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: flow-next-ralph-init
name: flow-next-opencode-ralph-init
description: Scaffold repo-local Ralph autonomous harness under scripts/ralph/. Use when user runs /flow-next:ralph-init.
---

Expand All @@ -11,7 +11,7 @@ Scaffold repo-local Ralph harness. Opt-in only.

- Only create `scripts/ralph/` in the current repo.
- If `scripts/ralph/` already exists, stop and ask the user to remove it first.
- Copy templates from `.opencode/skill/flow-next-ralph-init/templates/` into `scripts/ralph/`.
- Copy templates from `.opencode/skill/flow-next-opencode-ralph-init/templates/` into `scripts/ralph/`.
- Copy `flowctl` and `flowctl.py` from `$OPENCODE_DIR/bin/` into `scripts/ralph/`.
- Set executable bit on `scripts/ralph/ralph.sh`, `scripts/ralph/ralph_once.sh`, and `scripts/ralph/flowctl`.

Expand All @@ -21,7 +21,7 @@ Scaffold repo-local Ralph harness. Opt-in only.
```bash
ROOT="$(git rev-parse --show-toplevel)"
OPENCODE_DIR="$ROOT/.opencode"
TEMPLATE_DIR="$ROOT/.opencode/skill/flow-next-ralph-init/templates"
TEMPLATE_DIR="$ROOT/.opencode/skill/flow-next-opencode-ralph-init/templates"
```
2. Check `scripts/ralph/` does not exist.
3. Detect available review backends:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ Inputs:
- PLAN_REVIEW={{PLAN_REVIEW}}
- REQUIRE_PLAN_REVIEW={{REQUIRE_PLAN_REVIEW}}

Treat the following as the user's exact input to flow-next-plan-review:
Treat the following as the user's exact input to flow-next-opencode-plan-review:
`{{EPIC_ID}} --review={{PLAN_REVIEW}}`

Steps:
Expand All @@ -23,7 +23,7 @@ Ralph mode rules (must follow):
- If any rule is violated, output `<promise>RETRY</promise>` and stop.

2) Plan review gate:
- Call the skill tool: flow-next-plan-review.
- Call the skill tool: flow-next-opencode-plan-review.
- Follow the workflow in the skill using the exact arguments above.
- Do NOT stop after loading the skill.
- For opencode: run reviewer via task tool and require `<verdict>` tag.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ Inputs:
- BRANCH_MODE={{BRANCH_MODE_EFFECTIVE}}
- WORK_REVIEW={{WORK_REVIEW}}

Treat the following as the user's exact input to flow-next-work:
Treat the following as the user's exact input to flow-next-opencode-work:
`{{TASK_ID}} --branch={{BRANCH_MODE_EFFECTIVE}} --review={{WORK_REVIEW}}`

## Steps (execute ALL in order)

**Step 1: Execute task**
- Call the skill tool: flow-next-work.
- Call the skill tool: flow-next-opencode-work.
- Follow the workflow in the skill using the exact arguments above.
- Do NOT run /flow-next:* as shell commands.
- Do NOT improvise review prompts; use the skill's review flow.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: flow-next-rp-explorer
name: flow-next-opencode-rp-explorer
description: Token-efficient codebase exploration using RepoPrompt CLI. Use when user says "use rp to..." or "use repoprompt to..." followed by explore, find, understand, search, or similar actions.
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: flow-next-setup
name: flow-next-opencode-setup
description: Local install of flowctl CLI and CLAUDE.md/AGENTS.md instructions. Use when user runs /flow-next:setup.
---

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,7 @@ Notes:
## Step 8: Ask about starring

Ask with the **question** tool:
- **Header**: `Support Flow-Next`
- **Header**: `Support`
- **Question**: `Flow-Next is free and open source. Would you like to ⭐ star the repo on GitHub to support the project?`
- **Options**:
1. `Yes, star the repo`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: flow-next-work
name: flow-next-opencode-work
description: Execute a Flow epic or task systematically with git setup, task tracking, quality checks, and commit workflow. Use when implementing a plan or working through a spec. Triggers on /flow-next:work with Flow IDs (fn-1, fn-1.2).
---

Expand Down Expand Up @@ -154,7 +154,7 @@ Wait for response. Parse naturally — user may reply terse or ramble via voice.

## Workflow

After setup questions answered, read `.opencode/skill/flow-next-work/phases.md` and execute each phase in order.
After setup questions answered, read `.opencode/skill/flow-next-opencode-work/phases.md` and execute each phase in order.
If user chose review:
- Option 2a: run `/flow-next:impl-review` after Phase 6, fix issues until it passes
- Option 2b: run `/flow-next:impl-review` with export mode after Phase 6
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ Detect input type in this order (first match wins):

Based on user's answer from setup questions:

- **Worktree**: use `skill: flow-next-worktree-kit`
- **Worktree**: use `skill: flow-next-opencode-worktree-kit`
- **New branch**:
```bash
git checkout main && git pull origin main
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: flow-next-worktree-kit
name: flow-next-opencode-worktree-kit
description: Manage git worktrees (create/list/switch/cleanup) and copy .env files. Use for parallel feature work, isolated review, clean workspace, or when user mentions worktrees.
---

Expand All @@ -10,7 +10,7 @@ Use the manager script for all worktree actions.
```bash
ROOT="$(git rev-parse --show-toplevel)"
PLUGIN_ROOT="$ROOT/.opencode/skill"
bash "$PLUGIN_ROOT/flow-next-worktree-kit/scripts/worktree.sh" <command> [args]
bash "$PLUGIN_ROOT/flow-next-opencode-worktree-kit/scripts/worktree.sh" <command> [args]
```

Commands:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
name: flow-next
name: flow-next-opencode
description: "Manage .flow/ tasks and epics. Triggers: 'show me my tasks', 'list epics', 'what tasks are there', 'add a task', 'create task', 'what's ready', 'task status', 'show fn-1'. NOT for /flow-next:plan or /flow-next:work."
---

Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

- OpenCode logs: `~/.local/share/opencode/log/` (tail for live run status)
- Porting guidance: `sync/PORTING.md` (manual, .opencode is canonical)
- Ralph template source of truth: `.opencode/skill/flow-next-ralph-init/templates/ralph.sh`
- Ralph template source of truth: `.opencode/skill/flow-next-opencode-ralph-init/templates/ralph.sh`
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
# Changelog

## Unreleased

- Rename OpenCode skills to `flow-next-opencode-*` to avoid Claude skill collisions
- Thanks @gmickel for the contribution

## 0.2.3

- Canonicalize `.opencode/` (remove legacy plugin/sync paths)
Expand Down
4 changes: 2 additions & 2 deletions plans/opencode-canonical-switch.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
## Proposed Canonical Layout
- `.opencode/` contains **everything runtime** needs:
- `.opencode/bin/flowctl` + `.opencode/bin/flowctl.py` (new)
- `.opencode/skill/flow-next-ralph-init/templates/*` (already present)
- `.opencode/skill/flow-next-opencode-ralph-init/templates/*` (already present)
- `.opencode/skill/**` (existing)
- Docs move to repo-level `docs/` (flowctl + ralph docs)
- `plugins/flow-next/` will be **removed** from installer output and repo after switch. Upstream porting will be manual (no dev copy).
Expand Down Expand Up @@ -49,7 +49,7 @@
## Required File Changes (checklist)
- [ ] `.opencode/bin/flowctl` + `.opencode/bin/flowctl.py` added
- [ ] `.opencode/skill/*` references updated (flowctl path)
- [ ] `.opencode/skill/flow-next-ralph-init/templates/*` updated
- [ ] `.opencode/skill/flow-next-opencode-ralph-init/templates/*` updated
- [ ] `install.sh` updated (copy `.opencode` only)
- [ ] `README.md` + `docs/` updated for new pathing
- [ ] `sync/PORTING.md` updated with new canonical rule
Expand Down
2 changes: 1 addition & 1 deletion sync/PORTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ Goal: keep this OpenCode port aligned with upstream with **manual, minimal edits
- `.opencode/bin/flowctl`
- `.opencode/bin/flowctl.py`
4) If ralph templates change upstream, update:
- `.opencode/skill/flow-next-ralph-init/templates/*`
- `.opencode/skill/flow-next-opencode-ralph-init/templates/*`
5) If docs change upstream, update:
- `docs/*`

Expand Down