Agent 生成器
- 作者仓库星标 347
- 作者更新于 实时读取
- 作者仓库 flocks
- 领域
- 工程开发
- 兼容 Agent
-
- Claude Code
- Cursor
- Cline
- Codex
- Windsurf
- Gemini CLI
- +20
- 信任分
- 88 / 100 · 社区维护
- 作者 / 版本 / 许可
- @AgentFlocks · 未声明 license
- Token 消耗评级
- 低消耗
- 接入复杂程度
- 需简单配置
- 是否需要外部 API Key
- 需要 · Vendor-specific
- 兼容的系统
- 未声明(默认跨平台)
- 底层运行要求
- Python
- 文件与系统权限
-
- 只读
- 允许写入 / 修改
- Shell 执行
- 读取环境变量
- 网络行为
- 允许外网请求
- 安装命令数
- 26 条
档案由构建时根据 SKILL.md 与安装命令自动衍生,可能与作者实际意图存在差异。
需要注意: 未限定 allowed-tools,默认拥有全部工具权限。
---
name: skill-builder
description: Create or improve skill. Use when the user asks to create, add, generate, update, refactor, pack…
category: 工程开发
runtime: Python
---
# skill-builder 输出预览
## PART A: 任务判断
- 适用问题:代码实现、重构、调试或代码审查。
- 输入要求:目标材料、限制条件、期望输出和验收方式。
- 证据边界:围绕“When to Use / Decide First: Skill or Tool? / Clarify the Contract”读取原文规则,不把推断写成作者承诺。
## PART B: 执行结果
- **01** 任务判断:确认你的需求是否属于代码实现、重构、调试或代码审查,并标出输入、限制和预期结果。
- **02** 执行计划:优先按“When to Use / Decide First: Skill or Tool? / Clarify the Contract”拆成步骤,说明每一步会读取什么、修改什么、产出什么。
- **03** 交付结果:给出可复制的命令、文件改动、检查清单或内容草稿,并说明如何继续迭代。
- **04** 风险边界:结合 读取文件、写入/修改文件、执行终端命令、读取环境变量、会按任务需要访问外部网络、需要准备 Vendor-specific API Key 给出执行前确认项。
## Running Rules
- 读取文件、写入/修改文件、执行终端命令、读取环境变量;会按任务需要访问外部网络;需要准备 Vendor-specific API Key。
- 先小样例验证,再放大到真实任务。
- 交付时同时给结果、检查口径和下一步迭代建议。 原文没有稳定的斜杠命令要求。安装验证后通常全局生效,直接在对话里点名这个 Skill 并描述任务即可。
告诉 Agent 目标文件或材料、期望结果、不可改范围、是否允许联网或执行命令。本 Skill 的权限画像是:读取文件、写入/修改文件、执行终端命令、读取环境变量。
先用一个小任务确认它会围绕“When to Use / Decide First: Skill or Tool? / Clarify the Contract”工作;涉及文件或命令时,先看 diff、日志、预览或测试结果。
检查最终产物是否包含明确结果、必要证据和下一步动作;如果输出泛泛而谈,就补充输入、边界和验收标准后重跑。
---
name: skill-builder
description: Create or improve skill. Use when the user asks to create, add, generate, update, refactor, pack…
category: 工程开发
source: AgentFlocks/flocks
---
# skill-builder
## 什么时候使用
- 用于组织测试、定位失败并形成修复闭环 适合处理工程开发场景下的代码实现、调试、重构、测试或代码审查,核心价值是把输入、判断、执行、验证和交付边界固定下来,避免 Agent 泛泛回答。 把任务拆成可执行、可检查、可继续迭代的步骤;使用前要…
- 面向代码实现、重构、调试或代码审查,优先处理能明确输入、步骤和验收标准的工作。
## 需要提供什么
- 目标材料、目录范围、期望结果和不可改动内容。
- 是否允许联网、执行命令、读写文件或调用外部服务。
## 执行规则
- 围绕「When to Use / Decide First: Skill or Tool? / Clarify the Contract」组织步骤,不把推断写成作者事实。
- 读取文件、写入/修改文件、执行终端命令、读取环境变量;会按任务需要访问外部网络;需要准备 Vendor-specific API Key。
- 先跑小样例,确认结果可检查后再扩大任务范围。
## 输出要求
- 给出最终产物、关键证据、验证方式和下一步动作。
- 信息不足时标记 unknown,不编造命令、平台或依赖。 作者原文负责流程事实;仓库文件负责来源和命令;流狐只补充适用场景、限制和质量判断。
skill "skill-builder" {
输入层 -> 用户目标 + 目标文件 + 禁止范围 + 验收标准
上下文层 -> When to Use / Decide First: Skill or Tool? / Clarify the Contract
规则层 -> SKILL.md 触发条件 / 执行顺序 / 输出格式
运行层 -> Python | 读取文件、写入/修改文件、执行终端命令、读取环境变量 | 会按任务需要访问外部网络
安全层 -> 需要准备 Vendor-specific API Key + 小任务验证 + diff / 日志复核
输出层 -> 可复制结果 + 检查清单 + 下一步迭代
} Skill Builder
Create a reusable skill directory, not just a loose markdown file. Start with the smallest structure that can work: SKILL.md first, then add references/, scripts/, assets/, or evals/evals.json only when they reduce repeated work or keep the prompt lean.
When to Use
Use this skill when the user wants to:
- create a brand new skill
- turn a repeated prompt or workflow into a reusable skill
- improve an existing skill's structure, trigger description, or bundled resources
- add realistic eval prompts for a skill
- package a repo-local skill so it can be reused elsewhere
Decide First: Skill or Tool?
Choose a skill when the capability is mostly instructions, shell commands, and existing tools.
Choose a tool instead when the task needs:
- strict runtime behavior every time
- built-in auth or API-key handling
- binary or streaming data handling
- a new system integration that should not depend on prompt interpretation
If the task is really a tool problem, say so early and switch to tool creation instead of forcing a skill.
Clarify the Contract
If important details are missing, ask only for the smallest set of answers needed:
- Skill name: must be
kebab-case - Capability: what the skill should help the agent do
- Triggering context: what kinds of user requests should activate it
- Outputs: what files or results the skill should produce
- Testing: whether to add eval prompts now
If the request is mostly clear, propose sensible defaults and keep moving.
Directory Layout
Use this layout unless the task clearly needs less:
<skill-root>/
├── SKILL.md
├── evals/
│ └── evals.json # optional
├── references/ # optional
├── scripts/ # optional
└── assets/ # optional
Scope Rules
- Each skill must live in its own directory, and the directory name must exactly match the skill name in
kebab-case - Prefer the user-global path:
~/.flocks/plugins/skills/<name>/SKILL.md - Do not write user-created skills to
.flocks/skills/; that location is for built-in skills, not user/project-authored plugin skills - Do not scatter skill files into
docs/,tests/, or ad hoc output folders
Build Workflow
1. Capture the Real Intent
Before writing the file, pin down:
- the user problem the skill solves
- the user language that should trigger the skill
- the expected output format
- whether the skill needs helper scripts, references, env vars, or config
When converting an existing workflow into a skill, extract the process from the conversation or nearby files instead of asking the user to repeat everything.
2. Inspect Nearby Examples
Read one or two similar skills in the current repo and reuse the local conventions for:
- frontmatter tone
- section naming
- path conventions
- validation style
Do not copy text blindly. Reuse structure, not wording.
3. Draft the Frontmatter
At minimum, every skill needs:
---
name: my-skill
description: What it does and when to use it.
---
4. Write the Description for Triggering
The description is the main trigger. Make it slightly "pushy" instead of passive.
Good descriptions include both:
- what the skill does
- when it should be used
Prefer outcomes over internals.
# Better
description: Create or improve reusable documentation skills. Use whenever the user asks to turn a repeated docs workflow into a skill, generate a SKILL.md, or add references and evals for documentation automation.
Avoid descriptions that only say "this skill helps manage skills" without any trigger hints.
5. Write the Body with Progressive Disclosure
Keep SKILL.md focused and easy to execute. A good default shape is:
- what the skill does
- when to use it
- the minimum workflow to follow
- pitfalls and validation
- references to deeper files only when needed
Suggested sections:
## When to Use## Quick Start## Workflowor## Procedure## Pitfalls## Verification
If the body starts getting long, move stable detail into references/ and point to it explicitly. If the skill needs deterministic parsing or repeated transformations, add a helper under scripts/ instead of asking the model to rewrite the same logic each time.
6. Prefer Simple Dependencies
Follow the guidance:
- prefer shell, Python stdlib, and existing tools first
- avoid adding dependencies unless they clearly reduce repeated work
- if setup is required, document it plainly in the skill
Do not create helper scripts "just in case".
7. Add Eval Prompts When Useful
If the skill has verifiable behavior, file outputs, or a repeatable workflow, create evals/evals.json with 2-3 realistic prompts.
Use prompts that sound like a real user, not abstract benchmark text.
{
"skill_name": "example-skill",
"evals": [
{
"id": 1,
"prompt": "Create a new skill for X with Y constraints.",
"expected_output": "A valid skill directory with a strong description and the right files.",
"files": []
}
]
}
If the skill is highly subjective and the user does not want evals, skipping them is acceptable, but say that choice explicitly.
8. Verify Before Finishing
Before you report success:
- confirm the directory name matches the skill name
- confirm
nameis validkebab-case - confirm the description is strong enough to trigger
- confirm every referenced file actually exists
- confirm the file layout matches the chosen scope
- keep the skill lean; move bulky material to
references/when needed
When working inside this repository, prefer at least one concrete verification step:
uv run python - <<'PY'
import asyncio
from flocks.skill.skill import Skill
async def main():
skill = await Skill.get("my-skill")
assert skill is not None
print(skill.name, skill.source, skill.location)
asyncio.run(main())
PY
If the repo already has skill-related tests, add or update a focused test rather than relying only on a manual check.
Output Checklist
When you finish, report:
- created or updated files
- chosen scope:
projectoruser - the trigger-rich description you encoded
- any skipped extras such as evals or scripts, and why
Constraints
- Prefer the simplest viable skill.
- Do not add extra abstractions without clear reuse.
- Preserve the original skill name when editing an existing skill unless the user explicitly asks to rename it.
- Explain why steps matter instead of filling the skill with rigid commands.
- Keep the main skill body reasonably short; use
references/andscripts/for overflow.
先判断是否适合
作者设计意图
作者的方法与取舍
边界和复核