skills/skillify/SKILL.md
Capture a repeatable process from the current session into a reusable Amplifier SKILL.md skill file. Analyzes the conversation, interviews the user to confirm structure, and writes a complete skill to disk. Use when the user wants to create a skill, save a workflow as a skill, turn a process into a reusable skill, or mentions "skillify", "create skill", "make a skill", "save as skill", "capture workflow", "turn this into a skill", "new skill", or wants to automate a repeatable process they just performed.
npx skillsauth add microsoft/amplifier-bundle-skills skillifyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create a well-structured, reusable Amplifier SKILL.md skill file that captures
a repeatable process from the current session so it can be invoked again later
via /skill-name. The skill must conform to the Agent Skills specification
with Amplifier extensions.
$ARGUMENTS: (Optional) Description of the process to capture as a skill.Before writing any skill content, load the authoritative skills reference:
load_skill("skills-assist")
Ask skills-assist about:
skills-assist is the source of truth for Amplifier skill conventions. The examples in this skill are illustrative samples — consult skills-assist for the complete and up-to-date specification.
Success criteria: You have loaded and consulted skills-assist for the latest skill authoring conventions.
Before asking the user anything, analyze the conversation history to identify:
Success criteria: You have a clear mental model of the process, its steps, inputs, outputs, and success criteria.
Output density rule: Group related decisions into natural clusters — not one question per turn (tedious) and not everything at once (overwhelming). Present your analysis first, let the user absorb it, then ask related questions together. For example, present identity/routing decisions as one cluster, execution model decisions as another.
Calibrate interview depth to the complexity of the process. A simple 2-step workflow needs 1-2 rounds. A complex multi-step workflow with parallel tasks and irreversible actions needs the full treatment.
context: fork) as an isolated subagent. Forked is better for
self-contained tasks that don't need mid-process user input; inline is
better when the user wants to steer mid-process..amplifier/skills/<name>/SKILL.md) — project-specific~/.amplifier/skills/<name>/SKILL.md) — follows you across projectsamplifier-bundle-skills/skills/<name>/SKILL.md) — if
contributing to the curated collectionSkip this round for simple skills with obvious steps. For complex skills:
Pay special attention to places where the user corrected you during the session. These corrections are the most valuable design signals.
Stop interviewing once you have enough information. Don't over-ask for simple processes.
Success criteria: You have all the information needed to write the SKILL.md and the user has confirmed the design.
Create the skill directory and file at the location the user chose in Round 2.
Use this template as a starting point. Consult skills-assist for the full set of available frontmatter fields and current conventions:
---
name: {{skill-name}}
description: >
{{What this skill does. Front-load the key use case. Include trigger
phrases and "Use when..." guidance — this is what the model sees in the
skills visibility list to decide whether to auto-invoke.
Keep under 250 characters for the first sentence; can be longer overall.}}
user-invocable: true
allowed-tools:
{{list of Amplifier tool names observed during the session, e.g.:}}
{{- read_file}}
{{- write_file}}
{{- edit_file}}
{{- bash}}
{{- glob}}
{{- grep}}
{{- delegate}}
model_role: {{general | coding | reasoning | critique | writing | fast}}
{{Only include if forked:}}
{{context: fork}}
{{disable-model-invocation: true}}
---
# {{Skill Title}}
{{Brief statement of what the skill does and its goal. Define concrete
success artifacts — not just "writing code" but "a passing test suite
and a committed implementation."}}
## Inputs
- `$ARGUMENTS`: {{Description of expected arguments, or "(Optional) ..."}}
## Steps
### 1. {{Step Name}}
{{Specific, actionable instructions. Include commands when appropriate.}}
**Success criteria**: {{REQUIRED on every step. What proves this step
is done and we can move on.}}
Direct (default — omit if direct), Delegate to [agent]
(e.g., "Delegate to foundation:explorer"), or [human] (user does it)[human] in the titledescription must carry all routing weight — trigger phrases, "Use when..."
guidance, and example user messages belong here since this is what the
visibility hook shows to the modelallowed-tools should be the minimum set neededcontext: fork only for self-contained skills that don't need user steeringdisable-model-invocation: truemodel_role should match the skill's primary cognitive taskuser-invocable: true registers the skill as a /name slash commandSuccess criteria: The complete SKILL.md content has been drafted.
Before committing, verify the skill works:
Save the skill to .amplifier/skills/<name>/SKILL.md (immediately
discoverable, no config changes needed).
In the same session, call load_skill("<name>") and verify:
Optionally, spawn a test session via delegate(agent="self", context_depth="none") that loads the skill and follows its
instructions against a synthesized test input.
If issues are found, fix and re-test.
Success criteria: The skill loads correctly and its instructions are actionable.
Before writing the file, present the complete SKILL.md content in a yaml code block so the user can review it with proper syntax highlighting.
Ask the user: "Does this look good to save?"
After confirmation:
Create the skill directory:
mkdir -p <chosen-path>/<skill-name>
Write the SKILL.md file to <chosen-path>/<skill-name>/SKILL.md
If the skill references companion files (templates, examples, scripts), create those as well.
Tell the user:
/skill-name [arguments]Success criteria: The file is written to disk and the user knows how to use it.
development
Convene the persona panel on the CURRENT conversation / work-in-progress — the plan, design, or decision you've been building in this session. The INLINE counterpart to /council (which forks and runs isolated, so it cannot see the chat). Use when you want the council to critique what we're working on right now.
development
Convene the persona panel (six orthogonal review lenses) on a target — cold independent fan-out, debate-to-consensus, synthesized verdict with recorded dissent and a roster manifest.
development
Hard-won patterns for probing, building, troubleshooting, and iterating against Microsoft Graph API endpoints -- especially from a browser SPA using delegated MSAL.js auth calling Graph directly with no backend (lessons generalize to any Graph integration). Covers the throwaway-probe-file methodology for de-risking before building, OData/query quirks, permission and admin-consent sequencing, recordings/transcripts access patterns (SharePoint REST, not Graph), CSP requirements for a pure-browser SPA, retry/pagination/backoff patterns, and the MSAL/EasyAuth auth-redirect-loop debugging saga. Use when integrating with Microsoft Graph, Teams APIs, MSAL.js, or EasyAuth; when hitting an unexpected Graph error (400/403/429), a silent missing-scope failure, an auth redirect loop, or a CSP violation that only appears in production; or when deciding how to validate a new Graph capability before committing it to a codebase.
tools
Use when building an Amplifier-powered workflow or automation tool and deciding how to expose it — as standalone .dot attractor pipelines (incl. inside the Resolve dot-graph resolver), an importable Python lib, agent-callable tool modules, or a CLI. Covers the four leverage levels, the DRY rule that keeps logic in ONE home, the judgment for which levels a real consumer actually needs (and when adding a level is just ceremony), and the maximally-DRY attractor-only specialization where the .dot pipeline is the sole logic home.