用途
create-skill-repo 用于从零搭建一个全新的、独立的 Agent Skills 仓库。它把「在 GitHub 建仓 + 本地克隆 + 叠加模板脚手架」这一整套流程固化成一个确定性脚本,避免手工复制或直接裸用 gh 命令带来的不一致。
主要能力
- 通过 gh repo create 在 GitHub 上创建仓库:默认私有、MIT 许可证、按技能主导技术选择 .gitignore 模板(默认 Python)、生成 README。
- 将新仓库克隆到当前目录。
- 叠加内置模板(本技能内的 assets/template/),内容包括:开源规范文件、带 skills.sh 消费任务的 CI、校验钩子、仓库内 add-skill/publish-repo 开发技能、插件/市场清单、skills.sh.json,以及被 gitignore 的 .local/PROMPT.md(用于驱动后续创作会话)。
- 叠加内容保持未提交状态(GitHub 建仓只产生它自己的初始提交),由所有者审查、提交、推送。
使用方式
以 /create-skill-repo <args> 形式调用时,$ARGUMENTS 为 <repo-name> [idea]。
脚本调用方式:
python3 "${CLAUDE_SKILL_DIR}/scripts/scaffold.py"
<name> --description "<description>" --idea "<idea>" [--gitignore <Template>]
可用选项:
- --owner <github-owner>:默认使用已认证的 gh 用户。
- --public:默认私有。
- --topics extra1,extra2:追加到 agent-skills,claude-code,skills,skills-sh。
- --dest DIR:默认当前工作目录。
- --local-only:离线模式,仅创建文件夹并 git init,不创建 GitHub 仓库;需要 --owner。
- --keep-on-fail。
脚本会校验输入(包括 .local/PROMPT.md 的目标内容不超过 4000 字符,超长需缩短 idea)、检查 gh 认证(需要 workflow scope)、拒绝本地或 GitHub 上已存在的名称、校验脚手架,并在失败时清理本地克隆。它从不执行 git commit/push(由所有者执行),也从不删除远程仓库;失败时只打印确切的清理命令。
成功判定:脚本最后一行输出 SCAFFOLD OK: <path>(退出码 0)。失败时阅读其报告,修复原因(不要通过削弱生成仓库的 scripts/validate_skills.py 来绕过),然后重新运行。
交接时告知用户:
cd <name> && claude
然后粘贴 .local/PROMPT.md 的内容(以 /goal 开头)
并说明:仓库外壳已在 GitHub 上线(私有),但脚手架尚未提交——请审查、提交、推送(确切命令在脚本输出中);.local/ 已被 gitignore——开始前可把研究包/来源放进去;之后发布到 skills.sh 通过仓库内置的 /publish-repo 运行。
适用场景
- 需要新建一个独立的 Agent Skills 仓库时。
- 需要一次性获得包含 CI、校验、插件清单等完整结构的技能仓库骨架时。
不适用场景
- 在已有仓库内编写或修复技能 → 使用 add-skill(或该仓库内置的副本)。
- 把研究包转化为技能 → 使用 skill-from-research(它会在确实需要新仓库时调用本技能)。
- 改进脚手架本身 → 在 skillskit 检出中编辑 assets/template/(改动只影响未来的仓库)。
输出规格
在当前目录下生成新文件夹 <name>/:它是新建 GitHub 仓库的克隆(私有、MIT、技术 .gitignore 与模板合并),叠加内容保持未提交供所有者审查,校验器通过,仓库 topics 已设置,.local/PROMPT.md 已填入 idea(≤4000 字符,强制),不残留任何 {{PLACEHOLDER}} 标记。
限制与注意事项
- 需要已认证的 gh(gh auth login)且具备 workflow scope;缺失时脚本会打印确切的 gh auth refresh 命令。
- 名称必须匹配 ^[a-z0-9]+(-[a-z0-9]+)*$,且不得包含 "claude"/"anthropic"(技能规范保留);本地和 GitHub 上均需可用。
- --gitignore 取值是区分大小写的 GitHub 模板名(gh api gitignore/templates);脚本会预先检查。
- 模板把 gitignore 以 _gitignore 形式提供(技能 assets 内的活动 gitignore 会被宿主仓库的 git 应用);脚本在叠加时恢复真实名称——不要在 assets 中「修正」它。
- .local/PROMPT.md 是个人且机器本地的——生成的仓库中不存在已提交副本。
文件
- scripts/scaffold.py:确定性脚手架脚本(仅用标准库)。
- assets/template/:被叠加的完整仓库脚手架。