Scaffold repo-local Ralph autonomous harness under scripts/ralph/. Use when user runs /flow-next:ralph-init.
Scaffold repo-local Ralph harness. Opt-in only.
scripts/ralph/ in the current repo.scripts/ralph/ already exists, offer to update (preserves config.env)..opencode/skill/flow-next-opencode-ralph-init/templates/ into scripts/ralph/.flowctl and flowctl.py from $OPENCODE_DIR/bin/ into scripts/ralph/.scripts/ralph/ralph.sh, scripts/ralph/ralph_once.sh, and scripts/ralph/flowctl.Resolve repo root and OpenCode dir:
ROOT="$(git rev-parse --show-toplevel)"
OPENCODE_DIR="$ROOT/.opencode"
TEMPLATE_DIR="$ROOT/.opencode/skill/flow-next-opencode-ralph-init/templates"
Check if scripts/ralph/ exists:
Detect available review backends (skip if UPDATE_MODE=1):
HAVE_RP=0; if command -v rp-cli >/dev/null 2>&1; then HAVE_RP=1; elif [[ -x /opt/homebrew/bin/rp-cli || -x /usr/local/bin/rp-cli ]]; then HAVE_RP=1; fi
4. Determine review backend (skip if UPDATE_MODE=1):
- If rp-cli available, ask user:
```
Which review backend?
a) OpenCode (GPT‑5.2 High)
b) RepoPrompt (macOS, visual builder)
(Reply: "a", "opencode", "b", "rp", or just tell me)
```
Wait for response. Default if empty/ambiguous: `opencode`
- If only rp-cli available and user chooses rp: use `rp`
- Otherwise: use `opencode`
- If neither available and user requests none: use `none`
5. Copy files using bash (MUST use cp, NOT Write tool):
**If UPDATE_MODE=1 (updating):**
```bash
# Backup config.env
cp scripts/ralph/config.env /tmp/ralph-config-backup.env
# Update templates (preserves runs/)
cp "$TEMPLATE_DIR/ralph.sh" scripts/ralph/
cp "$TEMPLATE_DIR/ralph_once.sh" scripts/ralph/
cp "$TEMPLATE_DIR/prompt_plan.md" scripts/ralph/
cp "$TEMPLATE_DIR/prompt_work.md" scripts/ralph/
cp "$TEMPLATE_DIR/watch-filter.py" scripts/ralph/
cp "$OPENCODE_DIR/bin/flowctl" "$OPENCODE_DIR/bin/flowctl.py" scripts/ralph/
chmod +x scripts/ralph/ralph.sh scripts/ralph/ralph_once.sh scripts/ralph/flowctl
# Restore config.env
cp /tmp/ralph-config-backup.env scripts/ralph/config.env
If UPDATE_MODE=0 (fresh install):
mkdir -p scripts/ralph/runs
cp -R "$TEMPLATE_DIR/." scripts/ralph/
cp "$OPENCODE_DIR/bin/flowctl" "$OPENCODE_DIR/bin/flowctl.py" scripts/ralph/
chmod +x scripts/ralph/ralph.sh scripts/ralph/ralph_once.sh scripts/ralph/flowctl
Note: cp -R templates/. copies all files including dotfiles (.gitignore).
Edit scripts/ralph/config.env to set the chosen review backend (skip if UPDATE_MODE=1):
{{PLAN_REVIEW}} with <chosen>{{WORK_REVIEW}} with <chosen>Print next steps (run from terminal, NOT inside OpenCode):
If UPDATE_MODE=1:
Ralph updated! Your config.env was preserved.
Run from terminal:
- ./scripts/ralph/ralph_once.sh (one iteration, observe)
- ./scripts/ralph/ralph.sh (full loop, AFK)
If UPDATE_MODE=0:
Ralph initialized!
Next steps (run from terminal, NOT inside OpenCode):
- Edit scripts/ralph/config.env to customize settings
- ./scripts/ralph/ralph_once.sh (one iteration, observe)
- ./scripts/ralph/ralph.sh (full loop, AFK)
- Uninstall: rm -rf scripts/ralph/
npx skills add gmickel/flow-next-opencode-ralph-init下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer