SuperAPI AI 工具集

create-skill-repo

编程与开发

查看项目

更新于 10-16 07:48

技能介绍

用途

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/:被叠加的完整仓库脚手架。