Skip to content
Back to skills

Save Workflow

ASecurity

Capture the workflow (ordered steps + concrete commands) just executed in the current conversation into a reusable local skill file at .claude/skills/local/<workflow-name>.md, with auto-detected trigger keywords. Use when the user says 'save the workflow / steps we just did'. NOT for reusable patterns or judgment rules — that is *save-skill (if present).

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 6, 2026
ai-agentsgoapi

Works with

  • api
  • mcp

Security analysis

A100/100

Scanned October 6, 2026

npx -y skills add Sheldon-92/TAD --skill save-workflow --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Save Workflow?

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

Security grade badge for Save Workflow
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sheldon-92-save-workflow/badge)](https://www.skillsdirectory.com/skills/sheldon-92-save-workflow)

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: save-workflow
description: "Capture the workflow (ordered steps + concrete commands) just executed in the current conversation into a reusable local skill file at .claude/skills/local/<workflow-name>.md, with auto-detected trigger keywords. Use when the user says 'save the workflow / steps we just did'. NOT for reusable patterns or judgment rules — that is *save-skill (if present)."
trigger: "*save-workflow, or the user asks to save/capture/record the workflow, steps, or procedure just performed so it can be repeated later."
---

# *save-workflow — Capture the Workflow We Just Ran

## Purpose

Workflows (ordered multi-step procedures) evaporate faster than patterns. This
skill captures the workflow just executed in the current conversation — goal,
ordered steps with the exact commands used, gotchas — into a structured, reusable
local file at `.claude/skills/local/<workflow-name>.md`, while step order and
command details are still hot in context.

## Boundary: workflow capture vs pattern capture

| Command | Captures | Shape of output |
|---------|----------|-----------------|
| `*save-workflow` (this skill) | A WORKFLOW: an ordered multi-step procedure with concrete commands, preconditions, and outputs | Replayable step list |
| `*save-skill` (NOT yet implemented; route there only if present) | A PATTERN: a reusable judgment rule or heuristic, not step-ordered | Rule + rationale |

If the user wants to save a rule/insight rather than a procedure, say so and
point at `*save-skill` (if present) instead of forcing it into workflow shape.

## When to use — and when to refuse

- Use at the end of (or right after) a conversation segment where a multi-step
  procedure was actually performed: commands run, files produced, a repeatable
  sequence completed.
- **MUST refuse honestly**: if the conversation contains no discernible executed
  workflow (pure discussion, brainstorming, a single trivial command), say so
  explicitly and stop. Do NOT fabricate steps that were never performed.

## The 5-Step Capture Flow

### Step 1 — Extract

Reconstruct from the recent conversation context the workflow that was ACTUALLY
performed (not an idealized version):

1. **Goal** — what the workflow accomplishes, in one sentence.
2. **Ordered steps** — each step with the concrete command/tool invocation used
   (real flags, real sub-commands), in the order they must run.
3. **Inputs / preconditions** — what must exist or be true before step 1.
4. **Outputs** — what the workflow produces when it succeeds.
5. **Gotchas** — every failure, retry, surprise, or workaround hit during the
   actual run. These are the highest-value content; do not drop them.

### Step 2 — Auto-detect trigger keywords

Derive **3-6 trigger keywords/phrases** from the workflow's goal and step
vocabulary — the words a user would naturally say when they want this workflow
again (e.g. "publish the podcast", "cut episode audio", "release sync").
Embed these trigger keywords in the generated file's `description` field using
the template's `Triggers:` clause. Prefer phrases the user actually used in
this conversation over invented synonyms.

### Step 3 — Draft (render the template)

Render the captured workflow into EXACTLY this file template (frontmatter keys
and body section headings are fixed; content is per-workflow):

    ---
    name: {workflow-name}
    description: "{one-line what it does}. Triggers: {kw1}, {kw2}, {kw3}[, kw4-6]."
    local: true
    created: {YYYY-MM-DD}
    source: save-workflow
    ---

    # {Workflow Title}

    ## Purpose
    {what this workflow accomplishes and why}

    ## When to use
    {situations/preconditions; when NOT to use}

    ## Steps
    1. {step — concrete command/tool with placeholders}
    2. {step}
    ...

    ## Usage instructions
    {how to invoke/adapt: what to substitute into placeholders, expected outputs}

    ## Gotchas
    - {failure modes, workarounds, ordering traps observed in the real run}

Propose a **kebab-case workflow name** (e.g. `podcast-episode-publish`) derived
from the goal; it becomes both `name:` and the filename `<workflow-name>.md`.

### Step 4 — Confirm (MUST happen before any write)

You **MUST show the user the full draft and the proposed kebab-case filename
for approval BEFORE any write**. Present this as a set of choices, not a
yes/no verification question ("对不对?" invites rubber-stamping). Offer
explicitly:

- **save** — write as shown
- **rename** — change the workflow name / filename
- **edit** — revise specific sections (steps, triggers, gotchas)
- **discard** — save nothing

Naming and keep/reject are human-domain judgments — the human decides. If the
user renames or requests edits, apply them and **re-display the updated draft**
for approval again before writing.

### Step 5 — Write (overwrite-guarded)

Only after explicit approval:

1. If `.claude/skills/local/` does not exist in the current project, create it
   at runtime, and create a `README.md` inside it with this content (3-5
   lines): files here are LOCAL-ONLY captured workflows (`local: true`); they
   are never synced, installed, or published by any framework tooling; they are
   created by `*save-workflow`; delete freely.
2. **Overwrite guard (MUST)**: if `.claude/skills/local/<workflow-name>.md`
   already exists, STOP and ask the user — never silently overwrite. REFUSE to
   overwrite without explicit user confirmation; offer rename as the default
   alternative.
3. Write the approved draft to `.claude/skills/local/<workflow-name>.md`.
4. Tell the user the saved path and how to use it later (see Known behavior
   below).

## Variabilize Rule (MUST)

Episode-specific values — paths, project names, dates, IDs, episode numbers —
**MUST be replaced with `{placeholder}` values** before the draft is shown.
A workflow that can only replay one specific session is a diary, not a skill.

Before/after mini-example:

- Diary (wrong): `ffmpeg -i podcasts/EP04-colin/final/mix.wav -b:a 192k out.mp3`
- Skill (right): `ffmpeg -i {project_output_dir}/mix.wav -b:a 192k {episode_name}.mp3`

Each placeholder should be self-describing (`{project_output_dir}`, not `{x}`).
List what to substitute for each placeholder in the `Usage instructions`
section of the generated file.

## Constraints (MUST)

- Generated files **MUST carry `local: true`** in frontmatter — this is the
  never-synced promise.
- **MUST NOT create or modify any framework file**: alex/blake SKILL.md,
  CLAUDE.md, tad.sh, derive-sync-set.sh, anything under `.tad/`. The ONLY
  writes this skill performs are under `.agents/skills/local/`.
- **MUST NOT write executable scripts or hooks** — output is instruction
  markdown only.
- **MUST NOT call Linear MCP** (or any external API). Linear Agent Skills were
  UX inspiration only.
- **MUST NOT skip Step 4** — no write without a shown draft and explicit
  approval.

## Known behavior and limits

- Files under `.claude/skills/local/` are NOT auto-registered as callable
  skills by the harness (they are not `dir/SKILL.md` form). v1 usage: when the
  user later mentions the workflow name or one of its trigger keywords, Read
  the file from `.claude/skills/local/` and follow its steps.
- Promotion (local workflow → framework skill / capability pack) is out of
  scope for this skill.

## Edge cases

| Situation | Required behavior |
|-----------|-------------------|
| Target file already exists | Stop; ask (overwrite guard, Step 5.2) — never silently overwrite |
| No discernible workflow in conversation | Refuse explicitly with a one-line reason; do not fabricate |
| User renames / requests edits at Confirm | Apply, re-display updated draft, get approval again, then write |
| `.claude/skills/local/` missing | Create directory + README first, then write the workflow file |

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…