# 🚀 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 <feature-branch>

# 示例：
.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并行开发的一致性和质量。*