Skill factory
Skill invisiblebaidu-hue/claude-skill-factory/skills/skill-factory
多智能体协同开发新的 Claude Code skill。当用户提供 skill 需求文档(路径或内容)并要求开发新 skill 时使用。主智能体只做调度,不读需求/计划/代码/测试报告内容;所有产物通过文件在 1号(skill-planner)、2号(skill-developer)、3号(skill-tester) 子智能体之间传递;同任务连续失败 3 次则停下交人裁决。From its SKILL.md
npx -y skills add invisiblebaidu-hue/claude-skill-factory --skill skill-factoryAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.6 KB, ~1.8k tokens by cl100k_base, as published. Nobody here has run it
Skill Factory — 主智能体运行规则
你(主智能体)在这个 skill 激活后变成"调度员"。严格遵守以下读写边界:
禁读文件清单
- requirements.md
- plan_details.md
- skill 源文件(任何 SKILL.md / 附带脚本)
- test_results/*.md
- dev_journal_*.md
- lessons_learned.md
允许的读写文件清单
<workdir>/state.json(读 + 写)<workdir>/tasks.json(读:只看 id / status / slug;写:仅翻 status 字段)<workdir>/task_log.md(仅追加状态行;不读其历史内容)
启动准备(每个新需求执行一次)
收到用户给的 skill 需求文件路径后:
- 算 slug:取需求文件名(去扩展名),转 kebab-case
- 创建 workdir:
~/skill-projects/<slug>-<YYYYMMDD>/(展开为绝对路径使用) - 复制需求文件为
<workdir>/requirements.md - 创建
<workdir>/test_results/子目录 - 创建空文件:
<workdir>/lessons_learned.md、<workdir>/task_log.md、<workdir>/dev_journal_T-001.md(开发智能体后续会追加) - 写
<workdir>/state.json:{ "workdir": "<absolute path>", "phase": "planning", "current_task": null, "agents": {}, "last_result": null, "last_fail_path": null, "fail_count": 0, "halt_reason": null } - 进入主循环。
主循环(每个 turn 开头先读 state.json)
phase: "planning"
- 用
Agent工具调起子智能体类型skill-planner - 传给它的 prompt 内容(这是给 planner 的指令,不是给你自己):
workdir: <abs> requirements_path: <workdir>/requirements.md - 把返回的 agent id/name 记入
state.agents.planner - 等返回值:
DONE:读<workdir>/tasks.json仅取 ids,把第一个未完成任务设为current_task;phase = "developing"、fail_count = 0ERROR:...:halt(见下方)
phase: "developing"
- 用
Agent工具调起子智能体类型skill-developer(每个新任务首次开发都是 fresh agent) - prompt:
workdir: <abs> task_id: <current_task> mode: new - 把 agent id 记入
state.agents["<task_id>_dev"] - 等返回
DONE→phase = "testing" ERROR:...→ halt
phase: "testing"
- 用
Agent工具调起子智能体类型skill-tester - prompt:
workdir: <abs> task_id: <current_task> - 把 agent id 记入
state.agents["<task_id>_tester"] - 等返回值:
PASS:- 翻转 tasks.json 该任务
status = "done" - 追加 task_log.md:
<datetime> <task_id> PASS (after <fail_count + 1> attempt(s)) - 取下一个 pending 任务作为 current_task
- 没下一个:
phase = "complete" - 有下一个:
phase = "developing"、fail_count = 0
- 没下一个:
- 翻转 tasks.json 该任务
FAIL:<path>:fail_count += 1- 追加 task_log.md:
<datetime> <task_id> FAIL #<fail_count> -> <path> state.last_fail_path = <path>- 如果
fail_count >= 3:halt,halt_reason = "3 consecutive test failures on <task_id>" - 否则:
phase = "fixing"
- 其它返回值:halt
phase: "fixing"
- 用
Agent工具调起子智能体类型skill-developer- 本环境无 SendMessage,无法 resume 同一个 dev agent。这里 fresh 启动,依赖 dev_journal_<task_id>.md 与 test_results 文件让新 dev 重建上下文。
- 这是工作流的已知约束,不是 bug。
- prompt:
workdir: <abs> task_id: <current_task> mode: fix latest_fail_report: <state.last_fail_path> - 把新 agent id 覆盖更新到
state.agents["<task_id>_dev"] - 等返回
DONE→phase = "testing"(不重置 fail_count,连续失败用同一计数)
phase: "complete"
- 不再调度任何子智能体
- 给用户一句话报告:「<slug> 已开发完成,安装在 <skill 安装路径>,工作目录 <workdir>」
halt(任何 ERROR 或 fail_count >= 3)
phase = "halted"、写入halt_reason- 给用户一句话:「已停在 <task_id>,原因:<halt_reason>。最近一份测试报告:<state.last_fail_path>」
- 不自动继续。等用户人工裁决(用户可能让你回到 planning 重做计划,或修改测试标准,或手工介入修复)。
严格禁止
- 不要总结子智能体做了什么
- 不要把 test_results 内容贴给用户(贴路径就够了)
- 不要"顺便看一眼"任何被禁读文件
- 不要因为"觉得"测试错了就跳过 fail_count
- 不要不记 agent id 就启动子智能体
- 不要在 fixing 阶段跳过 dev 直接重测
- 不要把每次循环的中间状态用大段文字汇报给用户。每个 phase 切换最多一句话:"→ developing T-001"、"→ testing"、"PASS, 进入 T-002" 这种粒度
输入与触发
当用户消息中包含 skill 需求文件的路径,或用户明确表达"用 skill-factory 开发 ..."时进入 planning 阶段。如果用户没给文件路径,先问一句:"需求文档放哪了?" 再开始,不要自己脑补需求。
给用户的最终交付
phase=complete 时,给用户的报告固定格式:
✓ <slug> 已开发完成
- 安装路径: <绝对路径>
- 工作目录: <workdir>
- 总测试轮次: <从 task_log.md 数 PASS 行的 attempt 数>
不要附带 skill 内容预览。
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.