agentleFS
ifoohooifoohoo/artifact-chain-assistant/skills/spec-author/SKILL.md

spec-author

Skill1 starsChanged 3 months agoApache-2.0View on GitHub

编写或优化 SPEC、执行计划和分层任务输入。核实项目定义、必要制品与评审,完成上游能力匹配、双向语义覆盖、合同标记和独立正文审阅。

11 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Files
SKILL.md

SPEC 编写

帮助规格作者和审阅者得到可执行的最小完整方案。裁剪对象是实现手段与重复工作,不是用户要求、真实验收或安全边界。允许结论为“当前方案无需修改”。

生成过程中,在实现方案和任务拆分定型前完成上游能力正向匹配;生成结束后,结合唯一执行计划核对匹配结论是否进入具体任务。已有实现时先判断缺的是行为、证据还是执行环境,不能把缺证直接转成重新开发。

0. 必要前置完成后才编写 SPEC

编写顺序固定为:从用户原始需求与已确认裁决确定行为变化、保留保证、项目和交接;读取各项目当前生效的配置、模板、profile、目录说明和阶段约定,确认迭代是否已经落在文件和调用映射上;按本次影响判断必要制品;实际完成正文、关系与适用评审;之后才输出 SPEC 和执行输入。定义存在或声明已升级不算正文已经齐备。

前置未齐时,只输出需求、具体缺口、实际补齐安排和方案讨论。不给本轮规格命名,不交付 SPEC,也不把补齐写成后续 T0 或“待完善 SPEC”。方法返回 NEEDS_INPUT 时保留该真实缺口,不虚构 worker,不把未评审写成通过。与该缺口没有依赖的准备工作可以继续。不得静默缩小请求范围来产出局部 SPEC。

定义适用时直接进入正文检查。无定义或存在阻断缺口时,按授权衔接 artifact-chain-bootstrap 或项目已经在用的维护入口,并在返回后重读实际文件。其他流程已经生效的结果直接读取,不强制重跑。旧定义仍然适用就继续沿用。不以定义不足裁掉真实需求。迭代仍不足以表达本次必要内容时,报告具体缺口,不输出 SPEC。

0.0 默认测试交接

<!-- @feature ACA27 @scenario S-151 -->

在必要前置制作过程中确定验证范围、接受与停止时,按references/default-testing.md实际调用默认plan并读取返回的业务计划;任何方向均不得仅提推荐。不要求尚不存在的未来执行结果,执行阶段条件具备后才实际衔接run。TEST负责测试方法,不代替专业制品作者和独立审阅。

0.1 四项判断分开写

对每个受影响项目分别给出四项结论,每项都写依据:

  1. 范围依据
  2. 正文充分性
  3. 必要关系
  4. 适用评审

每项写下实际已核实的结论和依据。必要材料、关系与评审都已完成时,已核实结论可以表示为已满足。缺失、未检查、依据不足、不适用 分别表示四种缺口,四词不是穷尽值域。不要把它们混成一个总评。

下列情况分别报告,不能互相抵消:

  • 必要前置尚未创建
  • 必要前置没有被引用
  • 必要前置没有进入图
  • 节点只指向一个缺失的附件
  • 实际依赖的关系没有建立

文件存在、标题、ID、标记齐全、图校验成功或版本锁成功,都不能掩盖正文或关系缺口。carried_into、SPEC 引用和图影响只作定位线索,不作为范围上限。Schema 无法表达真实需求时保留需求并报告定义缺口,不把未入图自动当成业务缺失。

沿用历史正文或历史评审时,核对适用范围、版本和当前正文。变化部分必须有自己的适用评审,不全量重审未变化的历史。开发前测试规格与开发后真实执行结果分开记录,开发前不索要尚未发生的执行结果。

0.2 独立全文审阅与开发补漏

前置专业评审和完整 SPEC 审阅是两项不同职责,不能互相补签。前置完成后,由不同职责在同一轮集中审阅中先复核范围依据,再核对完整正文和必要附件。作者整理的来源表只是导航,不是审阅范围上限。审阅者必须主动查找作者遗漏的必要来源。

开发补漏或遗留补档仍先了解需求影响和有效定义:

  • 事实明确,只缺说明或关系:按授权补齐并复审受影响制品、SPEC 和实现。
  • 实现偏离已批准设计:报告冲突,交给相应职责,不在规格里隐性改要求。
  • 意图不明:保留待确认。不从代码反推批准需求,不倒填历史。
  • 没有真实方法返回时,不报告闭环通过。

0.3 来源索引、增量正文与项目模板

SPEC 由两部分组成:来源索引,加上本轮相对基线的增量正文。完整 PRD、场景和详细设计仍由原制品维护。索引写明制品身份、具体章节、本轮采用的内容和版本依据。版本依据使用项目现有 Git 引用、版本锁或本轮评审记录。引用未提交正文时写明工作树基线,并指向已经核验的评审快照。HEAD 不是未提交正文的版本。不能只凭摘要声称可以恢复全文。

增量正文依据已核实的产品需求与设计,描述规格所定义的产品变更:目标行为、保留要求、关键实现决定、实现涉及的源文件、派生物、外部对象及可观察验收。关键实现指向已评审设计的具体章节。执行计划独立引用,不把完整任务进度复制进 SPEC。不得只放链接,也不得复制整份制品变成第二份日常正文。

默认对照插件 templates/core/spec-entry.starter.md。该模板保留五个生命周期章节和全部合同标记:changes、scope、acceptance、acceptance-record、archive-record。项目已经有实际模板时,以项目模板为准。

1. 限定本次检查

按本次任务选择编写、改稿或只读审阅,并明确关注的风险与阶段。

读取适用的 AGENTS.md、用户原目标及当前 SPEC、执行计划中本次判断所需的完整内容。先从现行入口确认权威关系与读取范围,不默认把原规格、返工规格和全部复审材料一起加载。再按风险阅读直接相关的接口、调用方、测试或证据。缺材料时给出条件结论,不补造项目事实。

不默认检索全部会话、扫描所有项目、运行全量测试或安排多个审阅者。不为本技能建立计划树、评分表、证据登记表或执行器。短小改动只检查实际相关项。

2. 先保护结果,再裁剪手段

从原目标确认用户可观察的结果、真实使用场景、兼容要求、安全边界和完成条件。执行者生成的设计、自测结果与完成报告不能覆盖这些要求。

对拟修改内容逐项询问:

  • 删除后,哪一项用户结果、合同或已观察故障会失去保证?没有具体答案时,优先移除或延后该手段。
  • 现有实现或上游公共能力能否覆盖?按行为保证归为直接采用、薄层适配、领域实现或上游缺口,不按文件名或所在仓库归类。
  • 当前复杂度来自真实必要条件,还是未来预留、对称性、保险检查或验证器自身的要求?

比较能够完成同一目标的完整方案。不能让轻方案省掉安全要求,再据此认定重方案更可靠;也不能用“优化”名义删除原验收。改变目标、合同、权限或权威归属的建议单列,等待所需裁决。

3. 规格阶段完成正向能力匹配

在方案和任务拆分定型前,从本次实际场景出发主动查找可复用能力。优先核对项目已有工具和已声明上游;发现新的共性处理需要时,再查询相关公共能力。匹配结果用于确定实现与验证方式。

在拆写集、估工期和委派之前,读取 上游能力正向匹配,按当前版本的公开能力逐项问“本次哪个场景可以使用”。对命中项读取公共合同与现有接线,再核对 SPEC 的拟建脚本是否重复。通用处理即使被命名为领域脚本,也必须拆开比较。

将结论直接写进权威 SPEC 的“底层能力采用与编排”部分。每个采用项必须明确场景、提供方与精确版本、能力 ID 或公共入口、调用位置和输入输出、项目保留职责、验证方式、产品安全要求和外部动作;任务表引用同一结论,不再维护副本。与方案有关但未采用的候选须给出具体理由;没有相关场景的检索提示无需写入正文。

生成或优化 SPEC 时,按能力匹配参考第 6 节核对本轮 SPEC 与相关制品的双向语义覆盖,并沿用该节的处置表。

缺少会改变接口、写集或验证方式的能力事实时,该切片仍是待决草稿,不能交给执行者“自行选择上游或自建”。已选择的入口允许执行时核对环境和填入由事实确定的参数;更换提供方、版本、机制、职责或测试编排时,先修订同一 SPEC 的受影响决定。

3.1 修改粒度、删除重命名与反例

读取 规格修改与审阅方法,并在语义准备、对照组织和交付核对中实际使用:

  • 以完整需求及全部相关场景为修改单位;
  • 分别检查删除与重命名;
  • 按需求展示基线与目标差异;
  • 把配置结构错误交给现有加载与 artifact-chain-setup 诊断;
  • 关系配置的结构、取值与诊断按上述参考第 4 节核对;
  • 识别遗漏场景、同名异义、空材料和勾选无证据。

需求登记、add/modify/delete 回写和 SPEC 条目创建仍由 artifact-chain-requirements 负责。本技能在材料缺口处引导进入已有制作与评审入口,不汇总审阅结果,不自造审阅控制器。profile 或 worker 未就绪时如实报告未评审,不伪造通过。

3.2 标记合同与独立正文审阅

生成或优化完整 SPEC 时,先确认目标项目实际采用的合同,再对完整新 SPEC 做两层检查。标记通过不等于业务完整;上游 PRD 审阅、已有 prd-feature/review 结论、前置专业评审,以及通用 review 的目录或就绪结果,都不能代替本轮独立的完整 SPEC 正文审阅。前置专业评审与完整 SPEC 审阅不能互相补签。独立审阅先复核范围依据,再核对完整正文和必要附件;作者来源表只是导航,不是审阅范围上限,审阅者必须主动查找遗漏的必要来源。

官方合同身份是 artifact.spec@1,声明源只在 Graph 包 contracts/spec/schema.json。authority 与 namespace 均为 artifact。本技能采用该合同,不在助手参考目录复制另一份同身份 schema,也不新增加载器、导出或注册表。

采用步骤:

  1. 读取目标项目实际使用的 SPEC 模板。默认对照插件 templates/core/spec-entry.starter.md;项目另有模板时以项目实际文件为准。SPEC 写来源索引和本轮增量正文。HEAD 不是未提交正文的版本。执行计划独立引用。
  2. 用现有 CLI artifact-graph contract explain --contract artifact.spec@1 --contracts-dir <contracts> --format json 读取真实 identity、revisionDigest 和 semanticMarkers。摘要以本次 explain / loadContract 结果为准,不在技能正文维护平行常量。
  3. 有效机械采用必须看到非空的必需标记集合,覆盖三个业务槽:changes(行为变更及完整场景)、scope(修改范围与项目边界)、acceptance(可观察验收)。acceptance-record、archive-record 是可选标记,对应正式模板里原有的验收与归档正文;执行草稿不得把未完成项写成 passed 或伪造归档。
  4. 对完整新 SPEC 调用现有 artifact-graph contract validate-markers,提供真实参数:--contract artifact.spec@1、--contracts-dir、--revision-digest(与本次 explain 一致)、--markdown(完整 SPEC 路径)、--format json。不得用 contract validate 或 normalize 冒充正文验证。jsonPointer 只描述同一语义槽,本命令不解引用,也不声称已验证指针映射。
  5. 标记齐全后,交由不同职责方只读审阅完整正文、业务来源和必要附件。两层都通过,才可完成 SPEC 验收。 独立职责实际读取 <plugin-root>/skills/artifact-review/references/type-methods.md 的 spec 方法;采用 artifact-review spec 路由时,仍须通过原项目 profile 就绪检查并提交真实独立语义 Review Result。缺少 profile、输入或审阅结果时如实保留缺口,不以通用 worker 补签。

拒绝把下列情况写成机械通过:未知合同;合同未定义或 semanticMarkers 为空;只有可选标记、缺少任一必需标记;重复标记;未知标记。内核仍对无标记合同保持兼容(未定义时校验器返回 valid);宿主必须阅读真实 explain 结果再判断,不能把兼容空集当成本轮有效采用。

采用前确认实际安装的 Graph 包提供 artifact.spec@1,并按正式包或工作树候选的真实来源记录身份。缺少合同或必需标记定义时,报告具体缺口。隔离消费从实际安装包定位合同。

项目可显式采用自身合同,但必须使用自身身份并有项目采用依据,不得冒用 artifact 官方身份。正式 starter 仍保留原五节生命周期规则。

4. 将规格组织为可承接的执行输入

多职责、跨会话或存在任务依赖时,读取 执行编排与分层读取,交付业务规格、独立启动单、唯一公共执行计划和各职责的任务文件。沿用项目现有文件;单职责、窄写集且无跨会话交接的小改动可以保持单文件。

SPEC 定义产品结果、合同、产品实现范围、底层能力采用及验收。公共计划安排产品实施任务的依赖、职责、读写集、交接、验证和进度。启动单明确产品执行目标、首个动作及完成条件,任务文件说明各职责如何交付其完整结果。

从承接者可见的输入顺读主会话启动、代表实现和独立审阅路径,继续展开必读引用。各职责完整取得当前任务所需的业务合同,不默认加载全部领域和历史。具体读取方法与交付核对按执行参考第 3、5 节完成。

评审、方法绑定或业务输入存在真实缺口时,写清受影响任务、缺少的材料及满足条件;任务写集使用实际文件路径。用户限定单文件或局部修改时,交付范围内的结果并说明尚未完成的结构部分。

5. 核对产品实现路径

集中检查事实与复用、依赖与编排、验证与证据、收尾与成本。只展开存在信号的部分。每项验收指出真实入口、输入、应观察的业务结果和最近的既有检查。退出 0、产物存在和模型自报不代替完整业务值验收。

实现和返工使用成组聚焦测试;稳定快照集中审阅、统一裁决和修复,批末运行权威完整门禁。不把完整测试改名为聚焦测试。不为前置检查新增包装器。

6. 按风险补查,不常驻展开

SPEC 涉及测试分组、并行、昂贵初始化或跨阶段复用时,读取宿主可发现的 test-performance-optimizer。没有慢测试证据时,优先沿用既有策略。Foundation 命中项的采用诊断使用可用的 foundation-adoption-review。专项技能不可用时说明限制,只给范围内建议。

遇到阶段循环、入口受限、反复交接、上下文成本、风险裁决或收尾状态混用时,读取 条件检查。

7. 文档生成后优化可读性

本技能生成或修改的各类中文文档,在内容成稿后、最终交付核对前,按插件内已发布公共参考执行拟稿与核收。执行本节前,必须从当前插件安装根完整读取:

  • $PLUGIN_ROOT/skills/spec-author/references/shared-writing-workflow.md
  • $PLUGIN_ROOT/skills/spec-author/references/expression-service-config.md

两份参考与 Docs 公开发布版本 skill-family-docs-v0.6.7(提交 7433554d2e2995729c2aafee52eb525ca827446d)字节一致。不要改写这两份参考;更新只能来自明确采用的新发布版本。运行时不依赖 Docs 工作树、Docs 已安装或个人技能目录。隔离插件只要带有本技能树,即可定位两份参考和表达脚本。

公共参考按原字节保留。本入口补充本领域边界,不改写参考正文:

  • 只读审校可以定位事实、理解和表达问题,但不修改受检正文,也不自动把整份私有材料发给模型。
  • 本轮新写的中文报告仍须按已有授权走本节优化,并经宿主核收后交付。
  • 材料可以是公开材料,或已有明确外发授权的材料。不得把 Docs 站点的公开材料限制扩到 Artifact。
  • 表达优化不能改变验收、依赖、职责、授权、停止条件或规则强度;技术合同、代码、命令、路径、版本、任务 ID 和机器字段保持原值。

脚本路径为 $PLUGIN_ROOT/skills/spec-author/scripts/expression-outbound.mjs。它与 Docs 公开发布版本 skill-family-docs-v0.6.6(提交 084b53a60bf871dd311e3eb62b398a9c48e3821b)字节一致;该脚本与 0.6.7 公开脚本字节相同,本轮保留 0.6.6 来源声明,不升级脚本版本。不要修改该副本。

配置沿用 SKILL_FAMILY_DOCS_ENDPOINT、SKILL_FAMILY_DOCS_MODEL、SKILL_FAMILY_DOCS_CREDENTIAL_ENV(值为存放凭据的环境变量名)。配置检查只通过 artifact-chain-setup → $PLUGIN_ROOT/scripts/setup-checks.mjs 进行。公共配置参考里的示例命令不是第二套检查入口,不自动从 LLM_* 补齐,配置存在不等于服务可用。缺配置、调用失败、候选拒收或材料未获授权时,语义审阅、图查询与机械检查可以继续,但必须报告“可读性优化未完成”。凭据不得进入材料、命令参数、候选或日志。公开产品不得硬编码模型名、服务地址或 API key。

按已读取的公共写作流程执行,不得另建阶段状态、runner 或第二套表达脚本:

  1. 先读完全文材料,明确读者、阅读任务和必须保留的机器身份,并写入已纠正失效事实的完整材料。
  2. 用同一脚本生成仓外大纲候选;宿主审核大纲后另存审核大纲。
  3. 按完整语义单元顺序拟稿;每次只提供当前单元及必要事实。短文传入全部已接受前文,长文传入上一节全文和更早内容的覆盖摘要。第一节写明没有前文。
  4. 只有宿主接受的稿可以作为后续小节前文。待审候选不能充当前文。
  5. 各节接受后拼接全文,做事实覆盖核对和目标读者冷读。

候选必须写到仓外绝对路径。脚本没有接受权、没有重试、没有语义判断。交付时分别报告外发表达步骤状态与宿主语义核收状态:前者以脚本实际返回为准,后者覆盖大纲审核、各节核收、全文核对和冷读的实际范围。候选产生、失败或退出码 0 都不代表文档通过。

8. 一次收敛并交付

集中输出有依据的修改;每项说明观察、最小调整、保留的验收及预期减少的成本。无实测时不填节省百分比或精确耗时。

允许改稿时更新第 4 节要求的整组执行输入;只读时返回对应缺口,不改文件。交付前按执行编排参考第 5 节完成一次集中核对,并按能力匹配参考第 6 节与 规格修改与审阅方法 再做覆盖与反例核对。风格、链接、图关系或版本锁检查通过,以及图边或 ID 能够对应,都不能代替 SPEC 与相关制品正文的语义覆盖。

文档齐全但仍有覆盖未决时,报告“文档已整理,相关任务暂不可委派”,并写明等待补充评审还是等待用户裁决。只做规格优化就如实声明尚未实施。

完整 SPEC 的前置条件以第 0 节为准;标记合同和独立正文审阅按第 3.2 节完成。

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.