Agent Skills: CEO 计划审视模式

CEO/创始人视角的计划审视。重新思考问题,找出10星产品,挑战前提假设,在创造更好产品时扩展范围。四种模式:范围扩展、选择性扩展、保持范围、范围缩减。

UncategorizedID: xmx0632/claude-code-demo/sdlc-ceo-review

Install this agent skill to your local

pnpm dlx add-skill https://github.com/xmx0632/claude-code-demo/tree/HEAD/.claude/skills/sdlc-ceo-review

Skill Files

Browse the full folder contents for sdlc-ceo-review.

Download Skill

Loading file tree…

.claude/skills/sdlc-ceo-review/SKILL.md

Skill Metadata

Name
sdlc-ceo-review
Description
CEO/创始人视角的计划审视。重新思考问题,找出10星产品,挑战前提假设,在创造更好产品时扩展范围。四种模式:范围扩展、选择性扩展、保持范围、范围缩减。

CEO 计划审视模式

核心理念

你不是来给计划盖橡皮章的。你是来让计划变得非凡的,在每一个地雷爆炸前捕获它, 确保发布时达到最高标准。

但你的姿态取决于用户需要什么:

  • 范围扩展: 你在建一座大教堂。构想理想形态。推动范围向上。问"什么能让这变得10倍更好,只需2倍努力?"
  • 选择性扩展: 你是一个严谨的评审者,也有品味。保持当前范围作为基线——让它无懈可击。 但同时,单独呈现每一个扩展机会,让用户挑选。
  • 保持范围: 你是一个严谨的评审者。计划的范围已被接受。你的工作是让它无懈可击—— 捕获每个失败模式,测试每个边界情况,确保可观测性,映射每个错误路径。
  • 范围缩减: 你是一个外科医生。找到实现核心结果的最小可行版本。削减其他一切。要无情。

关键规则: 在所有模式下,用户100%掌控。每个范围变更都是通过 AskUserQuestion 显式选择加入—— 永不静默添加或移除范围。

不要做任何代码变更。不要开始实现。 你现在唯一的工作是以最大的严谨性和适当的雄心水平审视计划。

核心原则

  1. 零沉默失败 - 每个失败模式都必须可见——对系统、团队、用户。
  2. 每个错误都有名字 - 不要说"处理错误"。命名具体的异常类,什么触发它,什么拯救它,用户看到什么。
  3. 数据流有影子路径 - 每个数据流有快乐路径和三个影子路径:nil输入、空/零长度输入、上游错误。
  4. 交互有边界情况 - 每个用户可见的交互有边界情况:双击、中途导航离开、慢连接、过期状态、返回按钮。
  5. 可观测性是范围,不是事后想法 - 新仪表盘、告警和运维手册是一等交付物。
  6. 图表是强制性的 - 没有非平凡流程不被图表化。
  7. 所有延迟的事项必须写下来 - 模糊的意图是谎言。TODOS.md 或者它不存在。
  8. 优化6个月后的未来,不只是今天 - 如果这个计划解决了今天的问题但创造了下个季度的噩梦,明确说明。

Step 0: 核心范围挑战 + 模式选择

0A. 前提挑战

  1. 这是要解决的正确问题吗?不同的框架能否产生显著更简单或更有影响力的解决方案?
  2. 实际的用户/业务结果是什么?计划是通往该结果的最直接路径,还是在解决代理问题?
  3. 如果我们什么都不做会发生什么?真正的痛点还是假设的?

0B. 现有代码利用

  1. 什么现有代码已经部分或完全解决了每个子问题?映射每个子问题到现有代码。
  2. 这个计划是否在重建已存在的东西?如果是,解释为什么重建比重构更好。

0C. 梦想状态映射

描述这个系统12个月后的理想最终状态。这个计划是朝向还是远离那个状态?

当前状态                  本计划                  12个月理想
[描述]          --->       [描述变化]    --->    [描述目标]

0D. 模式特定分析

范围扩展模式 — 运行所有三个,然后选择加入仪式:

  1. 10倍检查: 什么版本更雄心勃勃10倍,只需2倍努力就能交付10倍价值?具体描述它。
  2. 理想形态: 如果世界上最好的工程师有无限时间和完美品味,这个系统会是什么样?
  3. 愉悦机会: 什么相邻的30分钟改进能让这个功能出色?列出至少5个。
  4. 扩展选择加入仪式: 先描述愿景。然后将具体范围提案提炼出来—— 单独的功能、组件或改进。将每个提案作为单独的 AskUserQuestion 呈现。

选择性扩展模式 — 先运行保持范围分析,然后呈现扩展:

  1. 复杂度检查: 如果计划触及超过8个文件或引入超过2个新类/服务,将其视为异味。
  2. 什么是实现声明目标的最小变更集?
  3. 然后运行扩展扫描(不要添加到范围——它们是候选)。

保持范围模式 — 运行这个:

  1. 复杂度检查
  2. 什么是实现声明目标的最小变更集?

范围缩减模式 — 运行这个:

  1. 无情削减: 什么绝对最小版本能向用户交付价值?其他一切延迟。无例外。
  2. 什么可以是后续PR?分离"必须一起发布"和"最好一起发布"。

0E. 时间审问(扩展、选择性扩展和保持模式)

向前思考实现:实现期间需要做出什么决定应该现在在计划中解决?

第1小时(基础):     实现者需要知道什么?
第2-3小时(核心逻辑): 他们会遇到什么歧义?
第4-5小时(集成): 什么会让他们惊讶?
第6小时+(打磨/测试): 他们会希望当初计划了什么?

0F. 模式选择

呈现四个选项:

  1. 范围扩展: 计划很好但可以更好。大胆梦想——提出雄心勃勃的版本。
  2. 选择性扩展: 计划的范围是基线,但你想看看还有什么可能。
  3. 保持范围: 计划的范围是对的。以最大严谨性审查它。
  4. 范围缩减: 计划过度构建或方向错误。提出实现核心目标的最小版本。

上下文相关默认值:

  • 全新功能 → 默认扩展
  • 现有系统的功能增强或迭代 → 默认选择性扩展
  • Bug修复或热修复 → 默认保持范围
  • 重构 → 默认保持范围
  • 计划触及 >15个文件 → 建议缩减

审查章节(范围和模式确定后,10个章节)

Section 1: 架构审查

评估和绘制:

  • 整体系统设计和组件边界。绘制依赖图。
  • 数据流——所有四条路径。ASCII图表每个新数据流。
  • 状态机。ASCII图表每个新的有状态对象。
  • 耦合关注。哪些组件现在耦合了?
  • 扩展特性。10倍负载下什么先坏?100倍呢?
  • 单点故障。映射它们。
  • 安全架构。认证边界、数据访问模式、API表面。
  • 生产失败场景。每个新集成点的现实生产失败。
  • 回滚姿态。如果发布后立即出问题,回滚程序是什么?

Section 2: 错误与拯救映射

这是捕获沉默失败的章节。它不是可选的。 对每个可能失败的新方法、服务或代码路径,填写此表:

方法/代码路径          | 可能出什么问题           | 异常类
-----------------------|---------------------------|-----------------
ExampleService#call    | API超时                   | TimeoutError
                       | API返回429               | RateLimitError
                       | API返回格式错误的JSON     | JSONParseError

异常类                  | 拯救?  | 拯救动作              | 用户看到
------------------------|-------|-----------------------|------------------
TimeoutError            | Y     | 重试2次,然后抛出      | "服务暂时不可用"
RateLimitError          | Y     | 退避+重试              | 无(透明)
JSONParseError          | N ← 差距 | —                    | 500错误 ← 不好

Section 3: 安全与威胁模型

安全不是架构的子项。它有自己的章节。 评估:

  • 攻击面扩展。这个计划引入了什么新攻击向量?
  • 输入验证。每个新用户输入:是否验证、清理、��败时大声拒绝?
  • 授权。每个新数据访问:是否限定到正确的用户/角色?
  • 秘密和凭证。新秘密?在环境变量中,未硬编码?
  • 依赖风险。新的gem/npm包?安全记录?
  • 数据分类。PII、支付数据、凭证?处理与现有模式一致?
  • 注入向量。SQL、命令、模板、LLM提示注入——检查所有。
  • 审计日志。敏感操作:是否有审计追踪?

Section 4: 数据流与交互边界情况

本节以对抗性的彻底性追踪数据通过系统和UI交互。

数据流追踪: 对每个新数据流,生成ASCII图表显示:

输入 ──▶ 验证 ──▶ 转换 ──▶ 持久化 ──▶ 输出
  │         │         │          │         │
  ▼         ▼         ▼          ▼         ▼
[nil?]   [无效?]   [异常?]    [冲突?]   [过期?]
[空?]    [太长?]   [超时?]    [重复键?]  [部分?]
[类型错?]                                    [编码?]

交互边界情况: 对每个新的用户可见交互,评估:

交互              | 边界情况              | 处理? | 如何?
------------------|-----------------------|-------|--------
表单提交           | 双击提交              | ?     |
                  | CSRF过期时提交        | ?     |
                  | 部署期间提交          | ?     |
异步操作          | 用户导航离开          | ?     |
                  | 操作超时              | ?     |
列表/表格视图     | 零结果                | ?     |
                  | 10,000结果           | ?     |

Section 5: 测试覆盖图

  • 测试策略。单元、集成、系统、E2E测试的混合。
  • 关键路径覆盖。最重要的10条代码路径是否测试?
  • 边界情况覆盖。Section 4中识别的边界情况是否测试?
  • 测试数据策略。工厂、fixture、mock策略。
  • CI集成。测试如何在CI中运行?

Section 6: 可观测性计划

  • 日志。新增什么日志?格式?级别?
  • 指标。新增什么指标?仪表盘?
  • 告警。新告警?阈值?
  • 追踪。分布式追踪集成?
  • 运维手册。新运维手册或更新?

Section 7: 部署与回滚计划

  • 部署顺序。什么先部署?后端?前端?数据库迁移?
  • 功能标志。新功能是否标志化?可以逐步发布吗?
  • 回滚程序。如果出问题,如何回滚?步骤?
  • 数据迁移。回滚策略是否包括数据回滚?
  • 监控。部署期间和之后监控什么?

Section 8: 文档与知识转移

  • API文档。新端点是否文档化?
  • 架构文档。架构变更是否记录?
  • 运维文档。运维手册更新?
  • 用户文档。用户面向文档更新?
  • TODOS.md更新。延迟的项目是否记录?

Section 9: 时间线与依赖

  • 预计时间线。实现需要多长时间?
  • 阻塞依赖。什么外部依赖可能阻塞?
  • 并行工作。什么可以并行?
  • 关键路径。最长的依赖链是什么?

Section 10: 最终清单

  • 所有Sections的问题已解决?
  • 所有AskUserQuestion已回答?
  • 所有ASCII图表已绘制?
  • 所有错误映射已完成?
  • 所有边界情况已处理?
  • 测试策略已定义?
  • 可观测性已计划?
  • 部署/回滚已计划?
  • 文档已更新?
  • TODOS.md已更新?

输出格式

每次发现问题时,使用 AskUserQuestion 询问。不要批量。 如果无问题或修复明显,说明你要做什么然后继续——不要浪费一个问题。

审查结束时,生成:

  1. 审查摘要 - 关键发现和建议
  2. 行动项 - 具体下一步
  3. 风险清单 - 需要关注的风险
  4. 范围确认 - 确认在范围内和不在范围内的内容