Expert Technical Review Framework

VerifiedSafe

A comprehensive framework for reviewing technical design solutions, covering problem abstraction, module decomposition, deep dives, integration, and coding plan generation.

Sby Skills Guide Bot
DevelopmentAdvanced
7/26/2026
Claude Code
#technical-review#solution-architecture#code-planning#decision-making#first-principles

Recommended for

Automated summary

Guides users through a structured technical review process from vague requirements to a concrete coding plan, using first-principles thinking and industry best practices.

Strengths

  • Provides a systematic 6-phase framework covering positioning, deconstruction, deep dive, integration, convergence, and verification
  • enforces first-principles abstraction for better decision-making
  • creates persistent session artifacts for traceability
  • incorporates industry best practices anchoring.

Limitations

  • Requires significant upfront effort and may be overkill for simple tasks
  • relies heavily on the user's ability to abstract problems correctly
  • the framework's rigidity can sometimes slow down rapid prototyping.
When to use it

Use when tackling complex technical problems that require deep analysis, multiple trade-offs, or cross-team alignment before implementation.

When not to use it

Avoid for trivial bug fixes, simple feature additions, or when a quick decision is needed without formal review.

Security analysis

Safe
Quality score92/100

The skill primarily performs local file operations (directory creation, listing) via Bash and uses web tools for research. It does not exfiltrate data, run destructive commands, or download remote payloads. The Bash usage is limited to controlled paths, and no arbitrary code execution from external sources is instructed.

Findings
  • •Bash commands construct directory paths from user-provided project names and topics without explicit sanitization, potentially enabling path traversal if malicious input is supplied, though the risk is low in a trusted local environment.
How this analysis is made

Examples

Initial requirement review
I just got a vague requirement about migrating our caching system to a new architecture. Help me analyze it using the expert review framework.
Deep dive on a module
We are designing the payment module for our e-commerce platform. I need a deep dive on the technology choices using Phase 3 of the expert review.
From requirements to coding plan
I have a high-level feature request for adding real-time collaboration. Walk me through the entire expert review process to produce a coding plan.

name: expert-review version: 1.0.0 description: | 技术方案专家 Review 框架——从"一坨需求"到"可执行的编码 Plan"的完整方法论。 包含 5 个阶段:定位(/p1-position)、解构(/p2-deconstruct)、深潜(/p3-deepdive)、 勾兑(/p4-integrate)、收敛(/p5-converge)。

当你发现用户处于以下阶段时,主动建议对应的 skill:

  • 刚拿到需求、不确定要做什么 → 建议 /p1-position
  • 已明确问题、需要拆分模块 → 建议 /p2-deconstruct
  • 需要对某个模块做方案选型 → 建议 /p3-deepdive
  • 需要跨模块/跨团队对齐 → 建议 /p4-integrate
  • 准备开始编码、需要编码 Plan → 建议 /p5-converge
  • 编码完成需要验证实现是否符合 Plan → 建议 /p6-verify
  • 代码写完需要 review → 建议 /review (gstack) allowed-tools:
  • Read
  • Grep
  • Glob
  • Bash
  • AskUserQuestion
  • Agent
  • WebSearch
  • WebFetch

技术方案专家 Review 框架

会话管理(Session Management)

每次 review 的产出按目录管理,结构如下:

~/expert-reviews/                          ← 可通过 ~/.expert-review/config 修改
  <project-name>/                          ← 项目维度
    <YYYY-MM-DD>-<topic>/                  ← 一次 review 会话
      README.md                            ← 会话概览(自动生成/更新)
      decisions.md                         ← 决策日志(跨 Phase 累积)
      p1-position.md                       ← Phase 1 产出
      p2-deconstruct.md                    ← Phase 2 产出
      p3-deepdive/                         ← Phase 3 产出(每个模块一个文件)
        module-a-<name>.md
        module-b-<name>.md
      p4-integrate.md                      ← Phase 4 产出
      p5-converge/                         ← Phase 5 产出
        coding-plan.md                     ← 最终编码 Plan
      p6-verify.md                         ← Phase 6 验证报告

会话初始化 Preamble

每个 Phase 的 skill 开头都必须执行以下步骤:

# 读取配置
CONFIG="$HOME/.expert-review/config"
if [ -f "$CONFIG" ]; then
  source "$CONFIG"
else
  REVIEW_HOME="$HOME/expert-reviews"
fi
echo "REVIEW_HOME: $REVIEW_HOME"
# 列出已有会话
ls -d "$REVIEW_HOME"/*/* 2>/dev/null | tail -10 || echo "No sessions yet"

然后根据输出判断:

  1. 如果用户指定了会话("继续上次 xxx 的 review"),直接进入该会话目录
  2. 如果是新 review,用 AskUserQuestion 询问:
    • 项目名称(英文,短横线分隔,如 highlight-service)
    • 主题(简短描述,如 temporal-migration)
    • 然后创建目录:$REVIEW_HOME/<project>/<date>-<topic>/
  3. 如果是继续之前的 review,列出最近的会话让用户选择

会话目录一旦确定,后续所有 Phase 的产出都写入同一个会话目录。

README.md 自动更新

每个 Phase 完成后,更新会话目录下的 README.md:

# <project-name>: <topic>
Created: <date>

## 进度
- [x] Phase 1: 定位 — <一句话总结>
- [x] Phase 2: 解构 — <N 个模块>
- [ ] Phase 3: 深潜 — <已完成 M/N 模块>
- [ ] Phase 4: 勾兑
- [ ] Phase 5: 收敛
- [ ] Phase 6: 验证

## 核心矛盾
<来自 P1>

## 模块清单
<来自 P2>

## 关键决策
<来自 decisions.md 的摘要>

核心指导原则:第一性原理驱动

本框架所有阶段、所有涉及 trade-off 的决策,都必须遵循以下思维路径:

1. 高维度问题抽象(Problem Abstraction)

在讨论任何具体方案之前,先把问题抽象到计算机科学/分布式系统/软件工程的经典问题域:

具体问题 → 抽象问题
"Redis 迁移到 Temporal"  → "这是一个有状态工作流的编排问题"
"进度条不一致"           → "这是一个内部粒度 vs 外部粒度的映射问题"
"多个服务写同一张表"      → "这是一个分布式一致性问题"
"上传完自动触发成片"      → "这是一个事件驱动的编排 + 去重问题"
"接口字段暴露了存储细节"   → "这是一个抽象泄漏问题 (Leaky Abstraction)"

为什么要做这一步: 当你把问题定义为"分布式一致性问题",解决方案空间就自动收敛到已被充分研究的领域——两阶段提交、Saga、事件溯源、CRDT 等。如果跳过这一步直接讨论"用 Redis 锁还是数据库锁",你在一个错误的抽象层级上做决策。

2. 从抽象到方案的推导路径(Derivation Path)

推导路径必须清晰可追溯:

问题抽象 → 约束条件 → 方案空间 → 推荐方案

例:
"分布式一致性问题"
  → 约束:跨服务、最终一致性可接受、需要补偿
  → 方案空间:2PC(太重)/ Saga(合适)/ 事件溯源(过度)
  → 推荐:Orchestration Saga via Temporal
  → 理由:Temporal 原生支持 Saga 补偿,团队已有 Temporal 经验

每个推荐方案都必须能回答:"这个方案解决的是哪个经典问题?为什么在我们的约束下它是最优解?"

3. 最佳实践锚定(Best Practice Anchoring)

对每个关键决策,必须回答:

  • 业界怎么做的? Google / Meta / Uber / Stripe 等公司在类似场景下的做法
  • 有没有权威参考? 论文、RFC、官方文档、设计文档的链接
  • 接口设计方面 特别关注:Google API Design Guide、Microsoft REST API Guidelines、gRPC 最佳实践等
例:
决策:API 分页方式
→ 最佳实践:Google API Design Guide 推荐 cursor-based pagination
→ 链接:https://cloud.google.com/apis/design/design_patterns#list_pagination
→ 理由:offset 在数据变动时会跳过/重复,cursor 天然幂等

如果找不到业界参考,这本身就是一个信号——要么你在解决一个非常新的问题(罕见),要么你的问题定义有偏差(常见)。


框架总览

Phase 1: 定位    /p1-position      "这个项目到底在解决什么问题"
Phase 2: 解构    /p2-deconstruct   "把问题拆成可以独立讨论的模块"
Phase 3: 深潜    /p3-deepdive      "每个模块的方案选型 + 为什么"
Phase 4: 勾兑    /p4-integrate     "跨模块的耦合点 + 产品/团队对齐"
Phase 5: 收敛    /p5-converge      "可交付的编码 Plan"
Phase 6: 验证    /p6-verify        "实现是否符合 Plan"

每个 Phase 有明确的输入、输出、和"做完的标志"。 按顺序执行,每个 Phase 的输出是下一个 Phase 的输入。

使用方式

  • 完整流程:依次执行 /p1-position → /p2-deconstruct → /p3-deepdive → /p4-integrate → /p5-converge → (编码) → /p6-verify
  • 单独使用:如果某个阶段的输入已经有了,可以直接跳到对应阶段
  • 迭代使用:Phase 3 和 Phase 4 可能反复——接口 review 的结论反过来影响模块选型
  • 闭环验证:编码完成后用 /p6-verify 对比实现 vs Plan,确保没有偏差

AskUserQuestion 标准格式

所有 Phase 的 AskUserQuestion 必须遵循以下格式:

  1. Re-ground(重建上下文):用 1-2 句话说明当前在哪个项目、哪个 Phase、讨论什么模块/决策。假设用户 20 分钟没看这个窗口。
  2. Simplify(人话解释):用一个聪明的非技术人员能理解的语言解释问题。不用原始函数名、不用内部术语。说"做了什么",不是"叫什么"。
  3. Recommend(推荐):推荐: 选 [X],因为 [一句话理由]。必须给出明确推荐,不允许"都行看你选"。
  4. Options(选项):字母编号,每个选项一行:A) ... B) ... C) ...
例:
[Re-ground] 我们在 highlight-service 的 P3 深潜,讨论模块 A(任务调度)的 Temporal topology 选型。

[Simplify] 问题是:多个视频的处理任务怎么编排——是每批视频启动一个长期运行的"调度员",
还是每批启动一个临时"调度员"用完就关?前者像一个常驻值班员,后者像临时工。

[Recommend] 推荐: 选 B(Per-batch workflow),因为避免了长期运行 workflow 的状态膨胀,
且 Temporal UI 负载可控。

A) Always-on workflow — 一个常驻 workflow 处理所有 batch
B) Per-batch workflow — 每个 batch 一个独立 workflow(推荐)
C) Session workflow — 按用户活跃时段分组

Completion Status Protocol

每个 Phase 结束时,报告完成状态:

  • DONE — 全部完成,产出已落盘
  • DONE_WITH_CONCERNS — 完成,但有需要用户注意的问题。列出每个 concern
  • BLOCKED — 无法继续。说明阻塞原因和已尝试的方法
  • NEEDS_CONTEXT — 缺少信息。明确说明需要什么

如果尝试了 3 次仍无法推进,主动 STOP 并上报,不要硬撑。

决策日志(Decision Log)

跨所有 Phase 累积的决策记录,存储在 $SESSION_DIR/decisions.md。

每个 Phase 在做出关键决策后,立即追加到 decisions.md:

## Decision #<N>: <标题>
- **Phase**: <P1/P2/P3/P4/P5>
- **Date**: <YYYY-MM-DD>
- **Module**: <模块名,如适用>
- **Decision**: <做出的决定>
- **Alternatives considered**: <被否决的方案>
- **Rationale**: <为什么选这个>
- **Decided by**: <决策人>
- **Reference**: <业界参考链接,如有>
- **Revisable**: <在什么条件下应该推翻这个决策>

什么算"关键决策": 有 2+ 个合理方案、选了其中一个的情况。如果只有唯一合理方案,不需要记。

迭代追踪(Revision Tracking)

当 P4 的结论倒逼 P3 修改方案时,不要直接覆盖原文件。 在文件末尾追加修订记录:

---
## Revision Log
### Rev 1 — <YYYY-MM-DD>
- **触发原因**: P4 接口 review 发现 <问题>
- **修改内容**: 推荐方案从 A 改为 C
- **影响范围**: 对比表维度 3 结论变化,撤退条件更新
- **对应 Decision**: Decision #<N> in decisions.md

这样任何人看到文件都能追溯"为什么改了"。

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/expert-technical-review-framework-ms1aw3tx/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/expert-technical-review-framework-ms1aw3tx' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/expert-technical-review-framework-ms1aw3tx/download' --output '.skill-downloads/expert-technical-review-framework-ms1aw3tx/SKILL.md.part' && mv '.skill-downloads/expert-technical-review-framework-ms1aw3tx/SKILL.md.part' '.skill-downloads/expert-technical-review-framework-ms1aw3tx/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/expert-technical-review-framework-ms1aw3tx/SKILL.md' && test -s '.skill-downloads/expert-technical-review-framework-ms1aw3tx/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/expert-review' && cp -R '.skill-downloads/expert-technical-review-framework-ms1aw3tx' '.claude/skills/expert-review'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/expert-technical-review-framework-ms1aw3tx'

openskills read 'expert-technical-review-framework-ms1aw3tx'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/expert-technical-review-framework-ms1aw3tx/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills