solo-pipeline ยท diff
v1.2.0 to v1.3.0
23 added, 22 removed. Audit A to A.
---
name: solo-pipeline
description: Launch automated multi-skill pipeline that chains skills into a loop. Use when user says "run pipeline", "automate research to PRD", "full pipeline", "research and validate", "scaffold to build", "loop until done", or "chain skills". Do NOT use for single skills (use the skill directly).
license: MIT
metadata:
author: fortunto2
- version: "1.2.0"
+ version: "1.3.0"
openclaw:
emoji: "๐"
allowed-tools: Bash, Read, Write, AskUserQuestion
argument-hint: "research <idea> | dev <name> <stack> [--feature desc]"
---
# /pipeline
Launch an automated multi-skill pipeline. The Stop hook chains skills automatically โ no manual invocation needed between stages.
## Available Pipelines
### Research Pipeline
`/pipeline research "AI therapist app"`
Chains: `/research` -> `/validate`
Produces: `research.md` -> `prd.md`
### Dev Pipeline
`/pipeline dev "project-name" "stack"`
`/pipeline dev "project-name" "stack" --feature "user onboarding"`
Chains: `/scaffold` -> `/setup` -> `/plan` -> `/build`
Produces: full project with workflow, plan, and implementation
## Steps
### 1. Parse Arguments
Extract from `$ARGUMENTS`:
- Pipeline type: first word (`research` or `dev`)
- Remaining args: passed to the launcher script
If no arguments or unclear, ask:
```
Which pipeline do you want to run?
1. Research Pipeline โ /research โ /validate (idea to PRD)
2. Dev Pipeline โ /scaffold โ /setup โ /plan โ /build (PRD to running code)
```
### 2. Confirm with User
Show what will happen:
```
Pipeline: {type}
Stages: {stage1} โ {stage2} โ ...
Idea/Project: {name}
This will run multiple skills automatically. Continue?
```
Ask via AskUserQuestion.
### 3. Run Launcher Script
Determine the plugin root (where this skill lives):
- Check if `${CLAUDE_PLUGIN_ROOT}` is set (plugin context)
- Otherwise find `solo-factory/scripts/` relative to project
```bash
# Research pipeline
${CLAUDE_PLUGIN_ROOT}/scripts/solo-research.sh "idea name" [--project name] --no-dashboard
# Dev pipeline
${CLAUDE_PLUGIN_ROOT}/scripts/solo-dev.sh "project-name" "stack" [--feature "desc"] --no-dashboard
```
**Always pass `--no-dashboard`** when running from within Claude Code skill context (tmux is for terminal use only).
### 4. Start First Stage
After the script creates the state file, immediately run the first stage's skill.
The Stop hook will handle subsequent stages automatically.
For research pipeline: Run `/research "idea name"`
For dev pipeline: Run `/scaffold project-name stack`
### 5. Pipeline Completion
When all stages are done, output:
```
<solo:done/>
```
The Stop hook checks for this signal and cleans up the state file.
## State File
- Location: `~/.solo/pipelines/solo-pipeline-{project}.local.md`
- Log file: `~/.solo/pipelines/solo-pipeline-{project}.log`
+ Location: `.solo/pipelines/solo-pipeline-{project}.local.md` (project-local) or `~/.solo/pipelines/solo-pipeline-{project}.local.md` (global fallback)
+ Log file: `.solo/pipelines/solo-pipeline-{project}.log`
Format: YAML frontmatter with stages list, `project_root`, and `log_file` fields.
The Stop hook reads this file on every session exit attempt.
- To cancel a pipeline manually: `rm ~/.solo/pipelines/solo-pipeline-{project}.local.md`
+ To cancel a pipeline manually: delete the state file `solo-pipeline-{project}.local.md`
## Monitoring
### tmux Dashboard (terminal use)
When launched from terminal (without `--no-dashboard`), a tmux dashboard opens automatically with:
- Pane 0: work area
- Pane 1: `tail -f` on log file
- Pane 2: live status display (refreshes every 2s)
- Manual dashboard commands:
+ If solo-factory scripts are available, manual dashboard commands:
```bash
# Create dashboard for a pipeline
solo-dashboard.sh create <project>
# Attach to existing dashboard
solo-dashboard.sh attach <project>
# Close dashboard
solo-dashboard.sh close <project>
```
### Manual Monitoring
+ If solo-factory scripts are available:
```bash
# Colored status display
solo-pipeline-status.sh # all pipelines
solo-pipeline-status.sh <project> # specific pipeline
# Auto-refresh
watch -n2 -c solo-pipeline-status.sh
+ ```
+ Otherwise, use standard tools:
+ ```bash
# Log tail
- tail -f ~/.solo/pipelines/solo-pipeline-<project>.log
+ tail -f .solo/pipelines/solo-pipeline-<project>.log
+
+ # Check state file
+ cat .solo/pipelines/solo-pipeline-<project>.local.md
```
### Real-time Tool Visibility
- The pipeline uses `--output-format stream-json` piped through `solo-stream-fmt.py` โ tool calls appear in real-time with colored icons:
+ If solo-factory scripts are available, the pipeline uses `--output-format stream-json` piped through `solo-stream-fmt.py` โ tool calls appear in real-time with colored icons:
```
- ๐ Read ~/startups/solopreneur/4-opportunities/jarvis/research.md
- ๐ Glob "*.md" ~/startups/active/jarvis/
- ๐ป Bash npm test
- ๐ WebSearch voice AI agent developer tools 2026
- ๐ค Task [Explore] Research task
- ๐ kb_search jarvis voice agent
+ Read docs/research.md
+ Glob "*.md" ~/projects/my-app/
+ Bash npm test
+ WebSearch voice AI agent developer tools 2026
+ Task [Explore] Research task
+ kb_search voice agent
```
Disable colors: `--no-color`. Disable sound effects: `--no-sound`.
- ### 8-bit Background Music
-
- Chiptune background music plays automatically during pipeline runs (pentatonic melodies, square waves, 140 BPM). Stops on completion. Volume: 0.08 (very quiet).
-
- Manual control: `solo-chiptune.sh start|stop|status [--volume 0.1] [--bpm 140]`
-
### Session Reuse
Re-running a pipeline reuses the existing tmux session:
- All panes are cleared (Ctrl-C + clear)
- Log tail and status watch restart fresh
- No need to close/recreate โ just run the same command again
### Log Format
```
- [22:30:15] START | jarvis | stages: research -> validate | max: 5
+ [22:30:15] START | my-app | stages: research -> validate | max: 5
[22:30:16] STAGE | iter 1/5 | stage 1/2: research
- [22:30:16] INVOKE | /research "Jarvis voice AI agent"
+ [22:30:16] INVOKE | /research "AI therapist app"
[22:35:42] CHECK | research | .../research.md -> FOUND
[22:35:42] STAGE | iter 2/5 | stage 2/2: validate
- [22:35:42] INVOKE | /validate "Jarvis voice AI agent"
+ [22:35:42] INVOKE | /validate "AI therapist app"
[22:40:10] CHECK | validate | .../prd.md -> FOUND
[22:40:10] DONE | All stages complete! Promise detected.
[22:40:10] FINISH | Duration: 10m
```
## Critical Rules
1. **Always confirm** before starting a pipeline.
2. **Don't skip stages** โ the hook handles progression.
3. **Cancel = delete state file** โ tell users this if they want to stop.
4. **Max iterations** prevent infinite loops (default 5 for research, 15 for dev).
5. **Use `--no-dashboard`** when running from within Claude Code skill context.