BMAD-METHOD/bmad-core/templates/front-end-architecture-tmpl...

220 lines
9.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# <!-- 由 BMAD™ Core 驱动 -->
template:
id: frontend-architecture-template-v2
name: 前端架构文档
version: 2.0
output:
format: markdown
filename: docs/ui-architecture.md
title: "{{project_name}} 前端架构文档"
workflow:
mode: interactive
elicitation: advanced-elicitation
sections:
- id: template-framework-selection
title: 模板和框架选择
instruction: |
审查提供的文档包括PRD、UX-UI规范和主架构文档。重点提取AI前端工具和开发代理所需的技术实现细节。如果您无法找到或未提供任何这些文档请向用户索取。
在继续进行前端架构设计之前,请检查项目是否使用前端入门模板或现有代码库:
1. 审查PRD、主架构文档和头脑风暴简报中是否提及
- 前端入门模板例如Create React App、Next.js、Vite、Vue CLI、Angular CLI等
- UI工具包或组件库入门模板
- 用作基础的现有前端项目
- 管理仪表板模板或其他专业入门模板
- 设计系统实现
2. 如果提及了前端入门模板或现有项目:
- 要求用户通过以下方法之一提供访问权限:
- 指向入门模板文档的链接
- 上传/附加项目文件(对于小项目)
- 共享项目存储库的链接
- 分析入门/现有项目以了解:
- 预安装的依赖项和版本
- 文件夹结构和文件组织
- 内置组件和实用程序
- 样式方法CSS模块、styled-components、Tailwind等
- 状态管理设置(如果有)
- 路由配置
- 测试设置和模式
- 构建和开发脚本
- 使用此分析来确保您的前端架构与入门模板的模式保持一致
3. 如果未提及前端入门模板但这是一个新的UI请确保我们知道UI语言和框架是什么
- 根据框架选择,建议合适的入门模板:
- React: Create React App, Next.js, Vite + React
- Vue: Vue CLI, Nuxt.js, Vite + Vue
- Angular: Angular CLI
- 或者如果适用建议流行的UI模板
- 解释特定于前端开发的好处
4. 如果用户确认不使用入门模板:
- 注意所有工具、打包和配置都需要手动设置
- 从头开始进行前端架构设计
在继续之前,记录入门模板的决定及其施加的任何约束。
sections:
- id: changelog
title: 变更日志
type: table
columns: [日期, 版本, 描述, 作者]
instruction: 跟踪文档版本和变更
- id: frontend-tech-stack
title: 前端技术栈
instruction: 从主架构的技术栈表中提取。此部分必须与主架构文档保持同步。
elicit: true
sections:
- id: tech-stack-table
title: 技术栈表
type: table
columns: [类别, 技术, 版本, 目的, 理由]
instruction: 根据所选框架和项目要求,填写适当的技术选择。
rows:
- ["框架", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["UI库", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- [
"状态管理",
"{{state_management}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["路由", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["构建工具", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["样式", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["测试", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- [
"组件库",
"{{component_lib}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["表单处理", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["动画", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["开发工具", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- id: project-structure
title: 项目结构
instruction: 根据所选框架为AI工具定义确切的目录结构。具体说明每种类型的文件放在哪里。生成一个遵循框架最佳实践和约定的结构。
elicit: true
type: code
language: plaintext
- id: component-standards
title: 组件标准
instruction: 根据所选框架定义组件创建的确切模式。
elicit: true
sections:
- id: component-template
title: 组件模板
instruction: 生成一个遵循框架最佳实践的最小但完整的组件模板。包括TypeScript类型、正确的导入和基本结构。
type: code
language: typescript
- id: naming-conventions
title: 命名约定
instruction: 为组件、文件、服务、状态管理和其他架构元素提供特定于所选框架的命名约定。
- id: state-management
title: 状态管理
instruction: 根据所选框架定义状态管理模式。
elicit: true
sections:
- id: store-structure
title: 存储结构
instruction: 生成适合所选框架和状态管理解决方案的状态管理目录结构。
type: code
language: plaintext
- id: state-template
title: 状态管理模板
instruction: 提供一个遵循框架推荐模式的基本状态管理模板/示例。包括TypeScript类型和常见的操作如设置、更新和清除状态。
type: code
language: typescript
- id: api-integration
title: API集成
instruction: 根据所选框架定义API服务模式。
elicit: true
sections:
- id: service-template
title: 服务模板
instruction: 提供一个遵循框架约定的API服务模板。包括正确的TypeScript类型、错误处理和异步模式。
type: code
language: typescript
- id: api-client-config
title: API客户端配置
instruction: 展示如何为所选框架配置HTTP客户端包括身份验证拦截器/中间件和错误处理。
type: code
language: typescript
- id: routing
title: 路由
instruction: 根据所选框架定义路由结构和模式。
elicit: true
sections:
- id: route-configuration
title: 路由配置
instruction: 提供适合所选框架的路由配置。包括受保护的路由模式、适用时的延迟加载以及身份验证守卫/中间件。
type: code
language: typescript
- id: styling-guidelines
title: 样式指南
instruction: 根据所选框架定义样式方法。
elicit: true
sections:
- id: styling-approach
title: 样式方法
instruction: 描述适合所选框架的样式方法CSS模块、Styled Components、Tailwind等并提供基本模式。
- id: global-theme
title: 全局主题变量
instruction: 提供一个适用于所有框架的CSS自定义属性CSS变量主题系统。包括颜色、间距、排版、阴影和暗黑模式支持。
type: code
language: css
- id: testing-requirements
title: 测试要求
instruction: 根据所选框架定义最低测试要求。
elicit: true
sections:
- id: component-test-template
title: 组件测试模板
instruction: 提供一个使用框架推荐的测试库的基本组件测试模板。包括渲染测试、用户交互测试和模拟的示例。
type: code
language: typescript
- id: testing-best-practices
title: 测试最佳实践
type: numbered-list
items:
- "**单元测试**:独立测试单个组件"
- "**集成测试**:测试组件交互"
- "**端到端测试**测试关键用户流程使用Cypress/Playwright"
- "**覆盖目标**目标是80%的代码覆盖率"
- "**测试结构**Arrange-Act-Assert模式"
- "**模拟外部依赖**API调用、路由、状态管理"
- id: environment-configuration
title: 环境配置
instruction: 根据所选框架列出所需的环境变量。显示框架的适当格式和命名约定。
elicit: true
- id: frontend-developer-standards
title: 前端开发者标准
sections:
- id: critical-coding-rules
title: 关键编码规则
instruction: 列出防止常见AI错误的基本规则包括通用规则和特定于框架的规则。
elicit: true
- id: quick-reference
title: 快速参考
instruction: |
创建一个特定于框架的备忘单,包含:
- 常用命令(开发服务器、构建、测试)
- 关键导入模式
- 文件命名约定
- 特定于项目的模式和实用程序