--- name: fullstack-project-generator description: | 全栈项目生成与迭代开发指南。当用户想要创建包含 iOS、Android、Web 前端或 Spring Boot 后台的全栈应用项目时使用此 Skill。 支持从需求分析到部署的完整开发生命周期,包括:需求访谈与 PRD 生成、系统架构设计、API 契约定义、 多平台项目脚手架、Sprint 迭代开发、测试策略、Docker 容器化部署。 适用场景:创建新的全栈项目、为已有项目添加新平台支持、进行 Sprint 迭代开发。 --- # Fullstack Project Generator 全栈项目全生命周期开发指南,覆盖从需求分析到容器化部署的完整流程。 **支持平台:** - iOS (Swift/SwiftUI) -- 深度支持 - Backend (Spring Boot/Java) -- 深度支持 - Android (Kotlin/Compose) -- 标准支持 - Web (Next.js/TypeScript) -- 标准支持 **开发方法论:** 规划阶段使用瀑布式顺序执行,开发阶段使用 Scrum 迭代模式。 --- ## 入口决策树 根据用户当前的项目状态,选择合适的起始阶段: 1. **全新项目,无任何文档** -- 从 Phase 1 需求分析开始 2. **已有需求文档/PRD,需要技术方案** -- 从 Phase 2 架构设计开始 3. **已有架构设计和 API 契约,需要代码** -- 从 Phase 3 项目脚手架开始 4. **已有项目骨架,需要增加功能** -- 从 Phase 4 迭代开发开始 5. **功能开发完成,需要测试方案** -- 从 Phase 5 质量保障开始 6. **需要部署上线** -- 从 Phase 6 部署规划开始 询问用户当前状态,确认起始阶段后开始执行。 --- ## 开发流程总览 ``` Phase 1: 需求分析 --> PRD.md Phase 2: 架构设计 --> architecture.md + openapi.yaml Phase 3: 项目脚手架 --> 各平台可运行项目骨架 Phase 4: 迭代开发 --> Sprint 循环 (计划->开发->测试->评审) Phase 5: 质量保障 --> 测试用例 + CI 配置 Phase 6: 部署规划 --> Docker 配置 + CI/CD ``` --- ### Phase 1: 需求分析 **目标:** 通过引导式访谈,将用户需求转化为结构化的产品需求文档。 **执行步骤:** 1. **需求访谈** -- 向用户提问以下关键问题: - 产品定位:解决什么问题?目标用户是谁? - 核心功能:列出 3-5 个最重要的功能 - 平台选择:需要哪些客户端?(iOS/Android/Web/Backend) - 非功能需求:性能、安全、可用性、扩展性等方面要求 2. **PRD 文档生成** -- 使用文档模板生成 `docs/PRD.md`: - 读取模板:`assets/docs-templates/PRD-template.md` - 填充用户需求信息 - 使用 MoSCoW 方法划分功能优先级 (Must/Should/Could/Won't) - 编写 User Stories,参考 [methodology.md](./references/methodology.md) 3. **需求确认** -- 将 PRD 呈现给用户审核,确认后进入 Phase 2。 --- ### Phase 2: 架构设计 **目标:** 设计系统架构、选择技术栈、定义 API 契约。 **执行步骤:** 1. **系统架构设计** -- 生成 `docs/architecture.md`: - 读取模板:`assets/docs-templates/architecture-template.md` - 确定系统分层:客户端 -> API Gateway -> 后台服务 -> 数据库 - 技术选型:根据平台选择对应技术栈 - 数据库设计:ER 图、表结构规划 - 架构图绘制:系统组件图描述系统逻辑架构以及模块之间的关系、部署图描述系统物理架构、数据流图描述数据在系统中的流动 2. **API 契约定义** -- 生成 `api/openapi.yaml`: - 运行脚本生成骨架:`python3 scripts/generate_api_contract.py --prd docs/PRD.md --output api/openapi.yaml --name ` - 根据 PRD 中的 User Stories 补充具体的 API endpoints - 定义 Request/Response 数据结构 - 遵循 API 设计规范:[api-design.md](./references/api-design.md) 3. **架构评审** -- 确认架构方案和 API 契约后,锁定契约进入 Phase 3。 --- ### Phase 3: 项目脚手架 **目标:** 基于模板生成各平台的可运行项目骨架。 **执行步骤:** 1. **初始化项目** -- 运行脚手架脚本: ```bash python3 scripts/init_project.py \ --name \ --platforms ios android web backend \ --output-dir ``` 脚本会从 `assets/` 复制选定平台模板,替换 `{{ProjectName}}` 占位符,创建 `docs/` 目录并复制文档模板和 Docker 配置。 2. **平台定制** -- 根据 API 契约定制各平台代码: - **Backend (Spring Boot):** 参考 [backend-guide.md](./references/backend-guide.md) - **iOS (SwiftUI):** 参考 [ios-guide.md](./references/ios-guide.md) - **Android (Kotlin/Compose):** 参考 [android-guide.md](./references/android-guide.md) - **Web (Next.js):** 参考 [web-guide.md](./references/web-guide.md) 3. **验证** -- 确保各平台项目可编译/启动。 --- ### Phase 4: 迭代开发 **目标:** 按 Scrum 方式进行 Sprint 迭代,逐步实现功能。 **方法论参考:** [methodology.md](./references/methodology.md) **Sprint 流程:** 1. **Sprint 计划:** - 从 PRD 中选取当前 Sprint 的 User Stories - 第一个 Sprint 聚焦 MVP (最小可用产品) - 分解 Stories 为开发任务 - 读取模板:`assets/docs-templates/sprint-plan-template.md` 2. **并行开发:** 基于 API 契约,前后端可并行开发: ``` API Contract (OpenAPI) | +-------------+-------------+ | | | Backend iOS/Android Web Sprint N Sprint N Sprint N ``` 3. **代码实现:** 对每个 User Story: - 后端:Controller -> Service -> Repository -> 单元测试 - 客户端:Model -> ViewModel/Service -> View -> UI 验证 - 遵循各平台开发指南中的编码规范和架构模式 4. **Sprint 评审:** - 功能完整性:所有 Stories 的验收标准 (AC) 是否满足 - 代码质量:分层是否清晰、命名是否规范 - API 一致性:实现是否与 OpenAPI 契约匹配 - 测试覆盖:关键路径是否有测试 5. **下一个 Sprint:** 评审通过后,重复步骤 1-4。 --- ### Phase 5: 质量保障 **目标:** 制定测试策略,确保产品质量。 **测试策略参考:** [testing-strategy.md](./references/testing-strategy.md) **执行步骤:** 1. **测试金字塔规划:** - 单元测试 (70%):各平台核心业务逻辑 - 集成测试 (20%):API 端到端、数据库集成 - E2E 测试 (10%):关键用户流程 2. **各平台测试实现:** - Backend: JUnit 5 + MockMvc + Testcontainers - iOS: XCTest + async 测试 - Android: JUnit + Mockk + Compose UI Testing - Web: Jest + React Testing Library + Playwright 3. **API 契约测试:** 验证实现与 OpenAPI 规范一致性。 --- ### Phase 6: 部署规划 **目标:** 容器化部署,配置 CI/CD 流水线。 **部署指南参考:** [deployment-guide.md](./references/deployment-guide.md) **执行步骤:** 1. **Docker 配置:** - `docker/Dockerfile.backend`: Spring Boot 多阶段构建 - `docker/Dockerfile.web`: Next.js standalone 构建 - `docker/docker-compose.yml`: MySQL + Backend + Web 编排 2. **CI/CD 配置:** - GitHub Actions workflow: 自动构建、测试、部署 - 环境变量管理: `.env` 文件 + secrets 3. **生产环境准备:** - HTTPS/SSL 配置 (Nginx reverse proxy) - 健康检查端点 - 日志和监控策略 - 数据备份方案 --- ## 参考文档索引 | 文档 | 用途 | |------|------| | [methodology.md](./references/methodology.md) | Scrum 迭代方法论、Sprint 规划、User Story 规范 | | [backend-guide.md](./references/backend-guide.md) | Spring Boot 分层架构、异常处理、安全配置 | | [ios-guide.md](./references/ios-guide.md) | SwiftUI MVVM、@Observable、async/await 网络层 | | [android-guide.md](./references/android-guide.md) | Kotlin/Compose、Hilt DI、Retrofit、Navigation | | [web-guide.md](./references/web-guide.md) | Next.js App Router、状态管理、Tailwind CSS | | [api-design.md](./references/api-design.md) | RESTful API 设计规范、OpenAPI 3.0 模板 | | [testing-strategy.md](./references/testing-strategy.md) | 多平台测试策略、测试金字塔 | | [deployment-guide.md](./references/deployment-guide.md) | Docker 部署、CI/CD、生产环境配置 | ## 脚本工具 | 脚本 | 用途 | 用法 | |------|------|------| | `scripts/init_project.py` | 项目脚手架初始化 | `python3 scripts/init_project.py --help` | | `scripts/generate_api_contract.py` | OpenAPI 契约骨架生成 | `python3 scripts/generate_api_contract.py --help` |