wave

Expert Wave multi-agent pipeline orchestrator development including manifest configuration, pipeline authoring, persona management, and CLI operations

15 stars

Best use case

wave is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Expert Wave multi-agent pipeline orchestrator development including manifest configuration, pipeline authoring, persona management, and CLI operations

Teams using wave should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/wave/SKILL.md --create-dirs "https://raw.githubusercontent.com/re-cinq/wave/main/.claude/skills/wave/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/wave/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How wave Compares

Feature / AgentwaveStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Expert Wave multi-agent pipeline orchestrator development including manifest configuration, pipeline authoring, persona management, and CLI operations

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Wave — Multi-Agent Pipeline Orchestrator

Go CLI orchestrating multi-step AI workflows. Each pipeline step runs in an isolated workspace under a named persona with enforced permissions, artifact chaining, and contract validation.

## Manifest (`wave.yaml`)

```yaml
apiVersion: v1
kind: WaveManifest
metadata:
  name: my-project

adapters:
  claude:
    binary: claude
    mode: headless
    output_format: json
    project_files: [CLAUDE.md, .claude/settings.json]
    default_permissions:
      allowed_tools: [Read, Write, Edit, Bash]

personas:
  navigator:
    adapter: claude
    system_prompt_file: .wave/personas/navigator.md
    model: sonnet                        # opus | sonnet | haiku
    permissions:
      allowed_tools: [Read, Glob, Grep, "Bash(git log*)", "Bash(git status*)"]
      deny: ["Write(*)", "Edit(*)", "Bash(git commit*)", "Bash(git push*)"]

runtime:
  workspace_root: .wave/workspaces
  max_concurrent_workers: 5
  default_timeout_minutes: 30
  relay:
    token_threshold_percent: 80
    strategy: summarize_to_checkpoint
    summarizer_persona: summarizer

skill_mounts:
  - path: .wave/skills/
```

## Pipeline (`.wave/pipelines/<name>.yaml`)

```yaml
kind: WavePipeline
metadata:
  name: gh-pr-review
  release: true

steps:
  - id: analyze
    persona: navigator
    dependencies: []
    memory:
      strategy: fresh
      inject_artifacts:
        - step: prior-step
          artifact: artifact-name
          as: local-filename            # available at artifacts/<as>
    exec:
      type: prompt
      source: |
        Analyze the code for: {{ input }}
    output_artifacts:
      - name: analysis
        path: output/analysis.json
        type: json
    handover:
      contract:
        type: json_schema               # or: command
        schema_path: .wave/contracts/analysis.schema.json
        source: output/analysis.json
        must_pass: true
        on_failure: retry
        max_retries: 2
```

## Built-in Personas

| Persona | Role |
|---------|------|
| `navigator` | Read-only codebase exploration |
| `craftsman` | Code implementation & testing |
| `implementer` | Full execution specialist |
| `philosopher` | Architecture & specification |
| `auditor` | Security review & QA |
| `summarizer` | Context compaction for relay |
| `reviewer` | Quality review & validation |
| `github-commenter` | Post GitHub issue comments |

Permission syntax: `Read`, `Write(.wave/specs/*)`, `Bash(git log*)`, `Bash(*)` in deny

## Artifacts

```yaml
output_artifacts:             # produced by this step
  - name: analysis
    path: output/data.json
    type: json

memory:
  inject_artifacts:           # consumed from prior step
    - step: analyze
      artifact: analysis
      as: analysis_data       # available at artifacts/analysis_data
```

## Key CLI Commands

```bash
wave run gh-pr-review "Review auth module"
wave run hotfix --dry-run
wave run <pipeline> --from-step <step> --force   # resume
wave do "fix the login bug"                       # ad-hoc task
wave meta "implement user auth"                   # dynamic pipeline
wave status --all
wave logs --step investigate --errors --follow
wave artifacts --step analyze --export ./out
wave list pipelines
wave list runs --limit 20 --run-status completed
wave validate --pipeline gh-pr-review
wave clean --all --keep-last 5 --dry-run
wave cancel --force
```

## Key Patterns

- **Template vars**: `{{ input }}`, `{{ timestamp }}`
- **Parallel steps**: Steps with independent `dependencies` run concurrently
- **Contract retry**: Failed contracts feed errors back to persona (up to `max_retries`)
- **Output formats**: `auto` (TUI on TTY), `json` (NDJSON), `text`, `quiet`

## Development

```bash
go test ./...
go test -race ./...
go run ./cmd/wave run hello-world "test"
wave run hello-world "test" --mock
```

## Complete Reference

For exhaustive patterns, examples, and advanced usage see:

**[`references/full-reference.md`](references/full-reference.md)**

Related Skills

We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.