From 902180bda7973f43c5af7b2065e6d8bdce6fb5cd Mon Sep 17 00:00:00 2001
From: 1 <wentingyear@gmail.com>
Date: Wed, 10 Jun 2026 17:04:56 +0800
Subject: [PATCH] 1
---
ana-doc/wuji/无忌交易系统精准卖点与滚动渣男返修设计.md | 170 +++
scripts/restore-sessions/open-case-analysis-analyst.bat | 66 +
scripts/restore-sessions/open-dev-developer-ana.bat | 66 +
scripts/restore-sessions/00-start-codex-app-server-4570.bat | 47 +
scripts/restore-sessions/restore-dev-reviewer-exp.bat | 66 +
ana-doc/案例审核规范.md | 56 +
ana-doc/案例总纲.md | 60 +
scripts/restore-sessions/restore-laoan.bat | 10
mbx.project.yaml | 60
项目事项计划.md | 87 +
scripts/restore-sessions/restore-experiment-reviewer.bat | 66 +
ana-doc/案例审计报告.md | 141 +++
ana-doc/案例执行日志.md | 129 ++
scripts/restore-sessions/open-xiaoshen.bat | 10
项目事项总纲.md | 87 +
scripts/restore-sessions/open-dev-reviewer-ana.bat | 66 +
scripts/restore-sessions/open-laoan.bat | 10
项目执行日志.md | 217 ++++
ana-doc/wuji/profile/source_note/笔记精简版.md | 6
scripts/restore-sessions/open-dev-developer-exp.bat | 66 +
scripts/restore-sessions/open-case-analysis-reviewer.bat | 66 +
scripts/restore-sessions/open-dev-reviewer-exp.bat | 66 +
项目变更记录.md | 168 +++
项目规范.md | 7
scripts/restore-sessions/restore-xiaoshen.bat | 10
scripts/restore-sessions/README.md | 51 +
scripts/restore-sessions/case_analysis.analyst | 1
scripts/restore-sessions/restore-experiment-experimenter.bat | 66 +
ana-doc/wuji/无忌交易系统最终案例总结.md | 2
scripts/restore-sessions/open-experiment-reviewer.bat | 66 +
ana-doc/wuji/无忌交易系统234个严格闭合案例增强图片说明.md | 2
ana-doc/案例分析设计.md | 86 +
scripts/restore-sessions/restore-dev-developer-exp.bat | 66 +
项目事项审计报告.md | 87 +
ana-doc/案例问题记录.md | 63 +
scripts/restore-sessions/restore-dev-reviewer-ana.bat | 66 +
scripts/restore-sessions/restore-dev-developer-ana.bat | 66 +
scripts/restore-sessions/restore-case-analysis-analyst.bat | 72 +
scripts/restore-sessions/open-experiment-experimenter.bat | 66 +
scripts/restore-sessions/restore-case-analysis-reviewer.bat | 72 +
ana-doc/wuji/无忌交易系统234个严格闭合案例阅读说明.md | 2
41 files changed, 2,603 insertions(+), 34 deletions(-)
diff --git "a/ana-doc/wuji/profile/source_note/\347\254\224\350\256\260\347\262\276\347\256\200\347\211\210.md" "b/ana-doc/wuji/profile/source_note/\347\254\224\350\256\260\347\262\276\347\256\200\347\211\210.md"
index 6b1bc48..8b7210a 100644
--- "a/ana-doc/wuji/profile/source_note/\347\254\224\350\256\260\347\262\276\347\256\200\347\211\210.md"
+++ "b/ana-doc/wuji/profile/source_note/\347\254\224\350\256\260\347\262\276\347\256\200\347\211\210.md"
@@ -48,9 +48,13 @@
6. 只要你严格执行的交易规则,你亏也赚了
7. 大盘当天开盘,莫名其妙的下杀,10分钟之内都没有回复,3000支股票都在下跌,直接仓位减半,4000支股票都在下跌,直接全清
-####止盈卖点
+#### 止盈卖点
第二天走出趋势性上涨则卖出, 总价亏5个点止损
-- 第二天走出趋势性上涨,又回到五日线反复低吸(这就叫滚动渣男,这个滚动低吸是唯一可以放过在10:40到14:40之间进行买入的点)
+详解趋势性上涨:
+1. 如果涨不是快速上涨,趋势性上涨在3%以上,5%以下,则卖出
+2. 如果上涨到3%以上快速冲过5%,则不能卖了,这种涨停的可能性很高,这时候要观望,如果超过8% 就不要动了
+3. 如果回落,一样回落到5%点以下,3%以上就卖出
### 总结
1. 买和卖是两件事分开,同一只股票触发了买就买,触发了卖就卖
diff --git "a/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237234\344\270\252\344\270\245\346\240\274\351\227\255\345\220\210\346\241\210\344\276\213\345\242\236\345\274\272\345\233\276\347\211\207\350\257\264\346\230\216.md" "b/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237234\344\270\252\344\270\245\346\240\274\351\227\255\345\220\210\346\241\210\344\276\213\345\242\236\345\274\272\345\233\276\347\211\207\350\257\264\346\230\216.md"
index 257c938..e2a39f8 100644
--- "a/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237234\344\270\252\344\270\245\346\240\274\351\227\255\345\220\210\346\241\210\344\276\213\345\242\236\345\274\272\345\233\276\347\211\207\350\257\264\346\230\216.md"
+++ "b/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237234\344\270\252\344\270\245\346\240\274\351\227\255\345\220\210\346\241\210\344\276\213\345\242\236\345\274\272\345\233\276\347\211\207\350\257\264\346\230\216.md"
@@ -16,6 +16,8 @@
2. 买入日整日分钟行情折线图:展示当天全日分钟走势,并标清买点。
3. 卖出日整日分钟行情折线图:展示当天全日分钟走势,并标清卖点。
+2026-06-09 新增边界:同事进一步反馈当前卖点实现未完整覆盖 `笔记精简版.md` 的精准卖点,且未实现滚动渣男反复低吸。分析侧复核确认该反馈成立,并已登记 `ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001`。因此,本增强包只作为 V0 代理卖点口径下的图片阅读入口;不能证明精准卖点和滚动渣男已经完整实现。
+
## 2. 怎么看
同事拿到 git 仓库后,建议按这个顺序打开:
diff --git "a/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237234\344\270\252\344\270\245\346\240\274\351\227\255\345\220\210\346\241\210\344\276\213\351\230\205\350\257\273\350\257\264\346\230\216.md" "b/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237234\344\270\252\344\270\245\346\240\274\351\227\255\345\220\210\346\241\210\344\276\213\351\230\205\350\257\273\350\257\264\346\230\216.md"
index 6410a73..fc85357 100644
--- "a/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237234\344\270\252\344\270\245\346\240\274\351\227\255\345\220\210\346\241\210\344\276\213\351\230\205\350\257\273\350\257\264\346\230\216.md"
+++ "b/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237234\344\270\252\344\270\245\346\240\274\351\227\255\345\220\210\346\241\210\344\276\213\351\230\205\350\257\273\350\257\264\346\230\216.md"
@@ -19,6 +19,8 @@
3. 怎么从一个 `case_id` 追到选股、买入、卖出、收益和审计边界。
4. 哪些数字可以按分层口径引用,哪些不能过度解释。
+2026-06-09 新增边界:同事反馈当前实现未完整覆盖 `笔记精简版.md` 的精准卖点和滚动渣男,分析侧复核确认该反馈成立,已登记 `ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001` 并新增 `ana-doc/wuji/无忌交易系统精准卖点与滚动渣男返修设计.md`。因此,本说明中的 234 个案例只能称为 V0 代理卖点口径下的 `PRIMARY_STRICT_CLOSED_CASE` 子集,不得称为完整笔记 baseline 的最终严格案例集。
+
## 2. 当前可引用边界
来源全量包已通过执行返修复审:
diff --git "a/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237\346\234\200\347\273\210\346\241\210\344\276\213\346\200\273\347\273\223.md" "b/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237\346\234\200\347\273\210\346\241\210\344\276\213\346\200\273\347\273\223.md"
index 86a03d8..5e9e59e 100644
--- "a/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237\346\234\200\347\273\210\346\241\210\344\276\213\346\200\273\347\273\223.md"
+++ "b/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237\346\234\200\347\273\210\346\241\210\344\276\213\346\200\273\347\273\223.md"
@@ -34,6 +34,8 @@
`RETURN_STAT_READY=false` 继续保留。本次审核通过只允许分层引用,不允许转写为无保留的收益、成功率、胜率、回撤或策略有效性结论。
+2026-06-09 补充边界:同事反馈当前实现未完整覆盖 `笔记精简版.md` 的精准卖点和滚动渣男。经复核,该反馈成立,已登记 `ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001` 并新增 `ana-doc/wuji/无忌交易系统精准卖点与滚动渣男返修设计.md`。因此,本文件下方读数只能继续作为 V0 代理卖点口径下的分层读数,不得称为完整笔记 baseline 结论;V1 返修设计和执行审核通过前,不得将这些读数用于证明完整无忌交易系统有效性。
+
## 2. 可以引用的读数
在 `PRIMARY_STRICT_CLOSED_CASE` 主口径下,234 个严格闭合 case 中 113 个为正收益,主口径成功率读数为 0.4829059829,主口径账户贡献合计为 0.10997926。
diff --git "a/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237\347\262\276\345\207\206\345\215\226\347\202\271\344\270\216\346\273\232\345\212\250\346\270\243\347\224\267\350\277\224\344\277\256\350\256\276\350\256\241.md" "b/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237\347\262\276\345\207\206\345\215\226\347\202\271\344\270\216\346\273\232\345\212\250\346\270\243\347\224\267\350\277\224\344\277\256\350\256\276\350\256\241.md"
new file mode 100644
index 0000000..caa6bb0
--- /dev/null
+++ "b/ana-doc/wuji/\346\227\240\345\277\214\344\272\244\346\230\223\347\263\273\347\273\237\347\262\276\345\207\206\345\215\226\347\202\271\344\270\216\346\273\232\345\212\250\346\270\243\347\224\267\350\277\224\344\277\256\350\256\276\350\256\241.md"
@@ -0,0 +1,170 @@
+# 无忌交易系统精准卖点与滚动渣男返修设计
+
+创建人员:case_analysis.analyst / laoan
+文件职责:记录同事反馈后,对无忌 baseline 中精准卖点和滚动渣男低吸实现缺口的返修设计。
+引用文件:`profile/source_note/笔记精简版.md`;`ana-doc/wuji/无忌笔记案例分析方案.md`;`ana-doc/wuji/无忌交易系统案例执行流程.md`;`ana-doc/案例问题记录.md`;`ana-data/result/RUN-ANA-WUJI-FULL-2023-2026-20260608-001/`。
+记录方式:设计审核通过前不得执行返修 run;执行审核通过前不得引用新收益、成功率、胜率、回撤或策略有效性结论。
+
+## 1. 背景
+
+2026-06-09,同事反馈当前 234 个严格闭合案例中,卖点实现更像是 `买入价 +5% 止盈 / 买入价 -5% 止损` 的代理逻辑,而不是 `笔记精简版.md` 中完整的精准卖点;同时未看到“滚动渣男”中的趋势上涨后回到五日线反复低吸。
+
+经核对,反馈成立:
+
+1. 当前全量包 `tools/perform_exit_ai_review.py` 的真实 SELL 裁决核心逻辑只扫描 `entry_price * 0.95` 和 `entry_price * 1.05`。
+2. 当前结果中的 `AI_SELL_CONFIRMED` 大量写为“分钟K最低价触及买入价-5%硬止损线”或“价格达到买入价+5%并保持强于开盘方向”。
+3. 当前执行包没有生成 `ADD_ROLLING_LOW_BUY`、`SELL_ROLLING` 或等价滚动低吸订单。
+4. 方案文档和执行流程已经要求覆盖精准卖点、滚动渣男、五日线低吸和市场风险卖点,但执行脚本没有完整落地。
+
+因此,现有 `RUN-ANA-WUJI-FULL-2023-2026-20260608-001`、最终结论包和 234 增强图片包只能继续作为已审核的 V0 代理口径 / 图片证据包留档;不得再表述为已经完整实现 `笔记精简版.md` 的全部卖点和滚动渣男。
+
+## 2. 返修事项
+
+事项 ID:`ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609`
+
+关联问题:`ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001`
+
+设计 ID:`DESIGN-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609`
+
+计划 run:`RUN-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609-001`
+
+## 3. 设计目标
+
+在不改变已审核候选池、市场开新仓闸门和原始买点判定边界的前提下,重新设计并执行更接近 `笔记精简版.md` 的卖点和滚动低吸逻辑:
+
+1. 完整落地精准卖点 1、2、3、5、7。
+2. 将“第二天走出趋势性上涨则卖出”和“总价亏 5 个点止损”与精准卖点分层,不再把 `+5%` 当成趋势性上涨的唯一代理条件。
+3. 实现滚动渣男:已有持仓走出趋势性上涨后,回到五日线附近止跌放量时,允许继续按每次一份仓低吸。
+4. 所有新增买卖动作必须可追溯到图片、分钟线 / 日线字段、规则触发原因、订单账本和 lot 账本。
+5. 新 run 必须与旧 V0 run 分开产出,不覆盖旧审核包。
+
+## 4. 规则拆解
+
+### 4.1 精准卖点
+
+| 原文规则 | V1 执行化要求 | 证据 |
+|---|---|---|
+| 买入理由跌破就是你的止损线 | 每笔 BUY 必须记录买入理由、对应支撑价、支撑类型和跌破条件;跌破后按 T+1 约束触发止损候选。不得只用 `entry_price * 0.95` 替代所有止损线。 | 买入裁决日志、1 分钟图、止损线字段 |
+| 开盘后下跌,反弹后上冲,两次都破不了均线 | 对可卖日的整日分钟线识别开盘下跌、两次反弹、两次均未有效突破均线;触发 `SELL_REBOUND_FAIL_MA_TWICE`。均线口径需在 run_config 中冻结。 | 卖出日整日分钟图、反弹次数表 |
+| 开盘后下跌,反弹上冲,连开盘价都破不了 | 对可卖日识别开盘下跌后反弹最高价未有效突破当日开盘价;触发 `SELL_REBOUND_FAIL_OPEN`。 | 卖出日整日分钟图、开盘价线 |
+| 放量滞涨,开盘一分钟量比 10 或 15 以上但涨幅只有 1%-2% | 对可卖日开盘第 1 分钟计算相对量、涨幅、价格推进;触发 `SELL_OPEN_VOLUME_STALL`。量比口径需在 run_config 中冻结。 | 1 分钟成交量、相对量表、卖点图 |
+| 10:40 前,结合昨天前天三天 K 线,高点没有逐步抬高 | 在 10:40 前以最近 3 个交易日日 K 高点判断是否逐步抬高;不满足时触发 `SELL_THREE_DAY_HIGH_NOT_RISING`。 | 三日日 K 图、日线字段 |
+| 大盘开盘莫名下杀,10 分钟内没有恢复,3000 下跌减半,4000 下跌全清 | 使用全 A 开盘 10 分钟广度数据或已可用的最近等价广度表;触发 `MARKET_RISK_REDUCE_HALF` / `MARKET_RISK_CLEAR_ALL`。若分钟级广度不可得,必须保留 `MARKET_RISK_DATA_GAP_HELD`,不得静默忽略。 | 市场广度表、账户风控流水 |
+
+### 4.2 止盈卖点
+
+2026-06-10 `笔记精简版.md` 已补充“详解趋势性上涨”,V1 必须按新基版执行,不得继续使用旧的宽泛代理。
+
+原文新增口径:
+
+```text
+详解趋势性上涨:
+1. 如果涨不是快速上涨,趋势性上涨在3%以上,5%以下,则卖出
+2. 如果上涨到3%以上快速冲过5%,则不能卖了,这种涨停的可能性很高,这时候要观望,如果超过8% 就不要动了
+3. 如果回落,一样回落到5%点以下,3%以上就卖出
+```
+
+执行化要求:
+
+1. `+5%` 不再是固定止盈卖点,只是趋势状态分层中的关键阈值。
+2. 若涨幅进入 `3% <= gain < 5%` 且不是快速上涨,触发 `SELL_TREND_3_TO_5_GRADUAL`。
+3. 若涨幅从 3% 以上快速冲过 5%,触发 `TREND_FAST_BREAKOUT_5_WATCH`,当时不得直接卖出,转入观察。
+4. 若观察过程中涨幅超过 8%,触发 `TREND_ABOVE_8_HOLD`,不得因为已超过 5% 而机械卖出。
+5. 若快速冲过 5% 后回落到 `3% <= gain < 5%`,触发 `SELL_TREND_PULLBACK_3_TO_5`。
+6. “快速上涨”的分钟数、连续性、是否以最高价 / 收盘价 / VWAP 计算涨幅,必须在 `strict_sell_rolling_run_config.md/json` 冻结;冻结前不得执行全量。
+7. 每个趋势止盈候选必须输出分钟级证据图,图中标明 3%、5%、8% 阈值线、首次进入区间时间、快速冲 5% 时间、回落卖点时间和最终动作。
+8. 若脚本无法判断“快速”或趋势结构,必须生成 `SELL_TREND_TAKE_PROFIT_REVIEW` 并进入人工复核,不得强行纳入收益统计。
+9. 3% / 5% / 8% 趋势止盈必须采用“代码候选 + 人工裁决”模式;代码只负责识别候选和打包证据,最终动作必须由人工裁决字段确认。
+10. 人工裁决必须覆盖 `SELL`、`HOLD_WATCH`、`HOLD_ABOVE_8`、`REVIEW_HELD` 等动作;不卖也是裁决,必须写明不卖理由。
+11. 每个卖出或不卖的趋势候选图上必须用中文直接展示裁决理由,例如“3%-5% 非快速上涨,卖出兑现”“快速冲过 5%,观望不卖”“超过 8%,强势持有不卖”“回落到 3%-5%,卖出”“形态不清,待人工复核”。不得只把不卖原因写在 CSV、日志或图外说明中。
+12. 同事人工阅读入口必须能从单张趋势候选图看懂:当前涨幅区间、是否快速冲 5%、是否超过 8%、是否回落、最终卖 / 不卖 / 观察 / 待审动作,以及该动作的中文理由。
+
+### 4.3 滚动渣男 / 五日线低吸
+
+触发链:
+
+```text
+已有合法持仓
+-> 后续交易日走出趋势性上涨
+-> 回落至五日线附近
+-> 低位止跌
+-> 成交量较前几分钟或前几日基准放大
+-> 时间可在 10:40-14:40,因为这是笔记唯一允许的盘中低吸例外
+-> 加一份仓,即单票预算的 1/5
+```
+
+执行化要求:
+
+1. 每个滚动低吸必须生成 `ADD_ROLLING_LOW_BUY` 订单。
+2. 每个滚动低吸订单必须新建 lot,继承 T+1 约束。
+3. 单票已用仓位不得超过配置上限;默认最多 4 份,最后 1 份需保留,除非 run_config 明确人工放行。
+4. 若趋势上涨、五日线附近、止跌、放量任一条件无法确认,必须写入 `ROLLING_LOW_BUY_REVIEW_HELD`,不得强行买入。
+5. 图证必须包含日 K 五日线、回踩位置、低吸分钟点、仓位变化和后续卖出。
+
+## 5. 数据和产物
+
+计划输出目录:
+
+`ana-data/result/RUN-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609-001/`
+
+关键产物:
+
+```text
+strict_sell_rolling_run_config.md/json
+strict_rule_mapping.csv
+strict_sell_signal_ledger.csv
+rolling_low_buy_signal_ledger.csv
+strict_order_ledger.csv
+strict_position_lot_ledger.csv
+strict_daily_account_ledger.csv
+strict_case_summary.csv
+strict_return_scope_case.csv
+strict_return_scope_lot.csv
+strict_boundary_table.csv
+case_image_board.md
+cases/<case_id>/case_image_board.md
+self_check.md/json
+self_check_items.csv
+manifest.json
+```
+
+## 6. 自检要求
+
+1. 不得出现把 `+5%` 作为唯一趋势止盈条件的单一规则。
+2. 不得出现把 `-5%` 作为所有止损线的唯一规则。
+3. 精准卖点 1、2、3、5、7 必须都有候选数、触发数、边界数。
+4. 滚动渣男必须输出候选数、确认低吸数、HELD 数、生成订单数。
+5. 每笔滚动低吸订单必须进入订单账本和 lot 账本。
+6. 每笔 SELL 必须标明卖点类型,不得只写 `SELL_TREND_TAKE_PROFIT` 或 `SELL_RISK_STOP5`。
+7. 市场风险减半 / 清仓如因数据不可得未执行,必须在 boundary table 明确保留。
+8. 图片入口必须让人工从单 case 看懂买入、精准卖点、滚动低吸和最终收益链路。
+
+## 7. 审核要求
+
+1. 本设计必须先提交 `case_analysis.reviewer` 做设计审核。
+2. 设计审核通过前不得执行 V1 返修 run。
+3. V1 执行完成后必须提交执行审核。
+4. 执行审核通过前,不得引用 V1 成功率、收益率、胜率、回撤或策略有效性结论。
+5. 如审核员认为均线、趋势性上涨、量比、开盘下杀 10 分钟恢复等语义仍需人工冻结,应先返修设计,不得直接跑全量。
+
+## 8. 对旧包的处理
+
+旧包保留:
+
+- `RUN-ANA-WUJI-FULL-2023-2026-20260608-001`
+- `RUN-ANA-WUJI-FINAL-CONCLUSION-20260608-001`
+- `RUN-ANA-WUJI-STRICT-CLOSED-234-REVIEW-GUIDE-20260608-001`
+- `RUN-ANA-WUJI-STRICT-CLOSED-234-CHART-ENHANCE-20260609-001`
+
+旧包边界调整:
+
+1. 可继续作为候选池、图片入口、账本结构和 V0 代理卖点回放证据。
+2. 不得称为已经完整实现 `笔记精简版.md` 的精准卖点和滚动渣男。
+3. 若对同事展示旧包,必须同步说明本问题和 V1 返修正在处理。
+
+## 9. 当前状态
+
+当前状态:`DESIGN_DRAFT_READY_FOR_REVIEW`
+
+下一步:
+通过 MB-X 消息链提交 `case_analysis.reviewer` 设计审核。
diff --git "a/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md" "b/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md"
index d706003..92bb6bb 100644
--- "a/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md"
+++ "b/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md"
@@ -736,3 +736,89 @@
审核通过回写:
2026-06-09 `case_analysis.reviewer` 返回执行审核通过,确认增强包的 234 个 case 与来源主口径集合一致,1170 张选股增强日K图、658 张买入日整日分钟折线图、658 张卖出日整日分钟折线图均满足同事反馈要求;链接、缺失输入、manifest 和自检均通过。审核员允许在公共说明、最终总结或交付导航中引用本增强包入口及审计 ID。
+
+## 2026-06-09 DESIGN-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609:精准卖点与滚动渣男返修设计
+
+所属案例事项:
+`ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609`
+
+来源:
+用户转述同事反馈,指出当前卖点实现更接近 `+5% 止盈 / -5% 止损`,未完整实现 `笔记精简版.md` 中的精准卖点;同时未实现“第二天走出趋势性上涨,又回到五日线反复低吸”的滚动渣男策略。
+
+设计入口:
+`ana-doc/wuji/无忌交易系统精准卖点与滚动渣男返修设计.md`
+
+关联问题:
+`ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001`
+
+设计目标:
+在保留旧 V0 包作为已审核代理证据的前提下,设计 V1 返修 run,完整补齐精准卖点、趋势止盈分层和滚动渣男低吸订单 / lot / 图片 / 账本链路。
+
+关键设计要求:
+
+1. 不再把 `+5%` 作为趋势性上涨的唯一代理,不再把 `-5%` 作为所有止损线的唯一代理。
+2. 精准卖点 1、2、3、5、7 必须分别有候选账本、裁决日志、图片证据和边界状态。
+3. 滚动渣男必须能生成 `ADD_ROLLING_LOW_BUY` 或明确 `ROLLING_LOW_BUY_REVIEW_HELD`,并进入仓位 / lot / 账户流水。
+4. 市场开盘下杀减半 / 全清如果缺分钟级广度数据,必须显式保留数据缺口,不得静默忽略。
+5. 旧包读数继续保持 V0 代理口径边界;V1 执行审核通过前不得引用新结论。
+
+2026-06-10 基版更新追加要求:
+
+1. `笔记精简版.md` 新增“详解趋势性上涨”:非快速上涨在 3% 以上、5% 以下卖出;3% 以上快速冲过 5% 不能卖,进入观察;超过 8% 不动;若回落到 5% 以下且仍在 3% 以上卖出。
+2. V1 设计必须把趋势止盈拆成 `SELL_TREND_3_TO_5_GRADUAL`、`TREND_FAST_BREAKOUT_5_WATCH`、`TREND_ABOVE_8_HOLD`、`SELL_TREND_PULLBACK_3_TO_5` 和 `SELL_TREND_TAKE_PROFIT_REVIEW`。
+3. “快速上涨”的分钟窗口、涨幅计算价源和观察状态必须在 run_config 中冻结,并提交审核。
+4. 2026-06-09 送审内容中的宽泛“趋势上涨”描述已被 2026-06-10 新基版覆盖;以当前设计文档为准重新送审。
+
+计划执行 run:
+`RUN-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609-001`
+
+设计审核状态:
+已提交 `case_analysis.reviewer` 设计审核。
+
+送审 message_id:
+`msg_20260609140926746_fb567c65`
+
+补发送审 message_id:
+`msg_20260609160422940_a79414eb`
+
+2026-06-10 基版更新后重新送审:
+已发送新版设计审核请求:
+
+- message_id:`msg_20260610113714208_21eadfa6`
+- dispatch:`auto`
+- dispatch_status:`delivered_to_visible_thread`
+
+当前状态:
+`STRICT_SELL_ROLLING_REPAIR_DESIGN_REVIEW_SUBMITTED_V2_SOURCE_NOTE_UPDATE`
+
+### 设计审核通过回写
+
+2026-06-10 `case_analysis.reviewer` 返回设计审核通过 / 有条件允许进入 V1 执行准备:
+
+- 审计 ID:`AUDIT-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260610-DESIGN-002`
+- 审核结果消息:`msg_20260610114329830_a83176f4`
+- 审核对象:`DESIGN-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609`
+- 当前有效送审:`msg_20260610113714208_21eadfa6`
+- 旧基版送审:`msg_20260609140926746_fb567c65`、`msg_20260609160422940_a79414eb` 已被 2026-06-10 基版更新覆盖
+
+审核员允许进入 V1 执行准备,但执行前必须冻结以下口径:
+
+1. 快速上涨:分钟窗口、涨幅计算价源、连续性要求、从 3% 到穿越 5% 的最长用时、观察开始时间。
+2. 3% / 5% / 8% 阈值:参考基准价、进入区间时间、触发价格、触发时间、回落卖出条件、超过 8% 后观察终止或继续条件。
+3. 观察结束:`TREND_FAST_BREAKOUT_5_WATCH` 后如何进入 `TREND_ABOVE_8_HOLD`、`SELL_TREND_PULLBACK_3_TO_5`、`SELL_TREND_TAKE_PROFIT_REVIEW`、窗口末估值或人工待审。
+4. 均线:卖点中“均线”的类型、计算字段、分钟线窗口、两次反弹识别、有效突破阈值和未突破容差。
+5. 量比 / 放量滞涨、三日高点、市场风险卖点、五日线附近和止跌放量、滚动低吸仓位 / lot,以及字段与自检枚举。
+
+当前状态:
+`STRICT_SELL_ROLLING_REPAIR_DESIGN_REVIEW_PASSED_EXEC_PREP_ALLOWED`
+
+执行准备补充约束:
+2026-06-10 用户补充确认:3% / 5% / 8% 趋势止盈必须人工监控;卖点和不卖都要说明理由,并且不卖原因必须直接展示在图片上,方便同事从图片入口理解。V1 执行包必须把趋势止盈设计为“代码候选 + 人工裁决 + 图上中文理由”:
+
+1. 代码输出趋势候选、3% / 5% / 8% 阈值线、快速冲 5%、超过 8%、回落等证据。
+2. 人工裁决输出 `SELL`、`HOLD_WATCH`、`HOLD_ABOVE_8`、`REVIEW_HELD` 等动作。
+3. 不卖也必须作为正式裁决进入账本 / 图片 / story board。
+4. 单张趋势候选图必须用中文展示卖 / 不卖 / 观察 / 待审理由,不得只把理由放在 CSV 或日志里。
+5. 自检必须覆盖趋势候选图是否存在中文裁决理由,以及 HOLD / WATCH 类不卖动作是否有图上理由。
+
+设计审核通过不等于 V1 执行审核通过;V1 执行审核通过前不得引用 V1 成功率、收益率、胜率、回撤或策略有效性结论。
diff --git "a/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md" "b/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md"
index f66ded3..87ce8fe 100644
--- "a/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md"
+++ "b/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md"
@@ -70,6 +70,8 @@
5. 是否设置代码验证前置产物,包括 `code_validation_report.md`、`baseline_mapping_check.csv`、`sample_recalc_check.csv`。
6. 是否设置账本复算链路:`order_ledger -> position_lot_ledger -> daily_account_ledger -> case_summary`。
7. 是否明确 `STRUCTURE_PILOT`、`STRICT_MANUAL_REPLAY`、`RETURN_STAT_READY` 分层,且未到 `RETURN_STAT_READY` 前不得给出完整收益率、成功率、胜率或回撤结论。
+8. 是否单独冻结精准卖点和滚动渣男语义,并逐条说明与 `笔记精简版.md` 原文的映射关系;不得只写“止盈 / 止损 / AI SELL”概括替代。
+9. 如果卖点或滚动渣男采用脚本代理、简化阈值、候选提示或人工未确认流程,设计必须明确 `proxy_or_substitute_used_flag=1`、收益降级边界和不得进入完整 baseline 结论的条件。
#### 3.1.2 执行审核检查
@@ -94,7 +96,59 @@
14. `NO_TRADE_MARKET_GATE_CLOSED`、`NO_TRADE_NO_ENTRY_SIGNAL`、`DATA_GAP_HELD`、`MANUAL_REVIEW_PENDING`、`WINDOW_END_VALUATION_ONLY`、`LOOKAHEAD_VIOLATION_EXCLUDED`、`T1_GUARD_FAIL` 等状态是否被保留,不得静默删除。
15. 未到 `RETURN_STAT_READY` 或执行审核未通过前,不得批准完整 baseline 收益率、成功率、胜率、回撤或策略有效性结论。
-#### 3.1.3 复审触发
+#### 3.1.3 精准卖点与滚动渣男硬审项
+
+无忌交易系统进入执行审核、复审、收益引用、严格闭合样本说明包或面向同事的最终总结前,审核员必须把卖点和滚动渣男作为独立阻断项审核,不得只看账本闭合、图片完整、自检 PASS 或 manifest hash。
+
+审核员必须读取并对照以下源文档:
+
+1. `wuji/profile/source_note/笔记精简版.md` 中“精准卖点的规则”和“止盈卖点”原文。
+2. `wuji/baseline反馈.md` 中对卖点、滚动渣男、低吸、仓位和风控的映射 / 取舍。
+3. `wuji/无忌交易系统案例执行流程.md` 中卖点、滚动渣男、`decision_view` / `audit_view`、代理实现和收益边界要求。
+4. 当前 run 的 `run_config.md/json`、`baseline_rule_mapping.csv` 或等价规则映射文件。
+5. 当前 run 的卖点 / 滚动相关脚本、裁决日志、订单账本、lot 账本、图片入口和自检文件。
+
+精准卖点审核至少覆盖:
+
+1. 止损铁律是否按“买入理由跌破就是止损线”实现;止损线必须能追到具体买入理由、价格结构或人工确认理由,不能只用固定 `entry_price * 0.95` 冒充完整止损语义。若只实现固定 -5% 止损,只能标为代理 / 简化实现,不能批准严格 baseline 收益或严格闭合结论。
+2. “开盘后下跌,反弹后上冲,两次都破不了均线”是否有 1 分钟 K 图、均线参考、两次反弹时间 / 价格和卖出裁决证据。
+3. “开盘后下跌,反弹上冲,连开盘价都破不了”是否有开盘价线、反弹高点和卖出裁决证据。
+4. “放量滞涨”是否有成交量、量比、涨幅、价格滞涨和卖出时间证据;尤其开盘一分钟量比 10 级 / 15 以上但涨幅只有 1%-2% 的快速卖出规则,必须有分钟级证据。
+5. “10点40之前,结合昨天、前天,这3天的 K 线如果没有高点逐步抬高”是否有三日高点、10:40 前判断时间和卖出裁决证据。
+6. “大盘当天开盘莫名下杀,10分钟内未恢复,3000 支股票下跌减半、4000 支股票下跌全清”是否有市场广度数据源、时间戳、恢复判断和仓位变化证据。
+7. “第二天走出趋势性上涨则卖出”是否有趋势性上涨定义、次日 / 观察日时点、价格结构、人工确认或已审核规则;不能把“达到买入价 +5%”单独当作完整趋势性上涨卖点。
+
+滚动渣男 / 五日线低吸审核至少覆盖:
+
+1. 是否明确该策略只在已有合法持仓后触发,不是普通新开仓。
+2. 是否证明先出现“第二天走出趋势性上涨”,再出现“回到五日线附近”,再出现“止跌放量”,最后才允许低吸。
+3. 是否保留 5 日线位置、回踩时间、低吸时间、低吸价格、低吸仓位、人工确认理由和图证。
+4. 是否体现“反复低吸”或明确说明本轮没有触发滚动机会;若声称没有触发,必须有扫描范围、扫描脚本 / 人工复核记录和 0 触发证据,不能仅因订单里没有滚动 BUY 就默认通过。
+5. 是否按仓位规则每次只加一份仓,并在 `order_ledger`、`position_lot_ledger` 和账户账本中体现同一 case / symbol 的多次 BUY、持仓变化和后续 SELL。
+6. 是否正确处理普通买点时间窗和滚动低吸例外:普通新开仓仍受 `10:40` 前或 `14:40` 后限制;滚动低吸是唯一允许 `10:40-14:40` 买入 / 低吸的例外,且必须有已有持仓和人工确认。
+
+脚本和日志审核要求:
+
+1. 审核员必须打开卖点 / 滚动相关脚本,例如 `perform_exit_ai_review.py`、`generate_exit_review_materials.py`、`build_full_execution_package.py` 或当前 run 的等价脚本,检查代码是否只实现固定阈值代理。
+2. 审核员必须统计卖点裁决日志中的 `signal_type`、`sell_reason_type`、`decision_reason_cn`、`action_status` 分布;如果主要由 `STOP5_SELL_SIGNAL_CANDIDATE`、`TREND_TAKE_PROFIT_SIGNAL_CANDIDATE` 或类似 +5% / -5% 代理构成,必须标记为语义风险并要求降级或返修。
+3. 审核员必须检查 `order_ledger` 中 BUY / SELL 仓位分布;若全部 BUY 为单次 `0.04` 且无同一持仓的滚动低吸加仓记录,不得认为滚动渣男已实现。
+4. 审核员必须抽查若干正收益、负收益、快速卖出、延后卖出和无卖出边界样本,逐笔核对图证、脚本理由、订单账本和原文规则是否一致。
+5. 若使用 AI / 脚本自动确认 SELL,必须检查是否存在人工确认字段、代理标记和审核边界;`CLOSED_BY_AI_SELL` 本身不等于原文卖点已严格实现。
+
+阻断规则:
+
+1. 如果当前 run 未实现精准卖点各分支,或只实现固定 +5% / -5% 代理卖点,则执行审核最多只能通过“代理卖点 / 结构回放 / 图片入口”层,不得通过完整 baseline 执行审核、严格闭合主口径收益审核或最终结论引用审核。
+2. 如果滚动渣男 / 五日线低吸未实现、未扫描或未人工确认,必须在审计结论中写明“滚动渣男未实现 / 未确认”;不得把没有滚动交易的单次买卖账本称为完整无忌 baseline。
+3. 如果前序审核已基于简化卖点或未实现滚动渣男放行了收益、成功率、234 严格闭合说明或同事总结,后续审核员发现后必须提出纠偏:降级结论、记录问题、要求返修或重跑,并在审计报告中说明前序结论的可引用边界。
+4. 在上述阻断项关闭前,`RETURN_STAT_READY` 必须保持 false;不得引用完整 baseline 成功率、收益率、胜率、回撤或策略有效性结论。
+
+审核反馈要求:
+
+1. 发现卖点 / 滚动语义问题时,审核反馈必须给出修复建议或修复方案,不能只写“未通过”。
+2. 修复方案至少应包括:卖点规则映射表、卖点分支扫描 / 人工确认产物、滚动低吸扫描 / 人工确认产物、代理标记字段、账本字段、图片证据要求、自检项和复审条件。
+3. 如果分析侧选择保留代理实现而不补完整语义,审核员应要求重命名口径,例如“简化卖点代理回放”或“结构试点结果”,并禁止继续使用“严格 baseline”“完整 baseline”或“策略有效性证明”等表述。
+
+#### 3.1.4 复审触发
以下任一变化必须重新提交设计复审:
diff --git "a/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md" "b/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md"
index 792abee..732dc56 100644
--- "a/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md"
+++ "b/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md"
@@ -32,6 +32,8 @@
| AUDIT-ANA-WUJI-FINAL-CONCLUSION-20260608-EXEC-001 | RUN-ANA-WUJI-FINAL-CONCLUSION-20260608-001 / 最终结论引用包 | 执行审核 | case_analysis.reviewer / xiaoshen | 通过 | 2026-06-08 15:41:48 |
| AUDIT-ANA-WUJI-STRICT-CLOSED-234-REVIEW-GUIDE-20260608-EXEC-001 | RUN-ANA-WUJI-STRICT-CLOSED-234-REVIEW-GUIDE-20260608-001 / 234 个严格闭合案例阅读说明包 | 说明包执行审核 | case_analysis.reviewer / xiaoshen | 通过 / 非阻断建议 | 2026-06-08 18:34:00 |
| AUDIT-ANA-WUJI-STRICT-CLOSED-234-CHART-ENHANCE-20260609-EXEC-001 | RUN-ANA-WUJI-STRICT-CLOSED-234-CHART-ENHANCE-20260609-001 / 234 个严格闭合案例增强图片包 | 执行审核 | case_analysis.reviewer / xiaoshen | 通过 | 2026-06-09 03:11:48 |
+| AUDIT-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609-DESIGN-001 | DESIGN-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609 / 精准卖点与滚动渣男返修设计 | 设计审核 | case_analysis.reviewer / xiaoshen | HELD / 暂缓通过 | 2026-06-10 11:35:03 |
+| AUDIT-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260610-DESIGN-002 | DESIGN-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609 / 精准卖点与滚动渣男返修设计(2026-06-10 基版更新后修订版) | 设计审核 | case_analysis.reviewer / xiaoshen | 通过 / 有条件允许进入 V1 执行准备 | 2026-06-10 11:39:17 |
| <AUDIT-ID> | <对象> | 设计审核 / 执行审核 / 复审 | <审核员> | 待审计 | <YYYY-MM-DD HH:mm:ss> |
## 2. 审计记录模板
@@ -1761,3 +1763,142 @@
是否需要问题记录:
不需要。本次未发现阻断项或需长期跟踪的问题。
+
+## 2026-06-10 11:35:03 AUDIT-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609-DESIGN-001:无忌精准卖点与滚动渣男返修设计审核
+
+审计对象:
+`DESIGN-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609` / `ana-doc/wuji/无忌交易系统精准卖点与滚动渣男返修设计.md`
+
+审计类型:
+设计审核。
+
+审核员:
+case_analysis.reviewer / xiaoshen
+
+来源消息:
+case_analysis.analyst 通过 MB-X 消息 `msg_20260609160422940_a79414eb` 提交设计审核;同事项早前消息 `msg_20260609140926746_fb567c65` 内容一致,作为同一审核对象处理。
+
+上游依据:
+- `ana-doc/wuji/profile/source_note/笔记精简版.md`
+- `ana-doc/wuji/无忌交易系统案例执行流程.md`
+- `ana-doc/案例分析规范.md`
+- `ana-doc/案例审核规范.md`
+- `ana-doc/案例问题记录.md` 中 `ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001`
+- 旧全量包:`ana-data/result/RUN-ANA-WUJI-FULL-2023-2026-20260608-001/`
+
+独立核对:
+1. `笔记精简版.md` 中精准卖点包含:买入理由跌破止损线、两次反弹不过均线、反弹不过开盘价、开盘一分钟高量比但涨幅弱、10:40 前三日高点不逐步抬高、大盘开盘下杀 10 分钟未恢复后的 3000 / 4000 下跌风控;止盈卖点另含“第二天走出趋势性上涨则卖出”和“趋势上涨后回到五日线反复低吸”。
+2. 旧全量包 `tools/perform_exit_ai_review.py` 的核心 SELL 裁决主要围绕 `STOP5_SELL_SIGNAL_CANDIDATE` 和 `TREND_TAKE_PROFIT_SIGNAL_CANDIDATE`,使用 `entry_price * 0.95` 和 `entry_price * 1.05` 作为主要阈值。
+3. 独立统计旧包 `sell_decision_log.csv`:`STOP5_SELL_SIGNAL_CANDIDATE` 394 条,`TREND_TAKE_PROFIT_SIGNAL_CANDIDATE` 305 条,`HOLD_REVIEW_CANDIDATE` 10 条,`THREE_HIGH_NOT_RISING_SIGNAL_CANDIDATE` 1 条;`AI_SELL_CONFIRMED` 692 条。
+4. 独立统计旧包 `order_ledger.csv`:BUY 710 条、SELL 692 条;`ADD_ROLLING_LOW_BUY=0`,`SELL_ROLLING=0`,全部 BUY 的 `position_delta_pct` 为 `0.04`,未体现同一持仓后的滚动低吸加仓链路。
+
+检查结果:
+
+| 检查项 | 结论 | 说明 |
+|---|---|---|
+| 反馈定性 | PASS | 同意定性为 P0 阻断完整蓝本结论,而不是旧包内部一致性错误。旧包内部的候选、图片、账本和 V0 代理卖点可继续留档,但不能再对外解释为完整实现 `笔记精简版.md`。 |
+| V0 / V1 边界 | PASS | 同意旧全量包、最终结论包和 234 增强图片包保留为 V0 代理卖点口径证据;必须降读为候选池、图片入口、账本结构和代理卖点回放证据。 |
+| 新增 V1 事项 | PASS | 同意新增 `ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609`,使用独立 run `RUN-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609-001`,不得覆盖旧包。 |
+| 规则拆解方向 | PASS_WITH_HELD | 设计按精准卖点、趋势止盈、市场风险卖点和滚动渣男低吸拆解,方向正确;但关键执行语义仍停留在“需在 run_config 中冻结”层,尚不足以直接开跑。 |
+| 证据和产物设计 | PASS_WITH_HELD | 已要求 `strict_rule_mapping.csv`、卖点 / 滚动信号账本、订单账本、lot 账本、账户账本、case summary、boundary table、case image board、自检和 manifest,框架可接受;但需补充字段级验收和自检细则。 |
+| 未来函数 / T+1 / 边界 | PASS_WITH_HELD | 设计保留 T+1、数据缺口、市场风险数据缺口和执行审核前不得引用新收益结论的边界;但趋势上涨、回踩五日线和市场开盘 10 分钟恢复的决策时点仍需冻结。 |
+| 是否允许执行 V1 run | HELD | 暂不允许直接执行 V1 run。只允许做设计返修、run_config 草案、规则映射和小样本验证准备;补齐下列冻结项并复审通过前,不得启动正式 V1 run。 |
+
+必须返修项:
+
+1. 冻结均线口径:明确卖点中“均线”是分时均线、VWAP、MA5、MA20 还是其他口径;写明计算字段、分钟线窗口、突破 / 未突破的容差阈值、两次反弹的最小间隔和“有效突破”判定。
+2. 冻结开盘价反弹失败口径:明确“开盘后下跌”“反弹上冲”“连开盘价都破不了”的时间段、反弹段识别、最高价字段、容差阈值和触发卖出时间。
+3. 冻结量比 / 放量滞涨口径:明确开盘一分钟量比的基准、缺历史分钟量时的替代数据、涨幅 1%-2% 的参考价、成交量异常边界和一分钟内卖出的可成交价。
+4. 冻结三日高点不抬高口径:明确三日是卖出判断日前 2 日加当日 10:40 前,还是最近三个完整交易日;明确高点字段、逐步抬高容差、10:40 前触发时点和 T+1 处理。
+5. 冻结趋势性上涨口径:补充 `笔记精简版.md` 中“3%以上、5%以下卖出;快速冲过 5% 观望;超过 8% 不动;回落到 5% 以下、3% 以上卖出”的执行化规则;不得只用“日内高低点抬升、开盘价上方运行”等概括语替代。
+6. 冻结五日线附近和止跌放量口径:明确 MA5 计算、回踩距离阈值、止跌形态、放量基准、确认分钟、人工复核字段,以及无法确认时 `ROLLING_LOW_BUY_REVIEW_HELD` 的记录要求。
+7. 冻结滚动低吸仓位和 lot 规则:明确已有持仓定义、低吸次数上限、每次一份仓的 `tranche_index`、同票多 lot T+1、后续卖出配对、最后一份保留和人工放行字段。
+8. 冻结市场开盘 10 分钟广度口径:明确全 A 下跌家数数据源、采样时间、恢复判定、3000 下跌减半和 4000 下跌全清的账户级执行、无分钟级广度数据时的 `MARKET_RISK_DATA_GAP_HELD` 处理。
+9. 补充字段级产物规范:在设计或 run_config 草案中列出 `strict_sell_signal_ledger.csv`、`rolling_low_buy_signal_ledger.csv`、`strict_order_ledger.csv`、`strict_position_lot_ledger.csv`、`strict_boundary_table.csv` 的关键字段和取值枚举,确保审核员能按字段复核。
+10. 补充自检硬项:至少覆盖“不得只出现 +5% / -5% 卖点”“每个精准卖点分支有候选 / 触发 / HELD 计数”“滚动低吸扫描范围、候选数、确认数、HELD 数、订单数一致”“order / lot / account 多次 BUY 可复算”“V0 / V1 结果包不混写”。
+11. 补充执行范围策略:说明 V1 首轮是先小样本语义验证还是直接全量;审核建议先做小样本 / 分层样本验证,确认各分支和滚动低吸账本可审后,再设计全量重跑。
+
+审核结论:
+HELD / 暂缓通过。
+
+允许动作:
+1. 允许保留问题定性:`ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001` 为 P0 阻断完整蓝本结论。
+2. 允许将旧包降读为 V0 代理卖点口径证据、图片入口和账本结构证据。
+3. 允许继续完善 `ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609` 的 V1 设计、run_config 草案、规则映射、字段规范和自检清单。
+4. 不允许直接执行正式 V1 run;不得生成或引用 V1 成功率、收益率、胜率、回撤或策略有效性结论。
+
+复审条件:
+分析侧完成上述必须返修项后,重新提交设计复审。复审通过后,才允许进入 V1 返修执行准备或小样本语义验证;正式全量 V1 run 如扩大范围或改变规则,仍需按设计变更重新送审。
+
+是否需要问题记录:
+需要。继续使用 `ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001` 跟踪;本次不新增独立问题 ID。
+
+## 2026-06-10 11:39:17 AUDIT-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260610-DESIGN-002:无忌精准卖点与滚动渣男返修设计 V2 审核
+
+审计对象:
+`DESIGN-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609` / `ana-doc/wuji/无忌交易系统精准卖点与滚动渣男返修设计.md`(2026-06-10 基版更新后修订版)
+
+审计类型:
+设计审核 / V2 基版更新复审。
+
+审核员:
+case_analysis.reviewer / xiaoshen
+
+来源消息:
+case_analysis.analyst 通过 MB-X 消息 `msg_20260610113714208_21eadfa6` 提交新版设计审核。该消息明确 2026-06-10 基版更新后,本次新版请求覆盖同事项前两条旧请求 `msg_20260609140926746_fb567c65` 和 `msg_20260609160422940_a79414eb`。`AUDIT-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609-DESIGN-001` 保留为旧基版草案审核记录;当前有效设计审核结论以本审计为准。
+
+上游依据:
+- `ana-doc/wuji/profile/source_note/笔记精简版.md`:2026-06-10 已新增“详解趋势性上涨”。
+- `ana-doc/wuji/无忌交易系统案例执行流程.md`
+- `ana-doc/案例审核规范.md` 第 3.1.3 “精准卖点与滚动渣男硬审项”
+- `ana-doc/wuji/无忌交易系统精准卖点与滚动渣男返修设计.md`
+- `ana-doc/案例问题记录.md` 中 `ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001`
+
+关键基版变化:
+`笔记精简版.md` 已明确趋势性上涨的执行语义:非快速上涨时 3% 以上、5% 以下卖出;3% 以上快速冲过 5% 时不能卖、进入观望;超过 8% 不动;若回落到 5% 以下且仍在 3% 以上卖出。该变化强化了旧 V0 机械 `+5%` 止盈的代理属性,且在“快速冲过 5%”场景下旧 V0 可能与新基版相反。
+
+检查结果:
+
+| 检查项 | 结论 | 说明 |
+|---|---|---|
+| 新版趋势止盈状态机 | PASS | `SELL_TREND_3_TO_5_GRADUAL`、`TREND_FAST_BREAKOUT_5_WATCH`、`TREND_ABOVE_8_HOLD`、`SELL_TREND_PULLBACK_3_TO_5` 和 `SELL_TREND_TAKE_PROFIT_REVIEW` 能覆盖 3% / 5% / 8%、快速冲高、观望和回落卖出的基版语义,方向合理。 |
+| `+5%` 机械止盈纠偏 | PASS | 设计明确 `+5%` 不再作为固定止盈卖点;快速冲过 5% 时不得直接卖出,符合新版基版。 |
+| V0 / V1 边界 | PASS | 同意旧全量包、最终结论包和 234 增强图片包继续保留为 V0 代理卖点证据、图片入口和账本结构证据;不得解释为完整笔记 baseline。 |
+| 精准卖点拆解 | PASS_WITH_CONDITION | 已覆盖买入理由跌破止损线、两次反弹不过均线、反弹不过开盘价、放量滞涨、三日高点不抬高和市场风险卖点;执行前仍需在 `strict_sell_rolling_run_config.md/json` 固化字段和阈值。 |
+| 滚动渣男 / 五日线低吸 | PASS_WITH_CONDITION | 触发链和订单 / lot 设计方向正确,要求 `ADD_ROLLING_LOW_BUY` 或 `ROLLING_LOW_BUY_REVIEW_HELD`;执行前仍需冻结五日线附近、止跌放量、仓位上限和多 lot 卖出配对口径。 |
+| 产物和自检设计 | PASS_WITH_CONDITION | 结果包、信号账本、订单账本、lot 账本、账户账本、boundary table、图片入口、自检和 manifest 结构可接受;执行准备阶段必须补字段枚举和自检硬项。 |
+| 是否允许进入 V1 返修执行准备 | PASS_WITH_CONDITION | 允许进入 V1 执行准备,包括冻结 run_config、实现脚本、生成小样本 / 分层验证材料和准备执行包;但执行审核通过前不得引用任何 V1 业绩结论。 |
+
+设计审核结论:
+通过 / 有条件允许进入 V1 执行准备。
+
+允许动作:
+1. 允许将 `ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609` 标记为“V1 设计审核通过 / 可进入执行准备”。
+2. 允许按新版设计生成 `strict_sell_rolling_run_config.md/json`、`strict_rule_mapping.csv`、卖点和滚动低吸信号账本、订单 / lot / 账户账本、图片入口、自检和 manifest。
+3. 允许先做小样本或分层语义验证;如分析侧选择直接构建全量 V1 执行包,必须保证下列执行前强制冻结项已经写入 run_config 和自检,否则执行审核将 HELD。
+4. 允许旧 V0 包继续作为候选池、图片入口、账本结构和代理卖点回放证据保留。
+
+执行前强制冻结项:
+
+1. “快速上涨”口径:冻结分钟窗口、涨幅计算价源(最高价 / 收盘价 / VWAP 或其他)、连续性要求、从 3% 到穿越 5% 的最长用时、快速冲高后的观察开始时间。
+2. 3% / 5% / 8% 阈值使用方式:冻结参考基准价、区间进入时间、触发价格、触发时间、回落卖出条件、超过 8% 后“不动”的终止或继续观察条件。
+3. 观察结束条件:冻结 `TREND_FAST_BREAKOUT_5_WATCH` 后何时进入 `TREND_ABOVE_8_HOLD`、`SELL_TREND_PULLBACK_3_TO_5`、`SELL_TREND_TAKE_PROFIT_REVIEW`、窗口末估值或人工待审。
+4. 均线口径:冻结卖点中“均线”的类型、计算字段、分钟线窗口、两次反弹识别、有效突破阈值和未突破容差。
+5. 放量 / 量比口径:冻结开盘一分钟量比基准、缺失数据处理、涨幅 1%-2% 的参考价、放量滞涨触发和卖出可成交价。
+6. 三日高点口径:冻结三日范围、当日 10:40 前高点计算、高点逐步抬高容差、触发时间和 T+1 处理。
+7. 市场风险卖点:冻结开盘 10 分钟全 A 下跌家数数据源、采样时间、恢复判定、3000 下跌减半 / 4000 下跌全清的账户级执行,以及无分钟级广度数据时的 `MARKET_RISK_DATA_GAP_HELD`。
+8. 五日线附近和止跌放量:冻结 MA5 计算、接近阈值、止跌形态、放量基准、确认分钟、人工复核字段和 `ROLLING_LOW_BUY_REVIEW_HELD`。
+9. 滚动低吸仓位 / lot 规则:冻结已有合法持仓定义、低吸次数上限、每次一份仓的 `tranche_index`、同票多 lot T+1、后续卖出配对、最后一份保留和人工放行字段。
+10. 字段与自检:冻结 `strict_sell_signal_ledger.csv`、`rolling_low_buy_signal_ledger.csv`、`strict_order_ledger.csv`、`strict_position_lot_ledger.csv`、`strict_boundary_table.csv` 的关键字段和枚举;自检必须覆盖“不得只出现 +5% / -5% 卖点”、各卖点分支候选 / 触发 / HELD 计数、滚动低吸扫描范围 / 候选数 / 确认数 / HELD 数 / 订单数一致、order / lot / account 多次 BUY 可复算、V0 / V1 结果包不混写。
+
+禁止边界:
+1. 设计审核通过不等于 V1 执行审核通过。
+2. V1 执行审核通过前,不得引用 V1 成功率、收益率、胜率、回撤或策略有效性结论。
+3. 不得把旧 V0 的 `+5% / -5%` 代理卖点读成新版完整趋势止盈或完整精准卖点。
+4. 如果执行阶段未能冻结上述口径、缺少字段、自检未覆盖、图片无法从单 case 看懂买入 / 精准卖点 / 滚动低吸 / 结果链路,执行审核必须 HELD。
+
+后续要求:
+V1 执行包生成后必须提交 `case_analysis.reviewer` 执行审核。执行审核重点为:run_config 语义冻结、趋势状态机实际实现、精准卖点各分支证据、滚动低吸订单 / lot / 账户流水、T+1、数据缺口、图片入口、自检和 manifest。
+
+是否需要问题记录:
+继续使用 `ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001` 跟踪;本次不新增独立问题 ID。
diff --git "a/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md" "b/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md"
index ecb8580..d273a5e 100644
--- "a/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md"
+++ "b/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md"
@@ -326,3 +326,63 @@
审核通过回写:
2026-06-09 `case_analysis.reviewer` 返回执行审核通过。审核确认增强包范围与来源 234 个 `PRIMARY_STRICT_CLOSED_CASE` 完全一致;1170 张选股增强日K图满足“信号日前 90 个交易日 + 信号日后 10 个交易日”并标注 `audit_view`;658 张买入日整日分钟折线图与来源 BUY 订单一一对应;658 张卖出日整日分钟折线图与来源 SELL 订单一一对应;根和 case 级 `case_image_board.md` 可作为同事查看 234 个严格闭合案例的正式增强图片入口。链接审计、缺失输入、manifest 和自检均通过。边界不变:增强包只增强图片阅读入口,不改变候选池、买卖裁决、账本、收益口径或 `RETURN_STAT_READY=false`,不得外推为完整 baseline 结论。
+
+## 2026-06-09 ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609:精准卖点与滚动渣男返修
+
+创建人员:
+case_analysis.analyst / laoan
+
+来源聊天记录:
+```text
+用户转述同事反馈:当前精准卖点实现不完整,更像是赚 5 个点止盈、赔 5 个点止损;滚动渣男策略没有实现,只看到单次买入和卖出,没有反复低吸。
+```
+
+背景:
+经复核,反馈成立。当前全量包的真实卖点执行主要由 `entry_price * 0.95` 和 `entry_price * 1.05` 代理,未完整落地 `笔记精简版.md` 中的精准卖点 1、2、3、5、7,也没有生成 `ADD_ROLLING_LOW_BUY` 或等价滚动低吸订单。
+
+目标:
+新建 V1 返修事项,重新设计并执行更贴近 `笔记精简版.md` 的精准卖点、趋势止盈和滚动渣男低吸逻辑。
+
+边界:
+旧全量包、最终结论包、234 阅读说明包和 234 增强图片包继续作为 V0 代理口径证据留档;不得再表述为已经完整实现 `笔记精简版.md` 的全部卖点和滚动渣男。V1 设计审核和执行审核通过前,不得引用 V1 成功率、收益率、胜率、回撤或策略有效性结论。
+
+关联问题:
+`ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001`
+
+设计入口:
+`ana-doc/wuji/无忌交易系统精准卖点与滚动渣男返修设计.md`
+
+当前状态:
+`STRICT_SELL_ROLLING_REPAIR_DESIGN_REVIEW_SUBMITTED`
+
+设计审核送审:
+已通过 MB-X 消息链提交 `case_analysis.reviewer`,message_id 为 `msg_20260609140926746_fb567c65`。
+
+补发送审:
+按用户要求补发同一设计审核请求,message_id 为 `msg_20260609160422940_a79414eb`。该补发不构成新设计版本。
+
+2026-06-10 基版更新:
+用户更新 `ana-doc/wuji/profile/source_note/笔记精简版.md`,新增“详解趋势性上涨”三条口径:3%-5% 非快速上涨卖出,快速冲过 5% 观望,超过 8% 不动,回落到 5% 以下且仍在 3% 以上卖出。当前返修设计已按新基版修订,2026-06-09 的宽泛趋势止盈送审请求被新基版覆盖,需重新提交新版设计审核。
+
+当前状态:
+`STRICT_SELL_ROLLING_REPAIR_DESIGN_REVIEW_SUBMITTED_V2_SOURCE_NOTE_UPDATE`
+
+新版设计审核送审:
+已通过 MB-X 消息链提交 `case_analysis.reviewer`,message_id 为 `msg_20260610113714208_21eadfa6`,dispatch_status 为 `delivered_to_visible_thread`。
+
+新版设计审核通过:
+2026-06-10 `case_analysis.reviewer` 返回设计审核通过 / 有条件允许进入 V1 执行准备。
+
+- 审计 ID:`AUDIT-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260610-DESIGN-002`
+- 审核结果消息:`msg_20260610114329830_a83176f4`
+- 当前有效送审:`msg_20260610113714208_21eadfa6`
+- 旧基版送审:`msg_20260609140926746_fb567c65`、`msg_20260609160422940_a79414eb` 已被 2026-06-10 基版更新覆盖
+
+允许动作:
+允许进入 V1 执行准备,先冻结 `strict_sell_rolling_run_config.md/json`、字段规范、自检项和结果包结构,再生成 V1 执行包并提交执行审核。
+
+当前状态:
+`STRICT_SELL_ROLLING_REPAIR_DESIGN_REVIEW_PASSED_EXEC_PREP_ALLOWED`
+
+边界:
+设计审核通过不等于 V1 执行审核通过;V1 执行审核通过前不得引用 V1 成功率、收益率、胜率、回撤或策略有效性结论。
diff --git "a/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md"
index bc1c950..b0428c9 100644
--- "a/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md"
+++ "b/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md"
@@ -1784,3 +1784,132 @@
保留边界:
本包只增强图片阅读入口,不改变候选池、买卖裁决、账本、收益口径或 `RETURN_STAT_READY=false`;不得把 234 个 case 外推为完整 743 个 entry date 的无边界表现,不得把主口径读数写成完整 baseline 成功率或收益率,不得声称无忌 baseline 策略有效性已经被证明。
+
+## 2026-06-09 ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609:同事反馈后的实现缺口登记与返修设计
+
+### 反馈来源
+
+用户转述同事反馈:
+
+1. 当前精准卖点实现不完整,更像是赚 5 个点止盈、赔 5 个点止损。
+2. 当前未看到滚动渣男中的趋势上涨后回到五日线反复低吸,只看到单次买入和卖出。
+
+### 复核动作
+
+1. 重新读取 `ana-doc/wuji/profile/source_note/笔记精简版.md` 中“精准卖点的规则”和“止盈卖点 / 滚动渣男”原文。
+2. 检索 `ana-doc/wuji/无忌笔记案例分析方案.md` 和 `ana-doc/wuji/无忌交易系统案例执行流程.md`,确认文档层面已经要求覆盖精准卖点、滚动渣男、五日线低吸和市场风险卖点。
+3. 读取 `ana-data/result/RUN-ANA-WUJI-FULL-2023-2026-20260608-001/tools/perform_exit_ai_review.py`,确认真实 SELL 裁决主要使用 `entry_price * 0.95` 与 `entry_price * 1.05`。
+4. 检索全量包脚本和账本,未发现 `ADD_ROLLING_LOW_BUY` 或等价滚动低吸订单。
+
+### 复核结论
+
+同事反馈成立。当前已审核全量包和 234 增强图片包只能作为 V0 代理口径证据留档;不能再表述为已经完整实现 `笔记精简版.md` 的精准卖点和滚动渣男。
+
+### 已登记问题
+
+`ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001`
+
+严重级别:P0 阻断完整蓝本结论。
+
+### 已新增设计
+
+`ana-doc/wuji/无忌交易系统精准卖点与滚动渣男返修设计.md`
+
+设计 ID:`DESIGN-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609`
+
+计划 run:`RUN-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609-001`
+
+### 当前状态
+
+`STRICT_SELL_ROLLING_REPAIR_DESIGN_REVIEW_SUBMITTED`
+
+### 设计审核送审
+
+已通过 MB-X 消息链提交 `case_analysis.reviewer` 做设计审核:
+
+- message_id:`msg_20260609140926746_fb567c65`
+- dispatch:`auto`
+- 审核对象:`DESIGN-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609`
+
+按用户要求已补发一次同内容设计审核请求:
+
+- message_id:`msg_20260609160422940_a79414eb`
+- dispatch:`auto`
+- 说明:前序审核员 agent step 超时,补发请求用于提醒审核员重新处理;两条消息均指向同一设计审核对象,不构成新设计版本。
+
+审核通过前不得执行 V1 返修 run,不得引用任何 V1 收益、成功率、胜率、回撤或策略有效性结论。
+
+### 2026-06-10 基版更新处理
+
+用户更新 `ana-doc/wuji/profile/source_note/笔记精简版.md`,在“止盈卖点”下新增“详解趋势性上涨”:
+
+1. 如果涨不是快速上涨,趋势性上涨在 3% 以上、5% 以下,则卖出。
+2. 如果上涨到 3% 以上快速冲过 5%,则不能卖,观望;如果超过 8% 就不要动。
+3. 如果回落到 5% 以下、3% 以上,则卖出。
+
+影响判断:
+
+1. 2026-06-09 返修设计中“趋势性上涨至少需要记录日内高低点抬升、均线 / 开盘价上方运行”等宽泛口径已不足以覆盖最新基版。
+2. 当前设计已修订为基于 3%、5%、8% 阈值和“快速冲过 5% / 回落到 3%-5% 区间”的趋势止盈状态机。
+3. `+5%` 仍不得作为机械止盈;快速冲过 5% 时反而是观望状态,不得卖出。
+4. “快速上涨”的分钟窗口、价源和观察状态必须在 run_config 冻结并提交审核。
+
+当前状态:
+
+`STRICT_SELL_ROLLING_REPAIR_DESIGN_REVIEW_SUBMITTED_V2_SOURCE_NOTE_UPDATE`
+
+下一步:
+已重新提交 `case_analysis.reviewer` 做新版设计审核:
+
+- message_id:`msg_20260610113714208_21eadfa6`
+- dispatch:`auto`
+- dispatch_status:`delivered_to_visible_thread`
+
+新版审核通过前不得执行 V1 返修 run。
+
+### 2026-06-10 新版设计审核通过回写
+
+收到 `case_analysis.reviewer` 设计审核结果:
+
+- message_id:`msg_20260610114329830_a83176f4`
+- 审计 ID:`AUDIT-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260610-DESIGN-002`
+- 审核结论:通过 / 有条件允许进入 V1 执行准备
+- 当前有效送审:`msg_20260610113714208_21eadfa6`
+- 旧基版送审:`msg_20260609140926746_fb567c65`、`msg_20260609160422940_a79414eb` 已被 2026-06-10 基版更新覆盖
+
+审核确认:
+
+1. 新版趋势止盈状态机是对基版“详解趋势性上涨”的合理执行化。
+2. `SELL_TREND_3_TO_5_GRADUAL`、`TREND_FAST_BREAKOUT_5_WATCH`、`TREND_ABOVE_8_HOLD`、`SELL_TREND_PULLBACK_3_TO_5`、`SELL_TREND_TAKE_PROFIT_REVIEW` 可作为 V1 趋势止盈状态。
+3. `+5%` 不再作为机械止盈;快速冲过 5% 时不得直接卖出,应进入观望。
+4. 旧 V0 包继续作为候选池、图片入口、账本结构和代理卖点证据留档,但不得解释为完整 `笔记精简版.md` baseline。
+
+执行前强制冻结:
+
+1. 快速上涨、3% / 5% / 8% 阈值、观察结束条件。
+2. 均线、量比 / 放量滞涨、三日高点、市场风险卖点。
+3. 五日线附近和止跌放量、滚动低吸仓位 / lot。
+4. `strict_sell_signal_ledger.csv`、`rolling_low_buy_signal_ledger.csv`、`strict_order_ledger.csv`、`strict_position_lot_ledger.csv`、`strict_boundary_table.csv` 的关键字段和枚举。
+5. 自检必须覆盖卖点分支计数、滚动低吸扫描与订单一致性、多次 BUY 可复算、V0 / V1 不混写。
+
+当前状态:
+
+`STRICT_SELL_ROLLING_REPAIR_DESIGN_REVIEW_PASSED_EXEC_PREP_ALLOWED`
+
+### 2026-06-10 趋势止盈人工裁决与图上理由补充
+
+用户补充确认:3% / 5% / 8% 趋势止盈一定要人工监控,卖点和不卖都要说清楚理由;不卖原因也必须展示在图片上,方便同事阅读。
+
+执行准备处理:
+
+1. 已将该补充写入 `ana-doc/wuji/无忌交易系统精准卖点与滚动渣男返修设计.md` 和 `ana-doc/案例分析设计.md`。
+2. V1 执行包必须采用“代码候选 + 人工裁决 + 图上中文理由”模式。
+3. 趋势候选图必须直接显示 3% / 5% / 8% 阈值、候选动作和中文理由。
+4. `HOLD_WATCH`、`HOLD_ABOVE_8` 等不卖动作必须进入账本和图片,不得只在 CSV 或日志中记录。
+5. 自检必须覆盖趋势候选图是否存在中文裁决理由,以及不卖动作是否有图上理由。
+
+下一步:
+进入 V1 执行准备,先冻结 `strict_sell_rolling_run_config.md/json`、字段规范、自检项和结果包结构;执行包生成后提交 `case_analysis.reviewer` 执行审核。
+
+边界:
+设计审核通过不等于 V1 执行审核通过;V1 执行审核通过前不得引用 V1 成功率、收益率、胜率、回撤或策略有效性结论。
diff --git "a/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md" "b/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md"
index dd0bd2c..f2cb4c5 100644
--- "a/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md"
+++ "b/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md"
@@ -1,4 +1,4 @@
-# 案例问题记录
+# 案例问题记录
创建人员:MB-X
文件职责:作为案例分析体系的问题闭环账本,记录非审计来源的案例设计、执行、数据、证据链问题;对需要跨轮跟踪的审计问题只记录索引或关联。
@@ -19,6 +19,7 @@
| ANA-ISSUE-WUJI-RETURN-STAT-EXEC-20260608-001 | ANA-WUJI-BASELINE-2023-2026 / RUN-ANA-WUJI-RETURN-STAT-PILOT-20260608-001 | 执行问题 / 代码问题 / 图片证据链问题 | P1 重要 | 已关闭 | case_analysis.analyst |
| ANA-ISSUE-WUJI-EXPAND-30-BOARD-STATUS-20260608-001 | ANA-WUJI-BASELINE-2023-2026 / RUN-ANA-WUJI-EXPAND-30-20260608-001 | 图片证据链问题 / 执行状态文案问题 | P1 重要 | 已关闭 | case_analysis.analyst |
| ANA-ISSUE-WUJI-FULL-RETURN-STAT-SCOPE-20260608-001 | ANA-WUJI-BASELINE-2023-2026 / RUN-ANA-WUJI-FULL-2023-2026-20260608-001 | 执行问题 / 收益口径分层产物缺失 / 自检覆盖不足 / case 图板 scope 文案 | P1 重要 | 已关闭 | case_analysis.analyst |
+| ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001 | ANA-WUJI-BASELINE-2023-2026 / RUN-ANA-WUJI-FULL-2023-2026-20260608-001 | 执行问题 / 蓝本实现缺口 / 卖点与滚动低吸缺失 | P0 阻断完整蓝本结论 | V1 设计审核通过 / 待 V1 执行与执行审核 | case_analysis.analyst |
| <ISSUE-ID> | <ANA-ID / CASE-ID> | <类型> | P0 / P1 / P2 / P3 | 未处理 | <责任方> |
## 2. 问题记录模板
@@ -624,3 +625,63 @@
分析侧回写:
2026-06-08 15:00:03 已按 `AUDIT-ANA-WUJI-FULL-2023-2026-20260608-EXEC-REREVIEW-002` 完成状态回写和结果包刷新。`RUN-ANA-WUJI-FULL-2023-2026-20260608-001` 当前阶段为 `FULL_2023_2026_EXECUTION_REREVIEW_PASSED_RETURN_STAT_HELD`,`summary.json` 已记录复审通过审计 ID 和消息 `msg_20260608145302303_8c8a3273`,`self_check.json` 为 29 PASS / 0 FAIL,`manifest.json` 为 12509 个文件。本问题保持已关闭;`RETURN_STAT_READY=false` 与分层引用边界继续保留。
+
+### 2026-06-09 ANA-ISSUE-WUJI-STRICT-SELL-ROLLING-GAP-20260609-001:精准卖点与滚动渣男未完整实现
+
+所属案例事项:
+`ANA-WUJI-BASELINE-2023-2026` / `RUN-ANA-WUJI-FULL-2023-2026-20260608-001` / `RUN-ANA-WUJI-STRICT-CLOSED-234-CHART-ENHANCE-20260609-001`
+
+问题类型:
+执行问题 / 蓝本实现缺口 / 卖点规则缺失 / 滚动低吸缺失 / 结论边界问题
+
+严重级别:
+P0 阻断完整蓝本结论。该问题不要求删除旧证据包,但阻断把旧包解释为“完整按 `笔记精简版.md` 实现”的结论。
+
+发现人:
+用户同事反馈;case_analysis.analyst / laoan 复核确认。
+
+来源类型:
+非审计反馈。
+
+关联审计:
+旧包相关审计包括 `AUDIT-ANA-WUJI-FULL-2023-2026-20260608-EXEC-REREVIEW-002`、`AUDIT-ANA-WUJI-FINAL-CONCLUSION-20260608-EXEC-001`、`AUDIT-ANA-WUJI-STRICT-CLOSED-234-CHART-ENHANCE-20260609-EXEC-001`。本问题为审计通过后的新反馈,不推翻旧审计对旧包内部一致性、图片和账本的通过判断,但改变旧包的可解释边界。
+
+证据:
+1. `profile/source_note/笔记精简版.md` 中“精准卖点的规则”和“滚动渣男”原文。
+2. `ana-doc/wuji/无忌笔记案例分析方案.md` 第 128-140 行附近已将精准卖点、市场风险、趋势止盈和滚动渣男列为 baseline 对齐项。
+3. `ana-doc/wuji/无忌交易系统案例执行流程.md` 第 501-526 行附近要求记录 `SELL_RISK`、`SELL_TAKE_PROFIT`、`SELL_ROLLING`、`ADD_ROLLING_LOW_BUY` 等动作。
+4. `ana-data/result/RUN-ANA-WUJI-FULL-2023-2026-20260608-001/tools/perform_exit_ai_review.py` 中真实 SELL 逻辑核心使用 `entry_price * 0.95` 和 `entry_price * 1.05`。
+5. `ana-data/result/RUN-ANA-WUJI-FULL-2023-2026-20260608-001/cases/*/case_story_board.md` 中大量 SELL 原因写为“触及买入价-5%硬止损线”或“价格达到买入价+5%并保持强于开盘方向”。
+6. 当前全量包未发现 `ADD_ROLLING_LOW_BUY` 或等价滚动低吸订单。
+
+问题描述:
+当前执行实现没有完整覆盖 `笔记精简版.md` 的精准卖点:开盘下跌后两次反弹不过均线、反弹不过开盘价、开盘一分钟高量比但涨幅弱、10:40 前三日高点未逐步抬高、大盘开盘 10 分钟下杀后的减半 / 全清等规则均未形成完整执行账本。当前“趋势止盈”也主要由 `+5%` 价格阈值代理,未充分证明“第二天走出趋势性上涨”。滚动渣男 / 五日线低吸没有形成新增低吸订单、仓位变化和 lot 账本。
+
+影响:
+1. 旧全量包和 234 增强图片包仍可作为候选池、图片入口、账本结构和 V0 代理卖点回放证据。
+2. 旧包不得再对外表述为已经完整实现 `笔记精简版.md` 的精准卖点和滚动渣男。
+3. 旧包中的 234 个 `PRIMARY_STRICT_CLOSED_CASE` 只能理解为“在 V0 代理卖点口径下严格闭合的子集”,不是完整笔记 baseline 的最终结论。
+4. 完整成功率、收益率、胜率、回撤和策略有效性仍不得引用;若需要回答完整 baseline,需要 V1 返修设计、执行和审核。
+
+建议修复:
+1. 新建 `DESIGN-WUJI-STRICT-SELL-ROLLING-REPAIR-20260609`,冻结精准卖点和滚动渣男 V1 执行口径。
+2. 将 `+5%` / `-5%` 作为分层候选,而不是全部卖点的唯一代理。
+3. 为精准卖点 1、2、3、5、7 分别生成候选账本、裁决日志、图片证据和边界表。
+4. 实现 `ADD_ROLLING_LOW_BUY`:已有持仓、趋势上涨、回到五日线附近、止跌放量后按一份仓低吸,并新建 lot。
+5. 重新执行受影响范围,生成新的 V1 结果包;旧 V0 包保留不覆盖。
+6. V1 设计和执行均必须送 `case_analysis.reviewer` 审核。
+
+当前状态:
+V1 设计审核通过 / 待 V1 执行与执行审核。已新增并修订 `ana-doc/wuji/无忌交易系统精准卖点与滚动渣男返修设计.md`;问题仍未关闭,旧 V0 包继续降读。
+
+2026-06-10 基版更新:
+用户更新 `ana-doc/wuji/profile/source_note/笔记精简版.md`,在“止盈卖点”下新增“详解趋势性上涨”。新增口径明确:非快速上涨时 3% 以上、5% 以下卖出;3% 以上快速冲过 5% 时不能卖,进入观望;超过 8% 不动;若回落到 5% 以下且仍在 3% 以上卖出。该更新强化本问题判断:旧 V0 中机械 `+5%` 止盈不仅不完整,而且与新基版“快速冲过 5% 不能卖”的口径可能相反。返修设计已更新为基于 3% / 5% / 8% 和快速冲高 / 回落状态的趋势止盈状态机,并已重新提交设计审核。
+
+设计审核:
+2026-06-10 `case_analysis.reviewer` 完成新版设计审核,审计 ID 为 `AUDIT-ANA-WUJI-STRICT-SELL-ROLLING-REPAIR-20260610-DESIGN-002`。审核结论为通过 / 有条件允许进入 V1 执行准备。允许按新版设计生成 `strict_sell_rolling_run_config.md/json`、规则映射、卖点和滚动低吸信号账本、订单 / lot / 账户账本、图片入口、自检和 manifest;执行准备阶段必须冻结“快速上涨”、3% / 5% / 8% 阈值、观察结束条件、均线、量比、三日高点、市场开盘 10 分钟广度、五日线附近、止跌放量、滚动低吸仓位 / lot 规则和字段 / 自检枚举。V1 执行审核通过前,不得引用 V1 成功率、收益率、胜率、回撤或策略有效性结论。
+
+复审结论:
+设计审核通过 / 有条件允许进入 V1 执行准备;待 V1 执行包生成后提交执行审核。执行审核通过前,本问题不得关闭,不得引用任何 V1 业绩结论。
+
+关闭条件:
+V1 设计审核通过、V1 执行包生成、V1 执行审核通过,并明确旧 V0 包与新 V1 包的结论边界;若部分笔记语义因数据不可得无法执行,必须在 boundary table 和最终说明中显式保留,且经审核员确认可接受。
diff --git a/mbx.project.yaml b/mbx.project.yaml
index 1eec875..0ab749a 100644
--- a/mbx.project.yaml
+++ b/mbx.project.yaml
@@ -40,15 +40,15 @@
id: 019e96a5-1ca1-7290-9ea9-57415b6db956
status: active
created_at: '2026-06-05T15:19:45+08:00'
- updated_at: '2026-06-07T13:12:25+08:00'
+ updated_at: '2026-06-10T13:31:10+08:00'
created_by: workspace-admin
provider: codex
delivery_mode: codex_app_server_remote_tui
- process_id: 25744
+ process_id: 63788
session_file: C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-17-43-019e96a5-1ca1-7290-9ea9-57415b6db956.jsonl
thread_id: 019e96a5-1ca1-7290-9ea9-57415b6db956
app_server_url: ws://127.0.0.1:4570
- remote_tui_pid: 25744
+ remote_tui_pid: 63788
status: active
required_skills:
- mbx-governance
@@ -95,15 +95,15 @@
id: 019e96a6-f8d4-7101-9eb2-aa2aacd06390
status: active
created_at: '2026-06-05T15:21:47+08:00'
- updated_at: '2026-06-07T12:40:03+08:00'
+ updated_at: '2026-06-10T11:30:07+08:00'
created_by: workspace-admin
provider: codex
delivery_mode: codex_app_server_remote_tui
- process_id: 61744
+ process_id: 20144
session_file: C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-19-45-019e96a6-f8d4-7101-9eb2-aa2aacd06390.jsonl
thread_id: 019e96a6-f8d4-7101-9eb2-aa2aacd06390
app_server_url: ws://127.0.0.1:4570
- remote_tui_pid: 61744
+ remote_tui_pid: 20144
status: active
audit_entry: ana-doc/案例审计报告.md
target_scopes:
@@ -164,15 +164,15 @@
id: 019e96a5-1ca1-7290-9ea9-57415b6db956
status: active
created_at: '2026-06-05T15:19:45+08:00'
- updated_at: '2026-06-07T13:12:25+08:00'
+ updated_at: '2026-06-10T11:29:05+08:00'
created_by: workspace-admin
provider: codex
delivery_mode: codex_app_server_remote_tui
- process_id: 25744
+ process_id: 66600
session_file: C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-17-43-019e96a5-1ca1-7290-9ea9-57415b6db956.jsonl
thread_id: 019e96a5-1ca1-7290-9ea9-57415b6db956
app_server_url: ws://127.0.0.1:4570
- remote_tui_pid: 25744
+ remote_tui_pid: 66600
status: active
dev_target: ana
target_scopes:
@@ -231,15 +231,15 @@
id: 019e96a6-f8d4-7101-9eb2-aa2aacd06390
status: active
created_at: '2026-06-05T15:21:47+08:00'
- updated_at: '2026-06-07T12:40:03+08:00'
+ updated_at: '2026-06-10T11:30:07+08:00'
created_by: workspace-admin
provider: codex
delivery_mode: codex_app_server_remote_tui
- process_id: 61744
+ process_id: 20144
session_file: C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-19-45-019e96a6-f8d4-7101-9eb2-aa2aacd06390.jsonl
thread_id: 019e96a6-f8d4-7101-9eb2-aa2aacd06390
app_server_url: ws://127.0.0.1:4570
- remote_tui_pid: 61744
+ remote_tui_pid: 20144
status: active
dev_target: ana
audit_entry: ana-doc/案例审计报告.md
@@ -295,15 +295,15 @@
id: 019e96a5-1ca1-7290-9ea9-57415b6db956
status: active
created_at: '2026-06-05T15:19:45+08:00'
- updated_at: '2026-06-07T13:12:25+08:00'
+ updated_at: '2026-06-10T11:29:05+08:00'
created_by: workspace-admin
provider: codex
delivery_mode: codex_app_server_remote_tui
- process_id: 25744
+ process_id: 66600
session_file: C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-17-43-019e96a5-1ca1-7290-9ea9-57415b6db956.jsonl
thread_id: 019e96a5-1ca1-7290-9ea9-57415b6db956
app_server_url: ws://127.0.0.1:4570
- remote_tui_pid: 25744
+ remote_tui_pid: 66600
status: active
target_scopes:
- exp-doc
@@ -353,15 +353,15 @@
id: 019e96a6-f8d4-7101-9eb2-aa2aacd06390
status: active
created_at: '2026-06-05T15:21:47+08:00'
- updated_at: '2026-06-07T12:40:03+08:00'
+ updated_at: '2026-06-10T11:30:07+08:00'
created_by: workspace-admin
provider: codex
delivery_mode: codex_app_server_remote_tui
- process_id: 61744
+ process_id: 20144
session_file: C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-19-45-019e96a6-f8d4-7101-9eb2-aa2aacd06390.jsonl
thread_id: 019e96a6-f8d4-7101-9eb2-aa2aacd06390
app_server_url: ws://127.0.0.1:4570
- remote_tui_pid: 61744
+ remote_tui_pid: 20144
status: active
audit_entry: exp-doc/实验审计报告.md
target_scopes:
@@ -422,15 +422,15 @@
id: 019e96a5-1ca1-7290-9ea9-57415b6db956
status: active
created_at: '2026-06-05T15:19:45+08:00'
- updated_at: '2026-06-07T13:12:25+08:00'
+ updated_at: '2026-06-10T11:29:05+08:00'
created_by: workspace-admin
provider: codex
delivery_mode: codex_app_server_remote_tui
- process_id: 25744
+ process_id: 66600
session_file: C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-17-43-019e96a5-1ca1-7290-9ea9-57415b6db956.jsonl
thread_id: 019e96a5-1ca1-7290-9ea9-57415b6db956
app_server_url: ws://127.0.0.1:4570
- remote_tui_pid: 25744
+ remote_tui_pid: 66600
status: active
dev_target: exp
target_scopes:
@@ -489,15 +489,15 @@
id: 019e96a6-f8d4-7101-9eb2-aa2aacd06390
status: active
created_at: '2026-06-05T15:21:47+08:00'
- updated_at: '2026-06-07T12:40:03+08:00'
+ updated_at: '2026-06-10T11:30:07+08:00'
created_by: workspace-admin
provider: codex
delivery_mode: codex_app_server_remote_tui
- process_id: 61744
+ process_id: 20144
session_file: C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-19-45-019e96a6-f8d4-7101-9eb2-aa2aacd06390.jsonl
thread_id: 019e96a6-f8d4-7101-9eb2-aa2aacd06390
app_server_url: ws://127.0.0.1:4570
- remote_tui_pid: 61744
+ remote_tui_pid: 20144
status: active
dev_target: exp
audit_entry: exp-doc/实验审计报告.md
@@ -543,15 +543,15 @@
id: 019e96a5-1ca1-7290-9ea9-57415b6db956
status: active
created_at: '2026-06-05T15:19:45+08:00'
- updated_at: '2026-06-07T13:12:25+08:00'
+ updated_at: '2026-06-10T13:31:10+08:00'
created_by: workspace-admin
provider: codex
delivery_mode: codex_app_server_remote_tui
- process_id: 25744
+ process_id: 63788
session_file: C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-17-43-019e96a5-1ca1-7290-9ea9-57415b6db956.jsonl
thread_id: 019e96a5-1ca1-7290-9ea9-57415b6db956
app_server_url: ws://127.0.0.1:4570
- remote_tui_pid: 25744
+ remote_tui_pid: 63788
status: active
- id: xiaoshen
name: 案例审核员
@@ -577,15 +577,15 @@
id: 019e96a6-f8d4-7101-9eb2-aa2aacd06390
status: active
created_at: '2026-06-05T15:21:47+08:00'
- updated_at: '2026-06-07T12:40:03+08:00'
+ updated_at: '2026-06-10T11:30:07+08:00'
created_by: workspace-admin
provider: codex
delivery_mode: codex_app_server_remote_tui
- process_id: 61744
+ process_id: 20144
session_file: C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-19-45-019e96a6-f8d4-7101-9eb2-aa2aacd06390.jsonl
thread_id: 019e96a6-f8d4-7101-9eb2-aa2aacd06390
app_server_url: ws://127.0.0.1:4570
- remote_tui_pid: 61744
+ remote_tui_pid: 20144
status: active
systems:
- id: case_analysis
diff --git a/scripts/restore-sessions/00-start-codex-app-server-4570.bat b/scripts/restore-sessions/00-start-codex-app-server-4570.bat
new file mode 100644
index 0000000..9318ea0
--- /dev/null
+++ b/scripts/restore-sessions/00-start-codex-app-server-4570.bat
@@ -0,0 +1,47 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X registry-aware Codex app-server start helper.
+set "WORKSPACE_ROOT=D:\manage_system"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "APP_SERVER_URL=ws://127.0.0.1:4570"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKSPACE_ROOT%"
+echo [MB-X] Starting or reusing Codex app-server at %APP_SERVER_URL%
+python -m mbx.cli codex-server start --listen "%APP_SERVER_URL%"
+echo.
+echo [MB-X] If status is already running, keep that server and run one restore-*.bat script.
+pause
diff --git a/scripts/restore-sessions/README.md b/scripts/restore-sessions/README.md
new file mode 100644
index 0000000..0fe09fc
--- /dev/null
+++ b/scripts/restore-sessions/README.md
@@ -0,0 +1,51 @@
+# MB-X session restore scripts
+
+Generated by `mbx session restore-script generate`.
+
+## Scope
+
+These scripts are registry-aware wrappers around MB-X CLI. They intentionally do **not** hardcode provider_session_id/thread_id. Runtime session ids are read from the current MB-X workspace/project configuration when the script runs.
+
+App-server URL: `ws://127.0.0.1:4570`
+
+Targets:
+
+- `laoan` -> `open-laoan.bat` / `restore-laoan.bat` (alias of `case_analysis.analyst`)
+- `xiaoshen` -> `open-xiaoshen.bat` / `restore-xiaoshen.bat` (alias of `case_analysis.reviewer`)
+- `case_analysis.analyst` -> `open-case-analysis-analyst.bat` / `restore-case-analysis-analyst.bat`
+- `case_analysis.reviewer` -> `open-case-analysis-reviewer.bat` / `restore-case-analysis-reviewer.bat`
+- `dev.developer.ana` -> `open-dev-developer-ana.bat` / `restore-dev-developer-ana.bat`
+- `dev.reviewer.ana` -> `open-dev-reviewer-ana.bat` / `restore-dev-reviewer-ana.bat`
+- `experiment.experimenter` -> `open-experiment-experimenter.bat` / `restore-experiment-experimenter.bat`
+- `experiment.reviewer` -> `open-experiment-reviewer.bat` / `restore-experiment-reviewer.bat`
+- `dev.developer.exp` -> `open-dev-developer-exp.bat` / `restore-dev-developer-exp.bat`
+- `dev.reviewer.exp` -> `open-dev-reviewer-exp.bat` / `restore-dev-reviewer-exp.bat`
+
+## Managed Session Reuse
+
+Multiple role ids can intentionally point to the same managed Codex window. Running any role wrapper in the same group opens or restores that same registered thread.
+
+- `project-wuji.laoan`: `case_analysis.analyst`, `dev.developer.ana`, `experiment.experimenter`, `dev.developer.exp`
+- `project-wuji.xiaoshen`: `case_analysis.reviewer`, `dev.reviewer.ana`, `experiment.reviewer`, `dev.reviewer.exp`
+
+## Usage
+
+1. Run `00-start-codex-app-server-4570.bat` if the Codex app-server is not running.
+2. The scripts preflight both `python` and Codex CLI (`codex.cmd` / `codex.exe` / `codex`) in the same cmd/BAT PATH used to launch the wrapper. If Codex is missing, fix PATH or set the workspace provider command to an absolute executable path before retrying.
+3. Run `open-laoan.bat` / `open-xiaoshen.bat` first for non-destructive open/reuse. It can recover stale/missing PID cases by resuming the existing thread, but it will not terminate an alive recorded PID.
+4. If status says PID is alive but the visible window is still missing or not the old-history window, run `restore-laoan.bat` / `restore-xiaoshen.bat`; it asks for `REOPEN` before calling `mbx session reopen --terminate-existing`.
+5. For audited automation only, callers may set `MBX_CONFIRM=REOPEN` before running a restore script to skip the interactive prompt. Do not use this for casual double-click operation.
+6. After open/restore, verify the visible Codex window contains the old chat history. `session history --contains` is useful evidence, but it is not a substitute for visible-window proof.
+7. Regenerate these scripts after role/session binding, project root, app-server URL, or MB-X source path changes:
+
+```powershell
+python -m mbx.cli session restore-script generate --project project-wuji
+```
+
+## Risk boundary
+
+`restore-*.bat` may terminate the recorded old remote TUI process. For `management.admin` and `management.observer`, real destructive close/reopen validation is a management high-risk action and must be recorded by the management/project workflow.
+
+Formal manual recovery guide: `doc/operation/MB-X会话窗口手动恢复指南.md`
+
+Workspace root used by generated wrappers: `D:\manage_system`
diff --git a/scripts/restore-sessions/case_analysis.analyst b/scripts/restore-sessions/case_analysis.analyst
new file mode 100644
index 0000000..3ebbf7c
--- /dev/null
+++ b/scripts/restore-sessions/case_analysis.analyst
@@ -0,0 +1 @@
+[MB-X] open-laoan - / project-wuji.laoan
diff --git a/scripts/restore-sessions/open-case-analysis-analyst.bat b/scripts/restore-sessions/open-case-analysis-analyst.bat
new file mode 100644
index 0000000..89e7188
--- /dev/null
+++ b/scripts/restore-sessions/open-case-analysis-analyst.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X non-destructive managed open helper.
+REM role: case_analysis.analyst
+REM managed_session_key: project-wuji.laoan
+REM Use this first when the recorded PID is stale/missing or when you only want safe open/reuse.
+REM It resumes the existing provider_session_id/thread_id and never terminates an alive remote TUI.
+REM If a PID is alive but the visible window is missing, use restore-*.bat instead.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Target status before open for case_analysis.analyst
+python -m mbx.cli session status --project project-wuji --role case_analysis.analyst
+echo.
+echo [MB-X] Opening/reusing visible session for case_analysis.analyst
+echo [MB-X] Use this script for stale/missing PID. Use restore-*.bat only when an alive recorded PID has no visible window.
+echo [MB-X] Command: python -m mbx.cli session open --project project-wuji --role case_analysis.analyst
+python -m mbx.cli session open --project project-wuji --role case_analysis.analyst
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session open failed with exit code %MBX_EXIT%.
+ echo [MB-X][NEXT] Read the error details above. If app-server is alive but remote_tui_start_failed reports missing executable, fix Codex CLI PATH/codex.cmd first. If a PID is alive but no window is visible, use restore-*.bat only with recorded approval.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+echo [MB-X] Target status after open for case_analysis.analyst
+python -m mbx.cli session status --project project-wuji --role case_analysis.analyst
+echo.
+echo [MB-X] Verify the visible Codex window shows old chat history. If it does not, run restore-*.bat with recorded approval.
+pause
diff --git a/scripts/restore-sessions/open-case-analysis-reviewer.bat b/scripts/restore-sessions/open-case-analysis-reviewer.bat
new file mode 100644
index 0000000..15f083a
--- /dev/null
+++ b/scripts/restore-sessions/open-case-analysis-reviewer.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X non-destructive managed open helper.
+REM role: case_analysis.reviewer
+REM managed_session_key: project-wuji.xiaoshen
+REM Use this first when the recorded PID is stale/missing or when you only want safe open/reuse.
+REM It resumes the existing provider_session_id/thread_id and never terminates an alive remote TUI.
+REM If a PID is alive but the visible window is missing, use restore-*.bat instead.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Target status before open for case_analysis.reviewer
+python -m mbx.cli session status --project project-wuji --role case_analysis.reviewer
+echo.
+echo [MB-X] Opening/reusing visible session for case_analysis.reviewer
+echo [MB-X] Use this script for stale/missing PID. Use restore-*.bat only when an alive recorded PID has no visible window.
+echo [MB-X] Command: python -m mbx.cli session open --project project-wuji --role case_analysis.reviewer
+python -m mbx.cli session open --project project-wuji --role case_analysis.reviewer
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session open failed with exit code %MBX_EXIT%.
+ echo [MB-X][NEXT] Read the error details above. If app-server is alive but remote_tui_start_failed reports missing executable, fix Codex CLI PATH/codex.cmd first. If a PID is alive but no window is visible, use restore-*.bat only with recorded approval.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+echo [MB-X] Target status after open for case_analysis.reviewer
+python -m mbx.cli session status --project project-wuji --role case_analysis.reviewer
+echo.
+echo [MB-X] Verify the visible Codex window shows old chat history. If it does not, run restore-*.bat with recorded approval.
+pause
diff --git a/scripts/restore-sessions/open-dev-developer-ana.bat b/scripts/restore-sessions/open-dev-developer-ana.bat
new file mode 100644
index 0000000..332e1ab
--- /dev/null
+++ b/scripts/restore-sessions/open-dev-developer-ana.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X non-destructive managed open helper.
+REM role: dev.developer.ana
+REM managed_session_key: project-wuji.laoan
+REM Use this first when the recorded PID is stale/missing or when you only want safe open/reuse.
+REM It resumes the existing provider_session_id/thread_id and never terminates an alive remote TUI.
+REM If a PID is alive but the visible window is missing, use restore-*.bat instead.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Target status before open for dev.developer.ana
+python -m mbx.cli session status --project project-wuji --role dev.developer.ana
+echo.
+echo [MB-X] Opening/reusing visible session for dev.developer.ana
+echo [MB-X] Use this script for stale/missing PID. Use restore-*.bat only when an alive recorded PID has no visible window.
+echo [MB-X] Command: python -m mbx.cli session open --project project-wuji --role dev.developer.ana
+python -m mbx.cli session open --project project-wuji --role dev.developer.ana
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session open failed with exit code %MBX_EXIT%.
+ echo [MB-X][NEXT] Read the error details above. If app-server is alive but remote_tui_start_failed reports missing executable, fix Codex CLI PATH/codex.cmd first. If a PID is alive but no window is visible, use restore-*.bat only with recorded approval.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+echo [MB-X] Target status after open for dev.developer.ana
+python -m mbx.cli session status --project project-wuji --role dev.developer.ana
+echo.
+echo [MB-X] Verify the visible Codex window shows old chat history. If it does not, run restore-*.bat with recorded approval.
+pause
diff --git a/scripts/restore-sessions/open-dev-developer-exp.bat b/scripts/restore-sessions/open-dev-developer-exp.bat
new file mode 100644
index 0000000..605199c
--- /dev/null
+++ b/scripts/restore-sessions/open-dev-developer-exp.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X non-destructive managed open helper.
+REM role: dev.developer.exp
+REM managed_session_key: project-wuji.laoan
+REM Use this first when the recorded PID is stale/missing or when you only want safe open/reuse.
+REM It resumes the existing provider_session_id/thread_id and never terminates an alive remote TUI.
+REM If a PID is alive but the visible window is missing, use restore-*.bat instead.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Target status before open for dev.developer.exp
+python -m mbx.cli session status --project project-wuji --role dev.developer.exp
+echo.
+echo [MB-X] Opening/reusing visible session for dev.developer.exp
+echo [MB-X] Use this script for stale/missing PID. Use restore-*.bat only when an alive recorded PID has no visible window.
+echo [MB-X] Command: python -m mbx.cli session open --project project-wuji --role dev.developer.exp
+python -m mbx.cli session open --project project-wuji --role dev.developer.exp
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session open failed with exit code %MBX_EXIT%.
+ echo [MB-X][NEXT] Read the error details above. If app-server is alive but remote_tui_start_failed reports missing executable, fix Codex CLI PATH/codex.cmd first. If a PID is alive but no window is visible, use restore-*.bat only with recorded approval.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+echo [MB-X] Target status after open for dev.developer.exp
+python -m mbx.cli session status --project project-wuji --role dev.developer.exp
+echo.
+echo [MB-X] Verify the visible Codex window shows old chat history. If it does not, run restore-*.bat with recorded approval.
+pause
diff --git a/scripts/restore-sessions/open-dev-reviewer-ana.bat b/scripts/restore-sessions/open-dev-reviewer-ana.bat
new file mode 100644
index 0000000..a512962
--- /dev/null
+++ b/scripts/restore-sessions/open-dev-reviewer-ana.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X non-destructive managed open helper.
+REM role: dev.reviewer.ana
+REM managed_session_key: project-wuji.xiaoshen
+REM Use this first when the recorded PID is stale/missing or when you only want safe open/reuse.
+REM It resumes the existing provider_session_id/thread_id and never terminates an alive remote TUI.
+REM If a PID is alive but the visible window is missing, use restore-*.bat instead.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Target status before open for dev.reviewer.ana
+python -m mbx.cli session status --project project-wuji --role dev.reviewer.ana
+echo.
+echo [MB-X] Opening/reusing visible session for dev.reviewer.ana
+echo [MB-X] Use this script for stale/missing PID. Use restore-*.bat only when an alive recorded PID has no visible window.
+echo [MB-X] Command: python -m mbx.cli session open --project project-wuji --role dev.reviewer.ana
+python -m mbx.cli session open --project project-wuji --role dev.reviewer.ana
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session open failed with exit code %MBX_EXIT%.
+ echo [MB-X][NEXT] Read the error details above. If app-server is alive but remote_tui_start_failed reports missing executable, fix Codex CLI PATH/codex.cmd first. If a PID is alive but no window is visible, use restore-*.bat only with recorded approval.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+echo [MB-X] Target status after open for dev.reviewer.ana
+python -m mbx.cli session status --project project-wuji --role dev.reviewer.ana
+echo.
+echo [MB-X] Verify the visible Codex window shows old chat history. If it does not, run restore-*.bat with recorded approval.
+pause
diff --git a/scripts/restore-sessions/open-dev-reviewer-exp.bat b/scripts/restore-sessions/open-dev-reviewer-exp.bat
new file mode 100644
index 0000000..3fdac31
--- /dev/null
+++ b/scripts/restore-sessions/open-dev-reviewer-exp.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X non-destructive managed open helper.
+REM role: dev.reviewer.exp
+REM managed_session_key: project-wuji.xiaoshen
+REM Use this first when the recorded PID is stale/missing or when you only want safe open/reuse.
+REM It resumes the existing provider_session_id/thread_id and never terminates an alive remote TUI.
+REM If a PID is alive but the visible window is missing, use restore-*.bat instead.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Target status before open for dev.reviewer.exp
+python -m mbx.cli session status --project project-wuji --role dev.reviewer.exp
+echo.
+echo [MB-X] Opening/reusing visible session for dev.reviewer.exp
+echo [MB-X] Use this script for stale/missing PID. Use restore-*.bat only when an alive recorded PID has no visible window.
+echo [MB-X] Command: python -m mbx.cli session open --project project-wuji --role dev.reviewer.exp
+python -m mbx.cli session open --project project-wuji --role dev.reviewer.exp
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session open failed with exit code %MBX_EXIT%.
+ echo [MB-X][NEXT] Read the error details above. If app-server is alive but remote_tui_start_failed reports missing executable, fix Codex CLI PATH/codex.cmd first. If a PID is alive but no window is visible, use restore-*.bat only with recorded approval.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+echo [MB-X] Target status after open for dev.reviewer.exp
+python -m mbx.cli session status --project project-wuji --role dev.reviewer.exp
+echo.
+echo [MB-X] Verify the visible Codex window shows old chat history. If it does not, run restore-*.bat with recorded approval.
+pause
diff --git a/scripts/restore-sessions/open-experiment-experimenter.bat b/scripts/restore-sessions/open-experiment-experimenter.bat
new file mode 100644
index 0000000..5b4174e
--- /dev/null
+++ b/scripts/restore-sessions/open-experiment-experimenter.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X non-destructive managed open helper.
+REM role: experiment.experimenter
+REM managed_session_key: project-wuji.laoan
+REM Use this first when the recorded PID is stale/missing or when you only want safe open/reuse.
+REM It resumes the existing provider_session_id/thread_id and never terminates an alive remote TUI.
+REM If a PID is alive but the visible window is missing, use restore-*.bat instead.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Target status before open for experiment.experimenter
+python -m mbx.cli session status --project project-wuji --role experiment.experimenter
+echo.
+echo [MB-X] Opening/reusing visible session for experiment.experimenter
+echo [MB-X] Use this script for stale/missing PID. Use restore-*.bat only when an alive recorded PID has no visible window.
+echo [MB-X] Command: python -m mbx.cli session open --project project-wuji --role experiment.experimenter
+python -m mbx.cli session open --project project-wuji --role experiment.experimenter
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session open failed with exit code %MBX_EXIT%.
+ echo [MB-X][NEXT] Read the error details above. If app-server is alive but remote_tui_start_failed reports missing executable, fix Codex CLI PATH/codex.cmd first. If a PID is alive but no window is visible, use restore-*.bat only with recorded approval.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+echo [MB-X] Target status after open for experiment.experimenter
+python -m mbx.cli session status --project project-wuji --role experiment.experimenter
+echo.
+echo [MB-X] Verify the visible Codex window shows old chat history. If it does not, run restore-*.bat with recorded approval.
+pause
diff --git a/scripts/restore-sessions/open-experiment-reviewer.bat b/scripts/restore-sessions/open-experiment-reviewer.bat
new file mode 100644
index 0000000..0d2b61a
--- /dev/null
+++ b/scripts/restore-sessions/open-experiment-reviewer.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X non-destructive managed open helper.
+REM role: experiment.reviewer
+REM managed_session_key: project-wuji.xiaoshen
+REM Use this first when the recorded PID is stale/missing or when you only want safe open/reuse.
+REM It resumes the existing provider_session_id/thread_id and never terminates an alive remote TUI.
+REM If a PID is alive but the visible window is missing, use restore-*.bat instead.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Target status before open for experiment.reviewer
+python -m mbx.cli session status --project project-wuji --role experiment.reviewer
+echo.
+echo [MB-X] Opening/reusing visible session for experiment.reviewer
+echo [MB-X] Use this script for stale/missing PID. Use restore-*.bat only when an alive recorded PID has no visible window.
+echo [MB-X] Command: python -m mbx.cli session open --project project-wuji --role experiment.reviewer
+python -m mbx.cli session open --project project-wuji --role experiment.reviewer
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session open failed with exit code %MBX_EXIT%.
+ echo [MB-X][NEXT] Read the error details above. If app-server is alive but remote_tui_start_failed reports missing executable, fix Codex CLI PATH/codex.cmd first. If a PID is alive but no window is visible, use restore-*.bat only with recorded approval.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+echo [MB-X] Target status after open for experiment.reviewer
+python -m mbx.cli session status --project project-wuji --role experiment.reviewer
+echo.
+echo [MB-X] Verify the visible Codex window shows old chat history. If it does not, run restore-*.bat with recorded approval.
+pause
diff --git a/scripts/restore-sessions/open-laoan.bat b/scripts/restore-sessions/open-laoan.bat
new file mode 100644
index 0000000..89f8430
--- /dev/null
+++ b/scripts/restore-sessions/open-laoan.bat
@@ -0,0 +1,10 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM Human-friendly alias for the project-wuji laoan managed Codex window.
+REM This opens/reuses the existing thread only; use restore-laoan.bat when the alive PID does not match a visible old-history window.
+set "SCRIPT_DIR=%~dp0"
+echo [MB-X] open-laoan -> case_analysis.analyst / project-wuji.laoan
+call "%SCRIPT_DIR%open-case-analysis-analyst.bat"
+exit /b %ERRORLEVEL%
diff --git a/scripts/restore-sessions/open-xiaoshen.bat b/scripts/restore-sessions/open-xiaoshen.bat
new file mode 100644
index 0000000..cc953fb
--- /dev/null
+++ b/scripts/restore-sessions/open-xiaoshen.bat
@@ -0,0 +1,10 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM Human-friendly alias for the project-wuji xiaoshen managed Codex window.
+REM This opens/reuses the existing thread only; use restore-xiaoshen.bat when the alive PID does not match a visible old-history window.
+set "SCRIPT_DIR=%~dp0"
+echo [MB-X] open-xiaoshen -> case_analysis.reviewer / project-wuji.xiaoshen
+call "%SCRIPT_DIR%open-case-analysis-reviewer.bat"
+exit /b %ERRORLEVEL%
diff --git a/scripts/restore-sessions/restore-case-analysis-analyst.bat b/scripts/restore-sessions/restore-case-analysis-analyst.bat
new file mode 100644
index 0000000..b18dba4
--- /dev/null
+++ b/scripts/restore-sessions/restore-case-analysis-analyst.bat
@@ -0,0 +1,72 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X destructive visible reopen helper.
+REM role: case_analysis.analyst
+REM managed_session_key: project-wuji.laoan
+REM It terminates only the recorded remote_tui_pid if alive, then resumes the existing thread through app-server.
+REM It does not delete runtime queues and does not create a new provider session/thread.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Restoring visible session for case_analysis.analyst
+echo [MB-X][RISK] This may terminate the recorded old remote TUI PID if it is still alive.
+echo [MB-X][RISK] For management roles, record this as a high-risk management action if used for real validation.
+if /I "%MBX_CONFIRM%"=="REOPEN" (
+ echo [MB-X] MBX_CONFIRM=REOPEN supplied by caller; skipping interactive confirmation.
+ goto MBX_REOPEN_CONFIRMED
+)
+set /p MBX_CONFIRM=Type REOPEN to continue:
+if /I not "%MBX_CONFIRM%"=="REOPEN" (
+ echo [MB-X] Cancelled.
+ exit /b 2
+)
+:MBX_REOPEN_CONFIRMED
+echo [MB-X] Command: python -m mbx.cli session reopen --project project-wuji --role case_analysis.analyst --terminate-existing
+python -m mbx.cli session reopen --project project-wuji --role case_analysis.analyst --terminate-existing
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session reopen failed with exit code %MBX_EXIT%.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+python -m mbx.cli session status --project project-wuji --role case_analysis.analyst
+echo.
+echo [MB-X] Verify the visible window shows the old chat history; do not use history/read alone as window proof.
+if /I "%MBX_CONFIRM%"=="REOPEN" exit /b 0
+pause
diff --git a/scripts/restore-sessions/restore-case-analysis-reviewer.bat b/scripts/restore-sessions/restore-case-analysis-reviewer.bat
new file mode 100644
index 0000000..287f9bf
--- /dev/null
+++ b/scripts/restore-sessions/restore-case-analysis-reviewer.bat
@@ -0,0 +1,72 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X destructive visible reopen helper.
+REM role: case_analysis.reviewer
+REM managed_session_key: project-wuji.xiaoshen
+REM It terminates only the recorded remote_tui_pid if alive, then resumes the existing thread through app-server.
+REM It does not delete runtime queues and does not create a new provider session/thread.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Restoring visible session for case_analysis.reviewer
+echo [MB-X][RISK] This may terminate the recorded old remote TUI PID if it is still alive.
+echo [MB-X][RISK] For management roles, record this as a high-risk management action if used for real validation.
+if /I "%MBX_CONFIRM%"=="REOPEN" (
+ echo [MB-X] MBX_CONFIRM=REOPEN supplied by caller; skipping interactive confirmation.
+ goto MBX_REOPEN_CONFIRMED
+)
+set /p MBX_CONFIRM=Type REOPEN to continue:
+if /I not "%MBX_CONFIRM%"=="REOPEN" (
+ echo [MB-X] Cancelled.
+ exit /b 2
+)
+:MBX_REOPEN_CONFIRMED
+echo [MB-X] Command: python -m mbx.cli session reopen --project project-wuji --role case_analysis.reviewer --terminate-existing
+python -m mbx.cli session reopen --project project-wuji --role case_analysis.reviewer --terminate-existing
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session reopen failed with exit code %MBX_EXIT%.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+python -m mbx.cli session status --project project-wuji --role case_analysis.reviewer
+echo.
+echo [MB-X] Verify the visible window shows the old chat history; do not use history/read alone as window proof.
+if /I "%MBX_CONFIRM%"=="REOPEN" exit /b 0
+pause
diff --git a/scripts/restore-sessions/restore-dev-developer-ana.bat b/scripts/restore-sessions/restore-dev-developer-ana.bat
new file mode 100644
index 0000000..bcce223
--- /dev/null
+++ b/scripts/restore-sessions/restore-dev-developer-ana.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X destructive visible reopen helper.
+REM role: dev.developer.ana
+REM managed_session_key: project-wuji.laoan
+REM It terminates only the recorded remote_tui_pid if alive, then resumes the existing thread through app-server.
+REM It does not delete runtime queues and does not create a new provider session/thread.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Restoring visible session for dev.developer.ana
+echo [MB-X][RISK] This may terminate the recorded old remote TUI PID if it is still alive.
+echo [MB-X][RISK] For management roles, record this as a high-risk management action if used for real validation.
+set /p MBX_CONFIRM=Type REOPEN to continue:
+if /I not "%MBX_CONFIRM%"=="REOPEN" (
+ echo [MB-X] Cancelled.
+ exit /b 2
+)
+echo [MB-X] Command: python -m mbx.cli session reopen --project project-wuji --role dev.developer.ana --terminate-existing
+python -m mbx.cli session reopen --project project-wuji --role dev.developer.ana --terminate-existing
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session reopen failed with exit code %MBX_EXIT%.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+python -m mbx.cli session status --project project-wuji --role dev.developer.ana
+echo.
+echo [MB-X] Verify the visible window shows the old chat history; do not use history/read alone as window proof.
+pause
diff --git a/scripts/restore-sessions/restore-dev-developer-exp.bat b/scripts/restore-sessions/restore-dev-developer-exp.bat
new file mode 100644
index 0000000..1d36763
--- /dev/null
+++ b/scripts/restore-sessions/restore-dev-developer-exp.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X destructive visible reopen helper.
+REM role: dev.developer.exp
+REM managed_session_key: project-wuji.laoan
+REM It terminates only the recorded remote_tui_pid if alive, then resumes the existing thread through app-server.
+REM It does not delete runtime queues and does not create a new provider session/thread.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Restoring visible session for dev.developer.exp
+echo [MB-X][RISK] This may terminate the recorded old remote TUI PID if it is still alive.
+echo [MB-X][RISK] For management roles, record this as a high-risk management action if used for real validation.
+set /p MBX_CONFIRM=Type REOPEN to continue:
+if /I not "%MBX_CONFIRM%"=="REOPEN" (
+ echo [MB-X] Cancelled.
+ exit /b 2
+)
+echo [MB-X] Command: python -m mbx.cli session reopen --project project-wuji --role dev.developer.exp --terminate-existing
+python -m mbx.cli session reopen --project project-wuji --role dev.developer.exp --terminate-existing
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session reopen failed with exit code %MBX_EXIT%.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+python -m mbx.cli session status --project project-wuji --role dev.developer.exp
+echo.
+echo [MB-X] Verify the visible window shows the old chat history; do not use history/read alone as window proof.
+pause
diff --git a/scripts/restore-sessions/restore-dev-reviewer-ana.bat b/scripts/restore-sessions/restore-dev-reviewer-ana.bat
new file mode 100644
index 0000000..e9fa030
--- /dev/null
+++ b/scripts/restore-sessions/restore-dev-reviewer-ana.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X destructive visible reopen helper.
+REM role: dev.reviewer.ana
+REM managed_session_key: project-wuji.xiaoshen
+REM It terminates only the recorded remote_tui_pid if alive, then resumes the existing thread through app-server.
+REM It does not delete runtime queues and does not create a new provider session/thread.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Restoring visible session for dev.reviewer.ana
+echo [MB-X][RISK] This may terminate the recorded old remote TUI PID if it is still alive.
+echo [MB-X][RISK] For management roles, record this as a high-risk management action if used for real validation.
+set /p MBX_CONFIRM=Type REOPEN to continue:
+if /I not "%MBX_CONFIRM%"=="REOPEN" (
+ echo [MB-X] Cancelled.
+ exit /b 2
+)
+echo [MB-X] Command: python -m mbx.cli session reopen --project project-wuji --role dev.reviewer.ana --terminate-existing
+python -m mbx.cli session reopen --project project-wuji --role dev.reviewer.ana --terminate-existing
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session reopen failed with exit code %MBX_EXIT%.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+python -m mbx.cli session status --project project-wuji --role dev.reviewer.ana
+echo.
+echo [MB-X] Verify the visible window shows the old chat history; do not use history/read alone as window proof.
+pause
diff --git a/scripts/restore-sessions/restore-dev-reviewer-exp.bat b/scripts/restore-sessions/restore-dev-reviewer-exp.bat
new file mode 100644
index 0000000..d201fa3
--- /dev/null
+++ b/scripts/restore-sessions/restore-dev-reviewer-exp.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X destructive visible reopen helper.
+REM role: dev.reviewer.exp
+REM managed_session_key: project-wuji.xiaoshen
+REM It terminates only the recorded remote_tui_pid if alive, then resumes the existing thread through app-server.
+REM It does not delete runtime queues and does not create a new provider session/thread.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Restoring visible session for dev.reviewer.exp
+echo [MB-X][RISK] This may terminate the recorded old remote TUI PID if it is still alive.
+echo [MB-X][RISK] For management roles, record this as a high-risk management action if used for real validation.
+set /p MBX_CONFIRM=Type REOPEN to continue:
+if /I not "%MBX_CONFIRM%"=="REOPEN" (
+ echo [MB-X] Cancelled.
+ exit /b 2
+)
+echo [MB-X] Command: python -m mbx.cli session reopen --project project-wuji --role dev.reviewer.exp --terminate-existing
+python -m mbx.cli session reopen --project project-wuji --role dev.reviewer.exp --terminate-existing
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session reopen failed with exit code %MBX_EXIT%.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+python -m mbx.cli session status --project project-wuji --role dev.reviewer.exp
+echo.
+echo [MB-X] Verify the visible window shows the old chat history; do not use history/read alone as window proof.
+pause
diff --git a/scripts/restore-sessions/restore-experiment-experimenter.bat b/scripts/restore-sessions/restore-experiment-experimenter.bat
new file mode 100644
index 0000000..b5e3df7
--- /dev/null
+++ b/scripts/restore-sessions/restore-experiment-experimenter.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X destructive visible reopen helper.
+REM role: experiment.experimenter
+REM managed_session_key: project-wuji.laoan
+REM It terminates only the recorded remote_tui_pid if alive, then resumes the existing thread through app-server.
+REM It does not delete runtime queues and does not create a new provider session/thread.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Restoring visible session for experiment.experimenter
+echo [MB-X][RISK] This may terminate the recorded old remote TUI PID if it is still alive.
+echo [MB-X][RISK] For management roles, record this as a high-risk management action if used for real validation.
+set /p MBX_CONFIRM=Type REOPEN to continue:
+if /I not "%MBX_CONFIRM%"=="REOPEN" (
+ echo [MB-X] Cancelled.
+ exit /b 2
+)
+echo [MB-X] Command: python -m mbx.cli session reopen --project project-wuji --role experiment.experimenter --terminate-existing
+python -m mbx.cli session reopen --project project-wuji --role experiment.experimenter --terminate-existing
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session reopen failed with exit code %MBX_EXIT%.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+python -m mbx.cli session status --project project-wuji --role experiment.experimenter
+echo.
+echo [MB-X] Verify the visible window shows the old chat history; do not use history/read alone as window proof.
+pause
diff --git a/scripts/restore-sessions/restore-experiment-reviewer.bat b/scripts/restore-sessions/restore-experiment-reviewer.bat
new file mode 100644
index 0000000..6de67c1
--- /dev/null
+++ b/scripts/restore-sessions/restore-experiment-reviewer.bat
@@ -0,0 +1,66 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM MB-X destructive visible reopen helper.
+REM role: experiment.reviewer
+REM managed_session_key: project-wuji.xiaoshen
+REM It terminates only the recorded remote_tui_pid if alive, then resumes the existing thread through app-server.
+REM It does not delete runtime queues and does not create a new provider session/thread.
+set "WORKDIR=D:\manage_system\project-wuji"
+set "MBX_SRC=D:\manage_system\project-mbx-core\src"
+set "PYTHONPATH=%MBX_SRC%;%PYTHONPATH%"
+
+echo [MB-X] Preflight: checking python and Codex CLI in this cmd/BAT environment.
+echo [MB-X] PATH=%PATH%
+where python >nul 2>nul
+if errorlevel 1 (
+ echo [MB-X][ERROR] python not found in PATH.
+ echo [MB-X][NEXT] Add Python to PATH or run this script from a Python-enabled shell.
+ pause
+ exit /b 1
+)
+for /f "delims=" %%I in ('where python 2^>nul') do if not defined MBX_PYTHON_EXE set "MBX_PYTHON_EXE=%%I"
+echo [MB-X] python=%MBX_PYTHON_EXE%
+set "MBX_CODEX_EXE="
+for /f "delims=" %%I in ('where codex.cmd 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex.exe 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE for /f "delims=" %%I in ('where codex 2^>nul') do if not defined MBX_CODEX_EXE set "MBX_CODEX_EXE=%%I"
+if not defined MBX_CODEX_EXE (
+ echo [MB-X][ERROR] Codex CLI not found in this cmd/BAT PATH. remote TUI cannot start.
+ echo [MB-X][NEXT] Confirm `codex.cmd --version` works in the same shell, add the npm/Codex bin directory to PATH, or update the workspace mbx.yaml provider command to an absolute codex.cmd/codex.exe path.
+ echo [MB-X][DIAG] where codex:
+ where codex
+ echo [MB-X][DIAG] where codex.cmd:
+ where codex.cmd
+ pause
+ exit /b 5
+)
+echo [MB-X] codex=%MBX_CODEX_EXE%
+echo [MB-X] where codex.cmd:
+where codex.cmd
+echo [MB-X] where codex:
+where codex
+
+cd /d "%WORKDIR%"
+echo [MB-X] Restoring visible session for experiment.reviewer
+echo [MB-X][RISK] This may terminate the recorded old remote TUI PID if it is still alive.
+echo [MB-X][RISK] For management roles, record this as a high-risk management action if used for real validation.
+set /p MBX_CONFIRM=Type REOPEN to continue:
+if /I not "%MBX_CONFIRM%"=="REOPEN" (
+ echo [MB-X] Cancelled.
+ exit /b 2
+)
+echo [MB-X] Command: python -m mbx.cli session reopen --project project-wuji --role experiment.reviewer --terminate-existing
+python -m mbx.cli session reopen --project project-wuji --role experiment.reviewer --terminate-existing
+set "MBX_EXIT=%ERRORLEVEL%"
+if not "%MBX_EXIT%"=="0" (
+ echo [MB-X][ERROR] session reopen failed with exit code %MBX_EXIT%.
+ pause
+ exit /b %MBX_EXIT%
+)
+echo.
+python -m mbx.cli session status --project project-wuji --role experiment.reviewer
+echo.
+echo [MB-X] Verify the visible window shows the old chat history; do not use history/read alone as window proof.
+pause
diff --git a/scripts/restore-sessions/restore-laoan.bat b/scripts/restore-sessions/restore-laoan.bat
new file mode 100644
index 0000000..5933bb7
--- /dev/null
+++ b/scripts/restore-sessions/restore-laoan.bat
@@ -0,0 +1,10 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM Human-friendly alias for the project-wuji laoan managed Codex window.
+REM This restores the existing thread only; it does not create a new provider session.
+set "SCRIPT_DIR=%~dp0"
+echo [MB-X] restore-laoan -> case_analysis.analyst / project-wuji.laoan
+call "%SCRIPT_DIR%restore-case-analysis-analyst.bat"
+exit /b %ERRORLEVEL%
diff --git a/scripts/restore-sessions/restore-xiaoshen.bat b/scripts/restore-sessions/restore-xiaoshen.bat
new file mode 100644
index 0000000..0ae9337
--- /dev/null
+++ b/scripts/restore-sessions/restore-xiaoshen.bat
@@ -0,0 +1,10 @@
+@echo off
+setlocal
+chcp 65001 >nul
+
+REM Human-friendly alias for the project-wuji xiaoshen managed Codex window.
+REM This restores the existing thread only; it does not create a new provider session.
+set "SCRIPT_DIR=%~dp0"
+echo [MB-X] restore-xiaoshen -> case_analysis.reviewer / project-wuji.xiaoshen
+call "%SCRIPT_DIR%restore-case-analysis-reviewer.bat"
+exit /b %ERRORLEVEL%
diff --git "a/\351\241\271\347\233\256\344\272\213\351\241\271\345\256\241\350\256\241\346\212\245\345\221\212.md" "b/\351\241\271\347\233\256\344\272\213\351\241\271\345\256\241\350\256\241\346\212\245\345\221\212.md"
index 6cda6ec..ba1fcd6 100644
--- "a/\351\241\271\347\233\256\344\272\213\351\241\271\345\256\241\350\256\241\346\212\245\345\221\212.md"
+++ "b/\351\241\271\347\233\256\344\272\213\351\241\271\345\256\241\350\256\241\346\212\245\345\221\212.md"
@@ -654,3 +654,90 @@
- 模板源:D:\manage_system\common
- 角色数量:8
- 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T16:19:42+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T16:24:19+08:00 绑定会话 019eab79-9d67-77a0-9fdb-efcac992a515
+
+- 动作:session.bound
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:角色 case_analysis.reviewer 已绑定到 AI xiaoshen 的 provider 会话。
+- 详情:
+ - 角色:case_analysis.reviewer
+ - AI:xiaoshen
+ - Provider:codex
+ - 会话 ID:019eab79-9d67-77a0-9fdb-efcac992a515
+ - 共享角色:case_analysis.reviewer,dev.reviewer.ana,experiment.reviewer,dev.reviewer.exp
+ - 替换会话:019eab77-09a8-71a1-9b9a-e24c67c2e193
+
+## 2026-06-09T18:49:54+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T18:54:22+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T10:26:10+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:05:27+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:30:27+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
diff --git "a/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md" "b/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md"
index be06145..010c0bc 100644
--- "a/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md"
+++ "b/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md"
@@ -580,3 +580,90 @@
- 模板源:D:\manage_system\common
- 角色数量:8
- 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T16:19:42+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T16:24:19+08:00 绑定会话 019eab79-9d67-77a0-9fdb-efcac992a515
+
+- 动作:session.bound
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:角色 case_analysis.reviewer 已绑定到 AI xiaoshen 的 provider 会话。
+- 详情:
+ - 角色:case_analysis.reviewer
+ - AI:xiaoshen
+ - Provider:codex
+ - 会话 ID:019eab79-9d67-77a0-9fdb-efcac992a515
+ - 共享角色:case_analysis.reviewer,dev.reviewer.ana,experiment.reviewer,dev.reviewer.exp
+ - 替换会话:019eab77-09a8-71a1-9b9a-e24c67c2e193
+
+## 2026-06-09T18:49:54+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T18:54:22+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T10:26:10+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:05:27+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:30:27+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
diff --git "a/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md" "b/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md"
index 711baf2..d128fb7 100644
--- "a/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md"
+++ "b/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md"
@@ -627,3 +627,90 @@
- 模板源:D:\manage_system\common
- 角色数量:8
- 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T16:19:42+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T16:24:19+08:00 绑定会话 019eab79-9d67-77a0-9fdb-efcac992a515
+
+- 动作:session.bound
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:角色 case_analysis.reviewer 已绑定到 AI xiaoshen 的 provider 会话。
+- 详情:
+ - 角色:case_analysis.reviewer
+ - AI:xiaoshen
+ - Provider:codex
+ - 会话 ID:019eab79-9d67-77a0-9fdb-efcac992a515
+ - 共享角色:case_analysis.reviewer,dev.reviewer.ana,experiment.reviewer,dev.reviewer.exp
+ - 替换会话:019eab77-09a8-71a1-9b9a-e24c67c2e193
+
+## 2026-06-09T18:49:54+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T18:54:22+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T10:26:10+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:05:27+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:30:27+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
diff --git "a/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md" "b/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md"
index 1f9555f..39e133a 100644
--- "a/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md"
+++ "b/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md"
@@ -567,6 +567,38 @@
- 角色数量:8
- 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+## 2026-06-09T18:52:18+08:00 恢复 xiaoshen 原会话绑定
+
+- 动作:session.binding.restored
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 变更范围:
+ - `mbx.project.yaml`
+ - `项目配置清单.md`
+ - `.mbx/runtime/sessions/project-wuji.xiaoshen.json`
+ - `.mbx/runtime/queues/project-wuji.xiaoshen.jsonl`
+- 变更前:xiaoshen 当前绑定被误改为 `019eab79-9d67-77a0-9fdb-efcac992a515`,运行态 registry 指向失败空 thread `019eab77-09a8-71a1-9b9a-e24c67c2e193`。
+- 变更后:xiaoshen 当前绑定恢复为原 thread `019e96a6-f8d4-7101-9eb2-aa2aacd06390`,remote TUI PID `53564` alive,queue_pending=0。
+- 风险说明:原 thread 历史较长,后续处理新长消息仍可能触发 Codex context window full;是否另建新 thread 需人类明确确认。
+
+## 2026-06-10T10:26:50+08:00 修复 laoan/xiaoshen 会话恢复脚本
+
+- 动作:session.restore_script.updated
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 变更范围:
+ - `scripts/restore-sessions/open-laoan.bat`
+ - `scripts/restore-sessions/restore-laoan.bat`
+ - `scripts/restore-sessions/open-xiaoshen.bat`
+ - `scripts/restore-sessions/restore-xiaoshen.bat`
+ - `scripts/restore-sessions/restore-case-analysis-analyst.bat`
+ - `scripts/restore-sessions/restore-case-analysis-reviewer.bat`
+ - `scripts/restore-sessions/README.md`
+- 变更原因:原角色名脚本对人类不直观,且非破坏性 `open-*.bat` 在 PID 存活但窗口不正确时不会强制恢复旧聊天。
+- 校验:`restore-laoan.bat` 已恢复原 thread `019e96a5-1ca1-7290-9ea9-57415b6db956`,新 remote TUI PID `66924`;`validate --project project-wuji --governance` warnings=0。
+
## 2026-06-06T21:52:04+08:00 刷新项目治理文档和角色入口
- 动作:governance.refreshed
@@ -617,3 +649,139 @@
- `dev.reviewer.exp` 写范围新增 `dev-doc/开发审计规范.md`、`exp-doc/实验审核规范.md`。
- 不变范围:普通执行角色 `case_analysis.analyst`、`experiment.experimenter`、`dev.developer.ana`、`dev.developer.exp` 未获得审核规范维护权限。
- 校验结果:`validate --project project-wuji --governance` warnings=0。
+
+## 2026-06-09T14:25:51+08:00 项目角色会话恢复脚本目录建立
+
+- 动作:session.restore_script.generated
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 变更原因:人工要求参考 `project-mbx-core` 的启动脚本,为 `project-wuji` 建立可打开项目角色托管 Codex 会话窗口的脚本。
+- 变更内容:
+ - 新增 `scripts/restore-sessions/00-start-codex-app-server-4570.bat`。
+ - 新增 8 个 `open-*.bat` 角色打开脚本。
+ - 新增 8 个 `restore-*.bat` 角色恢复脚本。
+ - 新增 `scripts/restore-sessions/README.md`,记录角色到托管窗口的复用关系。
+- 影响范围:
+ - `project-wuji.laoan` 相关角色共用同一托管窗口。
+ - `project-wuji.xiaoshen` 相关角色共用同一托管窗口。
+ - 脚本通过 MB-X CLI 读取当前注册表,不写死 provider_session_id/thread_id。
+- 风险边界:
+ - 本轮未执行 `restore-*.bat`,未终止任何 remote TUI PID。
+ - 后续如执行 `restore-*.bat`,应按可视窗口恢复事项记录,因为它可能终止登记的旧 remote TUI PID。
+- 校验结果:`validate --project project-wuji --governance` warnings=0。
+
+## 2026-06-09T16:19:42+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T16:24:19+08:00 绑定会话 019eab79-9d67-77a0-9fdb-efcac992a515
+
+- 动作:session.bound
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:角色 case_analysis.reviewer 已绑定到 AI xiaoshen 的 provider 会话。
+- 详情:
+ - 角色:case_analysis.reviewer
+ - AI:xiaoshen
+ - Provider:codex
+ - 会话 ID:019eab79-9d67-77a0-9fdb-efcac992a515
+ - 共享角色:case_analysis.reviewer,dev.reviewer.ana,experiment.reviewer,dev.reviewer.exp
+ - 替换会话:019eab77-09a8-71a1-9b9a-e24c67c2e193
+
+## 2026-06-09T18:49:54+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T18:54:22+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T10:26:10+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:05:27+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:30:27+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:31:45+08:00 xiaoshen 原 thread 历史裁剪
+
+- 动作:session_history.trim
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 变更对象:
+ - C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-19-45-019e96a6-f8d4-7101-9eb2-aa2aacd06390.jsonl
+ - C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-19-45-019e96a6-f8d4-7101-9eb2-aa2aacd06390.jsonl.mbx-backup-20260610-ctxtrim
+- 摘要:为恢复 xiaoshen 原聊天窗口可用性,裁剪过长 Codex 本地历史文件,保留原 provider thread,不创建新聊天。
+- 详情:
+ - 裁剪前活动文件:5898 行,17,670,812 bytes
+ - 裁剪后活动文件:162 行,376,884 bytes
+ - app-server 当前读取:`history_bytes=67208`,`turns_detected=10`
+ - 最终复核:活动 JSONL 随窗口恢复继续写入运行态,磁盘大小为 1,000,466 bytes;app-server 历史读取为 `history_bytes=100136`,`turns_detected=10`
+ - 保留 turn:最近 8 个 turn,加一条 compacted 标记
+ - 备份策略:完整原始 JSONL 已旁路备份,不删除
+ - 风险:早期对话不再进入 xiaoshen 当前上下文;正式事实需以 MB-X 文档、日志、配置和备份为准
+ - 校验:`session reconcile` issues=0,`validate --project project-wuji --governance` warnings=0
+
+## 2026-06-10T13:55:49+08:00 WUJI-CHANGE-20260610-CODEX-CONTEXT-GUARD-001
+
+- 变更类型:项目规范 / 角色工作说明
+- 变更人:workspace-admin
+- 变更范围:`项目规范.md`、`ai-laoan/工作说明.md`、`ai-xiaoshen/工作说明.md`
+- 变更摘要:新增 Codex 会话上下文保护规则,要求项目内角色把主体内容落入正式文档、证据包、readout 或 `tmp/`,角色窗口和 MB-X 消息只展示摘要、关键行、路径、证据入口、结论和期望动作。
+- 校验结果:`python -m mbx.cli validate --project project-wuji --governance` warnings=0。
diff --git "a/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md"
index 236d929..01ac431 100644
--- "a/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md"
+++ "b/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md"
@@ -542,6 +542,67 @@
- 角色数量:8
- 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+## 2026-06-10T10:26:50+08:00 修复并测试 laoan 恢复脚本
+
+- 动作:session.restore_script.fixed_and_tested
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:补充 laoan/xiaoshen 人类友好脚本,并测试 `restore-laoan.bat` 能恢复 laoan 原 thread。
+- 变更:
+ - 新增 `scripts/restore-sessions/open-laoan.bat`
+ - 新增 `scripts/restore-sessions/restore-laoan.bat`
+ - 新增 `scripts/restore-sessions/open-xiaoshen.bat`
+ - 新增 `scripts/restore-sessions/restore-xiaoshen.bat`
+ - 修正 `restore-case-analysis-analyst.bat` / `restore-case-analysis-reviewer.bat` 自动化确认能力。
+- 测试:
+ - 命令:`MBX_CONFIRM=REOPEN restore-laoan.bat`
+ - 结果:退出码 0。
+ - 旧 PID:`25744`
+ - 新 PID:`66924`
+ - session/thread:`019e96a5-1ca1-7290-9ea9-57415b6db956`
+ - `session reconcile` issues=0。
+ - `session history` turns_detected=104,证明是旧 thread。
+ - `validate --project project-wuji --governance` warnings=0。
+
+## 2026-06-10T11:05:43+08:00 执行 xiaoshen 恢复脚本
+
+- 动作:session.restore_script.executed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按人类确认执行 `restore-xiaoshen.bat`,恢复 xiaoshen 原 thread 可见窗口。
+- 测试:
+ - 命令:`MBX_CONFIRM=REOPEN restore-xiaoshen.bat`
+ - 结果:退出码 0。
+ - 旧 PID:`53564`
+ - 新 PID:`59580`
+ - session/thread:`019e96a6-f8d4-7101-9eb2-aa2aacd06390`
+ - `resumed=true`
+ - `remote_tui_command=resume_remote`
+ - `session reconcile` issues=0。
+ - `session history` turns_detected=77,证明是旧 thread。
+ - `validate --project project-wuji --governance` warnings=0。
+
+## 2026-06-09T18:52:18+08:00 恢复 xiaoshen 原会话绑定
+
+- 动作:session.binding.restored
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:撤回误建的新 xiaoshen 会话绑定,恢复 `project-wuji.xiaoshen` 到原 thread `019e96a6-f8d4-7101-9eb2-aa2aacd06390`。
+- 详情:
+ - 误建绑定:`019eab79-9d67-77a0-9fdb-efcac992a515`
+ - 失败空 thread:`019eab77-09a8-71a1-9b9a-e24c67c2e193`
+ - 恢复后 session/thread:`019e96a6-f8d4-7101-9eb2-aa2aacd06390`
+ - 恢复后 remote TUI PID:`53564`
+ - 共享角色:case_analysis.reviewer, dev.reviewer.ana, experiment.reviewer, dev.reviewer.exp
+ - 旧失败 dispatch 队列已标记为 `superseded`,正式 inbox 未 ack。
+- 校验:
+ - `session reconcile --project project-wuji --role case_analysis.reviewer` issues=0。
+ - `validate --project project-wuji --governance` warnings=0。
+ - `inbox list --project project-wuji --role case_analysis.reviewer` unread=2。
+
## 2026-06-06T21:52:04+08:00 刷新项目治理文档和角色入口
- 动作:governance.refreshed
@@ -733,3 +794,159 @@
- 会话通知:
- 已通过 `session prompt --project project-wuji --role dev.reviewer.exp` 通知 `project-wuji.xiaoshen` 重新读取 `项目配置清单.md` 与 `ai-xiaoshen/工作说明.md`,turn_id=`019ea75f-7479-7503-84b6-331593dd4128`。
- 说明:本轮只调整当前项目 `project-wuji` 的角色治理写入范围,未修改 MB-X core 默认建角逻辑,也未修改 `manage_system/common` 模板默认权限。
+
+## 2026-06-09T14:25:51+08:00 生成项目角色会话恢复脚本
+
+- 动作:session.restore_script.generated
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:参考 `project-mbx-core/scripts/restore-sessions` 的托管会话启动脚本结构,为 `project-wuji` 生成项目角色窗口打开和恢复脚本。
+- 执行命令:
+ - `python -m mbx.cli session restore-script generate --project project-wuji`
+ - `python -m py_compile .\project-mbx-core\src\mbx\core\managed_session_ops.py`
+ - `python -m mbx.cli validate --project project-wuji --governance`
+- 输出目录:`scripts/restore-sessions`
+- 生成范围:
+ - `case_analysis.analyst`
+ - `case_analysis.reviewer`
+ - `dev.developer.ana`
+ - `dev.reviewer.ana`
+ - `experiment.experimenter`
+ - `experiment.reviewer`
+ - `dev.developer.exp`
+ - `dev.reviewer.exp`
+- 托管窗口复用关系:
+ - `project-wuji.laoan`:`case_analysis.analyst`、`dev.developer.ana`、`experiment.experimenter`、`dev.developer.exp`
+ - `project-wuji.xiaoshen`:`case_analysis.reviewer`、`dev.reviewer.ana`、`experiment.reviewer`、`dev.reviewer.exp`
+- 安全边界:
+ - `open-*.bat` 只执行非破坏性 `session open`,用于打开或复用已有托管窗口。
+ - `restore-*.bat` 会要求输入 `REOPEN`,随后执行 `session reopen --terminate-existing`,只应在记录的 PID 存活但可视窗口缺失或历史未恢复时使用。
+ - 本轮只生成脚本和修正生成模板,没有关闭、重启或抢占任何 `project-wuji` 角色窗口。
+- 校验结果:
+ - 生成脚本不硬编码 provider_session_id/thread_id。
+ - 残留扫描未发现旧 `E:\mb-ms-doc`、旧 `D:\mb-x` 或旧 `project-mbx-core` 生成示例。
+ - `validate --project project-wuji --governance` 成功,warnings=0。
+
+## 2026-06-09T16:19:42+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T16:24:19+08:00 绑定会话 019eab79-9d67-77a0-9fdb-efcac992a515
+
+- 动作:session.bound
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:角色 case_analysis.reviewer 已绑定到 AI xiaoshen 的 provider 会话。
+- 详情:
+ - 角色:case_analysis.reviewer
+ - AI:xiaoshen
+ - Provider:codex
+ - 会话 ID:019eab79-9d67-77a0-9fdb-efcac992a515
+ - 共享角色:case_analysis.reviewer,dev.reviewer.ana,experiment.reviewer,dev.reviewer.exp
+ - 替换会话:019eab77-09a8-71a1-9b9a-e24c67c2e193
+
+## 2026-06-09T18:49:54+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-09T18:54:22+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T10:26:10+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:05:27+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:30:27+08:00 刷新项目治理文档和角色入口
+
+- 动作:governance.refreshed
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按当前 mb-ms-doc 模板源刷新项目配置清单和 AI 工作说明。
+- 详情:
+ - 模板源:D:\manage_system\common
+ - 角色数量:8
+ - 刷新角色:case_analysis.analyst, case_analysis.reviewer, dev.developer.ana, dev.reviewer.ana, experiment.experimenter, experiment.reviewer, dev.developer.exp, dev.reviewer.exp
+
+## 2026-06-10T11:31:45+08:00 xiaoshen 原 thread 历史裁剪与恢复
+
+- 动作:session.history_trim_and_restore
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:处理 xiaoshen Codex 上下文窗口耗尽问题,裁剪原 thread 历史并恢复托管窗口。
+- 详情:
+ - AI:xiaoshen
+ - 共享角色:case_analysis.reviewer, dev.reviewer.ana, experiment.reviewer, dev.reviewer.exp
+ - 原 thread:019e96a6-f8d4-7101-9eb2-aa2aacd06390
+ - 原始备份:C:\Users\Administrator\.codex\sessions\2026\06\05\rollout-2026-06-05T15-19-45-019e96a6-f8d4-7101-9eb2-aa2aacd06390.jsonl.mbx-backup-20260610-ctxtrim
+ - 裁剪前:5898 行,17,670,812 bytes
+ - 裁剪后:162 行,376,884 bytes;app-server 读取历史 `history_bytes=67208`、`turns_detected=10`
+ - 最终复核:活动 JSONL 随窗口恢复继续写入运行态,磁盘大小为 1,000,466 bytes;app-server 历史读取为 `history_bytes=100136`、`turns_detected=10`
+ - 恢复方式:未创建新 thread;使用 `session open --project project-wuji --role case_analysis.reviewer`
+ - 恢复结果:remote_tui_pid=20144,remote_tui_status=alive,queue_pending=0
+ - 同步恢复:laoan remote_tui_pid=66600,remote_tui_status=alive
+ - 校验:`status --project project-wuji --sessions --logs` issues=0;`validate --project project-wuji --governance` warnings=0
+ - 说明:人类提醒后未再执行 `codex-server restart`;后续仅使用 session open/status/reconcile/history 核验运行态。
+
+## 2026-06-10T13:55:49+08:00 固化项目 Codex 会话上下文保护规则
+
+- 动作:governance.context_guard_added
+- 项目:project-wuji
+- 执行者:workspace-admin
+- 结果:完成
+- 摘要:按管理端统一规则,补充项目本地规范和 laoan / xiaoshen 当前工作说明,降低角色窗口因大工具输出导致上下文耗尽的风险。
+- 详情:
+ - 更新:`项目规范.md`
+ - 更新:`ai-laoan/工作说明.md`
+ - 更新:`ai-xiaoshen/工作说明.md`
+ - 规则:主体内容落文档;窗口和 MB-X 消息只展示摘要、关键行、路径、证据入口、结论和期望动作;大输出写入 `tmp/`、readout、证据包、审计附件或正式文档。
+ - 恢复口径:处理 `context window full` 时先备份、摘要、裁剪、审计记录并尝试原 thread 恢复,不得擅自新建 thread。
+ - 校验:`python -m mbx.cli validate --project project-wuji --governance` warnings=0。
diff --git "a/\351\241\271\347\233\256\350\247\204\350\214\203.md" "b/\351\241\271\347\233\256\350\247\204\350\214\203.md"
index 1581f60..5e2017d 100644
--- "a/\351\241\271\347\233\256\350\247\204\350\214\203.md"
+++ "b/\351\241\271\347\233\256\350\247\204\350\214\203.md"
@@ -34,7 +34,12 @@
## 4. 项目本地补充规则
-当前本项目暂无额外补充规则。
+本项目启用案例分析、实验和目标开发角色,`ai-laoan` 与 `ai-xiaoshen` 会长期复用可见 Codex 窗口。为降低角色会话上下文耗尽风险,项目内角色必须执行 `../全局规范.md` 的 Codex 会话上下文保护规范:
+
+1. 案例、实验、开发和审核的主体内容必须落到 `ana-doc/`、`ana-data/`、`exp-doc/`、`exp-data/`、`dev-doc/`、`dev/`、`tmp/`、证据包或正式账本中。
+2. 角色窗口、MB-X 消息和审核交接只展示摘要、关键行、证据入口、结论和期望动作,不复制大段正文。
+3. 检索、日志、目录扫描和图片证据如有全量结果,必须先写入文件或证据入口,再在窗口展示摘要和路径。
+4. 处理 context window full 时,先通知管理端并按备份、摘要、裁剪、审计记录和原 thread 恢复流程处理;不得擅自创建新 thread 替代原角色会话。
如果后续新增项目特化规则,只能补充全局规范和 common 体系规范,不能冲突或削弱。
--
Gitblit v1.9.3