/create
Interactive outline co-creation for developer advocacy content — collects format, audience profile, story arc (Problem→Journey→Insight→Action), and voice/tone; detects out-of-scope requests (FAQs, comparison tables); surfaces conflicts between user brief and audience needs.
Claude Code
$ npx -y skills add Borda/AI-Rig --skill create --agent claude-code
Codex
$ npx skills add Borda/AI-Rig --skill create -a codex -y
Cursor
$ npx skills add Borda/AI-Rig --skill create -a cursor -y
Gemini CLI
$ npx skills add Borda/AI-Rig --skill create -a gemini-cli -y
GitHub Copilot
$ npx skills add Borda/AI-Rig --skill create -a github-copilot -y
OpenCode
$ npx skills add Borda/AI-Rig --skill create -a opencode -y
Windsurf
$ npx skills add Borda/AI-Rig --skill create -a windsurf -y
SKILL.md
create.SKILL.mdname: create
description: 'Interactive outline co-creation for developer advocacy content — collects format, audience profile, story arc (Problem→Journey→Insight→Action), and voice/tone; detects out-of-scope requests (FAQs, comparison tables); surfaces conflicts between user brief and audience needs. Writes approved outline to .plans/content/<slug>-outline.md for foundry:creator to execute. Use when starting a blog post, Marp slide deck, social thread, talk abstract, lightning talk, animated SVG, or short video (HyperFrames HTML composition; render stays user-run). SKIP: idea generation before an outline exists (use foundry:brainstorm — brainstorm explores directions into a tree; create co-creates the outline, foundry:creator writes the finished artifact).'
argument-hint: '[topic]'
disable-model-invocation: true
allowed-tools: Read, Write, Bash, TaskCreate, TaskUpdate, TaskList, AskUserQuestion, Agent, Skill
effort: medium
<objective>
Story arc four-beat: Problem → Journey → Insight → Action.
NOT for: implementation, code gen, README writing (use `foundry:doc-scribe`), structured ref docs (FAQs, comparison tables — use `foundry:doc-scribe`), media processing of existing files (download, transcode, trim, transcribe — user runs `ffmpeg` / Whisper / `yt-dlp`).
</objective>
<inputs>
- **$ARGUMENTS**: optional — topic or goal, any form; one sentence enough. Format hints accepted ("a blog post about…", "talk abstract for…").
</inputs>
<workflow>
**Task hygiene** — task tools may be deferred; load before first use: `ToolSearch(query="select:TaskList,TaskCreate,TaskUpdate,TaskGet", max_results=4)`. Call `TaskList` first and triage each task it returns: `completed` if work clearly done, `deleted` if orphaned, keep `in_progress` only if genuinely continuing. Never spend a turn on bookkeeping alone — every `TaskCreate`/`TaskUpdate` ships in the same response as the next substantive tool call; one exception, `TaskUpdate(completed)` immediately before a long output block (`rules/task-lifecycle.md`).
**Task tracking**: TaskCreate all steps in the same response as the first real tool call — never a response of bookkeeping alone.
Step 1 — Parse topic and out-of-scope detection
- $ARGUMENTS provided: extract topic; note embedded format hint.
- No $ARGUMENTS: AskUserQuestion — "What are you trying to write about, and for whom?" (free text). After answer, re-check against out-of-scope conditions: answer describes FAQs, comparison tables, feature matrices, README content, or docstrings: stop. Respond: "This format doesn't fit a narrative arc — use `foundry:doc-scribe` for structured reference content." No further steps.
- Out-of-scope gate (when $ARGUMENTS provided): brief describes FAQs, comparison tables, feature matrices, or ref docs: stop. Respond: "This format doesn't fit a narrative arc — use `foundry:doc-scribe` for structured reference content." No further steps.
- Media-processing gate (both inputs — $ARGUMENTS and the opener answer): brief only asks to download, transcode, trim, compress, caption or transcribe existing media, no new narrative artifact: stop. Respond: "This is media processing, not a narrative artifact — run `ffmpeg` / Whisper / `yt-dlp` directly; `/foundry:create` authors new content only." No further steps. Source media for a new artifact (own talk recording, demo clip) stays in scope: record its path in outline `## Constraints` as context.
Step 2 — Format and audience (1 AskUserQuestion call — 2 questions; +1 follow-up call when Q1 = (d))
**Format + audience** (single AskUserQuestion call with 2 questions; AskUserQuestion allows at most 4 options per question, so the four short talk and visual formats share slot (d)):
- Q1 "What content format?": (a) blog post · (b) conference / meetup talk with Marp slide deck ★ · (c) social thread (X/LinkedIn) · (d) short talk or visual — talk abstract, lightning talk, animated SVG, short video
- Q2 "Who is the audience?": (a) beginners — new to problem space ★ · (b) intermediate — familiar with basics, seeking depth · (c) expert — know landscape, want novel insight · (d) describe your own profile
Q1 = (d) → one follow-up AskUserQuestion call, 1 question "Which format?": (a) talk abstract (CFP submission) · (b) lightning talk (5–10 min) · (c) animated SVG (looping explainer graphic, embeddable via `<img>`) · (d) short video (≤60 s, HyperFrames HTML composition). No ★ — pure user choice. All seven formats stay reachable.
After answer: restate one sentence covering format + audience ("Got it — a [format] for [audience description].").
Step 3 — Arc construction and conflict check
Propose four-beat arc from topic + audience:
- **Problem**: concrete opening hook — specific pain or question, not generic
- **Journey**: 3–5 key points (what tried, what failed, what arc covers)
- **Insight**: core "aha" framed for stated audience level — name directly
- **Action**: specific next step for audience
- **Visual formats** (animated SVG, short video): beats map to timed segments (SVG) or scenes (video); Journey 1–3 points max; Action = closing frame/card
**Out-of-scope re-check (re-apply the Step 1 test to the constructed arc)**: the Step 1 gate tests the brief; this one tests what the arc turned out to be. If the Journey beat resolves mainly to a feature-by-feature comparison, an options matrix, a question-and-answer list, or reference material with no narrative through-line — i.e. the beats only hold together as a table or list — stop here, before writing any outline. Respond: "The arc for this topic resolves to structured reference content rather than a narrative — use `foundry:doc-scribe` instead." Do not write the outline file and do not offer the Step 4 generation gate. A topic that merely *mentions* alternatives still passes: the test is whether the Insight beat names a single transferable idea, or just summarises the comparison.
**Editorial conflict check**: brief implies expert audience but topic introductory,
Read more
name: create description: 'Interactive outline co-creation for developer advocacy content — collects format, audience profile, story arc (Problem→Journey→Insight→Action), and voice/tone; detects out-of-scope requests (FAQs, comparison tables); surfaces conflicts between user brief and audience needs. Writes approved outline to .plans/content/<slug>-outline.md for foundry:creator to execute. Use when starting a blog post, Marp slide deck, social thread, talk abstract, lightning talk, animated SVG, or short video (HyperFrames HTML composition; render stays user-run). SKIP: idea generation before an outline exists (use foundry:brainstorm — brainstorm explores directions into a tree; create co-creates the outline, foundry:creator writes the finished artifact).' argument-hint: '[topic]' disable-model-invocation: true allowed-tools: Read, Write, Bash, TaskCreate, TaskUpdate, TaskList, AskUserQuestion, Agent, Skill effort: medium
<objective>
Story arc four-beat: Problem → Journey → Insight → Action.
NOT for: implementation, code gen, README writing (use `foundry:doc-scribe`), structured ref docs (FAQs, comparison tables — use `foundry:doc-scribe`), media processing of existing files (download, transcode, trim, transcribe — user runs `ffmpeg` / Whisper / `yt-dlp`).
</objective>
<inputs>
- **$ARGUMENTS**: optional — topic or goal, any form; one sentence enough. Format hints accepted ("a blog post about…", "talk abstract for…").
</inputs>
<workflow>
**Task hygiene** — task tools may be deferred; load before first use: `ToolSearch(query="select:TaskList,TaskCreate,TaskUpdate,TaskGet", max_results=4)`. Call `TaskList` first and triage each task it returns: `completed` if work clearly done, `deleted` if orphaned, keep `in_progress` only if genuinely continuing. Never spend a turn on bookkeeping alone — every `TaskCreate`/`TaskUpdate` ships in the same response as the next substantive tool call; one exception, `TaskUpdate(completed)` immediately before a long output block (`rules/task-lifecycle.md`).
**Task tracking**: TaskCreate all steps in the same response as the first real tool call — never a response of bookkeeping alone.
Step 1 — Parse topic and out-of-scope detection
- $ARGUMENTS provided: extract topic; note embedded format hint.
- No $ARGUMENTS: AskUserQuestion — "What are you trying to write about, and for whom?" (free text). After answer, re-check against out-of-scope conditions: answer describes FAQs, comparison tables, feature matrices, README content, or docstrings: stop. Respond: "This format doesn't fit a narrative arc — use `foundry:doc-scribe` for structured reference content." No further steps.
- Out-of-scope gate (when $ARGUMENTS provided): brief describes FAQs, comparison tables, feature matrices, or ref docs: stop. Respond: "This format doesn't fit a narrative arc — use `foundry:doc-scribe` for structured reference content." No further steps.
- Media-processing gate (both inputs — $ARGUMENTS and the opener answer): brief only asks to download, transcode, trim, compress, caption or transcribe existing media, no new narrative artifact: stop. Respond: "This is media processing, not a narrative artifact — run `ffmpeg` / Whisper / `yt-dlp` directly; `/foundry:create` authors new content only." No further steps. Source media for a new artifact (own talk recording, demo clip) stays in scope: record its path in outline `## Constraints` as context.
Step 2 — Format and audience (1 AskUserQuestion call — 2 questions; +1 follow-up call when Q1 = (d))
**Format + audience** (single AskUserQuestion call with 2 questions; AskUserQuestion allows at most 4 options per question, so the four short talk and visual formats share slot (d)):
- Q1 "What content format?": (a) blog post · (b) conference / meetup talk with Marp slide deck ★ · (c) social thread (X/LinkedIn) · (d) short talk or visual — talk abstract, lightning talk, animated SVG, short video
- Q2 "Who is the audience?": (a) beginners — new to problem space ★ · (b) intermediate — familiar with basics, seeking depth · (c) expert — know landscape, want novel insight · (d) describe your own profile
Q1 = (d) → one follow-up AskUserQuestion call, 1 question "Which format?": (a) talk abstract (CFP submission) · (b) lightning talk (5–10 min) · (c) animated SVG (looping explainer graphic, embeddable via `<img>`) · (d) short video (≤60 s, HyperFrames HTML composition). No ★ — pure user choice. All seven formats stay reachable.
After answer: restate one sentence covering format + audience ("Got it — a [format] for [audience description].").
Step 3 — Arc construction and conflict check
Propose four-beat arc from topic + audience:
- **Problem**: concrete opening hook — specific pain or question, not generic
- **Journey**: 3–5 key points (what tried, what failed, what arc covers)
- **Insight**: core "aha" framed for stated audience level — name directly
- **Action**: specific next step for audience
- **Visual formats** (animated SVG, short video): beats map to timed segments (SVG) or scenes (video); Journey 1–3 points max; Action = closing frame/card
**Out-of-scope re-check (re-apply the Step 1 test to the constructed arc)**: the Step 1 gate tests the brief; this one tests what the arc turned out to be. If the Journey beat resolves mainly to a feature-by-feature comparison, an options matrix, a question-and-answer list, or reference material with no narrative through-line — i.e. the beats only hold together as a table or list — stop here, before writing any outline. Respond: "The arc for this topic resolves to structured reference content rather than a narrative — use `foundry:doc-scribe` instead." Do not write the outline file and do not offer the Step 4 generation gate. A topic that merely *mentions* alternatives still passes: the test is whether the Insight beat names a single transferable idea, or just summarises the comparison.
**Editorial conflict check**: brief implies expert audience but topic introductory,
Practical agent workflows for Python, ML, and open-source maintenance. AI-Rig turns recurring work—scoping a change, reproducing a bug, reviewing a pull request, running an experiment, or checking release readiness—into explicit workflows with specialist
More skills from other plugins.
brainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
ask-matt
Ask which skill or flow fits your situation. A router over the skills in this repo.
Questions about create.
- Which coding agents can use create?
- create installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

