OpenBitFun 子模块设计:配置化策略画像
September 4, 2026 · View on GitHub
上游文档:product-requirements.md、design.md 模块角色:汇总任务意图、操作风险、执行环境、项目规则、团队策略和用户覆盖,生成内部策略画像、用户可见展示层级、验证要求、证据展示层级和安全动作。
1. 模块定位
配置化策略画像是 OpenBitFun 的体验调度和策略合成层。它把分散的项目规则、路径规则、团队策略、用户偏好和当前任务信号合成为一个可解释的内部策略决策:
当前任务内部使用哪种策略画像,用户看到哪种状态、提示、确认和下一步?
项目级配置提供默认值;任务意图、目标路径、工具能力、网络/凭据/发布链路、团队规则和用户覆盖共同决定内部策略画像,再由体验视图层转成用户可见状态。
2. 产品原则
- 配置优先:优先读取项目、路径、团队和用户配置,并保留来源、作用域和新鲜度。
- 任务定态:内部策略画像由当前任务和动作决定,同一项目内的文档变更、热修复、迁移和演示原型可以使用不同策略。
- 快速默认:缺少高风险信号时内部使用低干预策略,只展示结果摘要、推荐检查和未验证项。
- 升级可解释:每一次提示、验证、确认或阻断都带触发原因、证据来源和可选下一步。
- 覆盖有边界:用户可以在单次、会话、任务或 worktree 范围内选择更快或更严;安全边界和受管策略保持独立优先级。
- 用户不学模式:
fast/assist/review/guarded/regulated是内部枚举;用户侧展示任务状态、弱提示、确认、受限原因和设置项。
3. 输入维度
| 维度 | 例子 | 影响 |
|---|---|---|
| 任务意图 | 探索、快速修复、原型、准备 PR、发布、事故响应 | 决定默认摩擦和输出形态 |
| 用户画像 | 快速试验者、独立开发者、团队审查人、架构负责人、安全合规、平台维护者 | 决定解释方式、提示密度和默认入口 |
| 操作风险 | 读取、写工作区、shell、网络、凭据、删除、跨根目录写入、发布 | 决定是否需要安全确认或隔离 |
| 变更风险 | 文档、界面行为、适配器、核心逻辑、迁移、安全敏感变更 | 决定验证和审查强度 |
| 环境信任度 | 无仓库工作区、git worktree、团队仓库、远程沙箱、连接生产环境的工作区 | 决定可自动执行范围 |
| 项目信号 | AGENTS.md、CONTRIBUTING、CI、CODEOWNERS、包脚本、自定义规则 | 决定默认建议和强制检查 |
| 团队策略 | 仓库配置、组织默认值、托管设置、受保护分支 | 决定是否能进入强制/阻断 |
| 用户覆盖 | 单次允许、会话模式、任务模式、显式跳过 | 决定临时降噪或升级 |
4. 治理强度
| 内部策略画像 | 用户可见视图 | 典型场景 |
|---|---|---|
fast | 低摩擦执行、简短摘要、低成本验证建议,不生成完整证据包 | 质量保障要求较低、演示原型、文档、探索性改动 |
assist | 提示推荐检查、展示未验证项,但不阻塞 | 常规本地开发、小范围界面或适配器改动 |
review | 生成变更就绪度、PR 摘要、风险标签、建议审查人/检查 | 准备 PR、团队协作、跨模块改动 |
guarded | 强制检查、定向审查、过期证据、风险接受 | 核心路径、安全、权限、迁移、发布相关改动 |
regulated | 完整证据包、审计、明确批准、发布/回滚证据 | 合规、金融、医疗、基础设施、企业强管控项目 |
内部策略画像是当前任务的策略状态。项目可以声明默认策略,用户可以在当前任务或当前会话临时覆盖;覆盖范围、期限和残余风险进入质量数据面记录。用户界面默认不展示内部枚举名。
5. 决策输出
interface ConfigurablePolicyDecision {
profile: "fast" | "assist" | "review" | "guarded" | "regulated";
reasons: PolicyReason[];
user_visible_level: "silent" | "inline_hint" | "panel_summary" | "modal_confirm" | "blocked";
recommended_checks: RecommendedCheck[];
required_checks: RequiredCheck[];
security_actions: SecurityAction[];
evidence_mode: "none" | "summary" | "evidence_refs" | "full_pack";
review_mode: "none" | "summary" | "targeted" | "full";
override_options: OverrideOption[];
expires_when: ExpirationCondition[];
}
输出约束:
security_actions只引用 security-boundary.md 的判定,并保持高于质量模式的优先级。required_checks只能来自项目/团队策略、确定性风险或用户显式升级。override_options必须有范围、期限、撤销路径和残余风险说明。- 用户覆盖在策略允许范围内调节体验;组织拒绝策略、受管控路径强制策略和安全边界保持更高优先级。
- 决策解释同时覆盖触发原因、配置来源、证据新鲜度和可选降噪路径。
6. 用户体验形态
| 触发 | 用户界面行为 |
|---|---|
| 无高风险信号 | 不弹窗;在任务结束给简短摘要 |
| 推荐检查缺失 | 行内弱提示、可折叠摘要或任务结束汇总 |
| 准备 PR | 可一键生成变更就绪度块 |
| 触及高风险路径 | 面板摘要展示原因、建议检查和跳过后果 |
| 触及安全边界 | 弹窗确认或阻断;说明文件、命令、域名、凭据、权限范围 |
| 用户选择快速放行 | 记录单次/会话覆盖,继续执行,但显示残余风险 |
| 团队策略不允许放行 | 阻断并指向项目配置或负责人 |
用户画像用于选择默认入口、解释语言和提示密度。强制检查、阻断和安全确认继续引用任务风险、执行动作、团队策略或安全边界。弹窗只用于安全、不可逆、组织强制或用户进入关键流程;其他提示优先合并、延后或进入摘要。
7. 与其他模块关系
| 模块 | 关系 |
|---|---|
| 项目画像 | 提供项目规则、验证能力、结构和配置来源 |
| 安全边界 | 提供不可混同的执行安全判定和应急放行限制 |
| 风险分类器 | 提供变更风险和验证建议 |
| 证据包 | 按 evidence_mode 决定是否只做摘要、引用或完整证据包 |
| PR 门禁 | 只在 review/guarded/regulated 且用户进入 PR 或团队流程时显性启用 |
| 质量数据面 | 记录决策理由、提示、覆盖、验证和安全事件 |
8. 边界场景
| 场景 | 策略 |
|---|---|
| 无 git 或无团队规则的工作区 | 内部使用低干预策略;跨目录写和网络仍走安全边界 |
| 用户明确要求质量保障要求较低的快速试验 | 保持低干预路径;只在 shell/网络/凭据/删除时打断 |
| 单体多项目仓库子目录规则冲突 | 使用最近可信规则;冲突进入提示,不直接升级为阻塞 |
| 远程开发路径或权限不明 | 展示执行位置、工作区根和不可支持能力;不自动扩大权限 |
| 生成文件/lockfile/二进制大 diff | 默认过滤严格审查;只展示范围和风险摘要 |
| 不稳定 CI 或私有依赖不可运行 | 输出不可验证原因、替代建议和信心影响 |
| 热修复 | 允许跳过部分质量建议;发布/回滚/负责人提示前置 |
| 用户强制跳过建议 | 若不触及安全底线,可继续;记录范围和残余风险 |
| 组织策略强制 | 用户可以请求风险接受;本地覆盖不改变受管策略 |
9. 成功标准
- 普通任务通过结果摘要、已验证项和下一步建议完成闭环。
- 高风险任务能解释升级原因、策略来源和可选处理路径。
- 用户能临时选择更快或更严,且选择范围清晰。
- 安全边界在质量模式和用户“快一点”请求之上保持优先级。
- 团队配置能统一受管工作区体验,质量保障要求较低的任务保持低摩擦默认值。