【Retired on 2026-07-27, do not trigger this skill】All capabilities have been merged into issue-pool — see issue-pool/references/plan-writing.md for the 7-step framework planning process. For any requests related to "writing plan reports / framework plans / project plans / v1.0 plans / version roadmaps / phase solutions", please use issue-pool instead. This directory is only retained as historical archive and will no longer be pushed to any targets.
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. Validate Before Designing
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. Document Type Determines Everything
The first thing to do after receiving a request is not to start writing, but to ask yourself: What type of document is this?
Type
Core Question
Writing Characteristics
Project Charter
Why initiate the project
Strategic focus, 1-2 pages
Framework Plan(this skill)
Why do it / What steps to take
No field details, covers up to phase acceptance
Business Specification
What capabilities are provided externally
Function perspective, easy to expand excessively
Detailed Design
How to implement
Complete with fields / interfaces / tech stacks
PRD
User stories / Acceptance criteria
User 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. State Description > Action Description
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. Split Versions, Don't Stack Features
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. Derive Deliverables from Acceptance Criteria
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. Non-Implementation Items Must Include Reasons
"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. 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: Understand Reality
Goal: Clarify the current situation before writing, so all subsequent design decisions are based on facts.
Step 0: Scale Quick Screening(Do before entering Stage 1 to avoid misusing for small projects)
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:
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: Collect the following information(Fill in known items, mark unknown as to be supplemented)
Project Background: Project name, current phase(initiated / in progress / transformation) / Whether there is an upper-layer architecture baseline
Current Status: Existing code / What existing systems can do / What data can be obtained / What the output format is
Target Consumers: Who this plan is for / Who will act based on it
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: Hard Gate + Information Depth Self-Check
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: "Stuck Output Format" When Information Is Incomplete
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
# {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}
## Specific Questions to Follow Up with Users1. {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?"}
...
## Minimum Standard to Enter Stage 2After 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: Confirm Document Type
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: Build the Skeleton
Goal: Finalize the fixed skeleton of the framework plan and let the user verify it.
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 Scale
Number of Phases
Number of Lines for Overall Goal
Number of Lines for Pain Point Table
Total Sections
Small(<1 person <6 weeks / <2 person-months)
2-3
3-4
3-4
8-9
Medium(1-3 people 1-3 months)
3-4
4-5
4-5
9-10
Large(>3 months / multi-person collaboration)
4-5
5-6
5-7
10-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: Fill in Content Section by Section(Follow 4 Principles)
Goal: Fill in content section by section, with each section following the "4 Principles for Content Judgment".
4 Principles:
Principle 1: First Define What It Is / What It Is Not
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.
Principle 2: Find Pain Points, Don't Say "Need to Do X"
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
Principle 3: Split Versions, Don't Stack Features
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.
Principle 4: Derive Deliverables from Acceptance Criteria
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: Use Unified Three-part Structure for Each Version
Goal: Each version(v0.1 / v0.2 / ...) is expanded using the same three-part structure.
Three-part Structure:
markdown
### v0.X {Phase Title}:{One-sentence Main Line}**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: Language Polishing
Goal: After writing the draft, scan each section according to the 5 replacement rules.
5 Replacements:
Don't Write This
Write This Instead
Why
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 sentences
Pain points with noun phrases + one specific consequence
Concise 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: Self-Check + Finalize
Goal: After writing, conduct a "reader's perspective self-check", then finalize only if passed.
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
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
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)
Small Project Skeleton(8-9 Sections)
Applicable: 1 person 1-6 weeks / tool-type / single-team internal use / cannot be delivered independently without splitting into multiple phases.
markdown
# {Project Name} {Version} Framework Plan> Status: Framework Plan Version
> Date:{YYYY-MM-DD}
> Project Scale: Small(1 person X weeks / Y phases)
---## 1. Project Positioning{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. Why Do It| Problem | Impact ||---|---|| {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. {Version} Overall Goal| Goal | Description ||---|---|| {State 1, "can X" phrasing} | {Description} || {State 2} | {Description} || {State 3, 3-4 lines are enough} | {Description} |---## 4. Version Roadmap```textv0.1 {Phase Slogan} → v0.2 {Phase Slogan} → v0.3 {Phase Slogan} → {Version} Available```---## 5. v0.1 {Title}### Problem to Solve{...}
### Key Deliverables- {...}
### Phase Acceptance{Use tool-type / platform-type phrasing, see Stage 5 three-part alternatives}
---## 6. v0.2 {Title}(Same three-part structure as above)
## 7. v0.3 {Title}(Same three-part structure as above)
---## 8. What to Consider After {Version}| Future Direction | Why 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)
Standard Skeleton(10 Sections)
Applicable: 1 person >6 weeks / multi-person collaboration / 4+ phases / cross-team consumption / has upper-layer architecture baseline.
markdown
# {Project Name} {Version} Framework Plan> 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. Project Positioning{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. Why Do ItCurrently {1-sentence current status}. This brings several long-term problems:
| Problem | Impact ||---|---|| {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. Service Boundaries{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. {Version} Overall GoalThe goal of {Version} is to achieve {state description}, not {easily misunderstood larger goal}.
| Goal | Description ||---|---|| {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. Version Roadmap{Version} is split into N internal phases for advancement. Each phase only solves one core problem.
```textv0.1 {Phase Slogan}
↓
v0.2 {Phase Slogan}
↓
v0.3 {Phase Slogan}
↓
v0.4 {Phase Slogan}
↓
{Version} Officially Available```---## 6. v0.1 {Phase Title}:{One-sentence Main Line}### Problem to Solve{Why this phase is needed / what happens if not done}
### Key Deliverables- {Deliverable 1}
- {Deliverable 2}
- {Deliverable 3}
### Phase Acceptance{1-2 sentences of state description + "The system can now answer X" phrasing}
---## 7. v0.2 {Phase Title}:{One-sentence Main Line}### Problem to Solve...
### Key Deliverables...
### Phase AcceptanceAfter this phase, the system can answer:
- {Business question 1}
- {Business question 2}
- {Business question 3}
---## 8. v0.3 ......
---## 9. v0.4 ......
---## 10. What to Consider After {Version}{Version} only solves "{core goal}". The following items are not included in the main goal of {Version}:
| Future Direction | Why 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- 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
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):
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.
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.
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"?
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.
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.
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.
Abstract Case(Fictional: Customer Tag Platform v1.0)
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
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
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
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
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 Conversion
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