跳到主要内容

【历史参考】 本文保留 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_startedin_progresscompletedblocked
G1最小完整产品闭环与 Product Contract 冻结not_startedin_progresscontract_frozencompletedblocked
G2多入口一致性与最终硬化not_startedin_progresscompletedblocked

如果状态不确定,按 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_progressblocked