feature-analyzer by notedit/happy-skills
npx skills add https://github.com/notedit/happy-skills --skill feature-analyzer通过结构化的信息收集和协作验证,帮助将想法转化为完整的设计和规范。
开始时声明: "我正在使用功能分析器技能来设计此功能。"
首先,探索代码库以了解:
使用 AskUserQuestion 来高效地批量收集信息。每次调用最多可以询问 4 个问题。
{
"questions": [
{
"question": "此功能的主要目标是什么?",
"header": "目标",
"multiSelect": false,
"options": [
{ "label": "新功能", "description": "为系统添加全新的能力" },
{ "label": "增强", "description": "改进或扩展现有功能" },
{ "label": "错误修复", "description": "修复不正确的行为或问题" },
{ "label": "重构", "description": "在不改变行为的情况下提高代码质量" }
]
},
{
"question": "此功能的主要用户是谁?",
"header": "用户",
"multiSelect": true,
"options": [
{ "label": "最终用户", "description": "使用产品的外部客户" },
{ "label": "管理员", "description": "内部管理员或操作员" },
{ "label": "开发者", "description": "使用 API 或 SDK 的其他开发者" },
{ "label": "系统", "description": "自动化流程或后台作业" }
]
},
{
"question": "此功能的预期范围是什么?",
"header": "范围",
"multiSelect": false,
"options": [
{ "label": "小(1-2 天)", "description": "单一组件,有限变更" },
{ "label": "中(3-5 天)", "description": "多个组件,中等复杂度" },
{ "label": "大(1-2 周)", "description": "跨领域关注点,重大变更" },
{ "label": "不确定", "description": "需要进一步探索以估算" }
]
},
{
"question": "是否有任何硬性截止日期或约束?",
"header": "时间线",
"multiSelect": false,
"options": [
{ "label": "紧急", "description": "需要尽快完成,几天内" },
{ "label": "本冲刺", "description": "应在当前冲刺内完成" },
{ "label": "灵活", "description": "无硬性截止日期,质量优先于速度" },
{ "label": "仅规划", "description": "现在仅设计,稍后实现" }
]
}
]
}
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
{
"questions": [
{
"question": "此功能将涉及系统的哪些层次?",
"header": "层次",
"multiSelect": true,
"options": [
{ "label": "数据模型", "description": "数据库模式、模型、迁移" },
{ "label": "业务逻辑", "description": "服务、领域逻辑、规则" },
{ "label": "API", "description": "REST/GraphQL 端点、契约" },
{ "label": "UI", "description": "前端组件、用户界面" }
]
},
{
"question": "关键的质量要求是什么?",
"header": "质量",
"multiSelect": true,
"options": [
{ "label": "高性能", "description": "必须处理高负载或非常快速" },
{ "label": "强安全性", "description": "敏感数据、认证、访问控制" },
{ "label": "高可靠性", "description": "不能失败,需要冗余" },
{ "label": "易于维护", "description": "需要易于理解和修改" }
]
},
{
"question": "应如何处理错误?",
"header": "错误",
"multiSelect": false,
"options": [
{ "label": "快速失败", "description": "出现任何错误立即停止" },
{ "label": "优雅降级", "description": "以降低的功能继续运行" },
{ "label": "重试与恢复", "description": "自动重试并带有恢复逻辑" },
{ "label": "依赖上下文", "description": "针对不同情况采用不同策略" }
]
},
{
"question": "首选哪种测试方法?",
"header": "测试",
"multiSelect": false,
"options": [
{ "label": "TDD(推荐)", "description": "先写测试,再实现" },
{ "label": "后测试", "description": "先实现,后添加测试" },
{ "label": "最小化测试", "description": "仅进行关键路径测试" },
{ "label": "无测试", "description": "为此功能跳过测试" }
]
}
]
}
{
"questions": [
{
"question": "此功能是否需要外部集成?",
"header": "集成",
"multiSelect": true,
"options": [
{ "label": "数据库", "description": "新表、查询或迁移" },
{ "label": "外部 API", "description": "第三方服务调用" },
{ "label": "消息队列", "description": "异步处理、事件" },
{ "label": "无", "description": "不需要外部集成" }
]
},
{
"question": "是否依赖其他功能或团队?",
"header": "依赖",
"multiSelect": true,
"options": [
{ "label": "认证系统", "description": "用户认证或授权" },
{ "label": "其他功能", "description": "依赖于正在开发的功能" },
{ "label": "外部团队", "description": "需要其他团队的输入" },
{ "label": "无", "description": "完全独立的功能" }
]
},
{
"question": "我们应如何处理向后兼容性?",
"header": "兼容性",
"multiSelect": false,
"options": [
{ "label": "必须保持", "description": "不能破坏现有客户端" },
{ "label": "版本化 API", "description": "创建新版本,弃用旧版本" },
{ "label": "允许破坏性变更", "description": "可以进行破坏性变更" },
{ "label": "不适用", "description": "新功能,无现有用户" }
]
},
{
"question": "需要哪些文档?",
"header": "文档",
"multiSelect": true,
"options": [
{ "label": "API 文档", "description": "端点文档" },
{ "label": "用户指南", "description": "最终用户的使用指南" },
{ "label": "开发者指南", "description": "技术实现细节" },
{ "label": "无", "description": "不需要文档" }
]
}
]
}
根据之前的回答,提出后续问题。示例:
如果选择了 UI 层:
{
"questions": [
{
"question": "我们应该使用哪种 UI 框架/方法?",
"header": "UI 技术",
"multiSelect": false,
"options": [
{ "label": "React", "description": "使用钩子的 React 组件" },
{ "label": "Vue", "description": "Vue.js 组件" },
{ "label": "服务器端", "description": "服务器渲染的 HTML 模板" },
{ "label": "现有模式", "description": "遵循当前项目约定" }
]
}
]
}
如果选择了高安全性:
{
"questions": [
{
"question": "需要哪些安全措施?",
"header": "安全",
"multiSelect": true,
"options": [
{ "label": "输入验证", "description": "严格的输入净化" },
{ "label": "速率限制", "description": "防止滥用和 DoS" },
{ "label": "审计日志", "description": "跟踪所有敏感操作" },
{ "label": "加密", "description": "加密静态/传输中的数据" }
]
}
]
}
收集需求后,提出 2-3 种方法:
## 方法选项
### 选项 A:[名称](推荐)
**优点:** ...
**缺点:** ...
**最适合:** ...
### 选项 B:[名称]
**优点:** ...
**缺点:** ...
**最适合:** ...
### 选项 C:[名称]
**优点:** ...
**缺点:** ...
**最适合:** ...
使用 AskUserQuestion 确认方法:
{
"questions": [
{
"question": "您希望采用哪种方法继续?",
"header": "方法",
"multiSelect": false,
"options": [
{ "label": "选项 A(推荐)", "description": "方法 A 的简要总结" },
{ "label": "选项 B", "description": "方法 B 的简要总结" },
{ "label": "选项 C", "description": "方法 C 的简要总结" }
]
}
]
}
分部分呈现设计(每部分 300-500 字),每部分后进行验证:
每个部分后,使用 AskUserQuestion:
{
"questions": [
{
"question": "此部分看起来正确吗?",
"header": "评审",
"multiSelect": false,
"options": [
{ "label": "看起来不错", "description": "继续下一部分" },
{ "label": "微小更改", "description": "需要小的调整" },
{ "label": "重大修订", "description": "需要重大变更" },
{ "label": "有问题", "description": "在继续之前需要澄清" }
]
}
]
}
写入 docs/designs/YYYY-MM-DD-<topic>-design.md:
# 功能:[名称]
## 摘要
[简要描述]
## 需求
[来自第 2 阶段的答案]
## 架构
[来自第 4 阶段]
## 实现任务
[任务清单]
## 实现任务
- [ ] **任务标题** `priority:1` `phase:model` `time:15min`
- files: src/file1.py, tests/test_file1.py
- [ ] 为 X 编写失败测试
- [ ] 运行测试,验证失败
- [ ] 实现最小化代码
- [ ] 运行测试,验证通过
- [ ] 提交
- [ ] **另一个任务** `priority:2` `phase:api` `deps:Task Title` `time:10min`
- files: src/api.py
- [ ] 编写失败测试
- [ ] 实现并验证
- [ ] 提交
{
"questions": [
{
"question": "您希望如何进行实现?",
"header": "下一步",
"multiSelect": false,
"options": [
{ "label": "立即执行", "description": "在此会话中运行 /feature-pipeline" },
{ "label": "新会话", "description": "为实施启动新会话" },
{ "label": "稍后", "description": "保存设计,稍后手动实现" },
{ "label": "修订设计", "description": "返回并修改设计" }
]
}
]
}
每周安装次数
73
仓库
GitHub 星标数
325
首次出现
2026 年 1 月 25 日
安全审计
安装于
opencode62
codex61
gemini-cli55
github-copilot55
claude-code54
cursor53
Help turn ideas into fully formed designs and specs through structured information gathering and collaborative validation.
Announce at start: "I'm using the feature-analyzer skill to design this feature."
First, explore the codebase to understand:
Use AskUserQuestion to batch collect information efficiently. Each call can ask up to 4 questions.
{
"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" }
]
}
]
}
{
"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" }
]
}
]
}
{
"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" }
]
}
]
}
Based on previous answers, ask follow-up questions. Examples:
If UI layer selected:
{
"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" }
]
}
]
}
If High Security selected:
{
"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" }
]
}
]
}
After gathering requirements, propose 2-3 approaches:
## Approach Options
### Option A: [Name] (Recommended)
**Pros:** ...
**Cons:** ...
**Best for:** ...
### Option B: [Name]
**Pros:** ...
**Cons:** ...
**Best for:** ...
### Option C: [Name]
**Pros:** ...
**Cons:** ...
**Best for:** ...
Use AskUserQuestion to confirm approach:
{
"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" }
]
}
]
}
Present design in sections (300-500 words each), validate after each:
After each section, use 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" }
]
}
]
}
Write to 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
{
"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" }
]
}
]
}
Weekly Installs
73
Repository
GitHub Stars
325
First Seen
Jan 25, 2026
Security Audits
Gen Agent Trust HubPassSocketPassSnykPass
Installed on
opencode62
codex61
gemini-cli55
github-copilot55
claude-code54
cursor53
站立会议模板:敏捷开发每日站会指南与工具(含远程团队异步模板)
10,500 周安装
AI创意写作助手 - 生成小说、诗歌、剧本、微小说,支持多种体裁风格
71 周安装
市场调研技能:全面指南与框架,助您分析竞争对手、识别市场机会
71 周安装
Python数据分析技能 - 掌握Pandas、NumPy数据操作与Jupyter工作流
71 周安装
Docker专家技能:NestJS/Next.js容器化、Docker Compose配置与微服务编排最佳实践
71 周安装
yfinance MCP 服务器 - 获取 Yahoo Finance 实时和历史金融数据 | 股票价格、期权、财报、新闻
71 周安装
Salesforce B2C Business Manager 扩展开发指南:自定义管理界面菜单、表单与对话框
71 周安装