Claude Code run-skill-generator 全解析:为项目生成“可驱动、可验证“的 run skill
2026/9/8 23:19:47 网站建设 项目流程

Claude Code run-skill-generator 全解析:为项目生成"可驱动、可验证"的 run skill

【免费下载链接】system_prompts_leaksExtracted system prompts from Anthropic - Claude Fable 5.1, Opus 5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro, Antigravity. xAI - Grok, Grok Bot, Cursor, Kimi and more! Updated regularly.项目地址: https://gitcode.com/GitHub_Trending/sy/system_prompts_leaks

导读

本文基于 Claude Code 内置技能run-skill-generator(原文见 SKILL.md)展开,它解决一个真实痛点:未来某天的 Agent 或协作者拿到你的代码后,如何在一个干净的环境里把应用真正"跑起来并操作起来",而不是对着过时的 README 猜。读完本文,你将掌握 run skill 的两段式结构(SKILL.md+ 驱动脚本)、它的四重"完成定义"、从"发现既有技能"到"逐行验证"的四步生成流程,以及面向 Web 服务、CLI、TUI、Electron、浏览器应用与库六类项目的驱动编写套路,并理解它与 Claude Code 的/run通用技能之间的协作关系。

一、背景:run skill 要解决什么问题

Claude Code 会在项目里自动发现位于.claude/skills/目录下的技能(skill)。其中有一类被命名为run-<unit-name>项目内技能,专门用来告诉未来的 Agent:这个项目的应用如何构建、启动、以及如何"驱动"它——对一个带交互界面的应用而言,"驱动"意味着能程序化地点击按钮、键入文本、抓取结果,而不只是npm start后干瞪眼。

run-skill-generator本身正是一个"技能生成器"(其description声明使用场景为:用户要求把项目搭起来、跑起来、编写运行说明,或验证构建/运行步骤能否从干净环境复现)。它把"写文档"这件事改造成了"写代码 + 写文档":因为纯 Markdown 无法点击按钮,所以必须同时交付一个可伸进运行中应用的驱动脚本(driver)

该技能与 Claude Code 的通用 /run 技能配合工作:/run在"是否有项目技能覆盖启动"时,会优先读取run-<unit>并逐字执行;若找不到,才回退到按项目类型套用内置模式(run 技能文档 的 fallback 表格与 run-skill-generator 的 Project-type patterns 完全一致)。而run-skill-generator则负责把这次"从零冷启动"的宝贵经验固化成项目内技能,避免下次重蹈覆辙。

二、run skill 的两段式结构与"完成定义"

2.1 结构:SKILL.md是手册,driver 才是交付物

一个 run skill 由两段"住在同一个目录"的内容组成:

<unit>/.claude/skills/run-<unit-name>/ SKILL.md <- 面向 Agent 的说明 - 必须 SHORT,并指向驱动脚本 driver.mjs <- (或 driver.py、smoke.sh... —— Web 应用可省略: 直接用 chromium-cli 现成方案,SKILL.md 里的 heredoc 就是脚本)

原文反复强调同一条原则:driver 才是真正的交付物,SKILL.md只是它的 man page(使用手册)。二者是一对——技能里的说明文字与实现它们的代码。driver 默认放在技能目录内部,并且允许比生产代码"略乱",因为它是 Agent 工具,而非产品表面。

对于不同类型的应用,driver 的天然形态不同:

  • Web 应用:现成的 driver 已存在——chromium-cli,技能就是运行它的脚本(对应 examples/playwright.md);
  • 桌面应用(Electron):driver 是一个运行在 tmux 下的自定义 REPL,对外暴露launch/ss/click/eval等命令(对应 examples/electron.md);
  • 服务端:driver 就是curl(对应 examples/server.md)。

核心隐喻:"无论 driver 长成什么样,如果没有一个能伸进运行中应用的东西,那么这份 skill 就只是在描述一个谁也碰不到的窗口。"

2.2 关于"graduation(毕业)"

如果 driver 长大到项目自身测试套件也想来复用的程度——例如出现了共享的启动辅助函数、真正的端到端 harness——就把它迁移scripts/e2e/,并更新SKILL.md指向新路径。技能本身留在原地,driver 找到了更好的家。Electron 示例给出了具体形态:迁移到e2e-playwright/driver.mjsscripts/drive.mjs(见 examples/electron.md)。

2.3 完成定义(Definition of done)

只有全部满足才算做完:

  1. 你在这个容器里真正启动了应用并与之交互——不是跑它的测试套件,而是跑真实运行的应用;凡是带 GUI 的,都必须有一张你亲手截下的、落在磁盘上的截图;
  2. 交互 harness 已随技能一起提交——driver 脚本、REPL 包装、冒烟测试,或内联在SKILL.md里的chromium-cliheredoc,总之是你第 1 步用来驱动应用的那个东西;
  3. SKILL.md把 harness 作为 Agent 主路径来记录——未来的 Agent 读到的第一段应该是"运行这个 driver / 向chromium-cli管道输入这些命令",而不是"执行npm start然后弹出一个窗口";
  4. SKILL.md里的每段代码块都是你本次会话、本容器中真正跑通过的命令,不是从 README 抄的,也不是推断的。

原文特别设置了一道刹车:如果你正要开始写 skill,却还没有达成第 1 条,立刻停止——否则你只是在转述现成文档,而那文档就是 README;你之所以在这里,正是因为 README 不够用。

三、技能放哪里:unit 边界、命名与自动发现

run skill 位于<unit>/.claude/skills/run-<unit-name>/,其中<unit>一个可部署对象的目录——一个应用、一个服务、或一个库。

Claude Code原生自动发现嵌套的.claude/skills/目录:任何在<unit>内工作的 Agent 都能看到/run-<unit-name>这个可用技能;当请求与其description匹配时(例如"运行桌面应用""给 billing 截图"),技能会自动加载。

摆放策略按仓库规模分三种:

  • 单项目仓库:放在仓库根的.claude/skills/run-<repo-name>/
  • 多应用大型仓库:每个应用一个、就近摆放——apps/billing/.claude/skills/run-billing/apps/desktop/.claude/skills/run-desktop/
  • 含多个二进制目标的应用:仍然只写一个技能,放在应用根目录,为每个二进制单独开一节## Run: <name>。它们共享环境准备,从最接近的单二进制示例起步即可。

如果对 unit 边界拿不准,去问用户。目录名要做 slugify:全小写、空格用连字符、不允许斜杠(run-billing-api,而不是run-billing/api)。目录名必须与 frontmatter 的name:一致——它就是斜杠命令名。

四、生成流程四步走

4.1 第 0 步:先找有没有现成技能,有则"精修而非重写"

先探测项目里是否已存在关于"运行这个应用"的技能。原文给了与/run完全相同的探测脚本(按description匹配,因为用户对这类技能的命名五花八门):

d=$PWD; while :; do grep -Hm1 '^description:' "$d"/.claude/skills/*/SKILL.md 2>/dev/null [ -e "$d/.git" ] || [ "$d" = / ] && break d=$(dirname "$d") done
  • 若确有技能在讲启动/驱动本应用——refine, don't rewrite:核验它的断言、修正错误、补上缺失、保留有效内容;若带 driver 就重跑一遍。保留它原来的名字。
  • 还要检查遗留的.claude/run.md(此工具的旧版本产物):若发现,做迁移——正文成为技能SKILL.md的内容,被引用的脚本移入技能目录,然后删除旧文件。
  • 若不存在,则按上文规则决定创建位置,继续往下走。

4.2 第 1 步:勘察(Discover),把每个断言都当作"可证伪"

先搞清你在为谁写技能:

  • 目录里就摆着清单文件(package.jsongo.modpyproject.toml…),且是一个自包含对象 → 它就是要的 unit;
  • 看起来像巨型仓库根(有apps/packages/services/)→问用户选哪个,列出候选让用户挑,再cd过去;
  • 确实模棱两可 → 提问。

然后勘察惯常位置:README.mdpackage.json的 scripts、DockerfileMakefile.github/workflows/CONTRIBUTING.mdCI 配置常常比 README 更准确。

关键方法论:现有文档里的每一个断言都是假说,尤其是那些否定式断言。原文给出了一份"文档说什么 × 你做什么"对照表:

文档说…你要做的
"需要 macOS/Windows"在 Linux 上照跑不误。应用很少拒绝启动——它们通常只是崩溃在缺失的.so上,apt-get即可修复。宿主上原生模块(keychain/通知等)可能空转,但核心通常能跑。
"需要 GPU"尝试软件渲染。Electron/Chrome 用--disable-gpu回退。
"需要付费账户 / 功能开关"门槛就是你能读到的代码。找到它(环境变量?构建期 define?SSR 内嵌 JSON?),为本地运行打补丁,并记录这个补丁。
"执行npm start"那是人走的路径(弹窗口、永远挂起)。去找或构建程序化路径——如electron-forge start构建后用 Playwright 启动。

提醒:macOS 开发者写的 README 里那句 "not supported on Linux",意思是"我从没试过"。而你现在就要去试。若在此放弃,你写出的 skill 就是"多走两步的 README"。

4.3 第 2 步:执行——并亲手 BUILD 出需要的 harness

你在无头 Linux 容器里,应用会跟你缠斗——这场缠斗本身就是 skill 的内容

随身维护一份NOTES.md:每个错误 → 每次修复 → 每条最终跑通的命令。这份草稿最终变成技能里的 Troubleshooting 一节。

按梯度推进,直到达成一次真实的交互

  1. 安装 + 构建:缺什么就记下确切的apt-get/npm install
  2. 启动应用(不是测试套件):桌面 GUI(Electron、原生)需要xvfb-run和一批lib*包;用chromium-cli驱动的 Web 应用则是无头运行、两者都不需要。启动超时、晦涩崩溃在这个阶段都是常态——读堆栈、装缺的依赖、再试;
  3. 搭建驱动 harness:需要一个能程序化收发输入/输出的"把手",形态视项目而定(见下节表格)。

这里有一个关键决策:覆盖 PR 真正会碰到的层次。用 tmux 戳 CLI 用户面的 driver 是验证 UI 改动的正确把手,但对于只动某个内部函数的 PR 就错了——那种情况 Agent 更想要NODE_ENV=test bun run script.ts(或等价物):直接 import 函数、调用、观察。若该仓库大部分 PR 都在改内部实现,那么"直接调用"路径应作为 driver 主入口,tmux 启动退居次席。去翻最近的已合并 PR:它们动的是哪一层?

  • Web 应用:chromium-cli就是 driver——你编排它,而不是编写它(见 examples/playwright.md);
  • 桌面 GUI(Electron):编写一个 REPL driver(stdin 命令 → click/type/screenshot),放进 tmux 跑,用send-keys/capture-pane。这个 driver 要不断迭代——从最小集(launchssquit)起步,需要摸到应用的哪个有趣角落就长出对应命令。

之后:端到端跑完一个真实用户流程——点击按钮、填表单、在 DOM 里看到结果、截图;并且真的去看那张截图,若它是空白或错误页,说明你还没做完。然后才去跑测试(单元测试只是 sanity check,不是主菜)。最后干净地停掉进程

"障碍就是内容":坐标系对不上、API 在当前 Electron 版本下返回空、功能开关藏起了你要测的东西……每个坑在 Gotchas 里占一条、通常还会变成 driver 里的一个 helper。金标准是:Gotchas 一节装满没人能提前猜到的事

driver 脚本要随技能一起提交,它不是脚手架——它是未来 Agent(和人类)驱动此应用的既定方式。

4.4 第 3 步:写SKILL.md

要短。指向 driver。以 template.md 为起点结构,它已给出 frontmatter 的形状。

frontmatter 至关重要

  • name:会成为斜杠命令(/run-billing),必须与目录名一致;
  • description:是 Claude 判断是否自动加载时扫描的字段——要放入 Agent 实际会敲的动词:"run"、"start"、"build"、"test"、"screenshot"。泛泛的描述("billing 的有用工具")匹配不上。

正文结构按 template.md 的建议组织为七段:

  1. 一段式简介:这个应用是什么、如何被驱动——桌面用<driver-path>+ xvfb/tmux,Web 用chromium-cli,服务用curl
  2. Prerequisites(前置依赖):你实际跑过的那条apt-get install原样放上;
  3. Build(构建):按顺序的确切命令,包括你不得不打的补丁(功能开关、配置覆盖),带精确的sed或编辑内容;
  4. Run(agent path)——放最前:如何启动 driver、它接受哪些命令、截图落在哪里;若是 REPL 就展示 tmux 包装。这是下一个 Agent 真正会用的章节;
  5. Run(human path)——其次,如不同npm start→ 弹窗 → Ctrl-C,简短,注明在无头环境下没用;
  6. Gotchas:战斗伤疤。那些"看起来应该能用、实际不行"的事及其绕过方案。若这节写得很泛,说明你没认真打过仗;
  7. Troubleshooting:症状 → 修复,只写你真实撞到过的错误。

写作三原则:verified(你跑过)、prescriptive(一条路径,不罗列选项)、honest(有 flaky?慢?如实说明)。

路径约定:SKILL.md里的路径是相对<unit>/,而非技能目录。有歧义就在开头注明。driver 住在技能目录内时,从<unit>看去其路径是.claude/skills/run-<unit-name>/driver.mjs——长,但明确。

4.5 第 4 步:验证

开一个全新 shell,cd进 unit,逐行照着SKILL.md执行,不许偏离。任何"即兴发挥"都意味着文档有缺口——补上它。

五、Project-type patterns:六类项目的 driver 起点

生成器为六类项目分别准备了 driver 形态模板,与/run技能共用同一套(当没有项目专属 run skill 时,/run就回退到这些模式):

项目类型Driver 形态示例
Web 服务器 / API后台启动 + 基于curl的冒烟脚本examples/server.md
CLI 工具代表性参数冒烟脚本,检查退出码与输出examples/cli.md
TUI / 交互终端tmux 包装:send-keys/capture-paneexamples/tui.md
Electron / 桌面 GUIxvfb 下的 Playwright_electronREPL driver、截图、tmux 包装examples/electron.md
浏览器驱动dev server +chromium-cli脚本examples/playwright.md
库 / SDKimport-and-call 冒烟脚本examples/library.md

起点选择:Web 应用从 examples/playwright.md 开始——用chromium-cli驱动,无需自定义 driver;桌面应用从 examples/electron.md 开始——里面有完整的_electronREPL driver 骨架、tmux 包装,以及你会撞上的那串障碍清单。

5.1 Web 服务器/API:生命周期是核心关注点

服务的核心问题是生命周期:Agent 要能后台启动服务、确认它起来了、交互、然后干净地关闭。前台阻塞的npm start对 Agent 毫无用处。好的服务型 run skill 应有:Preconditions & setup、Run(后台启动模式)、Verify(curl确认存活)、Stop(干净终止)。若"后台启动 + 就绪轮询 + 冒烟 curl"超过几行,就把它们收进技能目录里的smoke.shSKILL.md里只写"运行冒烟脚本"。

后台启动的正确姿势(不能写裸npm start):

npm start &> /tmp/server.log & SERVER_PID=$! # 等服务起来(超时/端口按需调整) for i in {1..30}; do curl -sf http://localhost:3000/health > /dev/null && break sleep 1 done

验证:

curl http://localhost:3000/health # -> {"status":"ok"}

停止的坑:$!捕获的是 npm 包装进程的 PID,而 npm 不会把 SIGTERM 转发给其派生的服务进程——杀掉端口监听者才可靠:

kill $SERVER_PID lsof -ti:3000 -sTCP:LISTEN | xargs -r kill

优先用捕获的 PID 或端口,而不是pkill -f "<pattern>"——像next|vite|node这种宽泛模式会命中 Agent 自身的命令行,把执行它的会话一起杀掉。值得写进文档的细节还有:端口(写明并说明覆盖方式PORT=4000 npm start)、"就绪"的样子(特定日志行或健康端点)、必需的环境变量(长列表就附 .env 模板)、热重载 vs 生产模式、以及依赖服务(Redis/Postgres 等,指向 docker-compose 或直接给出docker run)。完整示例见 examples/server.md。

5.2 CLI:最简情形

CLI 没有后台进程、端口与生命周期,技能聚焦安装、代表性调用、测试三件事。需要注意:二进制怎么上PATH(全局安装?npx/uv run?构建到./target/release/foo?)、两三条覆盖主要用例的示例调用并附期望输出、有意义的退出码(如 linter 发现问题返回 1)、是否从 stdin 读取。

mytool process input.json # -> Processed 42 records, wrote output.json cat input.json | mytool process - # 从 stdin 读 mytool lint ./src; echo $? # 0 干净,1 有问题

CLI 的 run skill 可以非常紧凑,不要用每个 flag 去凑篇幅——--help已覆盖那些。见 examples/cli.md。

5.3 TUI/交互终端:tmux 包装是标准答案

交互终端应用(文本编辑器、REPL、curses UI)会接管终端,Agent 的 bash 工具无法直接驱动。必须展示如何把它们包进tmux:1) 在 detached 会话里启动 TUI;2)tmux send-keys发按键;3)tmux capture-pane读屏;4)tmux kill-session清理。

轮询就绪标记,而非固定 sleep——"更快且更可靠:应用一就绪立即返回,若永远不就绪则大声失败":

tmux new-session -d -s app -x 120 -y 40 './myapp' timeout 10 bash -c 'until tmux capture-pane -t app -p | grep -q "Ready"; do sleep 0.2; done' tmux capture-pane -t app -p

如果轮询行超过两三行,就提炼成driver.sh里的wait_for()helper。文档还应给出:终端尺寸(某些 TUI 在小宽度下会崩或隐藏内容,在tmux new-session -x -y里写死已知可用的尺寸)、按键参考表(TUI 的"API")、干净退出(退出键 +kill-session兜底)、颜色/unicode 怪癖(-e保留转义序列、-J合并折行)。同时保留人类直跑的 one-liner。见 examples/tui.md。

5.4 Electron/桌面 GUI:driver 即产品

无头容器里的 Agent 看不到窗口,所以交付物不是写着"npm start会开窗"的 Markdown,而是一个在 xvfb 下启动应用、暴露 REPL 命令(click/type/screenshot)、让 Agent 用一行行文本就能戳 UI 的driver 脚本SKILL.md变成这份 driver 的简短手册。

apt-get install -y xvfb libnss3 libgbm1 libasound2t64 libgtk-3-0 \ libxss1 libxkbcommon0 libatk-bridge2.0-0 libcups2 libdrm2

首次让它"至少能启动"通常最难、产出最多 Gotchas:README 会说"仅 macOS/Windows",忽略它。容器里--no-sandbox几乎总是必需的——Electron 沙箱需要 CAP_SYS_ADMIN 或用户命名空间,而容器两者默认都没有。

driver 以 REPL 为正确形态:Agent 能在 tmux 里运行它并不断迭代,而无须每次交互都重启(慢吞吞的)应用。最小命令集是launch/ss/quit,随后按需长出click/click-text/type/press/wait/eval/text/windows。一个值得注意的实现细节:click 走page.evaluate(el => el.click())而不是locator.click()——若内容位于叠在主窗口上的 BrowserView 里,Playwright 的坐标数学会打错图层,而 DOM 点击永远有效;另外用fs.openSync('/dev/stdin','r')+createReadStream的技巧阻止 Electron 抢走 REPL 的 stdin。完整骨架代码见 examples/electron.md。

Electron 应用你必然撞上的障碍清单(原文称之为真实项目里反复出现的模式):

  • firstWindow()给的是启动页/加载屏,不是应用本体——等更久,或按 URL、或等只在应用真正就绪时才出现的 selector 来找正确页面;
  • 真实 UI 在 BrowserView 而非 BrowserWindow 里——windows命令就是为弄清这点而存在的;新版 Electron 的getBrowserViews()可能返回空,改用webContents.getAllWebContents()
  • locator.click()点错对象——同上,坐标打错层,用 DOM 点击绕开;
  • 功能开关挡住你要测的东西——在构建产物里 grep 开关名定位检查点,本地运行时打补丁(对构建产物的sed、env 覆盖、或对 SSR 内嵌旗标用 CDPFetch.enable在飞行中改写响应),并把打了什么补丁、为什么写清楚;
  • contentEditable 输入(ProseMirror/Tiptap/Slate)不是<textarea>fill()不生效——聚焦元素后用keyboard.type(),若应用有这类输入就给 driver 加个focus <sel>命令;
  • Electron 抢 stdin——上文已述的 openSync 技巧可保护 REPL;
  • 原生模块(keychain、通知)加载失败——通常非致命:核心能跑、这些特性空转,记录下来继续。

5.5 浏览器驱动应用:不要自己写 browser driver,用chromium-cli

启动 dev server(在后台并轮询端口而非sleep 5),然后驱动无头 Chromium:chromium-cli是 headless-Chromium REPL,向 stdin 管道脚本即可:

chromium-cli --session app <<'EOF' nav http://localhost:3000 wait-for text=Dashboard screenshot click button:has-text("New item") fill input[name="title"] Smoke test press Enter wait-for text=Smoke test screenshot console --errors EOF

截图落在chromium_cli/sessions/app/screenshots/(最新一张软链为screenshot.png)。完整循环就是:navwait-for需要的元素 → 动作(click/fill/type/press)→screenshotconsole --errors检查没有异常抛出。若chromium-cli不可用,可把 examples/electron.md 的 REPL driver 改造过来:把_electron换成chromiumchromium.launch({ args: ['--no-sandbox'] })、用(await app.newContext()).newPage()拿页面再goto()dev URL,丢掉 Electron 专属的窗口内省部分。

技能里只需写项目专属内容:dev 命令 + 端口 + 停止方式、认证(set-cookie一行、登录序列、或产 cookie 的 helper 脚本)、一条有代表性的交互路径(证明它在运行,以截图收尾)、以及你真正撞到的 gotchas。高频 gotcha:React 受控输入(eval el.value=...不触发 onChange,用fill/type走 Playwright 输入管线)、Websocket/长轮询(wait-idle永不收敛,改wait-for你真正需要的元素)、首屏慢(Vite/Next 按需编译路由,首次nav可能 10s+,wait-for能处理而裸 sleep 不能)、以及宣布成功前先console --errors——页面可能渲染出外壳而所有数据请求都在 500。见 examples/playwright.md。

5.6 库/SDK:无"运行"步骤,聚焦构建、测试、最小可用示例

库没有过程意义上的 run 步骤,其 run skill 处理三件事:从源码构建、跑测试套件、以及一个最小可用示例来证明"装对了、能用"。语言无关的验证模式:

# Python python -c 'from mylib import Client; c = Client(); print(c.ping())' # -> pong # 编译型语言:写个临时 main 跑 cat > /tmp/smoke.go <<GO package main import "example.com/mylib" func main() { println(mylib.Version()) } GO go run /tmp/smoke.go # -> v1.2.3

还应考虑记录:开发模式 vs 安装模式(pip install -e .vspip install .)、可选依赖组([dev]/[test]/[docs])、生成代码(protobuf、OpenAPI client 等 codegen 步骤——它们几乎总是从 README 里缺席)。见 examples/library.md。

六、该包含什么、该省略什么、红灯信号

6.1 应包含的清单

  • Prerequisites:操作系统包、运行时、工具;Ubuntu 的apt-get行,而且是确切的那些;
  • Setup:装依赖、配置、任何补丁;
  • Build:编译/打包;
  • Run(agent path):driver、命令、截图位置;
  • Direct invocation:若可调用,如何 import 并运行内部代码而不启动整个应用(绕过初始化守卫的 env var/flag)——很多 PR 只需要这个;
  • Run(human path):若确有显著差异;
  • Test:测试套件命令;
  • Gotchas:撞到的非显性陷阱;
  • Troubleshooting:错误 → 修复;
  • driver 本身:提交在技能目录内(或"毕业"到scripts//e2e/),Web 应用则内联在SKILL.md里,无论哪种都被SKILL.md引用。

6.2 必须省略的

  • 任何你没跑过的东西——README 说yarn start:prod而你从未执行,它就不该出现在技能里,没有例外;
  • 你所在平台之外那些"文档化 happy path"——你在 Linux 容器里,一段无法验证的 macOS-only 章节就是臆测;顶多提一句它存在,不要展开;
  • 穷举选项——一条能走通的路即可;
  • 架构散文——那是别的文档的活;
  • 泛泛的 Troubleshooting——"构建失败就检查 Node 版本"毫无用处,只收录你真正撞到并修好的错误。

6.3 红灯:你即将交出错误的东西

出现以下任一情形就停下来重新考虑:

  • 没有为 GUI 应用截过图——你没运行过它;
  • 技能没有可指向的 driver/冒烟脚本,而应用又是交互式的——下一个 Agent 将无从驱动;(Web 应用用chromium-cli?那 heredoc 就是 driver,无需单独文件。)
  • 技能读起来像 README——同样的结构、同样的命令、同样的告诫,你只是在转述;
  • Troubleshooting 一节泛泛而谈——真实执行会产生具体而古怪的错误;错误太泛说明你没真正执行过;
  • 没尝试启动就写了"此平台不支持"——README 作者用的是 Mac,你不是;去试;
  • 一切一次就成功了——要么这项目简单得发指,要么你只是跑了测试套件就宣称完工。

七、上手路径与仓库配套资源

想亲自验证这套机制,可在本仓库内直接研读这些配套资源:

  • 生成器本体:run-skill-generator/SKILL.md;
  • 编写技能时的起点骨架(含 frontmatter 与正文结构模板,以及提交前删除注释的提示):run-skill-generator/template.md;
  • 六类项目型示例:server.md、cli.md、tui.md、electron.md、playwright.md、library.md;
  • 消费侧的/run技能(说明 run skill 如何被优先采用、何时回退到内置模式、何时推荐调用/run-skill-generator固化经验):run/SKILL.md。

值得注意的一个前提限制:本仓库为只读的提示词归档,无法实际在此执行容器内启动应用的验证流程;要真正生成与验证一个run-<unit>技能,需要在带 Claude Code 的真实项目环境里调用该技能,并严格遵循其"先启动、后成文、逐行验证"的顺序。这套方法论的价值恰恰在于:它把"谁都能写 README"升级为"只有亲手把应用跑起来、截下图、写完 driver 并逐字复核过的人,才有资格写 run skill"——文档的正确性因此从"转述"变成"执行过的事实"。

【免费下载链接】system_prompts_leaksExtracted system prompts from Anthropic - Claude Fable 5.1, Opus 5, Claude Design, Claude Code. OpenAI - ChatGPT GPT-6-Astra, Codex. Google - Gemini 3.8 Flash, 3.1 Pro, Antigravity. xAI - Grok, Grok Bot, Cursor, Kimi and more! Updated regularly.项目地址: https://gitcode.com/GitHub_Trending/sy/system_prompts_leaks

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询