【历史参考】 本文保留 FinBayes 早期工程化讨论和旧实现上下文,便于追溯。当前战略、产品定义和工程化落地以
engineering/子目录为准。
FinBayes Goal 中断续接包
0. 文档目的
本文用于处理 FinBayes /goal 实施过程中的异常中断,包括上下文压缩失败、额度耗尽、会话中断、当前 Agent 无法继续、或需要新会话 / 其他 Agent 接手。
核心原则:不要从聊天记忆推断完成状态;必须重新读取当前文件、当前 git status 和最新验证输出。
1. 默认事实源
默认只读:
projects/finbayes/legacy/goal-compact-context.md
按需 drill-down:
projects/finbayes/legacy/product-definition.md
历史基线改造材料(当前以 engineering/ 目录下的工程化文档为准)
projects/finbayes/legacy/goal-execution-plan.md
参考基线仓:
martinpmm/Finclaw 参考仓
该仓默认只读,不是实施落点。
实施目标仓已经确定为:
FinBayes 工程仓
2. 三步 Goal 状态模型
| Goal | 目标 | 可续接状态 |
|---|---|---|
| G0 | 初始化新基线仓并完成基线审计 | not_started、in_progress、completed、blocked |
| G1 | 最小完整产品闭环与 Product Contract 冻结 | not_started、in_progress、contract_frozen、completed、blocked |
| G2 | 多入口一致性与最终硬化 | not_started、in_progress、completed、blocked |
如果状态不确定,按 in_progress 处理,并重新跑当前状态检查。
3. 任何续接的第一组动作
先确认 G0 审计文档是否已经写入:
FinBayes 工程仓 docs/design/finbayes-g0-baseline-audit.md
如果没有该文件,应从 G0 续接,而不是直接进入 G1/G2。
若 FinBayes 工程仓 已明确,先执行:
cd FinBayes 工程仓
git status --short
git diff --name-only
再查找 FinBayes 相关产物:
cd FinBayes 工程仓
rg -n "InputEnvelope|FinancialCognitionTask|StructuredCognitionResult|FinBayes Product Contract|WatchlistObject|DynamicCognitionProfile|ExecutionTaskType" server docs
若命令失败,应记录失败原因,不要假设文件不存在或工作已完成。
4. 新会话续接提示
当任务中断,需要新会话或其他 Agent 接手时,可直接使用以下提示:
继续 FinBayes 三步 Goal 实施。不要依赖旧聊天记录推断完成状态。
默认必读:
- projects/finbayes/legacy/goal-compact-context.md
参考基线仓:
- martinpmm/Finclaw 参考仓 只读,不直接改造。
先寻找:
- FinBayes 工程仓 docs/design/finbayes-g0-baseline-audit.md
- FinBayes 工程仓 docs/design/finbayes-product-contract.md
如果 FinBayes 工程仓 未确定,先执行 G0。
如果已确定,请先执行:
cd FinBayes 工程仓
git status --short
git diff --name-only
rg -n "InputEnvelope|FinancialCognitionTask|StructuredCognitionResult|FinBayes Product Contract|WatchlistObject|DynamicCognitionProfile|ExecutionTaskType" server docs
然后判断当前处于 G0、G1、G2 的哪个状态,并只继续当前 Goal。不得回滚用户改动,不得使用 git reset --hard 或 git checkout --。每次声称完成必须提供新鲜验证输出。
5. Checkpoint 模板
每个 Goal 执行过程中,建议在 closeout 或目标仓文档中维护以下状态:
Checkpoint time:
Current Goal:
Current status:
FinBayes 工程仓:
Reference repo:
Files changed:
Files read:
Do-not-touch files:
Latest git status:
Latest successful command:
Latest failing command:
Product Contract status:
Task taxonomy coverage:
Scenario sample coverage:
Known blockers:
Next exact command:
Next exact prompt:
Latest git status 和命令输出必须来自当前执行,不得从记忆复制。
6. G0 续接判断
如果不存在 docs/design/finbayes-g0-baseline-audit.md,G0 尚未完成。
G0 续接时必须确认:
FinBayes 工程仓的真实路径;- 是否直接或间接基于
martinpmm/Finclaw 参考仓; - 为什么不在参考仓直接改;
FinBayes 工程仓的初始化方式、导入方式和当前 git 状态;- 当前测试入口和 G1 触达边界。
7. G1 续接判断
如果已经进入 G1,先检查:
cd FinBayes 工程仓
rg -n "class InputEnvelope|class FinancialCognitionTask|class StructuredCognitionResult|class WatchlistObject|class DynamicCognitionProfile|ExecutionTaskType" server
rg -n "FinBayes Product Contract|StructuredCognitionResult|FinancialCognitionTask|内部任务执行类型|用户意图大类" docs
判断:
| 观察 | 处理 |
|---|---|
| 模型不存在 | 从 G1 核心模型开始 |
| 模型存在但两层任务 registry 不存在 | 继续 G1 task registry |
| registry 存在但 adapter 不存在 | 继续 G1 adapter |
| 入口未接入 | 继续 G1 最小 API/runtime 接入 |
| Product Contract 不存在 | G1 不能完成,先冻结 contract |
| Product Contract 存在但测试未跑 | 继续 G1 验证和 closeout |
G1 不完成,G2 不应开始。
8. G2 续接判断
G2 的前置条件:
- G0 审计存在;
- G1 Product Contract 存在;
- 两层金融任务类型已有工程 registry 和测试证据;
- G1 至少有模型、registry、adapter 和边界测试证据。
若任一条件缺失,应回到 G1。G2 不允许用“先补入口”绕过 Product Contract。
G2 续接时必须检查 contract diff:
cd FinBayes 工程仓
git diff -- docs/design/finbayes-product-contract.md
若 Product Contract 被破坏性修改,必须暂停并记录 breaking-risk。
9. 禁止事项
续接过程中不得:
- 根据旧聊天记录直接宣布完成;
- 在
martinpmm/Finclaw 参考仓参考仓中直接实施改造; - 回滚用户改动;
- 使用
git reset --hard; - 使用
git checkout --恢复文件; - 将样例场景硬编码为特殊字符串;
- 将 G2 改成重新定义产品;
- 将行动判断实现为交易执行;
- 将 Watchlist 变成下单提醒;
- 将 TUI / CLI 视为低质量降级入口;
- 输出没有验证命令的完成结论。
10. 完成证据标准
任何 Goal 完成必须包含:
FinBayes 工程仓的真实路径;- 当前
git status --short; - 实际修改文件;
- 实际运行的测试、构建或 smoke 命令;
- 失败命令及未解决风险;
- Product Goal Conformance Review;
- 两层任务类型覆盖状态;
- 样例场景覆盖状态;
- 下一步 Goal 的明确提示。
没有这些证据,只能标记为 in_progress 或 blocked。