Install
$ agentstack add skill-kama34-kama-skills-outline ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Outline — Presentation Structure Generator
You generate presentation structures using agent pipelines. Each pipeline consists of specialized agents (generator, reviewer, fixer, etc.) that iteratively create, review, and refine a presentation outline.
Language Rule
CRITICAL: All user-facing output MUST be in Russian. This includes:
- Help text, prompts, error messages, reports, summaries
- Generated presentation structures (slide titles, bullet points, speaker notes)
- Wizard questions and confirmations
- Agent-generated content (structures, reviews, feedback)
Internal skill logic, variable names, file names, and YAML fields remain in English.
References
Before executing, internalize these references:
references/preset-format.md— CRITICAL: Preset directory specification (metadata, storage, naming, collisions)references/pipeline-format.md— CRITICAL: Pipeline execution specification (steps, loops, reviewer protocol, context variables)references/output-formats.md— Output format specs (slidev, universal, custom)
Input Parsing
Parse the user's input to determine the subcommand or mode:
Subcommands (handle before anything else)
--help: Display usage help and stop. Show:
Outline — Генератор структуры презентаций
Использование:
/outline Сгенерировать структуру (авто-выбор пресета)
/outline --preset Использовать конкретный пресет
/outline --format Переопределить формат вывода
/outline --questions Генерация с уточняющими вопросами
/outline --edit Отредактировать существующую структуру
/outline --review [--preset ] Ревью и улучшение любой структуры
/outline --new-preset Создать новый пресет агентного пайплайна
/outline --learn=N [пресет] Обучить агентов на N тестовых прогонах
/outline --deep_learn=N [пресет] Итеративное обучение: N циклов (прогон → анализ → правки)
/outline --help Эта справка
Как это работает:
Outline использует агентные пайплайны для итеративного создания, рецензирования
и улучшения структур презентаций. Каждый пресет — это набор специализированных
агентов (генератор, рецензент, редактор и т.д.), настроенных под конкретный тип
презентации.
Если пресет не указан, скилл автоматически выбирает подходящий
или использует агентов по умолчанию (универсальный генератор + рецензент).
Форматы вывода:
slidev (по умолчанию) ## Слайд N: Заголовок + буллиты — совместим с /slidev
universal Секции, тезисы, заметки спикера — не привязан к инструменту
custom Определяется пресетом
Хранение пресетов:
Локально: .outline-presets//
Глобально: ~/.claude/outline-presets//
Поиск: сначала локально, потом глобально
Stop here — do not proceed to generation.
--new-preset: Run the Create Preset Procedure (CP-1 through CP-8). Stop here — do not proceed to generation.
--edit : Run the Edit Procedure (E-1 through E-5). The file must be a previously generated outline with metadata frontmatter. Stop here — do not proceed to generation.
--review [--preset ]: Run the Review Procedure (R-1 through R-6). Works with any structure file — no metadata required. Stop here — do not proceed to generation.
--learn=N [preset]: Run the Learn Procedure (L-1 through L-6). Parse N from the argument (e.g., --learn=5). Optional preset argument specifies which preset to train. Stop here — do not proceed to generation.
--deep_learn=N [preset]: Run the Deep Learn Procedure (DL-1 through DL-7). Parse N from the argument (e.g., --deep_learn=5). N is the number of training cycles. Optional preset argument specifies which preset to train. Stop here — do not proceed to generation.
Otherwise — this is a generation request. Parse --preset, --format, --questions, and extract the topic. Run the Generate Procedure (G-1 through G-7).
Generate Procedure
G-1: Parse Command
Extract from the user's input:
- Topic — the presentation subject (everything that isn't a flag)
--preset— optional, specific preset to use--format— optional, output format override--questions— optional flag, enables interactive Q&A mode (see below)
If no topic is provided, ask the user: "О чём будет презентация?"
G-2: Select Preset
Three paths, in priority order:
Path A: --preset specified
- Look up `
in local storage:.outline-presets//` - If not found, look up in global storage:
~/.claude/outline-presets// - If not found in either, error:
`` Пресет '' не найден. Искали в: .outline-presets//, ~/.claude/outline-presets// Доступные пресеты: `` Stop here.
Path B: Auto-select from available presets
- Scan for presets in both locations:
.outline-presets/*/preset.md~/.claude/outline-presets/*/preset.md
- If presets exist, read each
preset.mdto extractname,description,keywords - Make a single LLM call (use the Agent tool) with the user's topic and all preset metadata:
``` Given the presentation topic: ""
Available presets:
- : (keywords: )
- : (keywords: )
...
Which preset best matches this topic? Reply with ONLY the preset name, or "none" if no preset is a good match. ```
- If the agent responds with a preset name → use that preset
- If the agent responds "none" → use default (Path C)
Path C: Use built-in default
Use the default preset from assets/default/ within the skill directory. This path is used when:
- No presets exist in local or global storage
- Auto-selection returns "none"
G-3: Load & Validate Pipeline
- Read the preset directory:
preset.md— extract frontmatter fieldspipeline.md— extractstepsarrayagents/*.md— read all agent files
- Validate pipeline:
- Every
agentvalue instepsmust have a corresponding file inagents/ - Every
loop_withvalue must reference an agent insteps stop_whenis required whenloop_withis present- At least one
role: createagent exists - At least one
role: reviewagent exists
If validation fails: `` Ошибка валидации пайплайна: Пример: Агент 'investor-reviewer' указан в pipeline.md, но файл agents/investor-reviewer.md не найден. `` Stop here.
- Determine active settings:
max_iterations— from preset.md (default: 3)- Active format —
--formatflag > presetformatfield >slidev - Build
{{output_format}}variable based on active format: slidev→"Используй формат slidev-аутлайна: ## Slide N: Заголовок, затем буллиты. Целься на 8-12 слайдов. Весь контент на русском языке."universal→"Используй универсальный формат: ## Section N: Заголовок, в каждой секции — Тезис, Ключевые пункты буллитами, Заметки спикера в блок-цитатах. Весь контент на русском языке."custom→ use the literalcustom_format_descriptiontext from preset.md
G-4: Run Pipeline Cycle
Initialize context variables:
topic = user's topic
current_draft = "" (empty initially)
feedback = "" (empty initially)
iteration = 1
output_format =
questions_mode = true if --questions flag was set, false otherwise
Interactive Q&A Mode (--questions)
When questions_mode is active, each agent (generator, fixer, reviewer) may pause to ask the user clarifying questions before producing output. This applies to every agent invocation throughout the pipeline — initial generation, re-runs after feedback, and review passes.
How it works:
When dispatching an agent via the Agent tool, append this instruction to the agent's substituted prompt:
INTERACTIVE MODE: Before producing your output, consider whether you need
any clarifications from the user to do a better job. If you have questions,
output ONLY a block starting with QUESTIONS: followed by numbered questions
(1-3 max, concise). If you have no questions, produce your output as normal.
After receiving the agent's response:
- If the response starts with
QUESTIONS:— extract the questions, present them to the user, wait for answers, then re-dispatch the same agent with the answers appended to its prompt asUser answers: - If the response does NOT start with
QUESTIONS:— proceed as normal (agent had no questions)
An agent may ask questions at most once per invocation — after receiving answers, it must produce its output.
CRITICAL: When questions_mode is false (default), do NOT append the interactive instruction. Agents run fully autonomously with no user interaction.
The --questions flag is also compatible with --edit and --review — when combined, agents in those procedures follow the same interactive Q&A protocol.
Execute pipeline steps in order:
For each step in the steps array:
Step with role: create (Generator)
- Read the agent file from
agents/.md - Substitute all
{{variables}}in the agent prompt with current context values - Dispatch via the Agent tool as a subagent:
- Provide the substituted prompt as the agent's task
- Instruct the agent to output ONLY the structure, no preamble
- Collect the agent's output → set
current_draftto this output
Step with role: review + loop_with (Reviewer in a loop)
This step initiates the review→fix cycle:
- Read the reviewer agent file from
agents/.md - Substitute
{{variables}}(including{{current_draft}}) - Dispatch the reviewer via the Agent tool
- Parse the reviewer's output:
- Find the last non-empty line
- If it starts with
APPROVED→ exit loop, proceed to post-loop steps - If it starts with
NEEDS_REVISION:→ extract feedback text after the prefix
- If
NEEDS_REVISIONanditeration = max_iterations:
- Log: "Достигнут лимит итераций (N). Используем последний черновик."
- Exit loop with current draft
Step with role: review WITHOUT loop_with
Run the reviewer once as a standalone evaluation. The output is informational only (no looping).
Step with role: enhance + run_after: loop
Skip during the main loop. These are handled in G-5.
G-5: Run Optional Post-Loop Agents
After the main loop completes, run any steps with run_after: loop:
- Read the agent file
- Substitute
{{variables}}(including finalcurrent_draft) - Dispatch via Agent tool
- Append the agent's output to
current_draft(separated by a blank line and---)
If an optional agent fails (optional: true), log the failure and continue. Do not abort.
G-6: Save Output
Topic slug rules:
- Lowercase the topic
- Replace spaces with hyphens
- Strip all non-alphanumeric characters except hyphens
- Collapse consecutive hyphens into one
- Truncate to max 50 characters at a word boundary (don't cut mid-word)
File naming:
- Primary:
outline-.md - If file exists:
outline--2.md,outline--3.md, etc.
Save location: Current working directory.
Metadata frontmatter: Prepend a YAML frontmatter block to the output file with generation metadata. This is used by --edit to locate the original preset and agents.
---
topic: ""
preset: ""
preset_location: ""
format: ""
---
preset_location:localif from.outline-presets/,globalif from~/.claude/outline-presets/,defaultif built-in default was used- The frontmatter is followed by a blank line, then the structure content
Write the frontmatter + current_draft to the output file.
G-7: Report
Print a summary:
Структура презентации готова.
Пресет:
Формат:
Итерации: /
Файл:
Для использования с /slidev (если формат slidev):
/slidev
Create Preset Procedure
CP-1: Ask Preset Name
Ask the user:
Как назвать пресет? (kebab-case, например: investor-pitch, tech-talk)
Validate: must be kebab-case (lowercase letters, numbers, hyphens only). If invalid, explain and ask again.
CP-2: Ask Description
Ask the user:
Для чего этот пресет? (краткое описание)
CP-3: Ask Target Audience
Ask the user:
Кто целевая аудитория? (например: инвесторы, студенты, команда разработки, широкая публика)
CP-4: Ask Output Format
Ask the user:
Формат вывода?
1. slidev — ## Слайд N: Заголовок + буллиты (совместим с /slidev)
2. universal — Секции, тезисы, заметки спикера
3. custom — Вы опишете формат сами
Выбор (1/2/3):
If the user chooses "custom" (3), follow up:
Опишите формат, в котором генератор должен выдавать структуру:
CP-5: Ask Storage Location
Ask the user:
Где сохранить пресет?
1. глобально — ~/.claude/outline-presets/ (доступен везде)
2. локально — .outline-presets/ (только в этом проекте)
Выбор (1/2):
CP-6: Ask Additional Context (Optional)
Ask the user:
Дополнительный контекст или ограничения? (необязательно — нажмите Enter, чтобы пропустить)
CP-6.5: Collision Check
Now that the storage location is known, check if a preset with this name already exists:
- If global: check
~/.claude/outline-presets// - If local: check
.outline-presets//
CRITICAL: A preset with the same name in the OTHER location is NOT a collision.
If collision detected:
Пресет с именем '' уже существует:
1. Перезаписать — заменить существующий пресет
2. Переименовать — выбрать другое имя
3. Отмена — прекратить создание
Выбор (1/2/3):
- Перезаписать → continue, files will be replaced
- Переименовать → go back to CP-1
- Отмена → stop here
CP-7: Autonomous Pipeline Design
Using the collected information, autonomously design the agent pipeline. Do NOT ask the user for agent details — design everything yourself.
Design decisions to make:
- How many agents? Minimum 2 (generator + reviewer). Add a fixer if the audience requires specialized revision logic. Add enhance agents if post-loop processing adds value (e.g., Q&A for educational content).
- Agent roles and prompts: For each agent:
- Name (kebab-case, descriptive)
- Role (
create,review,fix,enhance) - Input variables it needs
- A detailed prompt tailored to the preset's audience, goals, and format
- Pipeline design: Define the
stepsarray inpipeline.md:
- Execution order
- Which agents loop together
- Stop conditions
- Optional post-loop agents
- Keywords: Generate comprehensive keywords for
preset.mdbased on the description and audience
Write files to the storage location:
//
├── preset.md
├── pipeline.md
└── agents/
├── .md
├── .md
└── ...
Use max_iterations: 3 unless the preset type clearly benefits from more or fewer iterations.
CP-8: Confirmation Summary
Print:
Пресет '' создан.
Путь:
Агенты:
Пайплайн:
Формат:
Использование:
/outline --preset
Или просто /outline — авто-выбор подберёт этот пресет,
если тема совпадёт с его ключевыми словами.
Edit Procedure
E-1: Parse Command
Extract from the user's input:
- `` — path to an existing outline file
- `` — edit instruction (what to change)
If the file is missing or not provided, ask: "Какой файл отредактировать? Укажите путь к файлу outline-*.md"
If the comment is missing, ask: "Что изменить в структуре?"
E-2: Read File and Extract Metadata
- Read the file content
- Parse the YAML frontmatter to extract
topic,preset,preset_location,format - Separate the frontmatter from the structure content (everything after the closing
---)
If the file has no frontmatter or is missing required fields:
Файл '' не содержит метаданных outline.
Он был создан с помощью /outline? Без метаданных невозможно определить пресет.
Stop here.
E-3: Load Preset and Agents
Based on preset and preset_location from metad
…
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: kama34
- Source: kama34/kama-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.