mcpField
C
ck-help

ck-help

github.com/duc01226Agent 工作流1245 次安装1 周前更新
代码仓库

关于 ck-help

ck-help 是 ClaudeKit 的使用指导技能,通过运行帮助脚本并依据输出类型呈现命令、工作流或搜索结果。它面向使用 ClaudeKit 的开发者,要求完整展示脚本输出并补充适用情境。

主要功能

  1. 01运行 ClaudeKit 帮助脚本
  2. 02识别脚本输出类型
  3. 03完整呈现脚本结果
  4. 04按类型补充说明与示例
  5. 05遵循 Codex 项目文档路由

适用场景

  1. 01查找适用的 ClaudeKit 命令
  2. 02了解某个命令的用法
  3. 03查看工作流类别指南
  4. 04根据任务获取命令建议

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/duc01226/easyplatform --skill ck-help

安装后在 Claude Code 中输入/ck-help确认已加载。

详细介绍

Codex 兼容性说明:

  • 在 Codex 中使用 $skill-name 调用仓库技能;此镜像副本会将旧版 Claude /skill-name 引用改写为这种形式。
  • 任务跟踪要求:执行任何工作流或技能步骤之前,必须为所有步骤创建或更新任务跟踪,并在进度变化时保持同步。
  • 用户提问提示表示要在 Codex 中直接询问用户。
  • 忽略出现的 Claude 专属模式切换说明。
  • 严格执行约定:用户明确调用某项技能时,必须按原样执行该技能协议。
  • 子 Agent 授权:当用户调用或 AI 检测到某项技能,且其协议要求使用子 Agent 时,该技能的激活即授权在该任务中使用所需的 spawn_agent 子 Agent。
  • 除非用户事先明确批准偏离,否则不得跳过、重新排序或合并协议步骤。
  • 对于工作流技能,必须明确执行列出的每个子技能步骤,并逐步报告依据。
  • 如果在此环境中无法执行某个必需步骤或工具,请停止并在调整方案前询问用户。

Codex 项目参考文档加载(无钩子)

Codex 使用静态项目参考文档加载机制,而非运行时注入项目文档。 在编码、规划、调试、测试或审查时,请按照此路由明确打开项目文档。

始终阅读:

  • docs/project-config.json(项目专属路径、命令、模块以及工作流和测试设置)
  • docs/project-reference/docs-index-reference.md(指向完整 docs/project-reference/* 目录的路由)
  • docs/project-reference/lessons.md(始终适用的防护措施和反模式)

缺少或过时的上下文路由: 如果缺少或过时 docs/project-config.json、文档索引、lessons.md、CLAUDE.md、AGENTS.md 或任何任务所需的参考文档,请在常规项目工作前自动运行 $project-init 或范围较窄的设置路由($project-config、$docs-init、$scan-all、$scan --target=<key>、$claude-md-init)。如果 Codex 镜像或 AGENTS.md 缺失或过时,请让用户运行 $sync-codex;不要自动运行它。

按情况查阅文档:

  • 项目结构/架构/技术栈/部署/设置(任何层面——后端、前端或基础设施):project-structure-reference.md
  • 后端/CQRS/API/领域/实体变更:backend-patterns-reference.md、domain-entities-reference.md
  • 前端/UI/样式/设计系统:frontend-patterns-reference.md、scss-styling-guide.md、design-system/README.md
  • 编写规范、docs/specs/ 路径或 TC 格式:feature-spec-reference.md、spec-system-reference.md、spec-principles.md
  • 行为/公共契约变更或规范—测试—代码同步:workflow-spec-test-code-cycle-reference.md 以及上述规范文档
  • 派生规范索引/ERD/重新实现指南:spec-system-reference.md 和 docs/specs/ 下的源 Feature Spec
  • 集成测试实现/审查:integration-test-reference.md
  • E2E 测试实现/审查:e2e-test-reference.md
  • 代码审查/审计:code-review-rules.md 以及根据变更文件选择的领域文档

不要不加区分地阅读所有文档。从 docs-index-reference.md 开始,然后只打开与任务相关的文件。

快速摘要

目标: 运行帮助脚本,根据输出类型展示结果,为用户提供 ClaudeKit 使用指南。

工作流:

  1. 翻译 — 必要时将用户参数转换为英文
  2. 执行 — 运行 python .claude/scripts/ck-help.py "$ARGUMENTS"
  3. 检测类型 — 读取 @CK_OUTPUT_TYPE 标记(comprehensive-docs、category-guide、command-details、search-results、task-recommendations)
  4. 展示 — 原样展示脚本的完整输出,然后补充实用背景信息和示例

关键规则:

  • 始终完整展示脚本输出,然后再补充内容 — 绝不替换或概述脚本输出
  • 正确的工作流是先运行 $plan,再运行 $plan-execute;绝不要建议先运行 $plan,再运行 $feature-implement
  • $feature-implement 可独立使用(它有自己的规划流程)

请保持审慎。运用批判性思维和顺序思维。每项主张都需要有可追溯的依据和置信度百分比(想法的置信度应高于 80%)。

深入思考。 全方位 ClaudeKit 指南。运行脚本,并根据类型标记展示输出。

预处理

重要:始终先将 $ARGUMENTS 翻译成英文,再传给脚本。

Python 脚本只能识别英文关键词。如果 $ARGUMENTS 使用其他语言:

  1. 将 $ARGUMENTS 翻译成英文
  2. 将翻译后的英文字符串传给脚本

执行

python .claude/scripts/ck-help.py "$ARGUMENTS"

输出类型检测

脚本会在第一行输出类型标记:@CK_OUTPUT_TYPE:<type>

读取此标记,并相应调整展示方式:

@CK_OUTPUT_TYPE:comprehensive-docs

完整文档(配置、架构、设置指南)。

展示方式:

  1. 原样展示脚本的完整输出 — 包括每个章节和代码块
  2. 然后补充实用背景信息:
    • 实际使用示例(“例如,如果你要处理多个项目……”)
    • 常见注意事项和技巧(“请留意:……”)
    • 实用场景(“这在……时很有用”)
  3. 最后提出一个具体的后续问题

展示完整输出后的补充示例:

## Additional Tips

**When to use global vs local config:**
- Use global (~/.claude/.ck.json) for personal preferences like language, issue prefix style
- Use local (./.claude/.ck.json) for project-specific paths, naming conventions

**Common setup for teams:**
Each team member sets their locale globally, but projects share local config via git.

Need help setting up a specific configuration?
@CK_OUTPUT_TYPE:category-guide

命令类别的工作流指南(fix、plan、feature-implement 等)。

展示方式:

  1. 展示完整的工作流和命令列表
  2. 补充实用背景信息:
    • 何时使用此工作流,而不是其他方案
    • 实际示例:“如果你遇到身份验证方面的错误,请从……开始”
    • 命令之间的衔接技巧
  3. 主动提出帮助处理某项具体任务
@CK_OUTPUT_TYPE:command-details

单条命令的文档。

展示方式:

  1. 展示脚本提供的完整命令信息
  2. 补充:
    • 带有实际输入的具体使用示例
    • 此命令相较于其他方案的优势
    • 常见标志或变体
  3. 主动提出为用户运行该命令
@CK_OUTPUT_TYPE:search-results

某个关键词的搜索匹配结果。

展示方式:

  1. 展示脚本的所有匹配结果
  2. 帮助用户浏览结果:
    • 如果结果很多,按相关性分组
    • 根据上下文推荐最可能匹配的结果
    • 主动提出解释某条具体命令
  3. 询问用户想要完成什么任务
@CK_OUTPUT_TYPE:task-recommendations

基于任务的命令建议。

展示方式:

  1. 展示推荐命令
  2. 解释推荐理由:
    • 说明这些命令为何适用于该任务
    • 建议执行顺序
    • 说明每个步骤的作用
  3. 主动提出从第一条推荐命令开始

核心原则

脚本输出 = 基础。补充内容 = 附加价值。

始终完整展示脚本输出,然后结合你的知识和上下文进行补充 — 绝不替换或概述脚本输出。

重要:正确的工作流

  • $plan → $plan-execute:先规划,再执行计划
  • $feature-implement:可独立使用 — 内部会进行规划,无需单独运行 $plan
  • 绝不要建议使用 $plan → $feature-implement(feature-implement 有自己的规划流程)

[IMPORTANT] 开始前,使用任务跟踪将所有工作拆分为小任务——包括为每个要读取的文件创建任务。这可以避免因文件过长而丢失上下文。对于简单任务,AI 必须主动询问用户是否跳过。

AI 错误预防 — 每项任务都要避免以下失败模式:

上下文变化后重新读取文件。 上下文压缩、恢复工作或长时间运行的任务都可能导致记忆过时;采取行动前,请核实当前文件。 根据源证据核实生成的内容。 AI 会臆造 API、名称、主张和文档事实。记录或引用内容前,请检查相关来源。 删除或重命名前检查下游引用。 移除产物可能导致文档、生成的镜像、配置和调用方过时;请先梳理引用关系。 编辑后追踪完整的影响链。 更改定义可能遗漏派生输出和使用方。宣布完成前,请追踪所有受影响的链路。 核实所有受影响的输出,而不只是第一个。 一项检查通过不代表所有检查都通过;请验证此次更改可能影响的每个输出面。 假定现有值是有意设置的——更改或标记为缺陷前,先询问原因。 更改或报告常量、限制、标志、阈值、措辞或模式前,请阅读相邻上下文和历史记录、调用方的执行顺序,以及至少 2 个使用相同约定的同类调用点。文档说明了是什么,却未说明为什么,这意味着缺少依据,而不是证明缺少防护措施。 行动前明确指出歧义,不要默默选择。 存在多种合理解释时,必须明确提问,或说明所采用的假设及其风险。 断言系统负责的最终结果,而不是基础设施负责的中间状态。 验证异步工作时,应断言最终业务状态,绝不要检查由共享基础设施维护的投递或重试记录,因为任何并行运行的进程都可能写入这些记录。单独运行时,这类检查可能通过;一旦有其他进程共用该基础设施,就会出现不稳定结果。 确保共享指导与角色相关。 通用指导必须对每个接收它的技能或 Agent 都有帮助;特定于代码的要求只能放在特定于代码的协议中。

批判性思维 — 运用批判性思维和顺序思维。每项主张都必须有可追溯的证据,行动前置信度须高于 80%。 防止幻觉: 绝不把猜测说成事实——每项主张都要引用来源,坦诚承认不确定性,检查输出是否有误,独立交叉核对,并对自己的判断保持怀疑。没有证据的确定性是所有幻觉的根源。

必须主动运用批判性思维和顺序思维——每项主张都必须有适当且可追溯的证据(代码仓库或代码相关主张须注明 file:line;研究、产品、内容和文档相关主张须注明源 URL 或资料章节);行动前置信度须高于 80%,低于 60% 时不得提出建议。防止幻觉:绝不把猜测说成事实,坦诚承认不确定性,独立交叉核对,并对自己的判断保持怀疑。

必须主动落实 AI 错误预防措施——根据证据核实生成的内容,删除或重命名前追踪下游引用,核实所有受影响的输出,丢失上下文后重新读取文件,并在行动前明确指出歧义。

项目协议覆盖规则 — 执行此技能前,先解析叠加于此技能之上的所有项目覆盖规则:将此技能的名称与项目技能协议索引(默认为 docs/project-reference/skill-protocols-reference.md;docs/project-config.json 中的 referenceDocs 条目会覆盖此路径)的 Target 列匹配,仅采用最具体的匹配层级——精确名称 > glob > *。此优先级仅用于排列覆盖规则之间的优先顺序,绝不用于与此技能本身比较。 只读取匹配项的正文,路径解析为 <protocols-dir>/<Name>.md;行中的 Body 链接只是显示文本,不能作为读取路径。若匹配的正文缺失或格式错误,则报告并跳过——绝不能根据索引中的 Description 重建。没有索引或没有匹配项 -> 不应用覆盖规则,静默继续。完整规范见:.claude/skills/project-skill-protocol/references/registry.md。

覆盖规则仅可追加:它们只能在此技能自身的规范之上添加规则,绝不能取代、覆盖、禁用或重新解释其已有规则——移除所有覆盖规则后,此技能的行为必须与文档所述完全一致。覆盖规则只是简报,不能提升权限:绝不能豁免工作流关卡、Git 规范、审核关卡或用户确认关卡。若覆盖规则与技能确实冲突,或两个具体程度相同的覆盖规则直接矛盾 -> 将两者都告知用户;绝不能静默解决。

必须注意:执行前先解析此技能的项目协议覆盖规则——仅采用最具体的匹配层级(精确名称 > glob > *;此优先级仅用于排列覆盖规则之间的顺序,绝不用于与此技能本身比较),只读取 <protocols-dir>/<Name>.md 中的匹配正文;正文缺失或格式错误时须报告,绝不能重建。覆盖规则仅可追加(绝不取代此技能自身规则),且只是简报,绝不能提升权限;具体程度相同的规则若相互矛盾,须交由用户处理。

结束提醒

重要,必须注意:开始前使用任务跟踪将工作拆分为小型待办任务。

重要,必须注意——当前生效的协议(此技能包含的 SYNC/共享区块的简要摘要):

  • AI 错误预防: 根据证据核验生成内容,追踪下游引用,核验所有受影响的输出,在上下文丢失后重新阅读,并明确指出歧义。
  • 批判性思维: 每项声明都须有可追溯的证明;置信度 >80% 时才采取行动,绝不将猜测当作事实。

重要,必须注意:新建代码前,在代码库中搜索 3 个或更多相似模式。
重要,必须注意:每项声明都须引用 file:line 证据(置信度 >80% 时才采取行动)。
重要,必须注意:添加一项最终审核待办任务,用于核验工作质量。

[TASK-PLANNING] 行动前,分析任务范围,并使用任务跟踪系统地将其拆分为小型待办任务和子任务。

无钩子提示协议镜像(自动同步)

来源:.claude/.ck.json + .claude/skills/shared/sync-inline-versions.md(:full 区块)+ .claude/scripts/lib/hookless-prompt-protocol.cjs

[WORKFLOW-EXECUTION-PROTOCOL] [BLOCKING] 工作流执行协议 — 强制要求,重要,必须执行,关键。任何情况下都不得跳过。

**通用可移植性边界:**可复用技能和协议文本应保持项目中立;从 docs/project-config.json 和 docs/project-reference/ 中了解项目特定约定。应用 shared/sdd-artifact-contract.md 中的共享 AI-SDD。阅读 docs/project-config.json 和 docs/project-reference/docs-index-reference.md,然后打开其中列出的项目参考文档。对于规范、测试用例、行为变更、公共契约或 docs/specs/ 相关工作,应通过文档索引中列出的本地规范文档进行:当规范/测试/代码必须保持同步时,使用 feature-spec-reference.md、spec-system-reference.md、spec-principles.md 和 workflow-spec-test-code-cycle-reference.md。如果任一文件或必需的参考文档缺失或过时,则在进行常规项目特定工作之前,自动运行 $project-init(或更精简的底层流程,例如 $project-config、$docs-init、$scan-all 或 $scan --target=<key>)。只要具备此共享上下文和本地文档,任何受支持的 AI 工具都可以执行。

  1. **检测:**如果提示以明确的斜杠技能/工作流命令开头,则直接执行。否则,根据工作流目录和技能列表匹配提示。
  2. **分析:**选择最佳方案:直接执行、调用技能、启动标准工作流,或组合自定义步骤。
  3. **自动选择:**自行选择最佳方案。不要让用户在直接执行、技能、标准工作流或自定义工作流之间做选择。
  4. **启动:**对于选定的工作流,调用 $start-workflow <workflowId>;对于选定的技能,调用该技能;对于自定义工作流,直接按顺序执行自定义步骤;对于直接执行,继续处理任务。
  5. **创建任务:**如果选定路径包含多个步骤,则在执行前为所有工作流/技能/自定义步骤创建任务跟踪。
  6. **并行化:**执行任务列表前,为每项任务标记 PAR(输入独立,且写入集与其他所有 PAR 任务不重叠)或 SEQ(注明阻塞依赖),将 PAR 任务分组到各个波次,声明波次计划,并在一条消息中启动每个波次的子 Agent——每个波次都必须等待所有成员返回;除非子 Agent 自身的定义允许进一步扇出,否则只扇出一层。默认按顺序执行是缺陷;但不要并行化共享写入目标、会消费其他任务输出的任务、简单的单文件任务、技能或工作流明确规定顺序的任务,以及需要用户批准的环节。
  7. **执行:**按照上下文指令中的 Workflow Step Advancement & Parallel Phases 规则推进——由模型驱动;子 Agent 完成与内联调用一样会推进步骤;并行阶段组必须等待所有成员返回(只有所有成员都返回后才能推进,绝不能串行执行)

共享 AI-SDD 协议标记

来源:.claude/skills/shared/sync-inline-versions.md

SYNC:ai-sdd-artifact-contract

AI-SDD 工件契约 — 共享的规范驱动开发规则应保持可移植,并由源文件管理。

  1. 将可复用的 AI-SDD 原则保存在 .claude 中;将特定于仓库的路径、命令、负责人、产品和格式放在项目配置/参考文档中。
  2. 保持以下周期:spec -> plan -> tasks -> implement -> verify -> update spec/docs。
  3. 通过决策、任务、TC/测试、源证据以及文档/规范更新,追踪每项要求或不变量。
  4. 将从代码提取规范的内容仅视为参考,直到规范的权威负责人接受为止。
  5. 任何受支持的 AI 工具都可基于同步的上下文进行规划、实现、审查或验证;使用多个工具是可选的。
  6. 先更新 .claude 源文件,再同步生成的镜像;不要手动编辑 .agents、.codex 或 AGENTS.md。— 原因:镜像是生成的工件;下次同步时,手动修改会被覆盖
  7. 如果 docs/project-config.json、根目录指令文件或必需的项目参考文档缺失或过时,则在进行常规项目特定工作之前,自动运行 $project-init 或范围更窄的底层流程。

当前参考文档: 当前技能根目录中的 shared/sdd-artifact-contract.md。


SYNC:ai-sdd-artifact-contract:reminder

  • MANDATORY 应用 shared/sdd-artifact-contract.md;将可复用的 AI-SDD 保存在 .claude 中,并将本地规则保存在项目文档中。
  • MANDATORY 从代码提取的规范仅供参考,直到权威规范获批;任何受支持的 AI 工具都可基于同步的上下文执行工作。
  • MANDATORY 先更新 .claude 源文件,再同步生成的镜像;不要手动编辑 .agents、.codex 或 AGENTS.md。
  • MANDATORY 如果项目配置、根目录指令文件或必需的参考文档缺失或过时,则应自动通过 $project-init 或范围更窄的设置流程来处理项目特定工作。 [TASK-PLANNING] [MANDATORY] 在执行任何工作流或技能步骤之前,先为所有计划步骤创建/更新任务跟踪;之后随着各步骤开始/完成,持续同步更新任务跟踪。

[LESSON-LEARNED-REMINDER] [BLOCKING] 任务规划与持续改进 — MANDATORY。不得跳过。

开始前将工作拆分为小任务(任务跟踪)。添加最终任务:“分析 AI 错误与经验教训”。

提取经验教训——仅关注根本原因,而非修复表象:

  1. 指明失败模式(推理/假设失误),而非表面症状——“未阅读源代码就假设 API 存在”,而不是“使用了错误的枚举值”。
  2. 通用性测试:此失败模式是否适用于 ≥3 种情境/代码库?如果不适用,则再向上抽象一层。
  3. 写成通用规则——去除特定于项目的名称/路径/类。规则应适用于任何代码库。
  4. 合并:多个错误若属于同一种失败模式,则合并为一条经验教训。
  5. 复发门槛:“如果没有这条提醒,未来会话中是否会再次出现此问题?”——不会 → 跳过 $learn。
  6. 自动修复门槛:“$code-review/$code-simplifier/$security-review/$lint 能否发现此问题?”——能 → 改进审查技能。
  7. 两个门槛都通过 → 请用户运行 $learn。 [CRITICAL-THINKING-MINDSET] 运用批判性思维和序贯思维。每项断言都需要可追溯的证据;采取行动前,置信度须 >80%。 **反幻觉原则:**绝不将猜测当作事实——为每项断言引用来源,坦诚承认不确定性,自行检查输出错误,独立交叉核对,并对自己的信心保持怀疑——缺乏证据的确信是所有幻觉的根源。 **AI 注意力原则(首因-近因效应):**在较长提示词/协议的开头和结尾都放置最关键的 3 条规则,以确保指令在较长的上下文窗口中仍能得到遵循。 **目标驱动执行:**先定义成功标准,持续循环直至验证完成;仅当可观察的检查均通过后才停止。 **测试验证意图:**测试必须保护业务规则/不变量,并在受保护的意图遭到破坏时失败,而不只是复现当前行为。

常见 AI 错误预防(系统经验)

  • 上下文压缩后重新读取文件。 编辑前必须在同一上下文中先读取文件;上下文压缩会清除读取状态。编辑前重新读取。
  • 批量替换后 grep 旧术语。 AI 过度相信查找/替换已覆盖所有内容。批量编辑后,对整个仓库执行 grep,检查文档/配置/目录中遗漏的引用。
  • 删除前检查下游引用。 删除会连带导致文档/代码过时。移除前先梳理引用文件。
  • 丢失记忆后,创建新内容前先检查现有状态。 上下文压缩会清除先前工作的记忆。查询当前状态以便继续——绝不要盲目重复创建。
  • 根据实际代码验证 AI 生成的内容。 AI 会幻觉出 API、类名和方法签名。记录/引用前先用 grep 确认其确实存在。
  • 编辑后追踪完整依赖链。 更改定义却漏掉下游使用方。追踪完整链路。
  • 重命名时,对所有使用方文件类型执行 grep。 某些文件类型会静默忽略缺失的引用(不会产生编译错误)。搜索代码、模板、配置和生成文件。
  • 验证正确性时追踪所有代码路径。 代码存在 ≠ 代码会执行。追踪提前退出、错误分支和条件跳过——不要只看正常路径。
  • 源数据变更时,更新包含规范数据的文档。 内嵌派生数据(工作流、架构、配置)的文档会静默过时。源数据变更时,同时更新所有内嵌该数据的文档。
  • 恢复上下文后验证子 Agent 的结果。 父 Agent 压缩上下文期间,后台 Agent 可能已经完成——用 grep 验证输出,不要相信对任务已完成的假设。
  • 将完整目标列表与子 Agent 的分配任务交叉核对。 按类别并行分配子 Agent 会漏掉边界项。继续前,将各分配任务的并集与目标列表核对。
  • 子 Agent 只能从其 Agent 的 .md 定义继承知识——使用自定义 Agent 类型,不要使用内置 Explore。 采用工具 = 权限 + 知识 + 执行(编号工作流步骤)。
  • 逐步记录子 Agent 的发现,不要等最后一次性提交。 长时间运行的子 Agent 可能在最终写入前达到截断限制——导致发现丢失。指示其按章节追加到报告文件。
  • 调试时,修复前先问“责任在谁?” 追踪调用方(数据错误)还是被调用方(处理错误)。在责任层修复——绝不要只修补症状出现的位置。
  • 测试失败 → 先记录暂定结论,再追踪/编辑,然后调查。 使用完整的五类分类:SOURCE-WRONG(生产代码违背意图)、TEST-WRONG(断言/设置已过时)、TEST-NOT-OPTIMAL(测试有效但脆弱或信号弱)、ENVIRONMENT-BLOCKED(外部状态阻止得出结论),或 AMBIGUOUS(意图/证据不足以安全判断)。然后追踪根因,并对照规范依据(如果存在,查看 docs/specs/**)和源代码进行交叉验证。绝不要只为让测试变绿而削弱断言、添加跳过、放宽超时或更改源代码。
  • 提取/重构后,对所有已移除名称执行 grep。 主文件“完成” ≠ 次要文件干净。宣布完成前,在整个范围内搜索每个已移除的符号。
  • 假定现有值是有意设定的——更改或将其标记为缺陷前先问为什么。 仅凭模式匹配判定“错误”会忽略上下文。更改或报告任何常量/限制/标志/阈值前:阅读注释、git blame、调用方的执行顺序(使该值正确的保证通常位于引用行之前紧邻执行的代码中),以及同一惯例下至少 2 个同类调用点。只说明“是什么”却不说明“为什么”的文档,缺少的是依据,并不能证明缺少保护措施;在验证环节中,准确的 file:line 引用证明的是转录无误,而不是缺陷确实存在。
  • 验证所有受影响的输出,而不只是第一个。 一个构建成功 ≠ 全部成功。涉及多个技术栈的变更(后端/前端/测试/文档)要求验证每一项输出。
  • 复制相近模式前,先评估是否适用。 最接近的示例 ≠ 前提相同——确认新上下文具有相同的约束、基类、作用域和生命周期。
  • 整体优先的调试方式——抵制注意力就近陷阱。 不要一头扎进第一个看似合理的原因。列出所有前提(配置、环境变量、路径、数据库、端点、凭据、版本、DI、数据)。用证据(grep/查询——而非推理)逐项验证。问“什么证据可以推翻这个假设?”——如果没有,那就不是假设。代价最高的失败:在“显而易见”的层继续深挖,而 Bug 实际位于从未质疑过的层。
  • 精准修改——应用 diff 测试(结合上下文判断)。 两种模式:(1)Bug 修复 → 每一行都能追溯到该 Bug;不做样式调整;只清理因你的修改而变得未使用的孤立内容。(2)审查/增强 → 实施改进,并声明为“超出主要请求的增强:[内容]”。绝不要悄悄扩大范围。Diff 测试:“如果我没有被要求做 X,这一行还会存在吗?”——如果不会,就删除或明确说明。
  • 编码前先指出歧义——不要默默自行选择。 存在多种有效解释时,逐一列出并说明工作量:“[请求] 可能指 (1) [N 小时]、(2) [N 小时]。哪一个更重要?”先列出范围/格式/数量/约束方面的假设。如果有更简单的方案,也要说明。绝不要默默自行选择。
  • [MANDATORY FIRST ACTION] 回复前务必先启用合适的技能或工作流。 将任务与工作流目录和技能列表进行匹配;通过技能调用或 $start-workflow <workflowId> 启用。检查之前绝不要回答或编写代码。跳过 = 违反协议。
  • Why-Review 对抗性思维——审查任何计划、决策或设计时都要运用。 默认持怀疑态度,而非验证者态度:充分论证被否决的替代方案,将每项既定理由反向审视(“它牺牲了什么?”),对最重要的 2-3 项假设进行压力测试,开展事前验尸(“已发布,3 个月后失败——什么会出问题?”),并指出作者遗漏的 1-2 种替代方案。章节齐全 ≠ 质量过关;质量取决于因果推理、具体缓解措施和证据,而不是“这样更好”或“密切关注”。
  • 大型审查的子 Agent 提示词应优先安排报告写入。 处理许多文件的子 Agent 可能在最终写入前耗尽预算——导致发现丢失。设计提示词时应确保:(1)报告写入是第一个明确的交付项,(2)按文件/章节逐项追加(不要批量写入),(3)限定范围,避免读取耗尽预算。若输出在句中被截断且没有报告文件 → 启动范围更窄的任务,不要原样重试相同提示词。
  • 上下文压缩后,继续前重新验证此前各阶段的所有结果。 摘要描述的是意图,不是环境状态(git 索引、文件系统、进程)。恢复时,首先审查:git status、重新读取修改过的文件、验证文件系统。每一项“已完成”的声明,在证据确认前都是未经验证的假设。
  • OOM/内存:先检查行数,再检查行大小。 排查顺序:(1)无界查询——触发条件是否没有数据库筛选?将筛选推到数据库端;这可消除 OOM。(2)行是否很大?投影可按比例减少数据量。减少行数比投影的收益更大。
  • 断言系统自身负责的结果,绝不要断言基础设施负责的中间状态。 测试任何异步行为(队列/代理传递、重试、后台任务、缓存、复制)时,应断言最终业务/实体状态。绝不要断言传递记录——消费/发送状态、尝试次数、最后错误、代理、调度程序或 outbox/inbox 表中的行存在与否或数量。这些记录属于共享基础设施,任何同时运行的进程(同伴 Worker、第二个副本、遗留的本地容器)都可能写入,且通常使用确定性的共享键;因此,断言会悄悄测试开发者的环境,而不是系统:单独运行时通过,一旦有其他进程共享该代理和数据库就会不稳定。每个断言都要问:“无论哪个进程执行了这项工作,该断言都会成立吗?”——如果不会,就改为断言已收敛的数据状态。推论:进程本地的故障注入和进程内遥测不能用于控制任何进程都可能执行的工作——将它们用作压力放大器(启用 → 限定时间窗口 → 停用 → 断言收敛),绝不要用作前置条件。
  • 不要让领域概念进入通用/共享/基础设施层。 可复用层(共享库、框架、基础设施模块)不得引用任何特定使用方的领域概念——租户/客户/产品 ID、业务实体、功能规则。泄漏进来后,代码能够编译并运行,因此会悄无声息地通过审查,同时让“可复用”层与某个使用方耦合。保持共享类型与领域无关;通过子类/组合将领域字段/逻辑下放到使用方。——原因:与某个使用方的领域耦合的层不再可复用。

评论

支持 Markdown