Loading...
Loading...
Design multi-skill workflow systems with artifact-based state handoff. Use when building skill pipelines, sequenced workflows, or when "workflow system", "skill pipeline", "state handoff", or "artifacts" are mentioned.
npx skill4agent add outfitter-dev/agents skills-workflowsoutfitter:skills-devoutfitter:claude-skills!command.claude/
skills/
_shared/
context.md # Living summary of current task + decisions
constraints.md # Non-negotiables (security, style, perf budgets)
triage/SKILL.md
plan/SKILL.md
implement/SKILL.md
review/SKILL.md
artifacts/
triage.md # Output of /triage
plan.md # Output of /plan
test-report.md # Output of /test
review-notes.md # Output of /review
scripts/
run-tests.sh
security-check.sh| File | Purpose | Updated By |
|---|---|---|
| Task state, decisions made, current focus | Each skill as work progresses |
| Project invariants, security rules, style guide | Setup once, rarely changed |
| Step outputs, consumed by next step | The skill that completes that step |
/triage → writes artifacts/triage.md
↓
/plan reads artifacts/triage.md → writes artifacts/plan.md
↓
/implement reads artifacts/plan.md → updates context.md
↓
/test reads artifacts/plan.md → writes artifacts/test-report.md
↓
/review reads all → writes artifacts/review-notes.md# Triage: {task description}
## Problem Statement
{clear definition}
## Scope
- Files: {list}
- Modules: {list}
## Acceptance Criteria
- [ ] {criterion 1}
- [ ] {criterion 2}
## Risks
- {risk 1}
- {risk 2}
---
Generated by /triage at {timestamp}!command!command---
name: pr-summary
context: fork
agent: Explore
allowed-tools: Bash(gh:*)
---
## Pull Request Context
<!-- NOTE: The "!" must be placed in front of backticks for preprocessing to work. -->
- **Diff**: `gh pr diff`
- **Comments**: `gh pr view --comments`
- **Status**: `gh pr status`
Summarize changes and highlight risks.| Use Case | Preprocessing | Why |
|---|---|---|
| Git status | | Deterministic snapshot |
| PR context | | Avoid tool call overhead |
| Schema info | | Fresh at invocation |
| Env info | | Runtime context |
| Context | Use When | Example |
|---|---|---|
| Skill needs conversation history | Implementation skills |
| Clean-room analysis, no chat noise | Research, review, triage |
---
name: triage
context: fork
agent: Explore
allowed-tools: Read, Grep, Glob
------
name: implement
# context: inherit is default
---# triage, review, research skills
context: fork
agent: Explore
allowed-tools: Read, Grep, Glob# plan, spec, architecture skills
context: fork
agent: Plan
allowed-tools: Read, Grep, Glob# implement, fix, refactor skills
# No context/agent fields (inherit default)# deploy, ship, commit skills
disable-model-invocation: true| Failure Mode | Mitigation |
|---|---|
| Context blowup | Keep analysis in |
| State lost between steps | All state in files, not conversation |
| Unsafe auto-execution | |
| Tool permission creep | Explicit |
| Workflow step skipped | Artifacts serve as gates (next step reads previous) |
---
name: {step-name}
description: {what this step does}. Use when {trigger conditions}.
context: fork # or omit for inherit
agent: Explore # if forked
allowed-tools: Read, Grep, Glob
disable-model-invocation: true # if side-effectful
---
# Purpose
- Why this step exists
- What "done" looks like
# Inputs
- Read: artifacts/{previous-step}.md
- Read: .claude/skills/_shared/constraints.md
- $ARGUMENTS: {expected input}
# Process
1. {step 1}
2. {step 2}
3. {step 3}
# Outputs
- Write: artifacts/{this-step}.md
- Update: .claude/skills/_shared/context.md with decisions
# Constraints
- {constraint 1}
- {constraint 2}disable-model-invocation: trueallowed-tools!command