plan-report

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

框架计划报告助手

Framework Plan Report Assistant

功能说明

Function Description

帮助用户产出一份框架计划报告——位于"项目章程"和"详细设计"之间的文档类型。
它回答:为什么做 / 做到什么程度算完 / 谁用它 / 不做什么 / 分几步走 / 每步停下时业务能问出什么
不回答:字段、接口、技术栈、目录命名、cron 表达式——这些是后续"详细设计文档"的事。
核心价值:让计划报告变成读者能看懂的故事,而不是作者给自己确认范围的工作清单。通过 7 步引导跟用户对齐方向、骨架、内容,最后才落盘。

Helps users produce a Framework Plan Report — a type of document that sits between the "Project Charter" and "Detailed Design" documents.
It answers: Why do it / What counts as completion / Who uses it / What not to do / What steps to take / What business questions can be answered at each step.
It does NOT answer: fields, interfaces, tech stacks, directory naming, cron expressions — these are topics for the subsequent "Detailed Design Document".
Core Value: Turn the plan report into a story that readers can understand, rather than a checklist for the author to confirm scope. Align direction, structure, and content with users through 7-step guidance before finalizing the document.

核心原则

Core Principles

1. 先实证再设计

1. Validate Before Designing

不要凭空推演。先把现状摸清楚——能跑的先跑、能读的代码先读、已知约束先列。
信号:能回答"现状是什么 / 能拿到什么 / 有哪些硬约束 / 谁会消费这份文档"。这四个问题答不上来,就不要进 Stage 2。
Do not deduce out of thin air. First clarify the current situation — run what can be run, read what code can be read, list known constraints first.
Signal: Can answer "What is the current status / What can be obtained / What are the hard constraints / Who will consume this document". Do not proceed to Stage 2 if these four questions cannot be answered.

2. 文档类型决定一切

2. Document Type Determines Everything

拿到诉求第一件事不是动笔,是问自己:这是哪一类文档?
类型核心问题写法特征
项目章程为什么立项偏战略,1-2 页
框架计划(本 skill)为什么做 / 分几步不掺字段,讲到阶段验收为止
业务说明对外提供什么能力功能视角,容易越列越多
详细设计怎么实现字段 / 接口 / 技术栈齐备
PRD用户故事 / 验收用户视角,需求场景化
错配的代价:把框架计划当业务说明写 → 变功能清单;当详细设计写 → 陷入字段细节。类型错位让所有后续努力打折扣
The first thing to do after receiving a request is not to start writing, but to ask yourself: What type of document is this?
TypeCore QuestionWriting Characteristics
Project CharterWhy initiate the projectStrategic focus, 1-2 pages
Framework Plan(this skill)Why do it / What steps to takeNo field details, covers up to phase acceptance
Business SpecificationWhat capabilities are provided externallyFunction perspective, easy to expand excessively
Detailed DesignHow to implementComplete with fields / interfaces / tech stacks
PRDUser stories / Acceptance criteriaUser perspective, scenario-based requirements
Cost of Mismatch: Writing a framework plan as a business specification → becomes a feature list; writing it as a detailed design → gets stuck in field details. Type misalignment devalues all subsequent efforts.

3. 状态描述 > 动作描述

3. State Description > Action Description

总体目标和验收都用"能 X"句式——"数据能稳定进来"、"客户名单可用"、"失败能被发现"。
为什么:状态描述本身就是验收标准;动作描述只是过程语言。"数据能稳定进来"明确了 done 的定义,"采集数据"只描述工作量。
Use "can X" phrasing for overall goals and acceptance criteria — "Data can be stably imported", "Customer list is usable", "Failures can be detected".
Why: State description itself is the acceptance standard; action description is just process language. "Data can be stably imported" clearly defines what "done" means, while "Collect data" only describes workload.

4. 拆版本,不堆功能

4. Split Versions, Don't Stack Features

每个版本只解决一个主问题。不要列"X / Y / Z 一堆功能"——看起来完整,实际无法推进,容易变无底洞。
反例:"v1.0 包含 Metabase / Grafana / SQLite / API / 告警 / 备份 / 模型归并 / 客户名单" 正例:"v0.1 底座能跑 / v0.2 业务主口径进来 / v0.3 监控视角补齐 / v0.4 上层业务能用"
Each version only solves one core problem. Do not list "a bunch of features like X / Y / Z" — it looks complete but is actually un推进able and easily becomes a bottomless pit.
Anti-example: "v1.0 includes Metabase / Grafana / SQLite / API / Alerts / Backup / Model Merging / Customer List" Positive example: "v0.1 Base can run / v0.2 Core business caliber imported / v0.3 Monitoring perspective completed / v0.4 Usable by upper-layer business"

5. 用验收反推交付

5. Derive Deliverables from Acceptance Criteria

每个阶段先问"怎样算这个阶段完成",再从验收倒推该交付什么。不要先问"要做哪些模块"。
验收最好用"系统已经可以回答 X / Y / Z"的句式——把技术验收和业务价值天然连起来。
For each phase first ask "What counts as completion of this phase", then derive deliverables from acceptance criteria. Do not start with "What modules need to be built".
Acceptance criteria are best phrased as "The system can now answer X / Y / Z" — naturally linking technical acceptance to business value.

6. 不做项必须配理由

6. Non-Implementation Items Must Include Reasons

"不做"不能只列出来。每条都要配"为什么不放进这个版本"。
为什么:防 scope creep 的关键武器。业务方质疑"为什么不做 X"时,可以直接指到这一行的理由——否则会反复重开讨论。
"Not doing" cannot just be listed. Each item must be paired with "Why not include in this version".
Why: A key weapon against scope creep. When business parties question "Why not do X", you can directly point to the reason in this line — otherwise discussions will repeatedly reopen.

7. 始终为读者服务

7. Always Serve the Reader

整篇文档的隐含问题是:
一个完全没接触过这个项目的人,读完,能不能理解项目为什么成立、做到什么程度算完、是否对他有用?
禁止:在框架计划里写"为我们自己确认范围"的内容——目录骨架、技术栈选型、字段细节、并发模型,这些都是详细设计阶段的事。

The implicit question throughout the document is:
Can a person who has never been exposed to this project understand why the project was initiated, what counts as completion, and whether it is useful to them after reading it?
Prohibited: Include content in the framework plan that "is for our own scope confirmation" — directory structure, tech stack selection, field details, concurrency models, these are all for the detailed design phase.

工作流程

Workflow

Stage 1: 摸现实

Stage 1: Understand Reality

目标:在动笔前把现状摸清楚,让后面所有设计判断都能指回事实。

Goal: Clarify the current situation before writing, so all subsequent design decisions are based on facts.

Step 0: 规模快筛(进 Stage 1 前先做,防止小项目误用)

Step 0: Scale Quick Screening(Do before entering Stage 1 to avoid misusing for small projects)

进 Stage 1 之前先问两个判断题,如果两个回答都触发"小",直接退出 skill,不要继续——这场景不该用 plan-report:
  1. 预计耗时: < 1 周 / 1 周 - 6 周 / > 6 周?
  2. 能拆出几个独立交付的阶段: 1 个 / 2-3 个 / 4+ 个?
退出规则:
  • 预计 < 1 周 只能拆 1 个阶段 → 明确退出:"这场景不需要框架计划,建议改用 1 页'做什么 + 怎么验证'文档"
  • 预计 1-6 周 + 拆出 2-3 阶段 → 用小项目骨架(8-9 节,见"模板"节)
  • 预计 > 6 周 / 拆出 4+ 阶段 → 用标准骨架(10 节)
不做规模快筛 → AI 会用标准骨架硬套小项目,造成过度结构化。这一步是这次 skill 改进的硬约束,不能跳

Before entering Stage 1 first ask two yes/no questions, if both answers indicate "small", exit the skill directly, do not continue — this scenario does not require plan-report:
  1. Estimated time: < 1 week / 1 week - 6 weeks / > 6 weeks?
  2. Number of independently deliverable phases: 1 / 2-3 / 4+?
Exit Rules:
  • Estimated < 1 week and only 1 phase can be split → Explicit exit: "This scenario does not require a framework plan, it is recommended to use a 1-page document of 'What to do + How to verify'"
  • Estimated 1-6 weeks + 2-3 phases → Use small project skeleton(8-9 sections, see "Templates" section)
  • Estimated > 6 weeks / 4+ phases → Use standard skeleton(10 sections)
Skipping scale quick screening → AI will force-fit the standard skeleton to small projects, causing over-structuring. This step is a hard constraint for this skill improvement and cannot be skipped.

Step 1: 收集以下信息(已知填上,不知道标记待补)

Step 1: Collect the following information(Fill in known items, mark unknown as to be supplemented)

  1. 项目背景:项目名称、当前阶段(立项 / 在做 / 改造) / 是否有上层架构基线
  2. 现状:已有代码 / 已有系统能跑成什么样 / 能拿到什么数据 / 输出形态是什么
  3. 目标消费方:这份计划是给谁看的 / 谁会基于它做事
  4. 硬约束:技术约束(API 限流、数据窗口、存储上限)、业务约束(规模、节奏、预算)、组织约束(谁负责、何时上线)
追问模板:
  • "现在能跑通的部分是什么?能跑一下让我看到真实输出吗?"
  • "有没有上层文档(架构基线、立项书、调研报告)我应该先读?"
  • "这份计划是给谁看的——内部产研 / 跨团队 / 客户?"
  • "有没有已知的硬约束?比如 API 限流、上线 deadline、客户量上限?"

  1. Project Background: Project name, current phase(initiated / in progress / transformation) / Whether there is an upper-layer architecture baseline
  2. Current Status: Existing code / What existing systems can do / What data can be obtained / What the output format is
  3. Target Consumers: Who this plan is for / Who will act based on it
  4. Hard Constraints: Technical constraints(API rate limits, data windows, storage limits), business constraints(scale, rhythm, budget), organizational constraints(who is responsible, launch time)
Follow-up Template:
  • "What parts can be run now? Can you run it to show me the actual output?"
  • "Are there upper-layer documents(architecture baseline, project initiation document, research report) I should read first?"
  • "Who is this plan for — internal R&D / cross-team / customers?"
  • "Are there any known hard constraints? Such as API rate limits, launch deadlines, customer volume limits?"

Step 2: 硬门 + 信息深度自检

Step 2: Hard Gate + Information Depth Self-Check

硬门:
  • 不要进 Stage 2,除非你能用 3 行话回答"现状是什么 / 能拿到什么 / 有哪些硬约束 / 谁会消费"
  • 凭空设计是这个 skill 最容易踩的坑——没摸现实就动笔 = 后面所有判断没根
信息深度自检(防止 Stage 1 被空泛回答糊弄过去):
  • 现状回答里必须有具体数字 / 系统名 / 数据规模(比如"50+ 业务线"、"12 个 bash 脚本"、"2000 万客户"),只有形容词("挺多的"、"不少")不算过门
  • 硬约束回答里必须有具体数值 / 时限 / 接口限制(比如"飞书 API 100 QPS"、"Hive 查询 10-30 秒"),"听说有限制"不算过门
  • 如果回答都是空泛形容词,返回追问模板逐项问透,不要硬过门
立项前期的灰度通道:如果项目处于真早期立项阶段,用户确实还没有精确数字,可以用 "量级估算 + 1-2 个具体痛点场景" 代替精确数字(例如"几十个业务线" + "上次某团队配错告警 3 个月才被发现")。但仅限立项早期——已经在做的项目必须给具体数字

Hard Gate:
  • Do not proceed to Stage 2 unless you can answer "What is the current status / What can be obtained / What are the hard constraints / Who will consume" in 3 lines
  • Designing out of thin air is the easiest pitfall for this skill — Writing without understanding reality = all subsequent decisions are unfounded
Information Depth Self-Check(Prevent Stage 1 from being fooled by vague answers):
  • Current status answers must include specific numbers / system names / data scales(e.g., "50+ business lines", "12 bash scripts", "20 million customers"), only adjectives("quite a lot", "many") do not pass the gate
  • Hard constraint answers must include specific values / time limits / interface restrictions(e.g., "Feishu API 100 QPS", "Hive query 10-30 seconds"), "Heard there are limits" does not pass the gate
  • If all answers are vague adjectives, return to the follow-up template to ask each question thoroughly, do not force pass the gate
Gray Channel for Early Initiation: If the project is in the very early initiation stage and the user really does not have precise numbers, you can use "magnitude estimation + 1-2 specific pain point scenarios" instead of precise numbers(e.g., "dozens of business lines" + "Last time a team misconfigured alerts and it wasn't discovered for 3 months"). But this is only for early initiation — Projects already in progress must provide specific numbers.

Step 3: 信息不全时的"卡住产出格式"

Step 3: "Stuck Output Format" When Information Is Incomplete

如果硬门没过(信息不足以进 Stage 2),不要硬产出 plan。这时正确的产出是**"卡住状态说明"**,固定格式如下:
markdown
undefined
If the hard gate is not passed(insufficient information to enter Stage 2), do not force produce a plan. The correct output at this time is a "Stuck Status Description", with the fixed format as follows:
markdown
undefined

{项目名} v1.0 计划 — Stage 1 卡住,待补信息

{Project Name} v1.0 Plan — Stage 1 Stuck, Information to Be Supplemented

已收集信息

Collected Information

  • 项目背景: {已知部分 / 待补}
  • 现状: {已知部分 / 待补}
  • 目标消费方: {已知部分 / 待补}
  • 硬约束: {已知部分 / 待补}
  • Project Background: {Known part / To be supplemented}
  • Current Status: {Known part / To be supplemented}
  • Target Consumers: {Known part / To be supplemented}
  • Hard Constraints: {Known part / To be supplemented}

还需要从用户追问的 X 个具体问题

Specific Questions to Follow Up with Users

  1. {具体问题 1,例如"现在文档散在哪些系统里?多少篇?"}
  2. {具体问题 2,例如"使用人数 30 / 300 / 3000?"}
  3. {具体问题 3,例如"最近一次'用起来不爽'的具体场景是什么?"} ...
  1. {Specific question 1, e.g., "Which systems are the documents scattered in? How many?"}
  2. {Specific question 2, e.g., "Number of users: 30 / 300 / 3000?"}
  3. {Specific question 3, e.g., "What was the specific scenario of the last 'unpleasant to use' experience?"} ...

进 Stage 2 的最低标准

Minimum Standard to Enter Stage 2

收到上面问题的回答后,要保证能用 3 行话回答"现状是什么 / 能拿到什么 / 有哪些硬约束 / 谁会消费"。

**禁止**:用"据我理解你大概想做 X" / "我假设你的现状是 Y" 开头硬补。这是凭空补全的伪装,等价于 Stage 1 闯关。

---
After receiving answers to the above questions, ensure you can answer "What is the current status / What can be obtained / What are the hard constraints / Who will consume" in 3 lines.

**Prohibited**: Start with "From my understanding you probably want to do X" / "I assume your current status is Y" to force supplement. This is a disguise of unfounded completion, equivalent to bypassing Stage 1.

---

Stage 2: 定文档类型

Stage 2: Confirm Document Type

目标:确认要写的是"框架计划",而不是别的类型;如果是别的类型,提示用户换 skill。
操作要点:
跟用户对齐这份文档的定位:
  • 回答:为什么做 / 做到什么程度算完 / 谁用 / 不做什么 / 分几步 / 每步验收
  • 不回答:字段、接口、技术栈、目录、cron 表达式、并发模型
如果用户说"我要把字段都写清楚"——这是详细设计,本 skill 不适用,建议另起一份。
如果用户说"我要列我们能提供的功能"——这是业务说明,本 skill 不适用,建议另起一份。
追问模板:
  • "这份文档主要给谁看?给做事的人 → 偏详细设计;给理解事的人 → 框架计划"
  • "你期望它解决什么问题?——'让团队对齐做什么 / 怎么算完'是框架计划;'让业务方知道能用什么'是业务说明"
硬门:
  • 文档类型没明确前,不要搭骨架
  • 错位的类型 = 整份文档作废,这一步必须卡住

Goal: Confirm that the document to be written is a "Framework Plan", not another type; if it is another type, prompt the user to switch skills.
Key Operations:
Align the positioning of this document with the user:
  • It answers: Why do it / What counts as completion / Who uses it / What not to do / What steps to take / Phase acceptance criteria
  • It does NOT answer: fields, interfaces, tech stacks, directories, cron expressions, concurrency models
If the user says "I want to write down all fields clearly" — this is detailed design, this skill is not applicable, it is recommended to start another document.
If the user says "I want to list the functions we can provide" — this is a business specification, this skill is not applicable, it is recommended to start another document.
Follow-up Template:
  • "Who is this document mainly for? For people doing the work → leans towards detailed design; for people understanding the work → framework plan"
  • "What problem do you expect it to solve? — 'Align the team on what to do / what counts as completion' is framework plan; 'Let business parties know what they can use' is business specification"
Hard Gate:
  • Do not build the skeleton until the document type is confirmed
  • Misaligned type = the entire document is invalid, this step must be stuck

Stage 3: 搭骨架

Stage 3: Build the Skeleton

目标:把框架计划的固定骨架定下来,让用户校验。
框架计划的固定骨架(5 段):
定位 → 痛点 → 边界 → 阶段 → 验收
展开成章节(标准版 10 节):
1. 项目定位          (是什么 / 不是什么)
2. 为什么要做         (核心痛点)
3. 服务/系统边界      (负责 / 不负责)
4. v1.0 总体目标      (做到什么程度算完)
5. 版本路线           (分几步,只一行流程图)
6. v0.1 阶段          (要解决的问题 / 主要交付 / 阶段验收)
7. v0.2 阶段          (同上三段式)
8. v0.3 阶段          (同上三段式)
9. v0.4 阶段          (同上三段式)
10. v1.0 之后再考虑   (后续不做,每条配理由)
11. (可选) 关联文档——如果上层文档全部为空,**整节删除**,不要留"待补"占位符
项目规模自适应(关键,避免小项目过度结构化):
项目规模阶段数总体目标行数痛点表行数总节数
小(1 人 < 6 周 / < 2 人月)2-3 个3-4 行3-4 行8-9 节
中(1-3 人 1-3 月)3-4 个4-5 行4-5 行9-10 节
大(>3 月 / 多人协作)4-5 个5-6 行5-7 行10-11 节
核心纪律:按真实情况定行数,不要按模板默认值凑数。凑出来的内容读者一眼能看出来。
每个阶段必须用统一三段式,无论项目规模——这一点不变。
操作要点:
  • 骨架先整体抛给用户,让他增删章节、调整顺序
  • 禁止:边写边改骨架
  • 禁止:用户没确认就开始填内容
追问模板:
  • "这个骨架对吗?有要加 / 减 / 调顺序的章节吗?"
  • "阶段数定几个?——按'每阶段解决一个主问题'反推,通常 3-5 个合适"
硬门:骨架没确认 → 不进 Stage 4。

Goal: Finalize the fixed skeleton of the framework plan and let the user verify it.
Fixed Skeleton of Framework Plan(5 Sections):
Positioning → Pain Points → Boundaries → Phases → Acceptance
Expanded into Chapters(Standard Version 10 Sections):
1. Project Positioning          (What it is / What it is not)
2. Why Do It                   (Core pain points)
3. Service/System Boundaries   (Responsibilities / Non-responsibilities)
4. v1.0 Overall Goal          (What counts as completion)
5. Version Roadmap            (Steps, only one-line flowchart)
6. v0.1 Phase                 (Problem to solve / Key deliverables / Phase acceptance)
7. v0.2 Phase                 (Same three-part structure as above)
8. v0.3 Phase                 (Same three-part structure as above)
9. v0.4 Phase                 (Same three-part structure as above)
10. Considerations After v1.0  (Not done in this version, each with reason)
11. (Optional) Related Documents — If all upper-layer documents are empty, **delete the entire section**, do not leave a "To be supplemented" placeholder
Project Scale Adaptation(Key to avoid over-structuring small projects):
Project ScaleNumber of PhasesNumber of Lines for Overall GoalNumber of Lines for Pain Point TableTotal Sections
Small(<1 person <6 weeks / <2 person-months)2-33-43-48-9
Medium(1-3 people 1-3 months)3-44-54-59-10
Large(>3 months / multi-person collaboration)4-55-65-710-11
Core Discipline: Determine the number of lines based on actual situation, do not fill in according to template defaults. Readers can immediately spot content that is forced to fill.
Each phase must use the unified three-part structure, regardless of project scale — this remains unchanged.
Key Operations:
  • First present the skeleton as a whole to the user, allowing them to add/delete chapters or adjust the order
  • Prohibited: Modify the skeleton while writing
  • Prohibited: Start filling content without user confirmation
Follow-up Template:
  • "Is this skeleton correct? Are there any chapters to add / remove / reorder?"
  • "How many phases to set? — Derive from 'Each phase solves one core problem', usually 3-5 is appropriate"
Hard Gate: Do not proceed to Stage 4 until the skeleton is confirmed.

Stage 4: 填每节内容(按 4 原则)

Stage 4: Fill in Content Section by Section(Follow 4 Principles)

目标:逐节填内容,每节都按"内容判断 4 原则"落字。
4 原则:
Goal: Fill in content section by section, with each section following the "4 Principles for Content Judgment".
4 Principles:

原则 1:先定是什么 / 不是什么

Principle 1: First Define What It Is / What It Is Not

开篇用 "它的目标不是 X,而是 Z" 的句式。先排除常见误解,再立正确定位。
误解数量按场景定:1-3 个,宁缺勿凑。如果想不出第 2 个真实误解,就不要硬塞——硬凑的误解读者一眼能看出来。
对内部工具类项目特别说明:如果项目是面向内部团队的工具(告警平台、巡检工具、CI 平台等),读者可能不带"以为是 X"的误解——这时改用对照式:"它做 X / 不做 Y",而不是强行写"不是 A / 不是 B / 不是 C"。
为什么:读者常带错误预期来(以为是"数据平台"、"业务系统"、"分析工具")。先打掉误解,定位才立得住。但误解不存在就不要造一个
Start with the phrasing "Its goal is not X, but Z". First eliminate common misunderstandings, then establish the correct positioning.
Number of misunderstandings depends on scenario: 1-3, Better to lack than force. If you can't think of a second real misunderstanding, do not force it — readers can immediately spot forced misunderstandings.
Special Note for Internal Tool Projects: If the project is an internal tool for teams(alert platform, inspection tool, CI platform, etc.), readers may not come with "thinking it is X" misunderstandings — in this case use comparison format: "It does X / does not do Y" instead of forcing to write "not A / not B / not C".
Why: Readers often come with wrong expectations(thinking it is a "data platform", "business system", "analysis tool"). First eliminate misunderstandings, then the positioning can be established. But do not create a misunderstanding if it does not exist.

原则 2:找痛点,不说"要做 X"

Principle 2: Find Pain Points, Don't Say "Need to Do X"

第 2 节"为什么做"用 "问题 | 影响"表格——每行是名词性短语 + 一句具体后果。
行数按真实痛点数,不要凑:
  • 小项目(<6 周 / <2 人月):3-4 行通常够
  • 中型项目:4-5 行
  • 大型项目:5-7 行
  • 痛点筛选标准(3 秒判断法):这条痛点能不能在生产事故复盘 / 业务方吐槽里被点名?能 → 留;不能 → 删。
反例:
P1. 多个业务重复抓数据
正例:
重复采集 | 日报、客户分析、价值评估都各自拉一遍,浪费维护成本
Section 2 "Why Do It" uses a "Problem | Impact" table — each row is a noun phrase + a specific consequence sentence.
Number of lines based on actual pain points, do not fill in:
  • Small projects(<6 weeks / <2 person-months): 3-4 lines are usually enough
  • Medium projects: 4-5 lines
  • Large projects: 5-7 lines
  • Pain Point Screening Criteria(3-second Judgment Method): Can this pain point be mentioned in production accident reviews / business party complaints? Yes → keep; No → delete.
Anti-example:
P1. Multiple businesses repeatedly collect data
Positive example:
Duplicate collection | Daily reports, customer analysis, and value assessment each pull data separately, wasting maintenance costs

原则 3:拆版本,不堆功能

Principle 3: Split Versions, Don't Stack Features

第 5 节"版本路线"只放一个流程图,不解释。
v0.1 底座能跑 → v0.2 业务主口径进来 → v0.3 监控视角补齐 → v0.4 上层业务能用 → v1.0 正式可用
每个版本只解决一个主问题。如果一个版本要解决 3 件事,通常说明拆得不够。
Section 5 "Version Roadmap" only includes a flowchart, no explanation.
v0.1 Base can run → v0.2 Core business caliber imported → v0.3 Monitoring perspective completed → v0.4 Usable by upper-layer business → v1.0 Officially available
Each version only solves one core problem. If a version needs to solve 3 things, it usually means the splitting is not sufficient.

原则 4:用验收反推交付

Principle 4: Derive Deliverables from Acceptance Criteria

每个阶段先写"阶段验收"再写"主要交付"。从验收倒推该交付什么,而不是从功能列表正推验收。
追问模板:
  • "这一节如果换个项目,还成立吗?成立说明在写空话,要重写得更具体"
  • "这条痛点是真的痛,还是我们想象的痛?业务方能感知到吗?"
  • "这个版本能不能再拆?如果一个版本同时要做 A B C 三件不同的事,可能拆得不够"
  • "这个验收是技术指标还是业务能问出的问题?"
硬门:每节内容写完都要让用户看一眼,确认方向对再继续——避免铺完全篇才发现方向偏。

For each phase, write "Phase Acceptance" first, then "Key Deliverables". Derive deliverables from acceptance criteria instead of deducing acceptance from feature lists.
Follow-up Template:
  • "If this section is applied to another project, does it still hold? If yes, it means you are writing empty words, rewrite it to be more specific"
  • "Is this pain point real, or just our imagination? Can business parties perceive it?"
  • "Can this version be split further? If a version needs to do three different things A B C at the same time, it may not be split enough"
  • "Is this acceptance a technical indicator or a business question that can be answered?"
Hard Gate: After writing each section, let the user review it to confirm the direction is correct before continuing — avoid finding out the direction is wrong after writing the entire document.

Stage 5: 每个版本用统一三段式

Stage 5: Use Unified Three-part Structure for Each Version

目标:每个版本(v0.1 / v0.2 / ...) 都用同一个三段式结构展开。
三段式:
markdown
undefined
Goal: Each version(v0.1 / v0.2 / ...) is expanded using the same three-part structure.
Three-part Structure:
markdown
undefined

v0.X {阶段标题}:{一句话主线}

v0.X {Phase Title}:{One-sentence Main Line}

要解决的问题
{2-3 句,说清楚这个阶段为什么存在 / 不做会怎样}
主要交付
  • {交付物 1}
  • {交付物 2}
  • {交付物 3,不超过 5-6 个}
阶段验收
{按项目类型选一种句式}

**阶段验收的 3 种句式备选**(选最适合的,不要硬套数据查询型):

| 项目类型 | 验收句式 | 例子 |
|---|---|---|
| **数据 / 查询型** | "系统已经可以回答 X / Y / Z" | "某客户某天调用了多少 / 消耗了多少 Token / 主要模型分布是什么" |
| **工具 / 流程型**(dashboard、采集、自动化) | "X 能做到 / Y 能做到" 状态清单 | "新人不读源码能看 dashboard 判断系统状态 / 6 个 SRE 任一人能一键跑完全部巡检" |
| **平台 / 服务型** | 三段:能力陈述 + 客户可观测信号 + 兜底 | "API 能稳定接收告警 / 业务方能在 30 秒内确认是否发出 / 老链路保留不强切" |

**禁止**强行把工具型验收硬套"系统能回答 X"——会写出"系统能回答'新人能不能上手'"这种语法不顺的句子。**句式服从场景,不是场景服从句式**。

**为什么必须统一**:
- 读者一眼能横向对比各阶段(v0.1 vs v0.2 解决的问题、交付、验收分别是什么)
- 不容易写成流水账
- 不会过早陷入技术实现
- 各阶段权重看起来"对等",不会某个阶段写得特别详细某个特别敷衍

**禁止**:
- v0.1 用"做什么 / 价值",v0.2 用"目标 / 交付",v0.3 又自创格式
- 在某个阶段里加额外的小节(比如"风险点"、"依赖"),除非每个阶段都加

**追问模板**:
- "每个阶段验收都用'系统能回答 X'句式试一下,看看顺不顺"
- "这个交付清单超过 6 个了,要不要砍?或者说明这个阶段拆得不够细"

---
Problem to Solve
{2-3 sentences explaining why this phase exists / what happens if not done}
Key Deliverables
  • {Deliverable 1}
  • {Deliverable 2}
  • {Deliverable 3, no more than 5-6 items}
Phase Acceptance
{Choose one phrasing based on project type}

**3 Optional Phrasings for Phase Acceptance**(Choose the most suitable one, do not force-fit the data query type):

| Project Type | Acceptance Phrasing | Example |
|---|---|---|
| **Data / Query Type** | "The system can now answer X / Y / Z" | "How many times did a certain customer call on a certain day / How many Tokens were consumed / What is the main model distribution" |
| **Tool / Process Type**(dashboard, collection, automation) | Status list with "X can be done / Y can be done" | "Newcomers can check the dashboard to judge system status without reading source code / Any of the 6 SREs can run all inspections with one click" |
| **Platform / Service Type** | Three parts: Capability statement + Customer observable signal + Fallback | "API can stably receive alerts / Business parties can confirm whether to send within 30 seconds / Old link is retained without forced switching" |

**Prohibited**: Forcing tool-type acceptance to fit "The system can answer X" — it will result in grammatically awkward sentences like "The system can answer 'Can newcomers get started'" . **Phrasing should adapt to scenarios, not the other way around**.

**Why Unification Is Necessary**:
- Readers can easily compare phases horizontally(v0.1 vs v0.2's problems, deliverables, acceptance criteria)
- Less likely to become a running account
- Will not prematurely dive into technical implementation
- Each phase appears "equally weighted", avoiding some phases being overly detailed while others are perfunctory

**Prohibited**:
- v0.1 uses "What to do / Value", v0.2 uses "Goal / Deliverables", v0.3 creates its own format
- Add extra subsections in a phase(e.g., "Risks", "Dependencies") unless added to every phase

**Follow-up Template**:
- "Try using the 'The system can answer X' phrasing for each phase's acceptance criteria, see if it flows smoothly"
- "This deliverable list has more than 6 items, should we cut it? Or does it mean this phase is not split enough?"

---

Stage 6: 语言精修

Stage 6: Language Polishing

目标:写完初稿后,按 5 个替换写法逐节扫一遍。
5 个替换:
不要这样写改成这样写为什么
动作描述("采集数据")状态描述("数据能稳定进来")状态本身就是验收标准
技术验收("字段对齐")业务问句("系统已经可以回答 X / Y / Z")把技术验收和业务价值连起来
不做项只说"不做 X"不做项 + "为什么不放进当前版本"防 scope creep
痛点用 P1/P2 编号 + 长句痛点用名词短语 + 一句具体后果简洁有力
标题堆修饰("v1.0 定位与边界范围说明")标题朴素("项目定位")少加修饰,标题越短越好
追问模板:
  • "这段读起来像'我在向你解释一件事',还是'我在罗列我们要做的事'?后者就要改"
  • "这个 bullet 换成'X 能 Y'的状态描述还能说清楚吗?"

Goal: After writing the draft, scan each section according to the 5 replacement rules.
5 Replacements:
Don't Write ThisWrite This InsteadWhy
Action description("Collect data")State description("Data can be stably imported")State itself is the acceptance standard
Technical acceptance("Field alignment")Business question("The system can now answer X / Y / Z")Links technical acceptance to business value
Non-implementation item only says "Not doing X"Non-implementation item + "Why not include in current version"Prevents scope creep
Pain points with P1/P2 numbers + long sentencesPain points with noun phrases + one specific consequenceConcise and powerful
Titles with excessive modifiers("v1.0 Positioning and Boundary Scope Description")Plain titles("Project Positioning")Fewer modifiers, shorter titles are better
Follow-up Template:
  • "Does this paragraph read like 'I'm explaining something to you' or 'I'm listing what we need to do'? The latter needs to be revised"
  • "Can this bullet point be clearly stated using the 'X can Y' state description?"

Stage 7: 自检 + 落盘

Stage 7: Self-Check + Finalize

目标:写完之后做一次"读者视角自检",通过后才落盘。
自检清单(强制逐项检查):
  • 核心问题:陌生读者读完,能不能理解"项目为什么成立 / 做到什么程度算完 / 是否对他有用"?
  • 类型纯度:文档里有没有混进字段、接口、技术栈、目录命名、cron 表达式?有 → 删
  • 痛点真实性:每条痛点都是业务方能感知的吗?还是只是作者觉得"应该提一下"?用 3 秒判断法:能不能在事故复盘 / 业务方吐槽里被点名
  • 版本可拆性:每个版本只解决一个主问题吗?如果某个版本同时做 A B C,要么拆,要么合并到下一版
  • 三段式纪律:所有阶段都严格用"要解决的问题 / 主要交付 / 阶段验收"三段?有没有某个阶段自创格式?
  • 状态描述:总体目标和验收都是"能 X"句式?还是混进了动作描述?
  • 不做项配理由:第 10 节每条"不做"都跟一句"为什么不放进当前版本"?
  • 业务问句:验收里有没有"系统已经可以回答 X / Y / Z"句式?
  • 统一称呼:全文是叫"v1.0"、"第一阶段"、"首版"——用一个,别混
  • 边界 vs 不做去重(新增):第 3 节"不负责"和第 10 节"v1.0 之后再考虑"有没有语义混淆?——前者是"永远不做"(职责边界),后者是"这版不做但后续可能做"(范围边界)
  • 技术约束业务化(新增):项目的硬约束(API 限流、数据窗口、合规等)是不是用业务语言写在了"要解决的问题"里,而不是当成技术细节抛出来?
  • 过度结构化反向校验(新增):每个表格 / 每个阶段都问一句"这一行 / 这一阶段砍掉,文档还成立吗?成立就砍。"
  • 行数没凑数(新增):总体目标 / 痛点表 / 不做项的行数,有没有"为了凑数硬塞的"?——如果有一行特别空泛、特别像"应付任务",删掉
落盘:
  • 默认路径:
    docs/plan/{版本号}-{命题}-{项目名}.md
    ,如
    docs/plan/v1.0-框架-customer-metrics-service.md
  • 同步生成 HTML(用本 skill 的 md → html 工具,见末尾)
禁止:自检没过就落盘——一旦提交,业务方会按错位的版本理解,后续校正成本高。

Goal: After writing, conduct a "reader's perspective self-check", then finalize only if passed.
Self-Check Checklist(Mandatory item-by-item check):
  • Core Question: Can a陌生 reader understand "Why the project was initiated / What counts as completion / Whether it is useful to them" after reading?
  • Type Purity: Does the document include fields, interfaces, tech stacks, directory naming, cron expressions? If yes → delete
  • Pain Point Authenticity: Is each pain point perceivable by business parties, or just something the author thinks "should be mentioned"? Use the 3-second judgment method: Can it be mentioned in accident reviews / business party complaints
  • Version Splitability: Does each version only solve one core problem? If a version does A B C at the same time, either split it or merge it into the next version
  • Three-part Structure Discipline: Do all phases strictly use the "Problem to solve / Key deliverables / Phase acceptance" three-part structure? Does any phase create its own format?
  • State Description: Are overall goals and acceptance criteria all in "can X" phrasing, or mixed with action descriptions?
  • Non-Implementation Items with Reasons: Does each "Not doing" item in Section 10 have a "Why not include in current version" explanation?
  • Business Questions: Does the acceptance criteria include the "The system can now answer X / Y / Z" phrasing?
  • Unified Naming: Does the entire document use "v1.0", "First phase", "Initial version" — use one, do not mix
  • Boundary vs Non-Implementation Deduplication(New): Is there semantic confusion between Section 3 "Non-responsibilities" and Section 10 "Considerations after v1.0"? — The former is "Never do"(responsibility boundary), the latter is "Not done in this version but may be done later"(scope boundary)
  • Technical Constraints Translated to Business Language(New): Are the project's hard constraints(API rate limits, data windows, compliance, etc.) written in business language in the "Problem to solve" section, instead of being thrown out as technical details?
  • Over-structuring Reverse Check(New): For each table / each phase, ask "If this row / this phase is removed, does the document still hold? If yes, delete it."
  • No Forced Line Count(New): Are the number of lines for overall goals / pain point tables / non-implementation items "forced to fill"? — If there is a line that is particularly vague and looks like "perfunctory task", delete it
Finalize:
  • Default path:
    docs/plan/{version}-{topic}-{project-name}.md
    , e.g.,
    docs/plan/v1.0-framework-customer-metrics-service.md
  • Synchronously generate HTML(use this skill's md → html tool, see end)
Prohibited: Finalize without passing self-check — once submitted, business parties will understand it according to the misaligned version, and subsequent correction costs will be high.

模板

Templates

两套模板:Stage 1 规模快筛后选用哪套——
  • 小项目(1-6 周 / 2-3 阶段)→ 用小项目骨架(8-9 节)
  • 中大项目(>6 周 / 4+ 阶段)→ 用标准骨架(10 节)

Two Templates: Choose which one to use after Stage 1 scale quick screening —
  • Small projects(1-6 weeks / 2-3 phases)→ Use small project skeleton(8-9 sections)
  • Medium and large projects(>6 weeks / 4+ phases)→ Use standard skeleton(10 sections)

小项目骨架(8-9 节)

Small Project Skeleton(8-9 Sections)

适用:1 人 1-6 周 / 工具类 / 单团队内部使用 / 不分多阶段没法独立交付。
markdown
undefined
Applicable: 1 person 1-6 weeks / tool-type / single-team internal use / cannot be delivered independently without splitting into multiple phases.
markdown
undefined

{项目名} {版本} 框架计划

{Project Name} {Version} Framework Plan

状态:框架计划版 日期:{YYYY-MM-DD} 项目规模:小(1 人 X 周 / Y 阶段)

Status: Framework Plan Version Date:{YYYY-MM-DD} Project Scale: Small(1 person X weeks / Y phases)

1. 项目定位

1. Project Positioning

{项目名} 是一个 {核心定位 1 句话}
它做:{X 件具体能做的事,3 行内} 它不做:{Y 件明确不做的事,2 行内,跟"v1.0 之后"区别开}
内部工具类项目:用"它做 / 它不做"对照式,不强求"不是 A / B / C"误解

{Project Name} is a {1-sentence core positioning}.
It does:{X specific things it can do, within 3 lines} It does not do:{Y specific things it clearly does not do, within 2 lines, distinguish from "After v1.0"}
Internal tool-type projects: Use "It does / It does not do" comparison format, do not force "Not A / B / C" misunderstandings

2. 为什么要做

2. Why Do It

问题影响
{真实痛点 1}{具体后果}
{真实痛点 2}{具体后果}
{真实痛点 3}{具体后果,3-4 行够,不凑数}

ProblemImpact
{Real pain point 1}{Specific consequence}
{Real pain point 2}{Specific consequence}
{Real pain point 3}{Specific consequence, 3-4 lines are enough, do not fill in}

3. {版本} 总体目标

3. {Version} Overall Goal

目标说明
{状态 1,"能 X" 句式}{说明}
{状态 2}{说明}
{状态 3,3-4 行够}{说明}

GoalDescription
{State 1, "can X" phrasing}{Description}
{State 2}{Description}
{State 3, 3-4 lines are enough}{Description}

4. 版本路线

4. Version Roadmap

text
v0.1 {阶段口号} → v0.2 {阶段口号} → v0.3 {阶段口号} → {版本} 可用

text
v0.1 {Phase Slogan} → v0.2 {Phase Slogan} → v0.3 {Phase Slogan} → {Version} Available

5. v0.1 {标题}

5. v0.1 {Title}

要解决的问题

Problem to Solve

{...}
{...}

主要交付

Key Deliverables

  • {...}
  • {...}

阶段验收

Phase Acceptance

{用工具型 / 平台型句式,见 Stage 5 三段式备选}

{Use tool-type / platform-type phrasing, see Stage 5 three-part alternatives}

6. v0.2 {标题}

6. v0.2 {Title}

(同上三段式)
(Same three-part structure as above)

7. v0.3 {标题}

7. v0.3 {Title}

(同上三段式)

(Same three-part structure as above)

8. {版本} 之后再考虑什么

8. What to Consider After {Version}

后续方向为什么不放进 {版本}
{不做项 1}{理由}
{不做项 2}{理由,2-3 行够}

**小项目骨架的核心约束**(对照标准骨架的差异):
- **没有第 3 节"服务边界"**——融化进第 1 节"它做 / 它不做"
- **没有"关联文档"节**——小项目通常没上层文档
- **总体目标 3-4 行**(不是 6 行)
- **痛点 3-4 行**(不是 5 行)
- **2-3 个阶段**(不是 4 个)

---
Future DirectionWhy Not Include in {Version}
{Non-implementation item 1}{Reason}
{Non-implementation item 2}{Reason, 2-3 lines are enough}

**Core Constraints for Small Project Skeleton**(Differences from standard skeleton):
- **No Section 3 "Service Boundaries"** — merged into Section 1 "It does / It does not do"
- **No "Related Documents" section** — small projects usually have no upper-layer documents
- **Overall Goal 3-4 lines**(not 6 lines)
- **Pain Points 3-4 lines**(not 5 lines)
- **2-3 phases**(not 4)

---

标准骨架(10 节)

Standard Skeleton(10 Sections)

适用:1 人 >6 周 / 多人协作 / 4+ 阶段 / 跨团队消费 / 有上层架构基线。
markdown
undefined
Applicable: 1 person >6 weeks / multi-person collaboration / 4+ phases / cross-team consumption / has upper-layer architecture baseline.
markdown
undefined

{项目名} {版本} 框架计划

{Project Name} {Version} Framework Plan

状态:框架计划版,技术细节留待详细设计阶段 日期:{YYYY-MM-DD} 上层文档:{架构基线 / 立项书 路径,如有}

Status: Framework Plan Version, technical details to be addressed in detailed design phase Date:{YYYY-MM-DD} Upper-layer Documents:{Path to architecture baseline / project initiation document, if any}

1. 项目定位

1. Project Positioning

{项目名} 是一个 {核心定位 1 句话}
它的目标不是 {常见误解 1} {/ 误解 2 / 误解 3 — 按真实情况,1-3 个,宁缺勿凑},而是 {正确定位}。
如果是内部工具类项目且想不出真实误解,改用对照式:"它做 X / 不做 Y",不要硬凑误解。
一句话概括:
text
{核心动作链路,如:统一采集 → 统一沉淀 → 统一口径 → 统一接口 → 给上层业务使用}

{Project Name} is a {1-sentence core positioning}.
Its goal is not {Common misunderstanding 1} {/ misunderstanding 2 / misunderstanding 3 — based on actual situation, 1-3, better to lack than force}, but {Correct positioning}.
If it is an internal tool-type project and no real misunderstandings can be thought of, use comparison format:"It does X / does not do Y", do not force misunderstandings.
One-sentence summary:
text
{Core action chain, e.g.: Unified collection → Unified沉淀 → Unified caliber → Unified interface → Used by upper-layer business}

2. 为什么要做

2. Why Do It

现在 {一句话现状}。这样会带来几个长期问题:
问题影响
{痛点 1}{具体后果 1}
{痛点 2}{具体后果 2}
{痛点 3}{具体后果 3}
......
行数按真实痛点数,不要凑:小项目 3-4 行 / 中型 4-5 行 / 大型 5-7 行。3 秒判断法:这条痛点能不能在生产事故复盘 / 业务方吐槽里被点名?能 → 留;不能 → 删。
{版本} 要解决的是这些基础问题,而不是一次性把所有 {业务/能力} 都做完。

Currently {1-sentence current status}. This brings several long-term problems:
ProblemImpact
{Pain point 1}{Specific consequence 1}
{Pain point 2}{Specific consequence 2}
{Pain point 3}{Specific consequence 3}
......
Number of lines based on actual pain points, do not fill in: Small projects 3-4 lines / medium projects 4-5 lines / large projects 5-7 lines. 3-second Judgment Method: Can this pain point be mentioned in production accident reviews / business party complaints? Yes → keep; No → delete.
{Version} aims to solve these basic problems, not to complete all {business/capabilities} at once.

3. 服务边界

3. Service Boundaries

{项目名} 只负责 {核心职责}
text
{上游 / 输入}
{本项目}   ← 当前文档
{下游 / 消费方}
本项目负责:
  • {职责 1}
  • {职责 2}
  • {职责 3}
本项目不负责:
  • {不做 1}
  • {不做 2}
  • {不做 3}
这些能力属于 {归属方}。

{Project Name} is only responsible for {Core responsibilities}.
text
{Upstream / Input}
{This Project}   ← Current document
{Downstream / Consumers}
This project is responsible for:
  • {Responsibility 1}
  • {Responsibility 2}
  • {Responsibility 3}
This project is not responsible for:
  • {Non-responsibility 1}
  • {Non-responsibility 2}
  • {Non-responsibility 3}
These capabilities belong to {Owner}.

4. {版本} 总体目标

4. {Version} Overall Goal

{版本} 的目标是做出 {状态描述},而不是 {容易被误解的更大目标}。
目标说明
{状态 1,"能 X" 句式,如"数据能稳定进来"}{1 句说明}
{状态 2}{1 句说明}
{状态 3}{1 句说明}
......
行数按真实状态数,不要凑:小项目 3-4 行 / 中型 4-5 行 / 大型 5-6 行。 "老链路可兜底"是 customer-metrics-service 这个示例项目的具体一行(因为有 maas_bot 老链路)——不要把它当成模板必填项。新项目如果没有"老链路",这一行就不要有。
{版本} 不追求 {显式排除的过度目标},只要 {核心目标} 即可。

The goal of {Version} is to achieve {state description}, not {easily misunderstood larger goal}.
GoalDescription
{State 1, "can X" phrasing, e.g., "Data can be stably imported"}{1-sentence description}
{State 2}{1-sentence description}
{State 3}{1-sentence description}
......
Number of lines based on actual states, do not fill in: Small projects 3-4 lines / medium projects 4-5 lines / large projects 5-6 lines. "Old link can fallback" is a specific line for the example project customer-metrics-service(because there is the maas_bot old link) — do not treat it as a mandatory template item. If a new project has no "old link", do not include this line.
{Version} does not pursue {explicitly excluded excessive goals}, only needs to achieve {core goal}.

5. 版本路线

5. Version Roadmap

{版本} 拆成 N 个内部阶段推进。每个阶段只解决一个主问题。
text
v0.1 {阶段口号}
v0.2 {阶段口号}
v0.3 {阶段口号}
v0.4 {阶段口号}
{版本} 正式可用

{Version} is split into N internal phases for advancement. Each phase only solves one core problem.
text
v0.1 {Phase Slogan}
v0.2 {Phase Slogan}
v0.3 {Phase Slogan}
v0.4 {Phase Slogan}
{Version} Officially Available

6. v0.1 {阶段标题}:{一句话主线}

6. v0.1 {Phase Title}:{One-sentence Main Line}

要解决的问题

Problem to Solve

{为什么需要这个阶段 / 不做会怎样}
{Why this phase is needed / what happens if not done}

主要交付

Key Deliverables

  • {交付物 1}
  • {交付物 2}
  • {交付物 3}
  • {Deliverable 1}
  • {Deliverable 2}
  • {Deliverable 3}

阶段验收

Phase Acceptance

{1-2 句状态描述 + "系统已经可以回答 X" 句式}

{1-2 sentences of state description + "The system can now answer X" phrasing}

7. v0.2 {阶段标题}:{一句话主线}

7. v0.2 {Phase Title}:{One-sentence Main Line}

要解决的问题

Problem to Solve

...
...

主要交付

Key Deliverables

...
...

阶段验收

Phase Acceptance

这一阶段结束后,系统已经可以回答:
  • {业务问句 1}
  • {业务问句 2}
  • {业务问句 3}

After this phase, the system can answer:
  • {Business question 1}
  • {Business question 2}
  • {Business question 3}

8. v0.3 ...

8. v0.3 ...

...

...

9. v0.4 ...

9. v0.4 ...

...

...

10. {版本} 之后再考虑什么

10. What to Consider After {Version}

{版本} 只解决 "{核心目标}"。以下事项不放进 {版本} 主目标:
后续方向为什么不放进 {版本}
{不做项 1}{理由 1}
{不做项 2}{理由 2}
{不做项 3}{理由 3}
{版本} 的核心原则是:
text
{一句话原则,如"先把数据底座跑稳,再扩展计算和产品能力"}

{Version} only solves "{core goal}". The following items are not included in the main goal of {Version}:
Future DirectionWhy Not Include in {Version}
{Non-implementation item 1}{Reason 1}
{Non-implementation item 2}{Reason 2}
{Non-implementation item 3}{Reason 3}
The core principle of {Version} is:
text
{One-sentence principle, e.g., "Stabilize the data base first, then expand computing and product capabilities"}

关联文档

Related Documents

  • 上层文档:{路径}
  • 项目记忆:{路径}
  • 旧代码参照:{路径}

**关键约束**:
- 所有阶段(v0.1-v0.4)必须用统一三段式,不要某个阶段加额外小节
- 不出现字段名、表名、接口路径、技术栈、目录路径、cron 表达式
- 不做项必须有"为什么不放进当前版本"列
- 标题朴素,不堆修饰

---
  • Upper-layer Documents:{Path}
  • Project Memory:{Path}
  • Old Code Reference:{Path}

**Key Constraints**:
- All phases(v0.1-v0.4) must use the unified three-part structure, do not add extra subsections to any phase
- No field names, table names, interface paths, tech stacks, directory paths, cron expressions
- Non-implementation items must have a "Why not include in current version" column
- Plain titles, no excessive modifiers

---

示例参考

Reference Examples

实际案例(customer-metrics-service v1.0)

Actual Case(customer-metrics-service v1.0)

文件路径:
docs/plan/v1.0-框架-customer-metrics-service.md
关键设计决策:
  • 项目定位先用"不是 X / Y / Z,而是 Z"打掉误解——"不是做客户价值评分、ROI 分析或日报页面,而是把分散的数据统一收口"
  • 第 4 节总体目标用 6 行"能 X"句式——数据能稳定进来 / 能稳定沉淀 / 口径能统一 / 能被程序读取 / 失败能被发现 / 老链路可兜底
  • 4 个阶段都用统一三段式,验收都用"系统已经可以回答 X / Y / Z"句式
  • 第 10 节不做项用 "后续方向 | 为什么不放进 v1.0" 表格,每条配理由
  • 最后用一句口号收束:"先把数据底座跑稳,再扩展计算和产品能力"
AI 写计划报告时常犯的 6 个反模式(看到自己在写下面任一种,停下重想):
  1. 按"输入资源"切版本(数据源 / 客户类型 / 第三方依赖)→ 应该按能力层切(地基 → 业务接入 → 服务对外)。问自己:每个版本能不能独立交付一个"用户能感知的能力"?不能 → 切错了。
  2. 把"业务计算 / 上层加工"塞进自己的服务边界 → 应该明确"我只到事实数据层,业务计算归独立模块"。问自己:这个职责被砍掉,我的服务还成立吗?成立就该砍。
  3. 按未来最大规模做过度设计(并发池 / 队列 / 聚合告警 / 多租户)→ 应该按当前 1.0 真实规模设计,留接口不实现。问自己:这个复杂度是 v1.0 真需要,还是"假如有 100x 用户"?
  4. 把技术细节(目录骨架 / Docker / 技术栈 / cron 表达式 / 字段)写进框架计划 → 应该全部抽走,留到"详细设计文档"。问自己:这一段如果换个技术栈实现,还成立吗?成立 → 它是业务,不是技术,留下;不成立 → 删。
  5. 把"框架计划"写成"业务能力清单"(列"提供 X / Y / Z 功能") → 应该把能力融化进"总体目标"的状态表("X 能稳定 / Y 能被读 / Z 能被发现"),不要单独开"提供什么能力"章节。
  6. 用"据我理解"开头硬补缺失信息——这是最隐蔽的反模式。Stage 1 信息不足时,AI 会礼貌地写"据我理解你大概想做 X / 我假设现状是 Y / 你的客户量级应该是 Z"——这等价于凭空补全,会让 Stage 2 之后的所有判断悬空。正确反应是按 Stage 1 Step 3 的"卡住产出格式"输出待补问题,不要硬开篇
实际案例里 customer-metrics-service 的 5 次校正:
按数据源切版本 / summary 层塞进底座 / 100 客户过度设计 / 技术细节塞进 plan / 功能清单视角
——是这 6 个反模式中前 5 个的具体表现。
File Path:
docs/plan/v1.0-framework-customer-metrics-service.md
Key Design Decisions:
  • Project positioning first uses "Not X / Y / Z, but Z" to eliminate misunderstandings — "Not for customer value scoring, ROI analysis or daily report pages, but to unify scattered data"
  • Section 4 overall goal uses 6 lines of "can X" phrasing — Data can be stably imported / Can be stably沉淀 / Caliber can be unified / Can be read by programs / Failures can be detected / Old link can fallback
  • All 4 phases use the unified three-part structure, acceptance criteria all use "The system can now answer X / Y / Z" phrasing
  • Section 10 non-implementation items use "Future Direction | Why Not Include in v1.0" table, each with reason
  • Conclude with a slogan:"Stabilize the data base first, then expand computing and product capabilities"
6 Anti-patterns AI Often Makes When Writing Plan Reports(Stop and rethink if you are writing any of the following):
  1. Split versions by "input resources"(data sources / customer types / third-party dependencies)→ Should split by capability layers(foundation → business access → external service). Ask yourself: Can each version independently deliver a "user-perceivable capability"? No → split incorrectly.
  2. Include "business computing / upper-layer processing" in your service boundary → Should clearly define "I only reach the factual data layer, business computing belongs to independent modules". Ask yourself: If this responsibility is removed, does my service still exist? Yes → should remove it.
  3. Over-design for future maximum scale(concurrency pools / queues / aggregated alerts / multi-tenancy)→ Should design for current v1.0 actual scale, leave interfaces unimplemented. Ask yourself: Is this complexity really needed for v1.0, or "if there are 100x users"?
  4. Write technical details(directory structure / Docker / tech stack / cron expressions / fields) into the framework plan → Should extract all of them to the "Detailed Design Document". Ask yourself: If this paragraph is implemented with a different tech stack, does it still hold? Yes → it is business-related, keep it; No → delete.
  5. Write "framework plan" as "business capability list"(list "Provide X / Y / Z functions")→ Should integrate capabilities into the state table of "Overall Goal"("X can be stable / Y can be read / Z can be detected"), do not open a separate "What capabilities are provided" chapter.
  6. Start with "From my understanding" to force supplement missing information — This is the most hidden anti-pattern. When information is insufficient in Stage 1, AI will politely write "From my understanding you probably want to do X / I assume your current status is Y / Your customer scale should be Z" — This is equivalent to unfounded completion, making all subsequent judgments after Stage 2 unfounded. The correct response is to output the to-be-supplemented questions according to the "Stuck Output Format" in Stage 1 Step 3, do not force start writing.
The 5 corrections in the customer-metrics-service actual case:
Split versions by data source / Include summary layer in base / Over-design for 100 customers / Include technical details in plan / Feature list perspective
— are specific manifestations of the first 5 of these 6 anti-patterns.

抽象案例(虚构:客户标签平台 v1.0)

Abstract Case(Fictional: Customer Tag Platform v1.0)

场景:为内部业务团队建一个客户标签管理平台,30 个业务线接入。
关键设计决策的逻辑(学逻辑,不抄措辞):
  • 定位:"不是 BI 工具 / 不是 CDP / 不是用户画像系统,而是客户标签的统一登记和分发服务"——先打掉 3 个常见误解
  • 痛点(虚构示例):
    • 标签定义散在各业务文档
      |
      同名标签语义不同,数据对账经常吵架
    • 标签发布无审计
      |
      谁改了什么没记录,出问题查不到
    • 下游消费方式单一
      |
      只能查 Excel,程序化集成难
  • 总体目标(状态描述):标签能登记 / 定义能复用 / 变更能追溯 / 数据能被程序读取
  • 版本路线(每阶段一个主问题):
    v0.1 元数据底座 → v0.2 标签登记上线 → v0.3 审计与变更 → v0.4 分发 API → v1.0 正式可用
  • v0.2 验收用业务问句:
    • "某个标签当前的定义是什么?"
    • "哪些业务线用了这个标签?"
    • "这个标签上次什么时候变过?"
  • 不做项配理由:
    • 画像计算 → 属于上层分析服务,不是登记平台职责
    • 多租户隔离 → 30 业务线规模下不需要,过度设计
    • 标签生效时间窗口管理 → 复杂度高,留到 v2.0
关键陷阱(同 customer-metrics-service 校正经验):
  • 不要按"数据源"切版本(MySQL / Hive / 外部 API),按能力层切
  • 不要在 plan 里写字段、表结构、API 路径
  • 不要列"提供查询能力 / 提供登记能力 / 提供审计能力"这种功能清单——融化进"总体目标"的状态表

Scenario: Build a customer tag management platform for internal business teams, with 30 business lines accessing.
Logic of Key Design Decisions(Learn the logic, do not copy the wording):
  • Positioning: "Not a BI tool / Not a CDP / Not a user portrait system, but a unified registration and distribution service for customer tags" — first eliminate 3 common misunderstandings
  • Pain Points(Fictional example):
    • Tag definitions scattered in various business documents
      |
      Same-named tags have different semantics, data reconciliation often causes conflicts
    • No audit for tag release
      |
      No record of who changed what, hard to investigate when problems occur
    • Single downstream consumption method
      |
      Only can check Excel, difficult to integrate programmatically
  • Overall Goal(State description): Tags can be registered / Definitions can be reused / Changes can be traced / Data can be read by programs
  • Version Roadmap(One core problem per phase):
    v0.1 Metadata base → v0.2 Tag registration launched → v0.3 Audit and changes → v0.4 Distribution API → v1.0 Officially available
  • v0.2 Acceptance using business questions:
    • "What is the current definition of a certain tag?"
    • "Which business lines are using this tag?"
    • "When was this tag last changed?"
  • Non-implementation items with reasons:
    • Portrait calculation → Belongs to upper-layer analysis service, not the responsibility of the registration platform
    • Multi-tenant isolation → Not needed for 30 business lines, over-design
    • Tag effective time window management → High complexity, leave to v2.0
Key Traps(Same as customer-metrics-service correction experience):
  • Do not split versions by "data source"(MySQL / Hive / external API), split by capability layers
  • Do not write fields, table structures, API paths in the plan
  • Do not list feature lists like "Provide query capabilities / Provide registration capabilities / Provide audit capabilities" — integrate into the state table of "Overall Goal"

使用场景

Application Scenarios

场景 1:新项目立项后第一份"做什么"文档 → 上层有架构基线 / 立项书,需要把"v1.0 做什么、分几步"摊开。本 skill 主战场。
场景 2:已有项目的大版本规划 → 既有项目要做 v2.0 / v3.0,需要重新对齐"这一版的主问题是什么、跟前版有什么差异"。
场景 3:多阶段迁移计划 → 老系统迁新系统,需要拆"几个阶段、每阶段迁什么、迁完什么算成功"。
场景 4:内部工具的演进路线 → 内部脚本 / 工具想升级为正式服务,需要规划"从工具到服务的几步"。

Scenario 1: First "What to do" document after new project initiation → There is an upper-layer architecture baseline / project initiation document, need to lay out "What to do in v1.0, what steps to take". Main battlefield of this skill.
Scenario 2: Large version planning for existing projects → Existing projects need to do v2.0 / v3.0, need to re-align "What is the core problem of this version, what is the difference from the previous version".
Scenario 3: Multi-phase migration plan → Migrate old system to new system, need to split "How many phases, what to migrate in each phase, what counts as success after migration".
Scenario 4: Evolution roadmap for internal tools → Internal scripts / tools want to be upgraded to formal services, need to plan "Steps from tool to service".

不适用场景

Inapplicable Scenarios

文档类型不匹配

Document Type Mismatch

  • 详细设计文档(字段 / 接口 / 技术栈齐备)→ 另起
    detail-design
    类文档,本 skill 不涉及
  • PRD / 需求文档(用户故事 / 验收标准)→ 用
    prd-doc-writer
  • 业务说明(对外列功能清单)→ 业务说明视角不同,本 skill 不适用
  • 拜访 / 分享大纲(给外部听众讲一场)→ 用
    share-outline
  • 周报 / 工作汇总(已发生事项的整理)→ 用
    weekly-report
  • 客户共识会准备(多方对齐)→ 用
    meeting
  • Detailed Design Document(complete with fields / interfaces / tech stacks)→ Start another
    detail-design
    type document, this skill does not involve
  • PRD / Requirements Document(user stories / acceptance criteria)→ Use
    prd-doc-writer
  • Business Specification(list feature lists externally)→ Different perspective from business specification, this skill is not applicable
  • Visit / Sharing Outline(Give a talk to external audience)→ Use
    share-outline
  • Weekly Report / Work Summary(Organize completed items)→ Use
    weekly-report
  • Customer Consensus Meeting Preparation(Multi-party alignment)→ Use
    meeting

项目规模太小

Project Scale Too Small

  • 1 周内的脚本改造 / bug 修复 / 小调整——不需要框架计划,直接写 1 页"做什么 + 怎么验证"即可
  • 不需要分阶段的"一次性交付"项目——没有 v0.1 / v0.2 之分的项目,本 skill 会过度结构化
  • 判断标准:如果你想出来的"阶段"只有 1 个,或者每阶段做的事都互相依赖无法独立交付——说明这项目不需要框架计划
  • Script modification / bug fix / small adjustment within 1 week — No need for framework plan, directly write a 1-page "What to do + How to verify" document
  • One-time delivery projects that do not need phase splitting — Projects without v0.1 / v0.2 phases, this skill will over-structure them
  • Judgment Standard: If you can only think of 1 "phase", or the tasks in each phase are interdependent and cannot be delivered independently — it means this project does not need a framework plan

多人协作场景的注意事项

Notes for Multi-person Collaboration Scenarios

本 skill 默认"一个负责人主导写一份计划"。多人协作场景下(多个 owner、跨部门、需要先开会对齐):
  • Stage 1-3 建议先开 1-2 次小会对齐"现状 / 文档类型 / 骨架",再让一个人主笔
  • 不要 3 个人在 Stage 3 骨架上吵几天——硬门是用来卡 AI 跳步骤的,不是用来卡团队讨论的

This skill defaults to "One person in charge leads writing one plan". For multi-person collaboration scenarios(multiple owners, cross-departmental, need to align in meetings first):
  • It is recommended to hold 1-2 small meetings in Stage 1-3 to align "Current status / Document type / Skeleton", then let one person take the lead in writing
  • Do not let 3 people argue over the Stage 3 skeleton for days — hard gates are used to prevent AI from skipping steps, not to block team discussions

md → html 转换

md → html Conversion

本 skill 的
tools/
子目录下提供
md2html.py
脚本和
style.css
,用于把产出的
.md
转成可视化
.html
.claude/skills/plan-report/
├── SKILL.md          ← skill 本身,给 Claude 读
└── tools/
    ├── md2html.py    ← 转换脚本
    └── style.css     ← 输出 HTML 的样式表
安装依赖(一次性):
bash
pip3 install markdown
使用:
bash
python3 .claude/skills/plan-report/tools/md2html.py docs/plan/v1.0-框架-{项目名}.md
输出会在 md 同目录生成同名
.html
样式由
tools/style.css
控制,可以按需修改(蓝色 accent / 表格 hover / ASCII 图块等)。脚本会自动找到同目录的
style.css
,也可以用
--css
参数指定其他样式表。
The
tools/
subdirectory of this skill provides the
md2html.py
script and
style.css
for converting the generated
.md
files into visual
.html
files.
.claude/skills/plan-report/
├── SKILL.md          ← Skill itself, for Claude to read
└── tools/
    ├── md2html.py    ← Conversion script
    └── style.css     ← Style sheet for output HTML
Install Dependencies(One-time):
bash
pip3 install markdown
Usage:
bash
python3 .claude/skills/plan-report/tools/md2html.py docs/plan/v1.0-framework-{project-name}.md
The output will generate a
.html
file with the same name in the same directory as the md file.
The style is controlled by
tools/style.css
, which can be modified as needed(blue accent / table hover / ASCII block, etc.). The script will automatically find the
style.css
in the same directory, or you can use the
--css
parameter to specify another style sheet.