add-pipeline
Scaffold a Trinity-compatible long-running pipeline inside any agent — creates projects/<slug>/{project.md, pipeline.yaml, instances/}, copies…
Skill by Ability.ai
Install
Works with Claude Code. Read the repository before you give any tool access to your data.
npx agentmarket install skill/abilityai-add-pipeline
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/add-pipeline
Tools it pre-approves 8
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Read,Write,Edit,Bash,Glob,Grep,AskUserQuestion,Skill
What's inside
- Skill name
add-pipeline- Description
- Scaffold a Trinity-compatible long-running pipeline inside any agent — creates projects/<slug>/{project.md, pipeline.yaml, instances/}, copies pipeline-tick/status/recover/pause/resume skills into .claude/skills/, sets up the ~/.trinity/ read surface, installs the heartbeat schedule, adds a dashboard section, and removes the harmful legacy pre-check hook if present.
- License
- Apache-2.0
- Allowed tools
- Read,, Write,, Edit,, Bash,, Glob,, Grep,, AskUserQuestion,, Skill
- Metadata
- author: Ability.ai · mirror: abilities@06679ae plugins/agent-dev/skills/add-pipeline · created: 2026-05-23 · updated: 2026-10-20 · version: 1.10
- Instructions
- 343 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves some shell commands
Files (8)
- SKILL.md
- pipeline-pause.md · templates/
- pipeline-recover.md · templates/
- pipeline-resume.md · templates/
- pipeline-status.md · templates/
- pipeline-tick.md · templates/
- pipeline.yaml.template · templates/
- state.json.template · templates/
SKILL.md (first lines)
# Add Pipeline
> ℹ️ **First, set expectations:** before anything else, print one short line with this skill's version and its most recent change — the top entry of `metadata.changelog` above — e.g. `add-pipeline vX.Y — recent: <summary>`. Then proceed.
Add a long-running, multi-stage **pipeline** to any Trinity-compatible agent. Implements the canonical pipeline spec: the agent owns the DAG and stage logic; Trinity owns the read surface (`~/.trinity/pipelines/*.yaml` + `~/.trinity/pipeline-state/**/*.json`); a single heartbeat skill (`pipeline-tick`) owns advancement, retry, and escalation.
**When to use a pipeline (and when not):** reach for this when the work is a *population* of items that each crawl through *multiple stages over many runs* — or a **multi-agent process where each stage is another agent's playbook** (a release propagation, an onboarding chain; one *instance* = one run, `agent:` on the stage, the tick dispatches a one-line playbook call — fleet convention `protocols/playbook-call.md`) — and you need durable per-item state, isolated retries, and an at-a-glance "what stage is each item in" — e.g. per-customer onboarding, document ingestion, batched research crawls, especially when the whole batch can't finish in one scheduled run. If it's a single recurring task, a scheduled playbook is simpler — don't reach for a pipeline. And mind the boundary: instances are **multi-instance, not multi-tenant** — their *state* is isolated but they all run inside the **same agent** (same credentials, context window, and heartbeat), so for genuinely isolated or large-scale tenants, deploy **one agent per tenant** (Trinity fan-out) rather than one pipeline with many instances — that cross-agent layer is `/add-orchestrator`'s domain: its `/orchestrate` skill does the routing, fan-out, and ephemeral roll-out/tear-down across a fleet, and its `/discover-agents` surfaces this agent's pipelines to the fleet map.
**Keep heavy CPU jobs out of the heartbeat turn.** A stage that does real compute (a FAISS/index rebuild, bulk embedding, a full bootstrap) must **not** run synchronously inside `pipeline-tick`'s LLM turn. A headless run is a single agent turn and can't host a job past the **~10-min synchronous Bash ceiling** — past it the harness auto-backgrounds the job, active waiting is blocked, and the turn ending reaps the backgrounded task (it fires `killed`, not `completed`; see `/trinity:onboard` → *Long-running jobs inside a run*). Model the heavy work as an **OS-level job** (a container cron / systemd unit or a small non-LLM sidecar writing a **done-marker**), and let the stage only **trigger it and verify the artifact moved** (mtime advanced / count > 0 — not an exit code or `business_status`). The heartbeat stays a cheap read-and-advance loop.
**What gets installed:**
| Artifact | Location | Purpose |
|---|---|---|
| `projects/<slug>/project.md` | agent repo | human-readable project description |
| `projects/<slug>/pipeline.yaml` | agent repo | canonical DAG definition (you edit this) |
| `projects/<slug>/instances/` | agent repo | one subdir per tenant/zone (populate via `/add-pipeline-instance`) |
| `.claude/skills/pipeline-tick/` | agent repo | the heartbeat — autonomous, scheduled |
| `.claude/skills/pipeline-status/` | agent repo | operator view |
| `.claude/skills/pipeline-recover/` | agent repo | operator override |
| `.claude/skills/pipeline-pause/` | agent repo | operator pause |
| `.claude/skills/pipeline-resume/` | agent repo | operator resume |
| `~/.trinity/pipelines/<slug>.yaml` | user home | write-through copy — Trinity's read surface |
| `~/.trinity/pipeline-state/<slug>/` | user home | per-instance state, read by dashboards and other agents |
| `dashboard.yaml` `Pipelines` section | agent repo (if present) | table widget (Trinity's `sections[]`→`widgets[]` schema) — rows materialized by `pipeline-tick` each pass |
| heartbeat schedule | Trinity MCP (if available) | `pipeline-<slug>-heartbeat` cron `*/15 * * * *` |
| `template.yaml` `schedules:` entry | agent repo (if present) | durable copy of the heartbeat — reconciled by `/trinity:sync`, read by fleet orchestrators (`/discover-agents`) |
---
## Process
### Step 1: Preflight
Run from inside the target agent directory (or ask for the path). Verify:
```bash
# Must be an agent root (CLAUDE.md present)
[ -f CLAUDE.md ] || ask_user_for_agent_path
# Must have a .claude/skills/ directory (create if missing)
mkdir -p .claude/skills
# Must have jq + yq available (used by templates and validators)
command -v jq >/dev/null 2>&1 || warn "jq not installed — runtime skills will fail. Install: brew install jq"
command -v yq >/dev/null 2>&1 || warn "yq not installed — runtime skills will fail. Install: brew install yq"
```
If `CLAUDE.md` is missing, ask the user to point to the correct directory or run `/create-agent` first.
### Step 2: Gather pipeline metadata
Use `AskUserQuestion` (one question at a time, or batch if you prefer):
**Q1 — Pipeline slug** (free text)
- "Short identifier for this pipeline, lowercase-kebab-case (e.g. `columns`, `ingest`, `onboarding`). Used as the directory name and the `pipeline_id` in yaml."
- Validate: matches `^[a-z][a-z0-9-]{1,40}$`. Refuse if `projects/<slug>/` already exists (suggest `/add-pipeline-stage` to extend, or pick a different slug).
**Q2 — Pipeline display name** (free text)
- "Human-readable name (e.g. 'Columns Production Pipeline')."
**Q3 — One-line description** (free text)
- "What does this pipeline do? One or two sentences."
**Q4 — Heartbeat cadence**
- `*/15 * * * *` (every 15 minutes — recommended default)
- `0 * * * *` (hourly — for slow-moving pipelines)
- `*/5 * * * *` (every 5 minutes — for time-sensitive flows)
- Custom (free text cron expression)
**Q5 — Install runtime skills?**
- `Yes — install all five` (pipeline-tick, pipeline-status, pipeline-recover, pipeline-pause, pipeline-resume) — recommended
- `Only the heartbeat` (just pipeline-tick; skip operator skills) — for headless agents
- `Skip — I'll wire my own` — only scaffold the project files
If any of the five runtime skill directories already exist under `.claude/skills/`, ask: overwrite / skip existing / cancel.
### Step 3: Scaffold project directory
```bash
SLUG="<pipeline-slug from Q1>"
mkdir -p "projects/$SLUG/instances"
mkdir -p "projects/$SLUG/skills" # for stage-skill symlinks if the user wants them grouped
```
Write `projects/$SLUG/project.md`:
```markdown
---
name: <Pipeline Display Name>
status: active
created: <YYYY-MM-DD>
owner: <agent-name from CLAUDE.md or env user>
pipeline_id: <SLUG>
---
# <Pipeline Display Name>
<one-line description from Q3>
## Stages
Stages live in `pipeline.yaml`. Edit there or use `/add-pipeline-stage <slug>` to extend.
## Instances
Instances live in `instances/<instance-slug>/`. Add new ones via `/add-pipeline-instance <slug> <instance-slug>`.
## Operations
- `/pipeline-status <slug>` — current state of every instance
- `/pipeline-recover <slug> <instance>` — unstick a blocked instance
- `/pipeline-pause` / `/pipeline-resume` — maintenance toggles
```
Write `projects/$SLUG/pipeline.yaml` from `templates/pipeline.yaml.template`, substituting:
- `{{PIPELINE_ID}}` → slug
- `{{PIPELINE_NAME}}` → display name
- `{{PIPELINE_DESCRIPTION}}` → descriptionFrom Abilityai/trinity-skills, Apache-2.0.
More from Abilityai/trinity-skills
- 0.570score
explain-visually
Ability.ai
Explain a complex topic back to you with visuals - the right diagram for each facet (flowchart, timeline, sequence, schema/ER, state machine, chart…
SkillAFreshness: AClaude Code - 0.570score
animated-explainer
Ability.ai
Build an animated, data-driven explainer film for a real system — a canvas film that renders live from the product's own data and cannot drift, not an…
SkillAFreshness: AClaude Code - 0.570score
file-indexer
Abilityai
Generate a comprehensive file system index with directory tree, file sizes, and modification dates.
SkillAFreshness: AClaude Code +9 - 0.567score
gemini-critic
Ability.ai
Ask Gemini's most powerful model for an independent second opinion - critique code with fresh eyes, evaluate an article, challenge a plan.
SkillAFreshness: AClaude Code +9 - 0.566score
agent-fleet-analysis
Ability.ai
Scan one or more directories of agents in ANY paradigm — Claude Code, n8n workflow exports, framework apps (LangChain/CrewAI/AutoGen), or freeform-coded…
SkillAFreshness: AClaude Code +9 - 0.565score
document-extractor
Abilityai
Extracts key information from documents (PDFs, images, text files) in a folder and creates structured markdown summaries with the same filename but .md…
SkillAFreshness: AClaude Code +9 - 0.561score
create-playbook
Ability.ai
Create a new skill or playbook.
SkillAFreshness: AClaude Code +9 - 0.561score
close
Ability.ai
Close the current issue without a git commit — adds summary comment and marks done.
SkillAFreshness: AClaude Code +9 - 0.561score
create-explanatory-image
Ruby
Generate explanatory diagrams and infographics that visually communicate concepts.
SkillAFreshness: AClaude Code +9 - 0.561score
autoplan
Ability.ai
Analyze a skill issue before implementing — reads the affected SKILL.md, identifies what changes are needed and any risks
SkillAFreshness: AClaude Code +9 - 0.561score
add-git-sync
Ability.ai
Add git-as-state hooks to an agent — auto-commits on Stop, rebases on SessionStart, snapshots on PreCompact.
SkillAFreshness: AClaude Code +9 - 0.561score
commit
Ability.ai
Commit changed skill files and close the in-progress issue — writes a traceability commit message referencing the issue number
SkillAFreshness: AClaude Code +9
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 1
- Last commit (this folder)
- Oct 20, 2026 (7 days ago)
- Last release
- Oct 21, 2026 (6 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.10
- License
- Apache-2.0
- Repository
- github.com/Abilityai/trinity-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from Ability.ai
- 0.570score
animated-explainer
Ability.ai
Build an animated, data-driven explainer film for a real system — a canvas film that renders live from the product's own data and cannot drift, not an…
SkillAFreshness: AClaude Code - 0.570score
explain-visually
Ability.ai
Explain a complex topic back to you with visuals - the right diagram for each facet (flowchart, timeline, sequence, schema/ER, state machine, chart…
SkillAFreshness: AClaude Code - 0.567score
gemini-critic
Ability.ai
Ask Gemini's most powerful model for an independent second opinion - critique code with fresh eyes, evaluate an article, challenge a plan.
SkillAFreshness: AClaude Code +9 - 0.566score
agent-fleet-analysis
Ability.ai
Scan one or more directories of agents in ANY paradigm — Claude Code, n8n workflow exports, framework apps (LangChain/CrewAI/AutoGen), or freeform-coded…
SkillAFreshness: AClaude Code +9 - 0.561score
autoplan
Ability.ai
Analyze a skill issue before implementing — reads the affected SKILL.md, identifies what changes are needed and any risks
SkillAFreshness: AClaude Code +9 - 0.561score
close
Ability.ai
Close the current issue without a git commit — adds summary comment and marks done.
SkillAFreshness: AClaude Code +9
Cite this page
add-pipeline skill. Agent Mart. https://agentmart.dev/skills/abilityai-add-pipeline (last updated 2026-10-24)