mcpField
F
feature-design-assistant

feature-design-assistant

github.com/davila7开发33.0k559 次安装今天更新
代码仓库

关于 feature-design-assistant

面向编码 Agent 的功能设计技能,通过检查代码库、结构化提问和逐步确认,将想法整理为设计规格,并生成文档与实施任务。

主要功能

  1. 01探索代码库背景
  2. 02批量收集需求
  3. 03比较并确认方案
  4. 04逐步评审设计
  5. 05生成设计文档与任务
  6. 06交接实施流程

适用场景

  1. 01梳理新功能需求
  2. 02评审架构与技术设计
  3. 03从已确认设计生成实施任务

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/davila7/claude-code-templates --skill feature-design-assistant

安装后在 Claude Code 中输入/feature-design-assistant确认已加载。

详细介绍

功能设计助手

通过结构化信息收集与协作式验证,帮助将想法转化为完整的设计与规格。

开始时声明:“我正在使用 feature-design-assistant 技能来设计此功能。”

阶段 1:上下文发现

首先,探索代码库以了解:

  • 项目结构与技术栈
  • 现有模式与约定
  • 相关功能或模块
  • 相关领域的近期变更

阶段 2:结构化信息收集

使用 AskUserQuestion 高效地批量收集信息。每次调用最多可提出 4 个问题。

第 1 轮:核心需求(4 个问题)
{
  "questions": [
    {
      "question": "What is the primary goal of this feature?",
      "header": "Goal",
      "multiSelect": false,
      "options": [
        { "label": "New Functionality", "description": "Add entirely new capability to the system" },
        { "label": "Enhancement", "description": "Improve or extend existing feature" },
        { "label": "Bug Fix", "description": "Fix incorrect behavior or issue" },
        { "label": "Refactoring", "description": "Improve code quality without changing behavior" }
      ]
    },
    {
      "question": "Who are the primary users of this feature?",
      "header": "Users",
      "multiSelect": true,
      "options": [
        { "label": "End Users", "description": "External customers using the product" },
        { "label": "Admins", "description": "Internal administrators or operators" },
        { "label": "Developers", "description": "Other developers using APIs or SDKs" },
        { "label": "System", "description": "Automated processes or background jobs" }
      ]
    },
    {
      "question": "What is the expected scope of this feature?",
      "header": "Scope",
      "multiSelect": false,
      "options": [
        { "label": "Small (1-2 days)", "description": "Single component, limited changes" },
        { "label": "Medium (3-5 days)", "description": "Multiple components, moderate complexity" },
        { "label": "Large (1-2 weeks)", "description": "Cross-cutting concerns, significant changes" },
        { "label": "Unsure", "description": "Need to explore further to estimate" }
      ]
    },
    {
      "question": "Are there any hard deadlines or constraints?",
      "header": "Timeline",
      "multiSelect": false,
      "options": [
        { "label": "Urgent", "description": "Need this ASAP, within days" },
        { "label": "This Sprint", "description": "Should be done within current sprint" },
        { "label": "Flexible", "description": "No hard deadline, quality over speed" },
        { "label": "Planning Only", "description": "Just designing now, implementing later" }
      ]
    }
  ]
}
第 2 轮:技术要求(4 个问题)
{
  "questions": [
    {
      "question": "Which layers of the system will this feature touch?",
      "header": "Layers",
      "multiSelect": true,
      "options": [
        { "label": "Data Model", "description": "Database schema, models, migrations" },
        { "label": "Business Logic", "description": "Services, domain logic, rules" },
        { "label": "API", "description": "REST/GraphQL endpoints, contracts" },
        { "label": "UI", "description": "Frontend components, user interface" }
      ]
    },
    {
      "question": "What are the key quality requirements?",
      "header": "Quality",
      "multiSelect": true,
      "options": [
        { "label": "High Performance", "description": "Must handle high load or be very fast" },
        { "label": "Strong Security", "description": "Sensitive data, auth, access control" },
        { "label": "High Reliability", "description": "Cannot fail, needs redundancy" },
        { "label": "Easy Maintenance", "description": "Needs to be easily understood and modified" }
      ]
    },
    {
      "question": "How should errors be handled?",
      "header": "Errors",
      "multiSelect": false,
      "options": [
        { "label": "Fail Fast", "description": "Stop immediately on any error" },
        { "label": "Graceful Degrade", "description": "Continue with reduced functionality" },
        { "label": "Retry & Recover", "description": "Automatic retry with recovery logic" },
        { "label": "Context Dependent", "description": "Different strategies for different cases" }
      ]
    },
    {
      "question": "What testing approach is preferred?",
      "header": "Testing",
      "multiSelect": false,
      "options": [
        { "label": "TDD (Recommended)", "description": "Write tests first, then implementation" },
        { "label": "Test After", "description": "Implement first, add tests after" },
        { "label": "Minimal Tests", "description": "Only critical path testing" },
        { "label": "No Tests", "description": "Skip testing for this feature" }
      ]
    }
  ]
}
第 3 轮:集成与依赖(4 个问题)
{
  "questions": [
    {
      "question": "Does this feature need external integrations?",
      "header": "Integrations",
      "multiSelect": true,
      "options": [
        { "label": "Database", "description": "New tables, queries, or migrations" },
        { "label": "External APIs", "description": "Third-party service calls" },
        { "label": "Message Queue", "description": "Async processing, events" },
        { "label": "None", "description": "No external integrations needed" }
      ]
    },
    {
      "question": "Are there dependencies on other features or teams?",
      "header": "Dependencies",
      "multiSelect": true,
      "options": [
        { "label": "Auth System", "description": "User authentication or authorization" },
        { "label": "Other Features", "description": "Depends on features being developed" },
        { "label": "External Team", "description": "Needs input from another team" },
        { "label": "None", "description": "Fully independent feature" }
      ]
    },
    {
      "question": "How should we handle backwards compatibility?",
      "header": "Compat",
      "multiSelect": false,
      "options": [
        { "label": "Must Maintain", "description": "Cannot break existing clients" },
        { "label": "Version API", "description": "Create new version, deprecate old" },
        { "label": "Breaking OK", "description": "Can make breaking changes" },
        { "label": "Not Applicable", "description": "New feature, no existing users" }
      ]
    },
    {
      "question": "What documentation is needed?",
      "header": "Docs",
      "multiSelect": true,
      "options": [
        { "label": "API Docs", "description": "Endpoint documentation" },
        { "label": "User Guide", "description": "How-to for end users" },
        { "label": "Dev Guide", "description": "Technical implementation details" },
        { "label": "None", "description": "No documentation needed" }
      ]
    }
  ]
}
第 4 轮:澄清问题(取决于上下文)

根据之前的回答,提出后续问题。示例:

如果选择了 UI 层:

{
  "questions": [
    {
      "question": "What UI framework/approach should we use?",
      "header": "UI Tech",
      "multiSelect": false,
      "options": [
        { "label": "React", "description": "React components with hooks" },
        { "label": "Vue", "description": "Vue.js components" },
        { "label": "Server-Side", "description": "Server-rendered HTML templates" },
        { "label": "Existing Pattern", "description": "Follow current project conventions" }
      ]
    }
  ]
}

如果选择了高安全性:

{
  "questions": [
    {
      "question": "What security measures are required?",
      "header": "Security",
      "multiSelect": true,
      "options": [
        { "label": "Input Validation", "description": "Strict input sanitization" },
        { "label": "Rate Limiting", "description": "Prevent abuse and DoS" },
        { "label": "Audit Logging", "description": "Track all sensitive actions" },
        { "label": "Encryption", "description": "Encrypt data at rest/transit" }
      ]
    }
  ]
}

阶段 3:方案探索

收集需求后,提出 2-3 种方案:

## Approach Options

### Option A: [Name] (Recommended)
**Pros:** ...
**Cons:** ...
**Best for:** ...

### Option B: [Name]
**Pros:** ...
**Cons:** ...
**Best for:** ...

### Option C: [Name]
**Pros:** ...
**Cons:** ...
**Best for:** ...

使用 AskUserQuestion 确认方案:

{
  "questions": [
    {
      "question": "Which approach would you like to proceed with?",
      "header": "Approach",
      "multiSelect": false,
      "options": [
        { "label": "Option A (Recommended)", "description": "Brief summary of approach A" },
        { "label": "Option B", "description": "Brief summary of approach B" },
        { "label": "Option C", "description": "Brief summary of approach C" }
      ]
    }
  ]
}

阶段 4:设计呈现

按章节呈现设计(每章 300-500 字),每章后进行验证:

  1. 架构概览 - 高层结构
  2. 数据模型 - 实体、关系、模式
  3. API 设计 - 端点、请求/响应
  4. 组件设计 - 内部模块、接口
  5. 错误处理 - 错误情形、恢复策略
  6. 测试策略 - 测试什么以及如何测试

每章之后,使用 AskUserQuestion:

{
  "questions": [
    {
      "question": "Does this section look correct?",
      "header": "Review",
      "multiSelect": false,
      "options": [
        { "label": "Looks Good", "description": "Continue to next section" },
        { "label": "Minor Changes", "description": "Small adjustments needed" },
        { "label": "Major Revision", "description": "Significant changes required" },
        { "label": "Questions", "description": "Need clarification before proceeding" }
      ]
    }
  ]
}

阶段 5:文档与任务

保存设计文档

写入 docs/designs/YYYY-MM-DD-<topic>-design.md:

# Feature: [Name]

## Summary
[Brief description]

## Requirements
[From Phase 2 answers]

## Architecture
[From Phase 4]

## Implementation Tasks
[Task checklist]
生成实现任务
## Implementation Tasks

- [ ] **Task Title** `priority:1` `phase:model` `time:15min`
  - files: src/file1.py, tests/test_file1.py
  - [ ] Write failing test for X
  - [ ] Run test, verify it fails
  - [ ] Implement minimal code
  - [ ] Run test, verify it passes
  - [ ] Commit

- [ ] **Another Task** `priority:2` `phase:api` `deps:Task Title` `time:10min`
  - files: src/api.py
  - [ ] Write failing test
  - [ ] Implement and verify
  - [ ] Commit

阶段 6:执行交接

{
  "questions": [
    {
      "question": "How would you like to proceed with implementation?",
      "header": "Next Step",
      "multiSelect": false,
      "options": [
        { "label": "Execute Now", "description": "Run /feature-pipeline in this session" },
        { "label": "New Session", "description": "Start fresh session for implementation" },
        { "label": "Later", "description": "Save design, implement manually later" },
        { "label": "Revise Design", "description": "Go back and modify the design" }
      ]
    }
  ]
}

关键原则

  • 高效地批量提问 - 适当时使用全部 4 个问题槽位
  • 对非互斥选项使用 multiSelect - 层、功能、需求
  • 对决策使用单选 - 方案、时间线、策略
  • 标记推荐项 - 在首选选项后添加“(推荐)”
  • 渐进式细化 - 从一般问题到具体问题
  • 增量验证 - 在每个阶段检查理解是否一致
  • 严格遵循 YAGNI - 从设计中移除不必要的功能

评论

支持 Markdown