# Wf New Template

> Create a new weft workflow template interactively. Use only when user types /wf-new-template.

- Skill: `ccplugins/wf-new-template` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ccplugins/wf-new-template`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ccplugins/wf-new-template/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Productivity
- Author: ccplugins (https://skillmd.com/u/ccplugins)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/ccplugins/wf-new-template

---


# Create New Weft Template

Build a custom workflow template through conversation.

## Arguments
$ARGUMENTS

## Instructions

Walk the user through creating a template step by step:

### Step 1: Name
If no name in arguments, ask: "What should this workflow be called? (lowercase, hyphens ok)"

### Step 2: Description
Ask: "One-line description of what this workflow does?"

### Step 3: Steps
Ask: "List the steps in order. You can describe them naturally and I'll structure them."

Example user input: "first plan the work, then implement it, run tests, do a code review, then push"
→ Parse into: plan, implement, test, review, push

### Step 4: Policies (for each step)
For each step, ask if the default `on_fail: block` is ok, or if they want:
- `retry` — auto-retry once on failure
- `continue` — skip failed step and move on
- `block` — halt until manual retry (default)

Suggest sensible defaults: test steps → retry, optional steps → continue.

### Step 5: Guards (optional)
Ask: "Should any steps block certain commands? For example, blocking `git push` until tests pass."

If yes, collect:
- Which step the guard applies to
- The regex pattern to match (e.g., `git push`, `git commit`)
- The message to show when blocked

### Step 6: Preview and confirm
Build the template JSON and show a preview using:
```bash
echo '<json>' | python3 "${CLAUDE_PLUGIN_ROOT}/core/cli.py" save-template
```

Before saving, show the full template and ask: "Look good? Save it?"

### Step 7: Save
```bash
echo '<template_json>' | python3 "${CLAUDE_PLUGIN_ROOT}/core/cli.py" save-template
```

The template is saved to `.claude/weft/templates/<name>.json` in the project directory.

Tell the user: "Template saved! Start it with `/wf-start <name>`"

