Community写作与编辑github.com

JawsomeJason/jawsome-agents

将代码仓库的审查历史转化为编号的编码标准,每条规则附带原因和对应的审查评论,然后根据这些标准审查差异,并保持标准精简。适用于从审查历史编写或审计编码标准、审查差异或拉取请求、精简智能体已自动遵循的标准,或检查标准漂移。

jawsome-agents 是什么?

该技能旨在将代码审查评论历史自动转化为结构化、可追溯的编码标准文档(称为“§”),并持续根据这些标准审查新的代码差异。其核心价值在于将隐性知识(审查者的评论)显性化为维护者、贡献者和AI编码代理都能遵循的规则。它支持`mine`(挖掘评论)、`write`(编写标准)、`review`(审查差异)、`prune`(裁剪智能体已自动遵守的规则)和`doctor`(检查标准健康状态)等命令。该技能强调证据驱动(每条规则需来自至少3个不同变更和2个不同审查者)、规则自带原因、以及使用检查工具(如linter)代替编写规则。它兼容`git`,并可配合`gh`或`glab`等工具使用。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/JawsomeJason/jawsome-agents/tree/HEAD/plugins/standards/skills/standards

Installed? Explore more 写作与编辑 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜欢的 AI 中提问

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

文档

标准

审查者通过一条条评论手动执行相同的约定。此技能将这些评论挖掘成书面标准,然后检查差异是否符合这些标准。每条标准将代理在编写代码时遵循的规则与审查者在审查差异时使用的视角配对。每个编号的 § 引用了其背后的审查评论,因此任何人都可以追溯到执行该规则的审查者。

核心原则

  • 证据优先。 一条 § 需要至少来自 3 个不同变更和 2 个不同审查者的审查评论,因为对同一个变更或同一个人的多条评论只是单个审查者的个人偏好。
  • 每条规则都带有原因。 在围绕规则的代码形式发生变化后,原因仍能指导代理。
  • 每种约定只有一个归宿。 两份副本会渐行渐远,代理只会遵循它第一个读取到的规则。
  • 检查优于 §。 可以被 linter、类型检查或测试捕获的约定应归于该工具,因为检查每次都会运行。
  • 删除代理已自动遵循的规则。 一条无需提示即被遵循的规则每次加载都会耗费上下文且不会改变任何行为。
  • 脚本只是捷径。 每个输出文件在 references/schemas/ 中都有相应的模式,因此当脚本缺失或失败时,可以手动编写相同的文件。
  • git 是唯一的硬依赖。 平台的 CLI(例如 gh 或 glab)可以添加审查评论,若无此类工具,git log 可作为替代。

命令

命令功能输出参考文档
mine提取审查评论,按约定进行标记,根据出现频率乘以严重程度对聚类进行排序.standards/clusters.jsonreferences/mine.md
write将排序后的聚类转化为仓库中的标准技能,每条 § 都附带其原因和证据标准技能references/write.md
review应用差异触发的每个视角,并引用相关 § 报告发现回复中的发现references/review.md
prune在不同的测试框架中对每条规则进行 A/B 测试,并删除代理无需提示即遵循的规则prune.jsonreferences/prune.md
doctor标记漂移:不匹配任何内容的 glob、已删除但被引用的文件、从未触发的视角、过时的剪枝数据.standards/doctor.jsonreferences/doctor.md

路由

调用方式为 standards [command] [scope]。scope 是一个路径或 glob、从生成的索引中获取的区域 slug 或 § 编号(§2、§2.3)。具体解析方式请参见 references/scope.md。mine 只接受路径参数,因为区域仅在 write 之后才存在。

  • 无参数。 显示下方菜单并等待选择。永远不要自动运行命令,因为每条命令都会读取历史、编辑仓库或消耗大量代理运行次数。
  • 有 scope 但无命令。 不加询问地对该 scope 运行 review,因为 review 只读取数据。
  • 明确或清晰暗示的命令。 加载其参考文档并按步骤执行。
  • 两个命令都符合。 询问一次该用哪个,同时说明每个命令的名称和功能。然后根据回答执行。
  • 从零开始创建标准。 从 mine 开始,因为 write 需要 clusters.json。当 mine 完成后,主动提供 write 选项。
  • 关于技能本身的问题。 直接从此文件中回答,无需运行任何命令。

菜单

standards: 我应该做什么?
  mine    挖掘审查评论并将它们排序为约定
  write   根据排序的约定编写标准
  review  根据标准审查差异
  prune   测试每条规则,删除代理已自动遵循的规则
  doctor  检查标准是否存在漂移
每个命令都可选接受一个 scope:路径、区域或 §。

当存在生成的标准时,在菜单下列出其区域,格式为 § 编号和 slug。

流水线

mine 为 write 提供输入,write 产生 review 所用的标准。prune 和 doctor 在此之后维护这些标准。

工作文件位于目标仓库根目录下的 .standards/ 目录中。请将该目录排除在版本控制之外,因为审查评论可能引用代码和人员信息。prune.json 是例外,它应放置在生成的标准旁边,因为 doctor 需要从中读取数据。

<skill-dir> 在参考文档中指的是包含本文件的文件夹。<skill-dir>/scripts/ 中的脚本可加速 mine 操作,且仅需 JavaScript 运行时的标准库。

判断模型

mine、prune 和 doctor 会提出许多小型类型化问题。判断模型是一种快速模型,能够以校准后的概率回答类型化问题(从集合中选一个,是/否概率,评分)。如果你的环境提供了判断模型,请使用它来回答这些问题;否则,由你亲自回答。你的环境自身的指令会决定使用哪个模型。

生成的标准

  • 默认输出是一个技能,其中包含一个由一行摘要组成的索引,每个摘要链接到一个 § 文件。模板:索引 和 章节。
  • 可以为每个区域生成一个独立的技能,具体依据 references/write.md 中的形状实验来决定。
  • 生成的标准遵循与本技能相同的规则:仅包含规格说明的 frontmatter,无 URL,无日期,并且每条规则都附有原因。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

相关技能