Agent 生成器
- 作者仓库星标 217
- 作者更新于 实时读取
- 作者仓库 claude-skills
- 领域
- 设计与多媒体
- 兼容 Agent
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- 信任分
- 88 / 100 · 社区维护
- 作者 / 版本 / 许可
- @glebis · 未声明 license
- Token 消耗评级
- 中等消耗
- 接入复杂程度
- 需简单配置
- 是否需要外部 API Key
- 需要 · Anthropic
- 兼容的系统
- 未声明(默认跨平台)
- 底层运行要求
- Python >=3.11
- 文件与系统权限
-
- 只读
- 允许写入 / 修改
- 网络行为
- 允许外网请求
- 安装命令数
- 26 条
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: skill-studio
description: Interview-driven automation design tool. This skill should be used when the user wants to design…
category: 设计与多媒体
runtime: Python
---
# skill-studio 输出预览
## PART A: 任务判断
- 适用问题:视觉内容、演示材料、信息图或设计交付。
- 输入要求:目标材料、限制条件、期望输出和验收方式。
- 证据边界:围绕“Purpose / Architecture / When to use”读取原文规则,不把推断写成作者承诺。
## PART B: 执行结果
- **01** 任务判断:确认你的需求是否属于视觉内容、演示材料、信息图或设计交付,并标出输入、限制和预期结果。
- **02** 执行计划:优先按“Purpose / Architecture / When to use”拆成步骤,说明每一步会读取什么、修改什么、产出什么。
- **03** 交付结果:给出可复制的命令、文件改动、检查清单或内容草稿,并说明如何继续迭代。
- **04** 风险边界:结合 读取文件、写入/修改文件、会按任务需要访问外部网络、需要准备 Anthropic API Key 给出执行前确认项。
## Running Rules
- 读取文件、写入/修改文件;会按任务需要访问外部网络;需要准备 Anthropic API Key。
- 先小样例验证,再放大到真实任务。
- 交付时同时给结果、检查口径和下一步迭代建议。 原文出现了 `/skill-creator` 这类斜杠命令;如果你的 Agent 支持命令触发,优先用命令开场,再补充目标和边界。
告诉 Agent 目标文件或材料、期望结果、不可改范围、是否允许联网或执行命令。本 Skill 的权限画像是:读取文件、写入/修改文件。
先用一个小任务确认它会围绕“Purpose / Architecture / When to use”工作;涉及文件或命令时,先看 diff、日志、预览或测试结果。
检查最终产物是否包含明确结果、必要证据和下一步动作;如果输出泛泛而谈,就补充输入、边界和验收标准后重跑。
---
name: skill-studio
description: Interview-driven automation design tool. This skill should be used when the user wants to design…
category: 设计与多媒体
source: glebis/claude-skills
---
# skill-studio
## 什么时候使用
- 用于审阅代码、文档或方案并给出可执行反馈 适合处理界面、视觉、封面、信息图或演示材料交付,核心价值是把输入、判断、执行、验证和交付边界固定下来,避免 Agent 泛泛回答。 把任务拆成可执行、可检查、可继续迭代的步骤;使用前要准备 An…
- 面向视觉内容、演示材料、信息图或设计交付,优先处理能明确输入、步骤和验收标准的工作。
## 需要提供什么
- 目标材料、目录范围、期望结果和不可改动内容。
- 是否允许联网、执行命令、读写文件或调用外部服务。
## 执行规则
- 围绕「Purpose / Architecture / When to use」组织步骤,不把推断写成作者事实。
- 读取文件、写入/修改文件;会按任务需要访问外部网络;需要准备 Anthropic API Key。
- 先跑小样例,确认结果可检查后再扩大任务范围。
## 输出要求
- 给出最终产物、关键证据、验证方式和下一步动作。
- 信息不足时标记 unknown,不编造命令、平台或依赖。 作者原文负责流程事实;仓库文件负责来源和命令;流狐只补充适用场景、限制和质量判断。
skill "skill-studio" {
输入层 -> 用户目标 + 目标文件 + 禁止范围 + 验收标准
上下文层 -> Purpose / Architecture / When to use
规则层 -> SKILL.md 触发条件 / 执行顺序 / 输出格式
运行层 -> Python | 读取文件、写入/修改文件 | 会按任务需要访问外部网络
安全层 -> 需要准备 Anthropic API Key + 小任务验证 + diff / 日志复核
输出层 -> 可复制结果 + 检查清单 + 下一步迭代
} Skill Studio
Purpose
Conduct a structured JTBD interview that captures what to build, for whom, and why — then emit a one-page design.md + design.svg spec. Sits between "should I automate this?" (automation-advisor) and "how do I package this as a skill?" (skill-creator).
Architecture
This skill wraps an external CLI tool (skill-studio) installed via pip. The CLI handles session state, coverage tracking, and export. The skill orchestrates the CLI — it does not bundle scripts directly.
When to use
Trigger on any of: "help me design...", "build a skill for...", "design an automation for...", "I want a bot/agent/workflow that...", "scope a new shortcut". Also trigger when the user describes a recurring pain and asks how to automate it.
Also trigger for session analysis: "analyze this session", "what skills could I build from this", "propose skills from session", "what workflows did I use", "what did I do in this session", "extract patterns from my work", "turn this session into a skill", "what could be automated from this". If the user references a session ID or asks about subagent activity, this skill handles it.
Prerequisites
skill-studioCLI on PATH (pip install -e .inside the skill directory, orskill-studio initfor guided setup)- Python 3.11+
- Text mode needs no API key — the interview runs natively inside Claude Code
- Voice mode (
--voice) needsDAILY_API_KEY,GROQ_API_KEY,DEEPGRAM_API_KEY, and an LLM provider key (OPENROUTER_API_KEYby default). If any key is missing, suggest text mode instead.
To verify the CLI is available, run skill-studio --help. If the command is not found, install it from the skill's base directory: pip install -e <skill-studio-base-dir>.
Interview protocol (text mode)
Follow these steps in order.
Step 0 — (Optional) Seed from a prior session
If the user provides a prior session (Claude Code transcript, another skill-studio session, or arbitrary transcript path), seed the interview instead of starting blank:
# Analyze the current running session
skill-studio propose-from-session --current
# Analyze a specific session by ID (prefix match works)
skill-studio propose-from-session <session_id>
# Analyze a session from a specific project
skill-studio propose-from-session <session_id> --project <project-dir-name>
# Analyze an arbitrary transcript file
skill-studio propose-from-session --path <file>
# Inspect the raw extracted bundle without an LLM call
skill-studio propose-from-session --current --bundle-only
This runs in two stages:
- Deterministic ingest (no LLM) — extracts models tried, cost events, prompt changes, pain snippets, subagent calls (Agent tool with descriptions, types, prompt snippets), skill invocations, tool sequences (ordered list of all tool calls), tool frequency, and workflow patterns (repeated multi-tool sequences). A 50k-token transcript compresses to a compact structured JSON bundle.
- Single LLM call — over that compact bundle only, proposes a partial DesignJSON patch with a
rationalemap citing which signals justified each field, plus skill proposals — potential new skills derived from observed workflow patterns and agent orchestration.
The bundle includes these structured signals:
agents— subagent calls withdescription,subagent_type, andprompt_snippetskills— skill invocations observed during the sessiontool_sequence— ordered list of all tool calls with descriptionstool_frequency— how often each tool was usedworkflow_patterns— repeated tool sequences (e.g. "Read → Edit → Bash" appearing 3× suggests a test-fix cycle)
The proposal is NOT applied automatically. Present it to the user (with the rationale and any skill proposals) and ask for approval. Offer: approve as-is, edit inline, discard and start fresh, approve partial (keep some fields, re-interview others).
If the proposal includes skill_proposals, present them separately and ask if the user wants to proceed to /skill-creator with any of them.
propose-from-session does not create a session. After approval, run new-session (Step 1) to create one, then pipe the approved patch to apply-patch, and continue the interview loop from the next uncovered target.
Browsing Claude Code sessions
To help the user pick a session to analyze:
# List recent sessions (most recent first, all projects)
skill-studio list-sessions
# Filter to a specific project
skill-studio list-sessions --project <project-dir-name>
# Show more results
skill-studio list-sessions --limit 50
Output shows session ID prefix, age, size, and title.
Step 1 — Start the session
Presets: ai-agent (default), life-automation, knowledge-work, custom.
Depth: sprint (0.60, ~5–7 questions), standard (0.80, ~15–20 questions, default), deep (0.92, ~25–35 questions).
Styles (shape how questions are phrased):
scenario-first(default) — "Walk me through a specific time when..."socratic— "Why does that matter? What would happen if...?"metaphor-first— "If this automation were a [thing], what would it be?"form— One direct question per field, no preamble.
Run:
skill-studio new-session --preset <preset> --depth <depth> --style <style>
Output:
session_id: <uuid>
opening: <question text>
Store the session_id. Present the opening question to the user as a direct text message.
Step 2 — Interview loop
For every user answer:
a. Extract a JSON patch. Emit a JSON object containing only the DesignJSON fields the answer addresses. Use only fields from the schema below — never hallucinate fields or values. If nothing schema-relevant was said, emit {}.
Example patch:
{"jtbd.situation": "When I finish a coaching call and need to write up notes", "problem.what_hurts": "Manual note-taking takes 20 minutes and I lose details"}
Example with list fields:
{"needs.functional": ["transcribe audio", "extract action items"], "guardrails": ["never send notes without review"]}
Example with object-list field (scenarios):
{"scenarios": [{"title": "Post-coaching rush", "vignette": "Call ends at 14:00, next meeting at 14:15 — I scribble three bullet points and lose the rest by evening."}]}
DesignJSON fields:
| Field | Type | Notes |
|---|---|---|
hook |
str | One-sentence pitch of the automation |
problem.what_hurts |
str | Specific pain |
problem.cost_today |
str | What the pain costs right now |
needs.functional |
list[str] | What it must do |
needs.emotional |
list[str] | How the user wants to feel |
needs.social |
list[str] | Relational / status needs |
jtbd.situation |
str | When this happens |
jtbd.motivation |
str | What the user wants |
jtbd.outcome |
str | So they can... |
before_after.before_external |
str | Visible state before |
before_after.before_internal |
str | Felt state before |
before_after.after_external |
str | Visible state after |
before_after.after_internal |
str | Felt state after |
scenarios |
list[{title, vignette}] | Concrete day-in-the-life stories |
trigger.type |
manual / scheduled / event |
|
trigger.detail |
str | e.g. "7:45am weekdays" |
inputs |
list[str] | Data / services consumed |
capabilities |
list[str] | What it does |
outputs |
list[str] | What it produces |
guardrails |
list[str] | Safety rails; negative-space rules |
cta |
str | Next action at end of design |
concept_imagery.metaphor |
str | Visual / verbal handle |
b. Apply the patch.
echo '<patch_json>' | skill-studio apply-patch <session_id>
Output:
coverage: 0.42
next_target: jtbd.situation
c. Check stop conditions. End the loop if either:
coverage >= threshold(sprint=0.60, standard=0.80, deep=0.92)- User says "done", "wrap up", or "stop"
d. Ask the next question. Target the next_target field, in the active style. Never re-ask a field already past 0.5 coverage. Present the question as direct text to the user.
Step 3 — Export
skill-studio done <session_id>
Prints the paths to design.md and design.svg. Present both paths to the user.
Voice mode
For voice interviews, skip the manual loop and delegate to the built-in pipeline:
skill-studio new --voice --preset <preset> --depth <depth>
This spins up a Daily room (auto-opens in the browser), runs Groq Whisper STT -> interview loop -> Deepgram TTS, and auto-exports on session end.
If voice mode fails due to missing API keys, fall back to text mode and inform the user. To configure keys, run skill-studio init.
Other commands
skill-studio list— list all skill-studio interview sessionsskill-studio list-sessions— list Claude Code sessions (most recent first)skill-studio list-sessions --project <name>— filter by projectskill-studio export <id> md-svg— regeneratedesign.md+design.svgskill-studio coverage <id>— per-field confidence JSONskill-studio next-target <id>— ask-this-next hintskill-studio init— full first-run wizard (prereq checks + keys + paths)skill-studio setup— narrower key-rotation flow (sops-only)
Sessions
Each interview writes to $SKILL_STUDIO_HOME/sessions/<uuid>/ (default: ~/.skill-studio/sessions/<uuid>/):
design.json— canonical schema (single source of truth)transcript.md— full Q&A logdesign.md,design.svg— exported artifacts
Troubleshooting
skill-studio: command not found— Runpip install -e <skill-studio-base-dir>and retry.apply-patchreturns an error — Verify the JSON patch is valid (keys must match schema fields above). Runskill-studio coverage <session_id>to inspect current state.- Session not found — Always run
new-sessionbefore the firstapply-patch. There is no implicit session creation. Runskill-studio listto check existing sessions. - Voice mode key errors — Run
skill-studio initto configure missing keys, or fall back to text mode.
Notes
- The interview loop runs entirely inside Claude Code for text mode. No Anthropic API key is required.
- Voice mode LLM provider is swappable via
LLM_PROVIDER=anthropic(default isopenrouter).
先判断是否适合
作者设计意图
作者的方法与取舍
边界和复核