# 🚀 Feature一致性保证 - 快速开始指南 ## 📋 核心命令 ### 1. **检查Feature依赖关系** ```bash # 检查所有Feature的依赖关系 .specify/scripts/check-feature-dependencies.sh # 输出示例: # ✅ 001-specManager-perp: 无依赖项 # ✅ 002-credential-manager: 无依赖项 # ✅ 003-delta-50-80: 所有依赖项满足 ``` ### 2. **合并前一致性检查** ```bash # 在合并Feature前运行检查 .specify/scripts/pre-merge-consistency-check.sh # 示例: .specify/scripts/pre-merge-consistency-check.sh 002-credential-manager # 检查内容: # - 合并冲突检测 # - TypeScript编译检查 # - 共享组件兼容性 # - 配置文件冲突 # - 测试套件运行 ``` ### 3. **测试所有工具** ```bash # 运行完整的一致性工具测试 .specify/scripts/test-consistency-tools.sh ``` ## 🔄 完整的Feature开发流程 ### Phase 1: Feature开发 ```bash # 1. 创建或切换到Feature分支 git checkout 002-credential-manager # 2. 开发Feature功能 # ... 编写代码 ... # 3. 定期检查依赖关系 .specify/scripts/check-feature-dependencies.sh ``` ### Phase 2: 合并前检查 ```bash # 1. 确保所有更改已提交 git add -A && git commit -m "完成Feature开发" # 2. 运行合并前检查 .specify/scripts/pre-merge-consistency-check.sh $(git branch --show-current) # 3. 如果检查通过,准备合并 ``` ### Phase 3: 安全合并 ```bash # 1. 切换到main分支 git checkout main # 2. 拉取最新更改 git pull origin main # 3. 执行合并 git merge --no-ff 002-credential-manager # 4. 运行最终验证 npm test # 或项目的测试命令 # 5. 推送到远程 git push origin main ``` ## ⚠️ 常见问题处理 ### 问题1: 发现依赖冲突 ```bash # 输出: # ❌ 003-delta-50-80: 缺失依赖项: 001-specManager-perp (未合并到main) # 解决方案: # 1. 先合并依赖的Feature git checkout main git merge --no-ff 001-specManager-perp # 2. 再合并当前Feature git merge --no-ff 003-delta-50-80 ``` ### 问题2: 共享组件冲突 ```bash # 输出: # ❌ AccountManager 的导出接口发生变化,可能不兼容 # 解决方案: # 1. 检查变更内容 git diff main..feature-branch -- src/modules/account/AccountManager.ts # 2. 确保向后兼容或提供迁移路径 # 3. 更新共享组件版本号 ``` ### 问题3: 配置文件冲突 ```bash # 输出: # ⚠️ package.json 在feature分支中被修改 # 解决方案: # 1. 手动检查变更内容 git diff main..feature-branch -- package.json # 2. 确保新增依赖不冲突 # 3. 必要时手动合并配置 ``` ## 📊 依赖关系矩阵 | Feature | 依赖 | 状态 | 优先级 | |---------|------|------|--------| | 002-credential-manager | 无 | ✅ 可合并 | 高 | | 001-specManager-perp | 无 | ✅ 可合并 | 高 | | 003-delta-50-80 | 001, 002 | ⏳ 等待依赖 | 低 | ## 🛠️ 高级使用 ### 自定义依赖规则 编辑 `.specify/scripts/check-feature-dependencies.sh` 中的 `get_dependencies()` 函数: ```bash get_dependencies() { case "$1" in "004-new-feature") echo "001-specManager-perp,003-delta-50-80" ;; # ... 其他规则 esac } ``` ### 共享组件版本管理 更新 `.specify/tools/consistency/shared-component-registry.ts`: ```typescript export const SHARED_COMPONENTS = { 'NewComponent': { version: '1.0.0', compatibleRange: '^1.0.0', breaking: false, description: '新共享组件描述', dependents: ['feature-1', 'feature-2'] } } ``` ## 📖 相关文档 - **详细文档**: [FEATURE_CONSISTENCY_GUIDE.md](./FEATURE_CONSISTENCY_GUIDE.md) - **Spec Kit 使用**: 参考 `.specify/` 目录下的工具 - **项目配置**: [CLAUDE.md](./CLAUDE.md) ## 🎯 最佳实践 1. **开发前检查**: 每次开始Feature开发前运行依赖检查 2. **定期验证**: 开发过程中定期运行一致性检查 3. **合并前必查**: 绝不跳过合并前检查步骤 4. **文档同步**: 及时更新Feature依赖关系 5. **版本控制**: 谨慎处理共享组件的版本变更 --- *通过这套流程,确保多Feature并行开发的一致性和质量。*