角色路由系统
Role-Based Routing
基于用户角色的智能路由,自动检测 maintainer/contributor 并路由到不同仓库
子问题
1.角色自动检测
2.路由策略配置
3.多仓库管理
4.权限隔离
5.URL 启发式不可靠性(fork contributor 也可能用 SSH)
6.多仓库 hydration 配置复杂性
7.Stealth mode 与 git worktree 兼容性
各项目的解法1 solutions
Signals
横向对比
| 维度 | beads |
|---|---|
| 角色检测方式 | git config 显式配置 + URL 启发式(SSH/HTTPS)双层降级 |
| 路由策略 | 五级优先级链:--repo flag > auto 模式 > DefaultRepo > 当前目录 |
| 隔离级别 | 物理隔离(独立 git 仓库 + 独立数据库),非逻辑标记 |
| 配置自动化 | bd init --contributor 一键向导,自动检测 fork + 创建 planning repo |
| Stealth 支持 | .git/info/exclude 实现 git 级别隐身,支持 worktree |
| 向后兼容 | 配置键迁移(contributor.* → routing.*)+ 数据库 fallback |
| 可测试性 | gitCommandRunner 函数变量注入 + gitStub mock 框架 |
最佳实践
1.git config 显式配置优先
2.URL 启发式作为 fallback
3.stealth mode 支持本地使用
4.contributor mode 隔离实验性工作
5.安全降级:无配置时默认 Contributor 避免污染
6.环境变量兜底:BEADS_DIR 优先级高于所有路由配置
7.物理隔离优于逻辑标记:独立仓库比 visibility flag 更可靠
8.可测试性设计:函数变量注入支持 git 命令 mock