关于 strategic-programming
strategic-programming 是面向开发者的编程质量技能,适用于修改现有系统。它强调追踪实际行为、减少自定义机制,并用针对性证据和项目检查验证已接受的需求。
主要功能
- 01追踪调用方、状态与数据流
- 02将需求映射到验证证据
- 03优先复用现有能力
- 04通过清晰接口隐藏策略细节
- 05用针对性测试和项目检查验证最终改动
适用场景
- 01在现有代码库中实现有界功能
- 02从共同根因修复缺陷
- 03交付前审查复杂度与验证证据
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ taecontrol/ skills --skill strategic-programming安装后在 Claude Code 中输入/strategic-programming确认已加载。
附带文件agents/openai.yamlreferences/test-value.md
详细介绍
策略性编程
让系统更容易理解和修改。在保留重要设计、安全和运行属性的前提下,以最少的自定义机制满足已接受的行为。
按实际情况运用以下视角。它们是质量标准,不是固定的交付流程。先理解,再简化;每次写入都要证明最终结果正确。
夯实变更依据
阅读已接受的实现输入——用户限定范围的请求或已接受的规范——以及适用的项目说明、编码标准和可执行门禁配置。沿着受影响的接口追踪实际调用方、状态和数据流,而不要只根据文件名推断。
编辑前,明确每项已接受的要求和受保护的行为,并将其对应到计划中的验证证据,包括自动化门禁无法确认的义务。复用已接受规范中的示例;对于范围明确的工作,在对话中简要列出提纲即可。随着调查发现受影响的义务,更新对应关系。
明确主导不变量或策略、其权威来源、负责人,以及不应承担其具体细节的调用方。如果共享原因是最窄且正确的修复接口,就在该处修复缺陷;检查同类调用方,不要假设报告中的路径涵盖了全部问题。
在本地解决可逆的实现选择。如果证据表明已接受的行为、公共契约、敏感策略或难以逆转的架构存在问题,应明确指出具体差距,而不是悄悄重新设计。
尽量减少自有机制
理解流程后,遇到第一个能完整满足已接受行为的方案就停下来:
- 通过删除、直接组合或使用现有能力,避免引入新机制。
- 复用仓库中既有的实现或模式。
- 使用标准库。
- 使用平台原生能力。
- 使用已安装的依赖项。
- 只实现行为实际需要的最少自定义逻辑。
优先选择朴实的代码和已有实践证明可行的差异。不要为了假设中的未来工作增加推测性的抽象、配置、扩展机制、脚手架或依赖项。
差异最短不一定代表设计最佳。如果更多的内部实现能显著缩小面向调用方的接口,就有其合理性。绝不能为了精简而舍弃已接受的行为、能区分问题的证据、信任边界验证、安全性、防止数据丢失的措施、无障碍支持或必要的运行控制。
隐藏复杂性
每项策略都应有明确且唯一的归属。优先采用深模块:接口小而诚实,同时隐藏大量实现细节,并避免调用方依赖容易变化的信息。使用删除测试:如果删除模块会把其复杂性扩散到各个调用方,那么该模块有足够深度;如果复杂性随之消失,那么它可能只是转发层。
使用能够保留系统所依赖区别的名称和类型。在边界处解析并验证未知的外部数据或持久化数据,然后再使用安全的应用类型进行操作。保留权威事实,不要根据偶然的信号重新推断。
当共享可变状态、并发、顺序、重试、所有权转移、回滚、迁移、恢复,或会改变其他字段含义的字段可能影响正确性时,实现前应枚举状态空间:对每种状态,列出每种操作结果、顺序或变更及其预期的已接受结果,包括延迟、重复、部分完成和失败等情况。根据状态空间推导测试,并明确责任归属和原子性边界。不要为变更不涉及的交互维度增加机制。
证明行为
将每项实质性义务映射到最窄且忠实的切入点。保留能够因先前行为或合理缺陷而失败的测试或复现,并依据已接受的契约、完整示例、已知正确的固定样例、外部判定依据或其他能够与实现意见相左的来源推导预期结果。
在编写或保留测试之前,先应用 测试价值:检查其中的四个问题、无效模式和保留门槛。
每次声称代码已就绪的交接都必须验证自己交付的状态。完成最后一次修改后,或在无需修改时完成审查后,运行适用的重点测试和受影响的项目门禁,包括可执行项目配置中定义的任何变更代码复杂度检查。不要用其他参与者此前通过的验证结果替代,也不要把已知失败推迟到后续审查。不要臆造项目缺少的工具或阈值。
有策略地收尾
重点验证通过后,检查结果是否存在变更放大、调用方需要了解隐藏细节、策略重复、名称或类型不实、可避免的自定义机制,以及没有明确归属的失败行为。修复有依据且属于已接受范围的问题,然后重新运行受影响的验证。
如果多个缺陷有共同原因,应采用结构上最有力的修复来解决根因:先用类型使错误状态不可表示,再考虑 lint 或架构规则,然后是负责该机制的共享组件,最后才是针对需要判断的事项制定编码规范。优先完善现有检查,而不是新增检查。修复或明确命名新检查报告的现有违规,并证明它能在植入违规时失败。
根据 grounding 中的义务映射核对最终结果。为每项义务提供观察到的证据或明确说明其限制,包括自动化门禁未覆盖的义务。声称完成之前,先解决已知且属于范围内的遗漏。
只有在修复会越过已接受边界时,才报告尚未解决的风险。说明相关证据、后果和所需决策;不要创建推测性的后续事项清单。
边界
- 本技能定义编程质量,不定义交付顺序、角色、提交或交付状态。
- 本技能不取代项目编码规范、可执行门禁、已接受的规范或其验收测试。
- 本技能不会附带创建或更新 ADR、术语表、规范文件或 Agent 指令。
- 行数、文件数、抽象数量和测试数量都是诊断信号,不能单独作为门禁。
完成标准
已接受的行为在正确的切入点实现;实质性不变量有独立且有区分力的验证;适用门禁在参与者的最终状态下通过;重要复杂性由诚实的接口隐藏;并且不存在可避免的机制或已知的范围内缺陷。