关于 audit-state-machines
audit-state-machines 是用于检查代码库中显式或隐式状态机缺陷的技能。它指示 figure-out 调查指定范围、记录状态机与已确认的问题,并提出将发现整理为工单。
主要功能
- 01审计显式和隐式状态机
- 02检查指定区域或整个代码库
- 03记录状态及其写入位置
- 04按影响程度排列已确认缺陷
- 05提出将发现转为跟踪工单
适用场景
- 01审查代码库中的生命周期相关缺陷
- 02找出写入位置分散的状态机
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ doodledood/ manifest-dev --skill audit-state-machines安装后在 Claude Code 中输入/audit-state-machines确认已加载。
详细介绍
审计代码库中的状态机缺陷。状态机是指其变化遵循某种生命周期的值——例如状态,或组合起来构成状态的标志——../review-code/references/code-bugs.md → 状态机 说明了如何发现状态机、重建模型、检查模型并确认检查结果。figure-out 会按照完整的调查规范执行审计;此技能会补充下方的简报和末尾的后续安排。
使用下方的简报、给定参数、--autonomous 和 --no-docs 调用 figure-out 技能。--no-docs 可防止 figure-out 在受审计项目中写入项目文档;如果提供了 --no-log,也要传递该参数。如果没有给出路径或范围,则审计整个代码库。如果无法访问代码库,请说明并停止。
简报:
按照
../review-code/references/code-bugs.md→ 状态机,审计 [范围] 中所有显式和隐式状态机。无论近期是否有任何变更,发现的每个缺陷都要计入:这是一次审计,而不是对某项变更的审查。以指令形式编写的机器也要计入,并按该章节所述进行检查。
- 列出搜索范围内的每个状态机:说明它跟踪的内容、是显式还是隐式、其状态,以及各写入方所在的文件和行号。说明搜索了范围中的哪些部分、哪些部分未搜索,并说明原因。对于大型代码库,在审计日志中记录每个状态机;若保留日志,则在完成该状态机的检查时记录。
- 按影响排序列出已确认的缺陷。对于每个缺陷,给出每个相关位置的文件和行号、导致错误状态的执行序列,以及发现该缺陷的模型——提供模型保存路径;如果未保留日志,则提供临时模型路径。对于隐式状态机中的缺陷,修复方式是将其显式化:由一个主体负责所有状态转换,并添加测试或类型,确保其他任何位置写入该状态时都会失败。
- 列出缺陷后,按优先级降序列出没有缺陷、但写入方分布在多个文件中的每个隐式状态机,并建议将其显式化。若某状态机的所有写入方都位于同一个函数中,则无需提出建议。
- 对于模型未发现问题的状态机,说明模型覆盖了哪些内容;切勿称该状态机正确。
- 不要在受审计项目中写入任何文件。模型和脚本都应保存在项目之外。
figure-out 返回审计结果后,将结果告知对方,并提出可将已确认的缺陷和显式化建议整理成 Tickets 的选项——即记录在项目跟踪系统或文件中的独立工作项,作为债务记录,代表已发现但尚未修复的问题。对方同意后,使用这些发现调用 ticket-up 技能。如果没有人可以答复,例如由其他工作流运行此技能,则在结果中列出该选项;仅当调用方的任务授权写入 Tickets 时,才调用 ticket-up。