# 检查所有Feature的依赖关系
.specify/scripts/check-feature-dependencies.sh
# 输出示例:
# ✅ 001-specManager-perp: 无依赖项
# ✅ 002-credential-manager: 无依赖项
# ✅ 003-delta-50-80: 所有依赖项满足
# 在合并Feature前运行检查
.specify/scripts/pre-merge-consistency-check.sh <feature-branch>
# 示例:
.specify/scripts/pre-merge-consistency-check.sh 002-credential-manager
# 检查内容:
# - 合并冲突检测
# - TypeScript编译检查
# - 共享组件兼容性
# - 配置文件冲突
# - 测试套件运行
# 运行完整的一致性工具测试
.specify/scripts/test-consistency-tools.sh
# 1. 创建或切换到Feature分支
git checkout 002-credential-manager
# 2. 开发Feature功能
# ... 编写代码 ...
# 3. 定期检查依赖关系
.specify/scripts/check-feature-dependencies.sh
# 1. 确保所有更改已提交
git add -A && git commit -m "完成Feature开发"
# 2. 运行合并前检查
.specify/scripts/pre-merge-consistency-check.sh $(git branch --show-current)
# 3. 如果检查通过,准备合并
# 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
# 输出:
# ❌ 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
# 输出:
# ❌ AccountManager 的导出接口发生变化,可能不兼容
# 解决方案:
# 1. 检查变更内容
git diff main..feature-branch -- src/modules/account/AccountManager.ts
# 2. 确保向后兼容或提供迁移路径
# 3. 更新共享组件版本号
# 输出:
# ⚠️ 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()
函数:
get_dependencies() {
case "$1" in
"004-new-feature")
echo "001-specManager-perp,003-delta-50-80"
;;
# ... 其他规则
esac
}
更新 .specify/tools/consistency/shared-component-registry.ts
:
export const SHARED_COMPONENTS = {
'NewComponent': {
version: '1.0.0',
compatibleRange: '^1.0.0',
breaking: false,
description: '新共享组件描述',
dependents: ['feature-1', 'feature-2']
}
}
.specify/
目录下的工具通过这套流程,确保多Feature并行开发的一致性和质量。