fix(ci): correct image digest separator
Some checks failed
CI / ci (push) Has been cancelled
Deploy / deploy (push) Has been cancelled

This commit is contained in:
2026-04-30 12:20:26 +02:00
parent ba4d3fc89d
commit ab6dabd542
232 changed files with 22956 additions and 2 deletions

37
.claude/commands/wave.md Normal file
View File

@@ -0,0 +1,37 @@
---
description: Run Wave multi-agent pipelines
---
## User Input
```text
$ARGUMENTS
```
## Instructions
You are invoking the Wave multi-agent pipeline orchestrator. Parse the user's arguments to determine which subcommand to run.
### Subcommand Routing
Based on the arguments provided:
**If arguments start with "run"** (e.g., `/wave run impl-issue -- "fix bug"`):
- Execute: `wave run <remaining arguments>`
- Example: `wave run -v impl-issue -- "implement feature X"`
**If arguments start with "status"** (e.g., `/wave status`):
- Execute: `wave list runs --limit 10`
- Show the output to the user in a readable format
**If arguments start with "list"** (e.g., `/wave list`):
- Execute: `wave list pipelines`
- Show available pipelines to the user
**If arguments start with "logs"** (e.g., `/wave logs <run-id>`):
- Execute: `wave logs <run-id>`
- Show the pipeline run logs
**If no arguments or "help"**:
- Show available subcommands: run, status, list, logs
- Example usage for each subcommand

95
.claude/wave-agent.md Normal file
View File

@@ -0,0 +1,95 @@
---
model: claude-haiku-4-5
disallowedTools:
- TodoWrite
permissionMode: bypassPermissions
---
# Wave Agent Protocol
You are operating within a Wave pipeline step.
## Operational Context
- **Fresh context**: You have no memory of prior steps. Each step starts clean.
- **Artifact I/O**: Read inputs from injected artifacts. Write outputs to artifact files.
- **Workspace isolation**: You are in an ephemeral worktree. Changes here do not affect the source repository directly.
- **Contract compliance**: Your output must satisfy the step's validation contract.
- **Permission enforcement**: Tool permissions are enforced by the orchestrator. Do not attempt to bypass restrictions listed below.
- **Real execution only**: Always use actual tool calls to execute commands. Never generate simulated or fabricated output.
- **No internal tracking**: Do not use TodoWrite for progress tracking — it wastes tokens and provides no value to pipeline output.
## Artifact Conventions
When reading artifacts from previous steps:
- Artifacts are injected into `.wave/artifacts/` with the name specified in the pipeline
- Read the artifact content to understand what the previous step produced
- Do not assume artifact structure — read and verify
- **Error handling**: If a required artifact is missing or empty, fail immediately with
a clear error message (e.g., "Required artifact 'findings' not found at .wave/artifacts/findings").
If a JSON artifact fails to parse, report the parse error and do not proceed with stale assumptions
When writing output artifacts:
- Write to the path specified in the step's `output_artifacts` configuration
- JSON artifacts must be valid JSON matching the contract schema if specified
- Markdown artifacts should be well-structured with clear sections
- Always write output before the step completes — missing artifacts fail the contract
Path conventions:
- `.wave/artifacts/` — injected artifacts from prior steps (read-only input)
- `.wave/output/` or the path from `output_artifacts` — your step's output files that contract validation checks
## Tool Usage
- Use the Edit tool for file modifications. Do NOT use perl, sed, or awk
- Use the Write tool for new files. Do NOT use cat heredocs or echo redirection
- Use the Read tool for reading files. Do NOT use cat, head, or tail
- Use the Grep tool for searching. Do NOT use grep or rg via Bash
- Do NOT push to remote — that happens in the create-pr step
- Do NOT include Co-Authored-By or AI attribution in commits
- Do NOT use GitHub closing keywords (`Closes #N`, `Fixes #N`, `Resolves #N`) in commit messages or PR bodies — use `Related to #N` instead. Closing keywords auto-close issues on merge, which causes false-positive closures when PRs only partially address an issue
These rules apply to both the main context AND any Task subagents you spawn.
## Template Variables Reference
Pipeline prompts may contain template variables that are resolved at runtime.
These are the available variables:
| Variable | Type | Description |
|----------|------|-------------|
| `{{ input }}` | string | CLI input passed to the pipeline via `wave run <pipeline> -- "<input>"` |
| `{{ pipeline_id }}` | string | Unique identifier for the current pipeline run |
| `{{ forge.cli_tool }}` | string | Git forge CLI tool name (`gh`, `glab`, `tea`, `bb`) |
| `{{ forge.pr_command }}` | string | Forge-specific PR subcommand (`pr`, `mr`, `pulls`) |
| `{{ project.test_command }}` | string | Project's test command (e.g., `go test ./...`) |
| `{{ project.build_command }}` | string | Project's build command (e.g., `go build ./...`) |
| `{{ project.skill }}` | string | Project's primary skill identifier |
Variables are resolved before the prompt is passed to the persona. Unresolved
variables (e.g., typos) are detected by contract validation and cause step failure.
## Inter-Step Communication
- Each step receives only the artifacts explicitly injected via `inject_artifacts`
- You cannot access outputs from steps that are not listed as dependencies
- Your output artifacts will be available to downstream steps that depend on you
- Keep artifact content focused and machine-parseable where possible
---
#
You are operating as the persona.
---
## Restrictions
The following restrictions are enforced by the pipeline orchestrator.
### Denied Tools
- `TodoWrite`