Task Objective
- This Skill is used to: systematically explore and plan a personal software development project from scratch
- Core Capabilities:
- Competitive analysis: compare similar products across multiple dimensions and extract design points
- Requirement definition: clarify MVP boundaries and distinguish P0/P1/P2 priorities
- Architecture design: technology selection, module division, data flow design
- Decision tracking: record all discussion decisions and form a decision matrix
- Trigger Conditions: when starting a new personal software project, needing to systematically plan the project direction, or when an existing project needs to re-sort its requirements
Operation Steps
Standard Process
┌─────────────────────────────────────────────────────────────┐
│ 个人软件开发探索流程 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ① 问题发现 ──→ ② 竞品分析 ──→ ③ 需求定义 ──→ ④ 架构设计 │
│ │ │ │ │ │
│ ▼ ▼ ▼ ▼ │
│ [洞察机会] [对比表+决策] [MVP边界+优先级] [技术选型] │
│ │
│ ⑤ 决策整理 ──→ ⑥ 文档输出 │
│ │ │ │
│ ▼ ▼ │
│ [决策矩阵] [problem/*.md + SRS.md 更新] │
│ │
└─────────────────────────────────────────────────────────────┘
Detailed Steps
Step 1: Problem Discovery
- Identify the core problem: What pain points do users face?
- Evaluate the value of solving it: Is this problem worth solving?
- Judge personal suitability: Is personal development suitable for this project?
Step 2: Competitive Analysis
- Select competitors: choose 2-4 similar products
- Multi-dimensional comparison: features, technology, user experience, ecosystem
- Extract points worth learning from: Which designs are worth learning from?
- Determine the differentiation direction: How to differentiate from competitors?
Step 3: Requirement Definition
- Clarify MVP boundaries: What must be delivered in the first version?
- Divide priorities: P0 (must)/P1 (important)/P2 (optional)
- Define success criteria: How to measure project success?
- Estimate resource investment: time, manpower, equipment
Step 4: Architecture Design
- Technology stack selection: frontend/backend/framework selection
- Module division: core modules and their responsibilities
- Data flow design: how data flows through the system
- Technical risk assessment: Which technical difficulties need to be overcome?
Step 5: Decision Organization
- Establish a decision matrix: summarize all discussion decisions
- Mark priorities: P0/P1/P2 layering
- Clarify items to be determined: What issues remain unresolved?
Step 6: Document Output
- Create the problem/ directory: organize problems by category
- Update SRS.md: synchronize decisions to the Software Requirements Specification
- Establish discussion tracking: record the conclusions of each round of discussion
Resource Index
- Competitive analysis template: see references/competitive-analysis.md(when to read: when conducting competitive analysis)
- Requirement priority framework: see references/priority-framework.md(when to read: when defining MVP boundaries)
- Architecture Design Guide: See references/architecture-guide.md(When to read: when making technology choices)
- Decision Tracking Template: See references/decision-tracking.md(When to read: when organizing decisions)
Notes
- Progressive Planning: Do not try to solve all problems at once; focus on the MVP first
- Prioritization: Start from P0 to ensure core functionality comes first
- Traceable Decisions: Record decisions immediately after each discussion to avoid forgetting them
- Stay Flexible: Personal project requirements often change, and documentation should be updated promptly
- Control Scope: Personal development time and energy are limited; beware of feature creep
Usage Examples
Example 1: Exploring a New Project from Scratch
Scenario: Want to develop a productivity tool, but are not sure what to build
Actions:
- Problem Discovery: Analyze pain points in daily work (clipboard management, file search, quick launch)
- Competitor Analysis: Study products such as uTools, ZTools, and Quicker
- Requirement Definition: Determine the MVP boundary (start with QuickJS plugin + search)
- Architecture Design: Choose Tauri + Svelte + QuickJS
- Decision Organization: Output 5 question category files
- Documentation Output: Update SRS.md
Output:
wiki/
├── SRS.md # 功能需求规格
└── problem/ # 问题追踪
├── 00-summary.md # 决策汇总
├── 01-project-management.md
├── 02-technical-architecture.md
├── 03-user-experience.md
├── 04-ecosystem-community.md
└── 05-resources-risk.md
Example 2: Supplementing Missing Information for an Existing Project
Scenario: There is already a project SRS, but some issues are found to be undefined
Actions:
- Identify Gaps: Check the "to be determined" items in the SRS
- Classify and Organize: Categorize issues by project/technical/ux/ecosystem
- Discuss in Rounds: Discuss round by round according to priority
- Update Documentation: Sync decisions back to the SRS
Example 3: Competitor Analysis Driving Technology Selection
Scenario: Unsure whether to use Electron or Tauri
Actions:
- Select Competitors:uTools(Electron)、ZTools(Delphi+CEF)
- Multi-dimensional Comparison: Performance, ecosystem, community, security
- Fit for Individual Developers: Tauri is more lightweight and suitable for personal projects
- Decision Record: Choose Tauri + Rust, and record the rationale