Skip to content
Back to skills

Pipeline

ASecurity

Semantics of the pipeline dials (mode, approval level, swarm flag) and the /pipeline-* command family. Use when the User asks to switch mode, approvals or swarm, or types "/pipeline", "переключи режим", "смени уровень одобрения", "включи swarm", "давай обсудим", "просто поговорим".

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 19, 2026
ai-agentspythonshellgit

Security analysis

A100/100

Scanned October 19, 2026

npx -y skills add AlexWaha/agentry --skill pipeline --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pipeline?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pipeline
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/alexwaha-pipeline/badge)](https://www.skillsdirectory.com/skills/alexwaha-pipeline)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pipeline
description: Semantics of the pipeline dials (mode, approval level, swarm flag) and the /pipeline-* command family. Use when the User asks to switch mode, approvals or swarm, or types "/pipeline", "переключи режим", "смени уровень одобрения", "включи swarm", "давай обсудим", "просто поговорим".
---

# Pipeline dials and commands

This skill and the `pipeline-*` command skills belong to this project and are
edited here. Project commands and paths live in the adapter
`.claude/pipeline-adapter.md`.

## Three dials

| Dial | Values | Meaning |
|---|---|---|
| mode | `build`, `plan`, `talk` | which flow runs: implementation, design (brief, plan, spec, task files; no product code), or plain discussion (nothing tracked) |
| approvals | `manual`, `assisted`, `auto` | how many checkpoints the User must still answer (default grants below) |
| swarm | `on`, `off` | build only: `on` runs each epic as a parallel agent swarm (`${CLAUDE_PLUGIN_ROOT}/skills/swarm/SKILL.md`), `off` runs one task at a time |

Default grants per approval level (what passes WITHOUT asking the User):

| Level | Take a task | Commit | Push |
|---|---|---|---|
| `manual` | no | no | no |
| `assisted` | no | yes | no |
| `auto` | yes | yes | yes, work branch only, unless `approvals_never_granted` lists it |

`manual` grants nothing. `assisted` grants the commit only and does not take the
next task. `auto` grants take and commit, and the push of the work branch unless
`pipeline.json` `approvals_never_granted` lists it; the shipped config lists
`push` and `trunk_push`, so no level grants them and `auto` stops at the push.
Subagent Write/Edit and explicit-path shell writes to that file are denied;
cd-relative and interpreter writes are not yet covered (task-0116).

Push to the main branch is never granted at any level. Only the project config
can allow it (adapter key `push_to_main`, default forbidden), and the hooks
enforce it. In `solo` mode (`workflow.mode`) the merge into main happens locally
after the commit approval; there is no push step.
Trunk-based projects (adapter key `trunk_based`) commit and push on the main branch; the hooks take the task from the single active run and apply the same commit and push approvals, denying when zero or several runs are active.

Adapter key `approvals_grants` names the config that lists checkpoints never
granted at any level, enforced in code. Never answered by any level: planning
questions and moving a task to done. Merging into main needs the User unless the
adapter defines a local merge mode (e.g. `solo`) and its trigger.

All three dials persist across sessions until changed; the SessionStart hook
prints any non-default value.

## Commands

Each command sets exactly the dials in its name; the swarm flag is part of the
name for every build command (`-swarm` = on, absent = off). Dials not in the
name keep their value.

| Command | Sets |
|---|---|
| `/pipeline-show` | nothing, prints all three |
| `/pipeline-plan`, `/pipeline-talk` | mode |
| `/pipeline-build`, `/pipeline-build-swarm` | mode build, swarm off / on |
| `/pipeline-build-manual`, `-assisted`, `-auto` | mode build, approvals, swarm off |
| `/pipeline-build-manual-swarm`, `-assisted-swarm`, `-auto-swarm` | mode build, approvals, swarm on |
| `/pipeline-approvals-manual`, `-assisted`, `-auto` | approvals |
| `/pipeline-swarm-on`, `/pipeline-swarm-off` | swarm |

After any switch, run the adapter's `show` and report the state in one line.

## Worktrees (config, not a dial)

Parallel tasks are switched by `pipeline.json` `worktrees`, not by a command:
`{"enabled": false, "max_parallel": 2}`. It is independent of the three dials and
applies to the `build` flow only. With `enabled` true, `advance.py` registers each
non-umbrella task into its own git worktree (`<repo path>-wt/<task>`, branch
`<type>/<task>`), its gates run there, and up to `max_parallel` tasks hold an
editing stage at once (the swarm dial's umbrellas and any run registered before the
flag stay in `src/` and exclusive). Every dispatch for such a task starts with
`Task worktree: task-NNNN` and carries the `Worktree:` guidance line that
`advance.py` prints. Read the current state with
`python "${CLAUDE_PLUGIN_ROOT}/tools/pipeline/worktree.py" --list`. Rules,
rollout and rollback: "Parallel tasks in worktrees" in `rules/orchestration.md`.

## Behaviour per mode

- **build**: drive the build flow through the project's gated scripts; with swarm on follow the swarm skill, with swarm off one task at a time. The build flow is `plan -> plan-approval -> implement -> test -> review -> ready -> done`; every type except those in `skip_for_types` (`bugfix`, `techdebt`) starts at `plan` and needs the User's plan approval (`approve.py --gate plan`) before any edit outside `.agentry/`, while `bugfix` and `techdebt` start at `implement`.
- **abandon** (inside build): when the User drops a task, after a card, run `approve.py --task T --abandon --reason "<why>"`. It closes the run as done/abandoned, moves the file to `done/`, touches no git and owes no handoff doc or memory stamp. Details: "Abandon" in `rules/orchestration.md`.
- **plan**: gated design flow; task files land in the backlog; no product code.
- **talk**: answer, investigate, prototype in scratch; no task files, no branches, no product edits. Offer to capture anything worth keeping.

When the User asks to implement something while `plan` or `talk` is active, say which mode is on and ask before switching. Safety gates stay on in every mode: no push to protected branches, no destructive commands, no AI attribution, no em dash.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.