Communitygithub.com

robcsaszar/scaffold

用于创建和审查 AGENTS.md、CONTEXT.md 和 DESIGN.md 文件的 Claude Code 技能。

scaffold 是什么?

该技能提供了一个双模式系统,用于创建或审查 AGENTS.md 文档,旨在帮助 AI 助手更有效地理解项目上下文。在创建模式下,它会引导用户一步步确定文件放置位置、分析项目中隐藏的陷阱和模糊之处,并按照优先级顺序(使命、工具链注册表、判断边界、完成定义等)生成高质量文档。在审查模式下,它会根据信号密度、命令优先性、完成定义、边界系统、长度准则和反模式检查等多个维度对现有 AGENTS.md 进行评分,并提供针对性的改进建议。该技能特别强调避免使用 AI 通用模板,而是要求注入真正无法从文件结构中推导出的专家知识。它适用于任何需要定义 AI 助手工作准则的仓库,尤其是 monorepo 环境,最终输出一个标注了具体命令和验证标准的简洁文档。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add robcsaszar/scaffold

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

AI 创建 / 审查 AGENTS.md

两种模式:创建一个新的 AGENTS.md 或审查现有的文件是否符合基于研究的质量标准。

模式检测

  • 用户提供了现有的 AGENTS.md 或指明了位置 → 审查模式
  • 用户要求创建/搭建/生成 → 创建模式
  • 不明确 → 询问:(c) 创建新的 AGENTS.md 还是 (r) 审查现有的?

创建模式

步骤 1:询问放置位置

AGENTS.md 应该放在哪里?
(r)oot — 仓库级基线
(p)ath — 特定目录(提供路径)

对于 monorepo:建议根目录 + 每个包的文件。最近的 AGENTS.md 生效。

如果目标路径已存在 AGENTS.md → 询问:文件已存在。(r) 审查现有 / (o) 覆盖 / (Q) 退出?

步骤 2:专家思考

在编写之前,确定此项目的:

  • 什么是不易发现的? 哪些信息不能从 package.json、配置或目录结构中推断出来?
  • 什么是危险的? 哪些命令或模式会导致静默失败?
  • 什么是模糊的? 哪些地方存在两种有效方法,而智能体会猜错?
  • 什么是非标准的? 哪些约定与框架默认值不同?

如果所有答案都是“没有”——那么该项目可能不需要 AGENTS.md。直接说明。

对于没有 package.json 或构建配置的仓库(仅文档、数据仓库、简单脚本):只关注使命和判断边界部分——工具链和完成定义部分不适用。

步骤 3:按优先级顺序编写

仅添加通过“不易发现”测试的部分,按以下顺序:

  1. 使命(2–4 句话)—— 项目目的 + 智能体无法推断的核心约束
  2. 工具链注册表—— 命令以表格形式呈现,而非工具强制的内容
  3. 判断边界—— 绝不 / 询问 / 总是 层级
  4. 完成定义—— “完成” = 特定的退出码
  5. 升级规则—— 受阻时该怎么做
  6. 任务组织的部分—— “编写时… / 审查时… / 发布时…”

步骤 4:验证

  • 总计 ≤ 150 行(最佳:60–100)
  • 每个部分 ≤ 50 行
  • 每条指令回答:“什么命令能证明这已完成?”
  • 每个“不要”都配有一个“要”
  • 不重复 lint 规则(先写工具链)
  • 没有不含命令的散文段落

必须——阅读 references/knowledge-base.md 以了解基于研究的模式和证据。 必须——阅读 references/template.md 以获取起步结构。 仅在用户询问完成的 AGENTS.md 是什么样子时,或者仓库是 JS/TS monorepo(它是一个 turborepo + pnpm 工作示例)时,加载 references/example.md——否则跳过。 在审查模式下,如果目标 AGENTS.md 少于 20 行,请勿加载 references/knowledge-base.md —— 对于极短的文件,主体检查清单和反模式列表就足够了。


审查模式

根据基于研究的质量标准评估提供的 AGENTS.md。

评分维度

维度权重检查内容
信号密度25%不易发现的专家知识行数与通用/冗余行数的比例
命令优先20%每条指令都有可验证的命令或退出码
完成定义15%明确的“完成”标准,包含具体检查项
边界系统15%绝不/询问/总是 层级存在且具体
长度准则10%≤150 总行,≤50 每部分,无臃肿
反模式排除15%无经证明会失败的模式

评分指导

  • 对于拥有成熟工具链的仓库,在信号密度上严格评分——大多数内容可能是冗余的
  • 对于绿场项目,在完成/边界上宽松评分——它们可能还没有 CI 关卡
  • 对于 monorepo 根文件,在长度上严格评分——这些文件会在每个包的所有会话中加载
  • 如果总分 < 40:建议重写而非增量修复

反模式检查清单

标记以下任何一项(经验证明会损害智能体性能):

  • 不含命令的散文段落
  • 模糊指令(“小心”、“尽可能”)
  • 没有明确排序的冲突优先级
  • lint 配置已强制执行的样式规则
  • 架构概览(导致过度探索)
  • 15 条以上的警告而没有提供替代方案
  • 来自 /init 命令的 LLM 生成的模板内容
  • 重复工具链已强制的内容
  • 粉象违规(长“不要做”列表使禁止的概念保持活跃)

输出格式

## AGENTS.md 审查: <文件名或路径>

**分数**: X/100
**结论**: [生产就绪 / 需要改进 / 建议重写]

### 优点
- ...

### 问题(按严重性排序)
1. [严重] ...
2. [高] ...
3. [低] ...

### 重写建议
1. ...
2. ...

应用

审查本身不是交付物——更好的 AGENTS.md 才是。呈现审查结果后,提供:

应用?(a) 全部 / (s) 按编号选择 / (n) 无

对于 (a) 或 (s):逐个编辑文件中的编号项,然后重新运行评分维度,并报告新分数与旧分数对比。审查未标记的每一行都原样保留——审查不是重写命令,静默地“改进”未标记的散文会破坏作者的声音和意图。

当用户提供的是内联内容而非文件路径,或者文件不可写时,跳过提供应用的选项。直接说明,而不是报告改进已应用。

必须——阅读 references/knowledge-base.md 以了解每个标准背后的研究证据。


绝不

  • 绝不包含智能体可以从仓库结构中发现的内容—— package.json 脚本、目录布局和配置文件是自文档的;重复它们会浪费令牌并产生维护漂移。而是: 引用文件(见 biome.json)并继续。
  • 绝不重复 lint/格式化器规则——工具本身就是约束;重复会导致过时和不必要的要求,严重损害智能体性能。而是: 只列出运行命令(Lint: \pnpm lint``)。
  • 绝不写“不要”而不配对一个“要”——仅含警告的文档会导致过度探索;15 条以上的“不要”而没有替代方案会使智能体变得保守且效率降低。而是: 每个禁止项都配上正确的替代方案。
  • 绝不超出 150 行——超过此阈值,收益递减,文件反而会损害质量。而是: 将细节提取到引用的文件中或删除。
  • 绝不将 LLM 生成的内容作为最终内容—— /init 输出是智能体已知信息的清单;它会降低性能并增加成本。而是: 将其视为草稿清单,然后删除工具链已强制的一切。
  • 绝不写散文段落——智能体会跳过它们;使用命令、表格和带可验证结果的要点。而是: 转换为命令 + 退出码 + 一行描述。

相关技能