From e66eb0a204734e17177f2ccc9d66c3b47f635501 Mon Sep 17 00:00:00 2001
From: 1 <wentingyear@gmail.com>
Date: Thu, 04 Jun 2026 22:26:09 +0800
Subject: [PATCH] 把不合规的project都删了
---
/dev/null | 13 -------------
1 files changed, 0 insertions(+), 13 deletions(-)
diff --git a/project B/ana-data/cases/CASE-PULLBACK-001/data/candidate_pool.csv b/project B/ana-data/cases/CASE-PULLBACK-001/data/candidate_pool.csv
deleted file mode 100644
index baddda0..0000000
--- a/project B/ana-data/cases/CASE-PULLBACK-001/data/candidate_pool.csv
+++ /dev/null
@@ -1,4 +0,0 @@
-object_id,symbol,candidate_date,selected_flag,select_reason,reject_reason
-OBJ-D,PB001,2026-05-12,1,"trend_hold; pullback_above_support; second_confirmation",""
-OBJ-E,PB002,2026-05-12,0,"trend_hold only","support_broke_on_pullback"
-OBJ-F,PB003,2026-05-12,0,"pullback_above_support only","missing_second_confirmation"
diff --git a/project B/ana-data/cases/CASE-PULLBACK-001/data/daily_prices.csv b/project B/ana-data/cases/CASE-PULLBACK-001/data/daily_prices.csv
deleted file mode 100644
index 101fc51..0000000
--- a/project B/ana-data/cases/CASE-PULLBACK-001/data/daily_prices.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-trade_date,open,high,low,close,ma5,ma10,volume_note,event_note
-2026-05-06,18.20,18.90,18.05,18.80,18.30,17.95,normal,trend_hold_start
-2026-05-07,18.85,19.30,18.70,19.15,18.62,18.12,normal,higher_low
-2026-05-08,19.10,19.85,18.95,19.70,18.95,18.35,expanding,trend_confirm
-2026-05-11,19.60,19.95,19.05,19.25,19.12,18.56,shrinking,pullback_above_support
-2026-05-12,19.28,20.75,19.20,20.48,19.54,18.82,expanding,second_confirmation_entry_day
-2026-05-13,20.62,21.60,20.40,21.18,20.12,19.10,expanding,exit_day_intraday_fade
diff --git a/project B/ana-data/cases/CASE-PULLBACK-001/data/intraday_entry.csv b/project B/ana-data/cases/CASE-PULLBACK-001/data/intraday_entry.csv
deleted file mode 100644
index 4862337..0000000
--- a/project B/ana-data/cases/CASE-PULLBACK-001/data/intraday_entry.csv
+++ /dev/null
@@ -1,6 +0,0 @@
-time,price,ma5_ref,trigger_note
-09:35,19.82,20.05,below_ma5_watch
-10:00,20.02,20.06,near_ma5
-10:35,20.60,20.10,reclaim_ma5_entry_trigger
-11:00,20.55,20.15,hold_after_trigger
-14:30,20.48,20.20,close_near_high
diff --git a/project B/ana-data/cases/CASE-PULLBACK-001/data/intraday_exit.csv b/project B/ana-data/cases/CASE-PULLBACK-001/data/intraday_exit.csv
deleted file mode 100644
index 1c9a6ec..0000000
--- a/project B/ana-data/cases/CASE-PULLBACK-001/data/intraday_exit.csv
+++ /dev/null
@@ -1,6 +0,0 @@
-time,price,prior_high_ref,trigger_note
-09:45,21.25,21.55,below_prior_high
-10:30,21.55,21.55,test_prior_high
-11:15,21.40,21.55,failed_break
-14:10,21.18,21.55,fade_below_intraday_avg_exit_trigger
-14:50,21.05,21.55,weak_close
diff --git a/project B/ana-data/cases/CASE-PULLBACK-001/img/candidate_pool_overview.svg b/project B/ana-data/cases/CASE-PULLBACK-001/img/candidate_pool_overview.svg
deleted file mode 100644
index 9033b61..0000000
--- a/project B/ana-data/cases/CASE-PULLBACK-001/img/candidate_pool_overview.svg
+++ /dev/null
@@ -1,13 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="900" height="420" viewBox="0 0 900 420">
- <rect width="900" height="420" fill="#f8faf7"/>
- <text x="40" y="45" font-family="Arial" font-size="24" fill="#223">CASE-PULLBACK-001 Candidate Pool</text>
- <rect x="50" y="85" width="800" height="70" fill="#d9f0d3" stroke="#4f8a45"/>
- <text x="70" y="115" font-family="Arial" font-size="18" fill="#223">OBJ-D / PB001: SELECTED</text>
- <text x="70" y="140" font-family="Arial" font-size="14" fill="#223">trend_hold + pullback_above_support + second_confirmation</text>
- <rect x="50" y="175" width="800" height="70" fill="#f5e4d7" stroke="#b66a3c"/>
- <text x="70" y="205" font-family="Arial" font-size="18" fill="#223">OBJ-E / PB002: REJECTED</text>
- <text x="70" y="230" font-family="Arial" font-size="14" fill="#223">support broke during pullback</text>
- <rect x="50" y="265" width="800" height="70" fill="#f5e4d7" stroke="#b66a3c"/>
- <text x="70" y="295" font-family="Arial" font-size="18" fill="#223">OBJ-F / PB003: REJECTED</text>
- <text x="70" y="320" font-family="Arial" font-size="14" fill="#223">missing second confirmation</text>
-</svg>
diff --git a/project B/ana-data/cases/CASE-PULLBACK-001/img/intraday_entry.svg b/project B/ana-data/cases/CASE-PULLBACK-001/img/intraday_entry.svg
deleted file mode 100644
index 079e4db..0000000
--- a/project B/ana-data/cases/CASE-PULLBACK-001/img/intraday_entry.svg
+++ /dev/null
@@ -1,17 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="900" height="420" viewBox="0 0 900 420">
- <rect width="900" height="420" fill="#f7fbff"/>
- <text x="40" y="40" font-family="Arial" font-size="24" fill="#223">Intraday Entry Evidence - 2026-05-12</text>
- <line x1="80" y1="330" x2="820" y2="330" stroke="#555"/>
- <line x1="80" y1="80" x2="80" y2="330" stroke="#555"/>
- <polyline points="120,275 260,240 400,145 540,155 760,170" fill="none" stroke="#1d4e89" stroke-width="4"/>
- <polyline points="120,245 260,243 400,230 540,220 760,205" fill="none" stroke="#ffb703" stroke-width="2" stroke-dasharray="6 4"/>
- <circle cx="400" cy="145" r="11" fill="#d62828"/>
- <line x1="400" y1="80" x2="400" y2="330" stroke="#d62828" stroke-dasharray="5 5"/>
- <text x="420" y="140" font-family="Arial" font-size="15" fill="#223">10:35 BUY 20.60</text>
- <text x="420" y="162" font-family="Arial" font-size="13" fill="#223">reclaim MA5 reference</text>
- <text x="115" y="355" font-family="Arial" font-size="12" fill="#555">09:35</text>
- <text x="255" y="355" font-family="Arial" font-size="12" fill="#555">10:00</text>
- <text x="395" y="355" font-family="Arial" font-size="12" fill="#555">10:35</text>
- <text x="535" y="355" font-family="Arial" font-size="12" fill="#555">11:00</text>
- <text x="755" y="355" font-family="Arial" font-size="12" fill="#555">14:30</text>
-</svg>
diff --git a/project B/ana-data/cases/CASE-PULLBACK-001/img/intraday_exit.svg b/project B/ana-data/cases/CASE-PULLBACK-001/img/intraday_exit.svg
deleted file mode 100644
index 44a9678..0000000
--- a/project B/ana-data/cases/CASE-PULLBACK-001/img/intraday_exit.svg
+++ /dev/null
@@ -1,18 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="900" height="420" viewBox="0 0 900 420">
- <rect width="900" height="420" fill="#fffaf5"/>
- <text x="40" y="40" font-family="Arial" font-size="24" fill="#223">Intraday Exit Evidence - 2026-05-13</text>
- <line x1="80" y1="330" x2="820" y2="330" stroke="#555"/>
- <line x1="80" y1="80" x2="80" y2="330" stroke="#555"/>
- <polyline points="120,210 270,150 420,180 610,225 760,250" fill="none" stroke="#8d0801" stroke-width="4"/>
- <line x1="80" y1="150" x2="820" y2="150" stroke="#6c757d" stroke-dasharray="6 4"/>
- <text x="680" y="140" font-family="Arial" font-size="13" fill="#555">prior high ref 21.55</text>
- <circle cx="610" cy="225" r="11" fill="#d62828"/>
- <line x1="610" y1="80" x2="610" y2="330" stroke="#d62828" stroke-dasharray="5 5"/>
- <text x="630" y="220" font-family="Arial" font-size="15" fill="#223">14:10 SELL 21.18</text>
- <text x="630" y="242" font-family="Arial" font-size="13" fill="#223">fade after failed break</text>
- <text x="115" y="355" font-family="Arial" font-size="12" fill="#555">09:45</text>
- <text x="265" y="355" font-family="Arial" font-size="12" fill="#555">10:30</text>
- <text x="415" y="355" font-family="Arial" font-size="12" fill="#555">11:15</text>
- <text x="605" y="355" font-family="Arial" font-size="12" fill="#555">14:10</text>
- <text x="755" y="355" font-family="Arial" font-size="12" fill="#555">14:50</text>
-</svg>
diff --git a/project B/ana-data/cases/CASE-PULLBACK-001/img/pullback_daily.svg b/project B/ana-data/cases/CASE-PULLBACK-001/img/pullback_daily.svg
deleted file mode 100644
index 7b0860f..0000000
--- a/project B/ana-data/cases/CASE-PULLBACK-001/img/pullback_daily.svg
+++ /dev/null
@@ -1,19 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="900" height="440" viewBox="0 0 900 440">
- <rect width="900" height="440" fill="#fbfbf5"/>
- <text x="40" y="40" font-family="Arial" font-size="24" fill="#223">CASE-PULLBACK-001 Daily Background</text>
- <line x1="80" y1="340" x2="820" y2="340" stroke="#555"/>
- <line x1="80" y1="80" x2="80" y2="340" stroke="#555"/>
- <polyline points="110,275 230,245 350,190 470,230 590,135 710,105" fill="none" stroke="#2b7a78" stroke-width="4"/>
- <polyline points="110,292 230,275 350,250 470,235 590,195 710,170" fill="none" stroke="#e09f3e" stroke-width="2" stroke-dasharray="6 4"/>
- <circle cx="470" cy="230" r="8" fill="#f4a261"/>
- <text x="390" y="260" font-family="Arial" font-size="14" fill="#223">pullback above support</text>
- <circle cx="590" cy="135" r="10" fill="#d62828"/>
- <text x="610" y="130" font-family="Arial" font-size="14" fill="#223">entry day confirmation</text>
- <text x="110" y="365" font-family="Arial" font-size="12" fill="#555">05-06</text>
- <text x="230" y="365" font-family="Arial" font-size="12" fill="#555">05-07</text>
- <text x="350" y="365" font-family="Arial" font-size="12" fill="#555">05-08</text>
- <text x="470" y="365" font-family="Arial" font-size="12" fill="#555">05-11</text>
- <text x="590" y="365" font-family="Arial" font-size="12" fill="#555">05-12</text>
- <text x="710" y="365" font-family="Arial" font-size="12" fill="#555">05-13</text>
- <text x="640" y="405" font-family="Arial" font-size="13" fill="#555">teal=close; dashed=MA5 reference</text>
-</svg>
diff --git a/project B/ana-data/result/RUN-CASE-PULLBACK-001/case_index.csv b/project B/ana-data/result/RUN-CASE-PULLBACK-001/case_index.csv
deleted file mode 100644
index aa6aace..0000000
--- a/project B/ana-data/result/RUN-CASE-PULLBACK-001/case_index.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-case_id,ana_id,design_id,run_id,audit_id,status,summary_path
-CASE-PULLBACK-001,ANA-PULLBACK-001,DESIGN-PULLBACK-001,RUN-CASE-PULLBACK-001,AUDIT-PULLBACK-EXEC-001,COMPLETE,ana-data/result/RUN-CASE-PULLBACK-001/summary.md
diff --git a/project B/ana-data/result/RUN-CASE-PULLBACK-001/case_step_trace.csv b/project B/ana-data/result/RUN-CASE-PULLBACK-001/case_step_trace.csv
deleted file mode 100644
index f399f8f..0000000
--- a/project B/ana-data/result/RUN-CASE-PULLBACK-001/case_step_trace.csv
+++ /dev/null
@@ -1,6 +0,0 @@
-step_id,case_id,step_name,data_path,image_path,conclusion
-STEP-001,CASE-PULLBACK-001,candidate_pool,ana-data/cases/CASE-PULLBACK-001/data/candidate_pool.csv,ana-data/cases/CASE-PULLBACK-001/img/candidate_pool_overview.svg,OBJ-D selected; OBJ-E and OBJ-F rejected with reasons
-STEP-002,CASE-PULLBACK-001,daily_background,ana-data/cases/CASE-PULLBACK-001/data/daily_prices.csv,ana-data/cases/CASE-PULLBACK-001/img/pullback_daily.svg,trend held and pullback stayed above support before confirmation
-STEP-003,CASE-PULLBACK-001,entry_trigger,ana-data/cases/CASE-PULLBACK-001/data/intraday_entry.csv,ana-data/cases/CASE-PULLBACK-001/img/intraday_entry.svg,10:35 reclaim_ma5_entry_trigger at 20.60
-STEP-004,CASE-PULLBACK-001,exit_trigger,ana-data/cases/CASE-PULLBACK-001/data/intraday_exit.csv,ana-data/cases/CASE-PULLBACK-001/img/intraday_exit.svg,14:10 fade_below_intraday_avg_exit_trigger at 21.18
-STEP-005,CASE-PULLBACK-001,result_review,ana-data/result/RUN-CASE-PULLBACK-001/operation_ledger.csv,ana-data/result/RUN-CASE-PULLBACK-001/image_manifest.csv,ledger and images align with summary
diff --git a/project B/ana-data/result/RUN-CASE-PULLBACK-001/image_manifest.csv b/project B/ana-data/result/RUN-CASE-PULLBACK-001/image_manifest.csv
deleted file mode 100644
index 1965ee2..0000000
--- a/project B/ana-data/result/RUN-CASE-PULLBACK-001/image_manifest.csv
+++ /dev/null
@@ -1,5 +0,0 @@
-image_id,case_id,image_type,image_path,description
-IMG-001,CASE-PULLBACK-001,candidate_pool_overview,ana-data/cases/CASE-PULLBACK-001/img/candidate_pool_overview.svg,candidate selection and rejection overview
-IMG-002,CASE-PULLBACK-001,daily_background,ana-data/cases/CASE-PULLBACK-001/img/pullback_daily.svg,daily trend hold and pullback support evidence
-IMG-003,CASE-PULLBACK-001,intraday_entry,ana-data/cases/CASE-PULLBACK-001/img/intraday_entry.svg,entry trigger at 10:35
-IMG-004,CASE-PULLBACK-001,intraday_exit,ana-data/cases/CASE-PULLBACK-001/img/intraday_exit.svg,exit trigger at 14:10
diff --git a/project B/ana-data/result/RUN-CASE-PULLBACK-001/operation_ledger.csv b/project B/ana-data/result/RUN-CASE-PULLBACK-001/operation_ledger.csv
deleted file mode 100644
index 5679667..0000000
--- a/project B/ana-data/result/RUN-CASE-PULLBACK-001/operation_ledger.csv
+++ /dev/null
@@ -1,3 +0,0 @@
-action_id,case_id,action_time,action,price,quantity,evidence_path,comment
-ACT-001,CASE-PULLBACK-001,2026-05-12 10:35:00,BUY,20.60,1000,ana-data/cases/CASE-PULLBACK-001/data/intraday_entry.csv,reclaim_ma5_entry_trigger
-ACT-002,CASE-PULLBACK-001,2026-05-13 14:10:00,SELL,21.18,1000,ana-data/cases/CASE-PULLBACK-001/data/intraday_exit.csv,fade_below_intraday_avg_exit_trigger
diff --git a/project B/ana-data/result/RUN-CASE-PULLBACK-001/summary.md b/project B/ana-data/result/RUN-CASE-PULLBACK-001/summary.md
deleted file mode 100644
index 8f0070d..0000000
--- a/project B/ana-data/result/RUN-CASE-PULLBACK-001/summary.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# RUN-CASE-PULLBACK-001 Summary
-
-This is a synthetic case-analysis process check for Project B.
-
-## Scope
-
-- Case: CASE-PULLBACK-001
-- Purpose: verify case evidence chain, not strategy profitability.
-- Selected object: OBJ-D / PB001
-
-## Key Evidence
-
-- Candidate pool: `ana-data/cases/CASE-PULLBACK-001/data/candidate_pool.csv`
-- Daily evidence: `ana-data/cases/CASE-PULLBACK-001/data/daily_prices.csv`
-- Entry evidence: `ana-data/cases/CASE-PULLBACK-001/data/intraday_entry.csv`
-- Exit evidence: `ana-data/cases/CASE-PULLBACK-001/data/intraday_exit.csv`
-- Operation ledger: `ana-data/result/RUN-CASE-PULLBACK-001/operation_ledger.csv`
-- Image manifest: `ana-data/result/RUN-CASE-PULLBACK-001/image_manifest.csv`
-
-## Synthetic Ledger
-
-- Buy: 2026-05-12 10:35 at 20.60
-- Sell: 2026-05-13 14:10 at 21.18
-- Synthetic PnL: +2.82% before costs
-
-## Conclusion
-
-The evidence chain is complete for process validation. This result must not be read as a real trading conclusion.
diff --git "a/project B/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md" "b/project B/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md"
deleted file mode 100644
index a6fed37..0000000
--- "a/project B/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,30 +0,0 @@
-# 案例分析规范
-
-创建人员:Codex
-文件职责:作为 Project B 本地案例分析规范,说明本项目案例分析必须同时遵守 common 全局案例分析规范和本地补充口径。
-管理规范/模板:../../全局规范.md;../../common/ana-doc/案例分析规范.md。
-引用文件:案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例存储体系.md。
-记录方式:本地规范;本项目案例分析约束变化时更新。
-
-## 1. 全局规范引用
-
-Project B 的所有案例分析人员必须遵守:
-
-1. `../../common/ana-doc/案例分析规范.md`
-2. `../../common/ana-doc/案例审核规范.md`
-3. `../../common/ana-doc/案例分析环境创建指南.md`
-4. `../../common/ana-doc/案例存储体系创建指南.md`
-
-本地规范不得削弱 common 规范的硬要求。若本地流程和 common 流程存在差异,必须先说明差异是否满足全局约定,再按本地已冻结流程执行。
-
-## 2. 本地补充口径
-
-1. Project B 当前案例分析体系只用于验证案例体系能否被复用创建、执行和审计。
-2. 本轮允许使用合成数据,不输出真实业务结论。
-3. 所有表内路径默认使用 Project B 根目录相对路径,例如 `ana-data/result/...`。
-4. 任何案例必须能从 `案例总纲.md` 追到 `案例分析设计.md`、`案例执行日志.md`、结果包和 `案例审计报告.md`。
-5. 审核员发现的问题主记录写在 `案例审计报告.md`;非审核人员反馈的问题写入 `案例问题记录.md`。
-
-## 3. 当前状态
-
-本地案例分析规范已启用,当前没有额外业务约束。
diff --git "a/project B/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md" "b/project B/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md"
deleted file mode 100644
index 7ac091b..0000000
--- "a/project B/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md"
+++ /dev/null
@@ -1,156 +0,0 @@
-# 案例分析设计
-
-创建人员:Codex
-文件职责:作为 Project B 案例分析体系设计账本,记录案例选择口径、分析流程、证据要求、执行步骤和验收方式。
-管理规范/模板:../../全局规范.md;../../common/ana-doc/案例分析规范.md;../../common/ana-doc/案例分析设计模版.md。
-引用文件:案例总纲.md;案例执行日志.md;案例审计报告.md;案例存储体系.md。
-记录方式:append-only 案例分析设计;新增设计或修订追加到文件末尾。
-
-## 1. 当前设计总览
-
-| 设计 ID | 所属案例事项 | 目标 | 状态 | 设计审计 |
-|---|---|---|---|---|
-| DESIGN-SMOKE-001 | ANA-SMOKE-001 | 验证案例体系文档链路可串联 | 完成 | AUDIT-SMOKE-001 |
-| DESIGN-PULLBACK-001 | ANA-PULLBACK-001 | 验证 Project B 合成回踩确认案例能全流程留痕 | 审计通过 | AUDIT-PULLBACK-DESIGN-001 |
-
-## 2. 设计记录追加区
-
-### 2026-06-03 10:00:00 DESIGN-SMOKE-001:案例分析体系创建 dry-run 设计
-
-所属案例事项:
-ANA-SMOKE-001 / 案例分析体系创建 dry-run
-
-创建人员:
-Codex
-
-来源聊天记录:
-```text
-见案例总纲 ANA-SMOKE-001。
-```
-
-目标对齐说明:
-通过最小链路确认案例总纲、设计、执行日志、审计报告能互相引用。
-
-案例选择口径:
-使用虚拟 dry-run 事项,不涉及真实案例选择。
-
-分析对象:
-Project B 案例分析体系证据链。
-
-全流程步骤:
-
-1. 在案例总纲登记 ANA-SMOKE-001。
-2. 在案例分析设计登记 DESIGN-SMOKE-001。
-3. 在案例执行日志登记 RUN-SMOKE-001。
-4. 在案例审计报告登记 AUDIT-SMOKE-001。
-5. 确认问题记录没有被误用成审计问题主账。
-
-逐案例执行流程:
-```text
-总纲记录 -> 设计记录 -> 执行日志记录 -> 审计报告记录 -> 确认无真实业务产物
-```
-
-执行流程冻结说明:
-dry-run 只验证链路,不生成业务结果。
-
-证据要求:
-
-1. 文档 ID 能互相引用。
-2. 执行日志说明无真实业务产物。
-3. 审计报告记录校验结论。
-
-图片要求:
-不需要图片。
-
-数据输出:
-无真实业务数据。
-
-验收方式:
-审计报告 AUDIT-SMOKE-001 通过。
-
-未来函数 / 泄漏判断:
-不适用。
-
-设计审计状态:
-审计通过
-
-设计审计入口:
-案例审计报告.md 中 AUDIT-SMOKE-001。
-
-执行日志入口:
-案例执行日志.md 中 RUN-SMOKE-001。
-
-当前结论:
-可执行并已完成。
-
-### 2026-06-03 10:20:00 DESIGN-PULLBACK-001:回踩二次确认单案例流程验证设计
-
-所属案例事项:
-ANA-PULLBACK-001 / 回踩二次确认单案例流程验证
-
-创建人员:
-Codex
-
-来源聊天记录:
-```text
-见案例总纲 ANA-PULLBACK-001。用户要求在 Project B 重复 Project A 流程,并对比差异。
-```
-
-目标对齐说明:
-本设计不复用 Project A 的短线笔记案例,而是换成一个“回踩支撑后二次确认”的合成案例,用来验证体系复用能力,而不是验证具体策略。
-
-案例选择口径:
-使用合成候选池 3 个对象。选择同时满足“趋势保持、回踩未破支撑、二次确认触发”的对象;未选对象必须记录排除原因。
-
-分析对象:
-合成案例 CASE-PULLBACK-001。
-
-全流程步骤:
-
-1. 生成候选池和候选日数据。
-2. 记录 3 个候选对象的入选或排除理由。
-3. 为选中案例生成候选池总览图、日线背景图、买入分时图、卖出分时图。
-4. 记录买入触发条件、卖出触发条件和操作流水。
-5. 生成 case_index、case_step_trace、operation_ledger、image_manifest、summary。
-6. 回写案例执行日志并提交执行审核。
-
-逐案例执行流程:
-```text
-候选池记录 -> 入选/排除理由 -> 日线背景证据 -> 买入触发证据 -> 卖出触发证据 -> 操作流水 -> 结果复盘 -> 审计反馈
-```
-
-执行流程冻结说明:
-执行员必须按上述流程执行。若实际缺图、缺数据或规则触发对不上,必须记录偏离并进入审计,不能直接改口径。
-
-证据要求:
-
-1. 候选池 CSV。
-2. 逐案例步骤追踪 CSV。
-3. 操作流水 CSV。
-4. 图片 manifest CSV。
-5. 至少 4 张图片:候选池总览图、日线背景图、买入分时图、卖出分时图。
-6. summary/readout。
-
-图片要求:
-图片必须标出案例 ID、关键日期或时间、触发规则和动作点。
-
-数据输出:
-case_index.csv、case_step_trace.csv、operation_ledger.csv、image_manifest.csv、summary.md。
-
-验收方式:
-设计审核通过;执行审核确认数据、图片、流水、summary 能互相对上。
-
-未来函数 / 泄漏判断:
-本轮目标是流程可审计性,不是真实收益验证;仍要求买入/卖出触发在对应分时输入中有当时可见证据,不允许用后续结果解释当时动作。
-
-设计审计状态:
-审计通过
-
-设计审计入口:
-案例审计报告.md 中 AUDIT-PULLBACK-DESIGN-001。
-
-执行日志入口:
-案例执行日志.md 中 RUN-CASE-PULLBACK-001。
-
-当前结论:
-设计可执行;已通过 AUDIT-PULLBACK-DESIGN-001。
diff --git "a/project B/ana-doc/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md" "b/project B/ana-doc/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md"
deleted file mode 100644
index 671c059..0000000
--- "a/project B/ana-doc/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md"
+++ /dev/null
@@ -1,54 +0,0 @@
-# 案例存储体系
-
-创建人员:Codex
-文件职责:说明 Project B 案例分析体系的数据、图片、结果包、临时文件存储位置和读取方式。
-管理规范/模板:../../全局规范.md;../../common/ana-doc/案例存储体系创建指南.md。
-引用文件:案例分析规范.md;案例执行日志.md;目录导读.md。
-记录方式:存储体系说明;存储结构变化时更新。
-
-## 1. 目录结构
-
-```text
-ana-doc/
-ana-data/
-ana-data/cases/
-ana-data/result/
-ana-data/img/
-ana-data/tmp/
-```
-
-## 2. 存储规则
-
-1. `ana-doc/` 存案例总纲、设计、执行日志、审计报告、问题记录和存储体系说明。
-2. `ana-data/cases/<CASE-ID>/data/` 存单案例输入数据。
-3. `ana-data/cases/<CASE-ID>/img/` 存单案例图片。
-4. `ana-data/result/<RUN-ID>/` 存单次执行结果包。
-5. `ana-data/tmp/` 只存临时文件,不得作为正式结果包入口。
-6. 表内路径默认使用 Project B 根目录相对路径,不使用绝对路径。
-
-## 3. 当前数据表
-
-| 表名 | 位置 | 作用 | 关键字段 |
-|---|---|---|---|
-| candidate_pool.csv | ana-data/cases/CASE-PULLBACK-001/data/ | 候选池 | object_id, symbol, candidate_date, selected_flag, select_reason, reject_reason |
-| daily_prices.csv | ana-data/cases/CASE-PULLBACK-001/data/ | 日线背景 | trade_date, close, ma5, ma10, volume_note, event_note |
-| intraday_entry.csv | ana-data/cases/CASE-PULLBACK-001/data/ | 买入触发分时证据 | time, price, ma5_ref, trigger_note |
-| intraday_exit.csv | ana-data/cases/CASE-PULLBACK-001/data/ | 卖出触发分时证据 | time, price, prior_high_ref, trigger_note |
-| case_index.csv | ana-data/result/RUN-CASE-PULLBACK-001/ | 案例索引 | case_id, ana_id, design_id, run_id, audit_id, status |
-| case_step_trace.csv | ana-data/result/RUN-CASE-PULLBACK-001/ | 步骤追踪 | step_id, case_id, step_name, data_path, image_path, conclusion |
-| operation_ledger.csv | ana-data/result/RUN-CASE-PULLBACK-001/ | 操作流水 | action_id, case_id, action_time, action, price, evidence_path |
-| image_manifest.csv | ana-data/result/RUN-CASE-PULLBACK-001/ | 图片清单 | image_id, case_id, image_type, image_path, description |
-
-## 4. 读取方式
-
-从 Project B 根目录读取表内路径:
-
-```text
-D:/manage_system/project B + 表内相对路径
-```
-
-## 5. 禁止事项
-
-1. 不得把其他项目的真实数据或旧结果包复制成本项目正式结果。
-2. 不得把 `tmp/` 文件登记为正式结果。
-3. 不得在正式表内写机器本地绝对路径。
diff --git "a/project B/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md" "b/project B/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md"
deleted file mode 100644
index c318946..0000000
--- "a/project B/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,26 +0,0 @@
-# 案例审核规范
-
-创建人员:Codex
-文件职责:作为 Project B 本地案例审核规范,说明本项目案例审核必须同时遵守 common 全局案例审核规范和本地补充口径。
-管理规范/模板:../../全局规范.md;../../common/ana-doc/案例审核规范.md。
-引用文件:案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;案例存储体系.md。
-记录方式:本地审核规范;审核口径变化时更新。
-
-## 1. 全局规范引用
-
-Project B 案例审核员必须遵守:
-
-1. `../../common/ana-doc/案例审核规范.md`
-2. `../../common/ana-doc/案例分析规范.md`
-
-## 2. 本地审核重点
-
-1. 审核案例设计是否和案例总纲中的来源聊天、目标、边界一致。
-2. 审核执行是否按已通过的设计执行。
-3. 审核关键节点日志、数据路径、图片路径、结果包是否能串成证据链。
-4. 审核表内路径是否能从 Project B 根目录打开。
-5. 审核是否混入其他项目内容、旧项目路径或旧业务结论。
-
-## 3. 问题记录口径
-
-审核员发现的问题完整写入 `案例审计报告.md`。只有跨案例长期跟踪或非审核人员反馈的问题,才写入 `案例问题记录.md`。
diff --git "a/project B/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md" "b/project B/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md"
deleted file mode 100644
index 3b9f2e6..0000000
--- "a/project B/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md"
+++ /dev/null
@@ -1,172 +0,0 @@
-# 案例审计报告
-
-创建人员:Codex
-文件职责:作为 Project B 案例分析体系审计账本,记录案例设计审核、执行审核、复审结果和问题清单。
-管理规范/模板:../../全局规范.md;../../common/ana-doc/案例审核规范.md;../../common/ana-doc/案例审计报告模版.md。
-引用文件:案例总纲.md;案例分析设计.md;案例执行日志.md;案例问题记录.md;案例存储体系.md。
-记录方式:append-only 案例审计报告;每次设计审核、执行审核和复审追加到文件末尾。
-固定口径:案例审核员发现的问题完整记录在本文;只有需要跨轮跟踪、跨案例汇总或长期处理时,才在 `案例问题记录.md` 中建立索引,不重复全文。
-
-## 1. 当前审计总览
-
-| 审计 ID | 审计对象 | 审计类型 | 审核员 | 结论 | 时间 |
-|---|---|---|---|---|---|
-| AUDIT-SMOKE-001 | ANA-SMOKE-001 | 初始化 / dry-run 审计 | Codex | 通过 | 2026-06-03 10:10:00 |
-| AUDIT-PULLBACK-DESIGN-001 | DESIGN-PULLBACK-001 | 设计审核 | Codex | 通过 | 2026-06-03 10:25:00 |
-| AUDIT-PULLBACK-EXEC-001 | RUN-CASE-PULLBACK-001 | 执行审核 | Codex | 通过 | 2026-06-03 11:05:00 |
-
-## 2. 审计记录追加区
-
-### 2026-06-03 10:10:00 AUDIT-SMOKE-001:案例分析体系创建 dry-run 审计
-
-审计对象:
-ANA-SMOKE-001 / DESIGN-SMOKE-001 / RUN-SMOKE-001
-
-审计类型:
-初始化 / dry-run 审计
-
-审核员:
-Codex
-
-来源聊天记录 / 上游依据:
-用户要求在 Project B 重复 Project A 的案例体系流程;依据 `../../common/ana-doc/案例分析环境创建指南.md`。
-
-依据文档:
-1. `../../全局规范.md`
-2. `../../common/ana-doc/案例分析规范.md`
-3. `../../common/ana-doc/案例审核规范.md`
-4. `ana-doc/案例总纲.md`
-5. `ana-doc/案例分析设计.md`
-6. `ana-doc/案例执行日志.md`
-
-检查结果:
-
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 目录和基础文档齐全 | PASS | ana-doc/ 和 ana-data/ 已创建 |
-| 本地规范引用 common | PASS | 案例分析规范和案例审核规范已引用 common |
-| 证据链 dry-run 可追踪 | PASS | ANA-SMOKE-001 -> DESIGN-SMOKE-001 -> RUN-SMOKE-001 -> AUDIT-SMOKE-001 |
-| 问题记录口径正确 | PASS | 审计问题主记录在审计报告,问题记录未被误用 |
-| 未混入外部项目内容 | PASS | 使用 Project B 自有合成 dry-run |
-
-发现问题:
-1. 无阻断问题。
-
-审计结论:
-通过
-
-是否阻断:
-否。
-
-是否允许进入下一阶段:
-是。
-
-建议动作:
-继续跑一个轻量案例流程,验证执行日志、数据、图片和审计反馈是否足够支撑全流程复核。
-
-复审要求:
-轻量案例执行后做执行审核。
-
-### 2026-06-03 10:25:00 AUDIT-PULLBACK-DESIGN-001:回踩二次确认单案例设计审核
-
-审计对象:
-DESIGN-PULLBACK-001
-
-审计类型:
-设计审核
-
-审核员:
-Codex
-
-来源聊天记录 / 上游依据:
-用户要求在 Project B 重复 Project A 流程并对比差异。
-
-依据文档:
-1. `../../全局规范.md`
-2. `../../common/ana-doc/案例分析规范.md`
-3. `../../common/ana-doc/案例审核规范.md`
-4. `ana-doc/案例总纲.md`
-5. `ana-doc/案例分析设计.md`
-
-检查结果:
-
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 来源聊天记录进入总纲 | PASS | ANA-PULLBACK-001 已记录用户要求 |
-| 设计目标对齐来源要求 | PASS | 目标是复验体系创建和全流程留痕 |
-| 案例选择口径合理 | PASS | 使用合成候选池,不读成真实策略结论 |
-| 全流程步骤覆盖候选到结论 | PASS | 覆盖候选池、入选理由、图、操作、结果包、审计 |
-| 证据要求足够复核 | PASS | 要求 CSV、图片、流水、manifest、summary |
-| 未来函数 / 泄漏口径符合目标 | PASS | 本轮不验证真实收益,但要求触发条件能在触发时数据中找到 |
-
-发现问题:
-1. 无阻断问题。
-
-审计结论:
-通过
-
-是否阻断:
-否。
-
-是否允许进入下一阶段:
-是。
-
-建议动作:
-按设计执行,并在执行审核中重点检查路径可打开、图和流水是否互相对上。
-
-复审要求:
-执行完成后审计。
-
-### 2026-06-03 11:05:00 AUDIT-PULLBACK-EXEC-001:回踩二次确认单案例执行审核
-
-审计对象:
-RUN-CASE-PULLBACK-001
-
-审计类型:
-执行审核
-
-审核员:
-Codex
-
-来源聊天记录 / 上游依据:
-用户要求 Project B 复跑流程,并和 Project A 对比差异。
-
-依据文档:
-1. `../../全局规范.md`
-2. `../../common/ana-doc/案例分析规范.md`
-3. `../../common/ana-doc/案例审核规范.md`
-4. `ana-doc/案例总纲.md`
-5. `ana-doc/案例分析设计.md`
-6. `ana-doc/案例执行日志.md`
-
-检查结果:
-
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 执行按设计进行 | PASS | 候选池、入选、图、流水、summary 均已生成 |
-| 候选来源和候选池可追踪 | PASS | candidate_pool.csv 和 candidate_pool_overview.svg 可打开 |
-| 关键判断有证据 | PASS | 买入/卖出触发分别有 CSV 和 SVG |
-| 图片或替代证据可读 | PASS | 4 张 SVG 均存在 |
-| 操作流水和结果一致 | PASS | 买入 20.60、卖出 21.18,可对上 summary |
-| 泄漏检查符合目标 | PASS | 买卖触发条件均来自对应触发时输入数据;本轮不验证真实收益 |
-| 结论没有过读 | PASS | 明确降读为流程验证 |
-| 证据链可追踪 | PASS | 总纲 -> 设计 -> 执行日志 -> result pack -> 审计报告 可串联 |
-| 表内路径可从 Project B 根目录打开 | PASS | 路径校验通过 |
-
-发现问题:
-1. 无阻断问题。
-
-审计结论:
-通过
-
-是否阻断:
-否。
-
-是否允许进入下一阶段:
-是。
-
-建议动作:
-Project B 未暴露新的 common 指南缺口;可将 Project A 与 Project B 的差异作为本轮结论输出。
-
-复审要求:
-本轮无需复审;若后续替换为真实数据,应重新做设计审核和执行审核。
diff --git "a/project B/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md" "b/project B/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md"
deleted file mode 100644
index 573b278..0000000
--- "a/project B/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md"
+++ /dev/null
@@ -1,106 +0,0 @@
-# 案例总纲
-
-创建人员:Codex
-文件职责:作为 Project B 案例分析体系的项目级滚动账本,记录所有案例分析事项的背景、目标、方法论来源、状态和当前结论。
-管理规范/模板:../../全局规范.md;../../common/ana-doc/案例分析规范.md;../../common/ana-doc/案例总纲模版.md。
-引用文件:案例分析规范.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;案例存储体系.md。
-记录方式:append-only 案例总纲;新增案例分析事项、阶段结论和最终结论追加到文件末尾。
-
-## 1. 当前案例分析总览
-
-| 案例事项 ID | 名称 | 来源 | 目标 | 状态 | 当前结论 | 审计状态 |
-|---|---|---|---|---|---|---|
-| ANA-SMOKE-001 | 案例分析体系创建 dry-run | 案例分析环境创建指南 | 验证 Project B 案例体系文档链路可串联 | 完成 | dry-run 通过 | 已审计通过 |
-| ANA-PULLBACK-001 | 回踩二次确认单案例流程验证 | 用户要求在 Project B 重复 Project A 流程并对比差异 | 验证 Project B 按指南创建后能独立完成一条全流程案例证据链 | 完成 | 合成案例全流程可审计;不代表真实策略有效 | 已审计通过 |
-
-## 2. 案例记录追加区
-
-### 2026-06-03 10:00:00 ANA-SMOKE-001:案例分析体系创建 dry-run
-
-创建人员:Codex
-
-来源聊天记录:
-```text
-用户要求:在 Project B 里重复 Project A 的案例分析体系流程,看和 Project A 的区别。
-```
-
-方法论 / 上游依据:
-`../../common/ana-doc/案例分析环境创建指南.md` 第 6 章体系创建校验方案。
-
-背景:
-Project A 已暴露并修正过案例体系创建指南的若干缺口;Project B 用来复验这些指南改动是否可复用。
-
-目标:
-确认 Project B 能从项目级入口、案例总纲、设计、执行日志、审计报告串成最小证据链。
-
-边界:
-dry-run 不生成真实业务结果包。
-
-案例范围:
-ANA-SMOKE-001。
-
-当前状态:
-完成
-
-当前结论:
-文档链路可串联;可进入轻量案例流程验证。
-
-设计入口:
-案例分析设计.md 中 DESIGN-SMOKE-001。
-
-执行日志入口:
-案例执行日志.md 中 RUN-SMOKE-001。
-
-结果包入口:
-无真实业务产物。
-
-审计入口:
-案例审计报告.md 中 AUDIT-SMOKE-001。
-
-非审计问题 / 审计问题索引入口:
-无。
-
-### 2026-06-03 10:20:00 ANA-PULLBACK-001:回踩二次确认单案例流程验证
-
-创建人员:Codex
-
-来源聊天记录:
-```text
-用户要求:在 Project B 再重复一次流程,看跟 Project A 的区别。必须完全按指南执行,不能靠记忆。
-```
-
-方法论 / 上游依据:
-参考案例分析环境创建指南、案例分析规范、案例审核规范。案例玩法参考“先记录来源要求和设计,再记录候选池、入选/排除理由、关键判断、操作流水、结果包和审计反馈”的全流程留痕方式。
-
-背景:
-需要确认 Project A 修正后的 common 指南,能否在 Project B 这种原本只有实验体系的项目中复用创建案例体系,并完成一个不同样式的案例流程。
-
-目标:
-验证 Project B 能完整记录:候选池、案例入选理由、背景证据、买入触发、卖出触发、操作流水、结果包、审计反馈和结论回写。
-
-边界:
-使用合成数据;不验证真实交易策略;不输出真实收益结论。
-
-案例范围:
-CASE-PULLBACK-001,一个“回踩支撑后二次确认”的合成案例。
-
-当前状态:
-完成
-
-当前结论:
-合成案例已完成候选池、日线背景、分时买入、分时卖出、操作流水、图片清单、summary 和审计闭环;Project B 未发现新的 common 指南缺口。
-
-设计入口:
-案例分析设计.md 中 DESIGN-PULLBACK-001。
-
-执行日志入口:
-案例执行日志.md 中 RUN-CASE-PULLBACK-001。
-
-结果包入口:
-ana-data/result/RUN-CASE-PULLBACK-001。
-
-审计入口:
-案例审计报告.md 中 AUDIT-PULLBACK-DESIGN-001;AUDIT-PULLBACK-EXEC-001。
-
-非审计问题 / 审计问题索引入口:
-无。
diff --git "a/project B/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/project B/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md"
deleted file mode 100644
index ff8c6b1..0000000
--- "a/project B/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md"
+++ /dev/null
@@ -1,133 +0,0 @@
-# 案例执行日志
-
-创建人员:Codex
-文件职责:作为 Project B 案例分析体系执行账本,记录案例分析实际执行过程、关键节点、数据路径、图片路径、结果和偏离。
-管理规范/模板:../../全局规范.md;../../common/ana-doc/案例分析规范.md;../../common/ana-doc/案例执行日志模版.md。
-引用文件:案例总纲.md;案例分析设计.md;案例审计报告.md;案例问题记录.md;案例存储体系.md。
-记录方式:append-only 案例执行日志;每次执行、重跑、修复和结果包生成追加到文件末尾。
-
-## 1. 当前执行总览
-
-| 日志 ID | 所属设计 | 案例范围 | 状态 | 结果包 | 审计 |
-|---|---|---|---|---|---|
-| RUN-SMOKE-001 | DESIGN-SMOKE-001 | ANA-SMOKE-001 | 完成 | 无真实业务产物 | AUDIT-SMOKE-001 |
-| RUN-CASE-PULLBACK-001 | DESIGN-PULLBACK-001 | CASE-PULLBACK-001 | 完成 | ana-data/result/RUN-CASE-PULLBACK-001 | AUDIT-PULLBACK-EXEC-001 |
-
-## 2. 执行记录追加区
-
-### 2026-06-03 10:05:00 RUN-SMOKE-001:案例分析体系创建 dry-run
-
-所属案例事项:
-ANA-SMOKE-001
-
-关联设计:
-DESIGN-SMOKE-001
-
-执行人员:
-Codex
-
-执行目标:
-验证 Project B 案例分析体系文档链路能串起来。
-
-输入:
-案例总纲.md;案例分析设计.md;案例审计报告.md。
-
-执行过程:
-
-1. 在案例总纲记录 ANA-SMOKE-001。
-2. 在案例分析设计记录 DESIGN-SMOKE-001。
-3. 在案例执行日志记录 RUN-SMOKE-001。
-4. 在案例审计报告记录 AUDIT-SMOKE-001。
-
-关键节点记录:
-
-| 节点 | 说明 | 数据路径 | 图片路径 | 结论 |
-|---|---|---|---|---|
-| 总纲记录 | ANA-SMOKE-001 已登记 | ana-doc/案例总纲.md | 不适用 | PASS |
-| 设计记录 | DESIGN-SMOKE-001 已登记 | ana-doc/案例分析设计.md | 不适用 | PASS |
-| 执行日志 | RUN-SMOKE-001 已登记 | ana-doc/案例执行日志.md | 不适用 | PASS |
-| 审计记录 | AUDIT-SMOKE-001 已登记 | ana-doc/案例审计报告.md | 不适用 | PASS |
-
-逐案例证据链记录:
-
-| 案例 ID | 候选来源 | 入选理由 | 背景证据 | 关键判断 / 操作 | 数据路径 | 图片路径 | 结果 | 是否符合设计 |
-|---|---|---|---|---|---|---|---|---|
-| ANA-SMOKE-001 | 创建指南 | 验证环境 | 文档链路 | 无业务操作 | ana-doc/案例总纲.md;ana-doc/案例分析设计.md;ana-doc/案例审计报告.md | 不适用 | dry-run 通过 | 是 |
-
-输出:
-无真实业务结果包。
-
-偏离设计:
-无。
-
-自检结果:
-文档链路可串联;问题记录未被误用。
-
-执行结果 / 结论回写:
-已回写案例总纲 ANA-SMOKE-001。
-
-当前状态:
-完成
-
-审计入口:
-案例审计报告.md 中 AUDIT-SMOKE-001。
-
-### 2026-06-03 10:45:00 RUN-CASE-PULLBACK-001:回踩二次确认单案例执行
-
-所属案例事项:
-ANA-PULLBACK-001
-
-关联设计:
-DESIGN-PULLBACK-001
-
-执行人员:
-Codex
-
-执行目标:
-按已审核设计执行一个合成回踩确认案例,验证 Project B 从候选池到操作流水和审计反馈的全流程留痕。
-
-输入:
-案例分析设计.md;ana-data/cases/CASE-PULLBACK-001/data/candidate_pool.csv;daily_prices.csv;intraday_entry.csv;intraday_exit.csv。
-
-执行过程:
-
-1. 生成 3 个合成候选对象的候选池,并记录 OBJ-D 入选、OBJ-E/OBJ-F 排除原因。
-2. 为 OBJ-D 生成候选池总览图和日线背景图。
-3. 生成买入分时图,标注 10:35 回踩后重新站上 MA5 参考位触发买入。
-4. 生成卖出分时图,标注次日 14:10 冲高回落且跌破分时均线触发卖出。
-5. 生成 case_index、case_step_trace、operation_ledger、image_manifest、summary。
-6. 自检结果包路径、图表、流水和 summary 是否可互相对照。
-
-关键节点记录:
-
-| 节点 | 说明 | 数据路径 | 图片路径 | 结论 |
-|---|---|---|---|---|
-| 候选来源 | 3 个合成候选,OBJ-D 入选 | ana-data/cases/CASE-PULLBACK-001/data/candidate_pool.csv | ana-data/cases/CASE-PULLBACK-001/img/candidate_pool_overview.svg | PASS |
-| 案例选择 | OBJ-D 同时满足趋势保持、回踩不破、二次确认 | ana-data/result/RUN-CASE-PULLBACK-001/case_step_trace.csv | ana-data/cases/CASE-PULLBACK-001/img/pullback_daily.svg | PASS |
-| 买入判断 | 10:35 重新站上 MA5 参考位 | ana-data/cases/CASE-PULLBACK-001/data/intraday_entry.csv | ana-data/cases/CASE-PULLBACK-001/img/intraday_entry.svg | PASS |
-| 卖出判断 | 次日 14:10 冲高回落跌破分时均线 | ana-data/cases/CASE-PULLBACK-001/data/intraday_exit.csv | ana-data/cases/CASE-PULLBACK-001/img/intraday_exit.svg | PASS |
-| 结果复盘 | 流水、图、summary 可互相对照 | ana-data/result/RUN-CASE-PULLBACK-001/operation_ledger.csv | ana-data/result/RUN-CASE-PULLBACK-001/image_manifest.csv | PASS |
-
-逐案例证据链记录:
-
-| 案例 ID | 候选来源 | 入选理由 | 背景证据 | 关键判断 / 操作 | 数据路径 | 图片路径 | 结果 | 是否符合设计 |
-|---|---|---|---|---|---|---|---|---|
-| CASE-PULLBACK-001 | candidate_pool.csv | OBJ-D 满足三条入选条件;OBJ-E/OBJ-F 有排除原因 | daily_prices.csv;pullback_daily.svg | 10:35 买入;次日 14:10 卖出 | ana-data/result/RUN-CASE-PULLBACK-001 | 4 张 SVG | 证据链完整;合成收益仅用于流水对账 | 是 |
-
-输出:
-ana-data/result/RUN-CASE-PULLBACK-001/case_index.csv;case_step_trace.csv;operation_ledger.csv;image_manifest.csv;summary.md。
-
-偏离设计:
-无。
-
-自检结果:
-所有 manifest 和 trace 路径均可以 Project B 根目录打开;买入/卖出触发能在对应分时 CSV 中找到;图片路径存在。
-
-执行结果 / 结论回写:
-已回写案例总纲 ANA-PULLBACK-001;审计入口为 AUDIT-PULLBACK-EXEC-001。
-
-当前状态:
-完成
-
-审计入口:
-案例审计报告.md 中 AUDIT-PULLBACK-EXEC-001。
diff --git "a/project B/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md" "b/project B/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md"
deleted file mode 100644
index 1c1b42f..0000000
--- "a/project B/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md"
+++ /dev/null
@@ -1,23 +0,0 @@
-# 案例问题记录
-
-创建人员:Codex
-文件职责:记录 Project B 案例分析体系中非审核人员反馈的问题,或需要跨案例长期跟踪的审计问题索引。
-管理规范/模板:../../全局规范.md;../../common/ana-doc/案例分析规范.md;../../common/ana-doc/案例问题记录模版.md。
-引用文件:案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例存储体系.md。
-记录方式:append-only 问题记录;新增问题、状态变化和关闭结论追加到文件末尾。
-
-## 1. 当前问题总览
-
-| 问题 ID | 来源 | 类型 | 状态 | 主记录位置 |
-|---|---|---|---|---|
-| 无 | 无 | 无 | 无 | 无 |
-
-## 2. 记录口径
-
-1. 审核员发现的问题主记录写在 `案例审计报告.md`。
-2. 非审核人员反馈的问题写入本文。
-3. 需要跨案例长期跟踪的审计问题,可在本文建立索引,但不重复审计报告全文。
-
-## 3. 当前结论
-
-本轮 Project B 案例体系创建和合成案例执行未产生需要单独进入问题记录的事项。
diff --git "a/project B/ana-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md" "b/project B/ana-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md"
deleted file mode 100644
index c4593ac..0000000
--- "a/project B/ana-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md"
+++ /dev/null
@@ -1,39 +0,0 @@
-# 目录导读
-
-创建人员:Codex
-文件职责:作为 Project B 案例分析体系入口,帮助人和 AI 快速定位规范、总纲、设计、执行日志、审计、问题记录和数据目录。
-管理规范/模板:../../全局规范.md;../../common/ana-doc/案例分析环境创建指南.md。
-引用文件:案例分析规范.md;案例审核规范.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md;案例存储体系.md。
-记录方式:目录导读;新增案例事项、结果包或入口变化时更新。
-
-## 1. 核心文档入口
-
-| 文档 | 作用 |
-|---|---|
-| 案例分析规范.md | 本地案例分析规范,引用 common 规范 |
-| 案例审核规范.md | 本地案例审核规范,引用 common 规范 |
-| 案例总纲.md | 记录所有案例分析事项的背景、目标、边界、状态、结论 |
-| 案例分析设计.md | 记录案例选择口径、执行步骤、证据要求、验收方式 |
-| 案例执行日志.md | 记录实际执行过程、关键节点、数据路径、图片路径、结果 |
-| 案例审计报告.md | 记录设计审核、执行审核、问题和结论 |
-| 案例问题记录.md | 记录非审核人员反馈或跨案例长期问题索引 |
-| 案例存储体系.md | 说明案例数据和结果包如何存储、读取 |
-
-## 2. 当前案例入口
-
-| 案例事项 | 设计 | 执行 | 结果包 | 审计 | 状态 |
-|---|---|---|---|---|---|
-| ANA-SMOKE-001 | DESIGN-SMOKE-001 | RUN-SMOKE-001 | 无真实业务产物 | AUDIT-SMOKE-001 | 完成 |
-| ANA-PULLBACK-001 | DESIGN-PULLBACK-001 | RUN-CASE-PULLBACK-001 | ana-data/result/RUN-CASE-PULLBACK-001 | AUDIT-PULLBACK-DESIGN-001;AUDIT-PULLBACK-EXEC-001 | 完成 |
-
-## 3. 数据目录入口
-
-| 目录 | 内容 |
-|---|---|
-| ana-data/cases/CASE-PULLBACK-001/data/ | 合成候选池、日线、分时输入 |
-| ana-data/cases/CASE-PULLBACK-001/img/ | 合成案例图片 |
-| ana-data/result/RUN-CASE-PULLBACK-001/ | 执行结果包 |
-
-## 4. 当前结论
-
-Project B 案例分析体系已完成创建校验和一个合成案例流程验证。该结论只说明体系可运行、证据链可审计,不代表真实业务策略有效。
diff --git a/project B/exp-data/img/EXP-20260601-KLINE-MA5-BREAKOUT-001/RUN-20260601-KLINE-MA5-BREAKOUT-001/KOBJ001_ma5_breakout.svg b/project B/exp-data/img/EXP-20260601-KLINE-MA5-BREAKOUT-001/RUN-20260601-KLINE-MA5-BREAKOUT-001/KOBJ001_ma5_breakout.svg
deleted file mode 100644
index dfb1da7..0000000
--- a/project B/exp-data/img/EXP-20260601-KLINE-MA5-BREAKOUT-001/RUN-20260601-KLINE-MA5-BREAKOUT-001/KOBJ001_ma5_breakout.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="980" height="420" viewBox="0 0 980 420">
- <rect width="100%" height="100%" fill="#fbfaf6" />
- <text x="46" y="28" font-size="18" font-family="Arial" fill="#222">KOBJ001 synthetic K-line MA5 breakout</text>
- <line x1="46" y1="374" x2="934" y2="374" stroke="#333" />
- <line x1="46" y1="46" x2="46" y2="374" stroke="#333" />
- <line x1="46.0" y1="273.8" x2="46.0" y2="320.6" stroke="#2477b3" stroke-width="1.5" /><rect x="41.0" y="296.0" width="10" height="2.5" fill="#2477b3" opacity="0.78" /><line x1="83.0" y1="278.7" x2="83.0" y2="333.0" stroke="#2477b3" stroke-width="1.5" /><rect x="78.0" y="300.9" width="10" height="9.9" fill="#2477b3" opacity="0.78" /><line x1="120.0" y1="291.1" x2="120.0" y2="342.8" stroke="#2477b3" stroke-width="1.5" /><rect x="115.0" y="313.2" width="10" height="7.4" fill="#2477b3" opacity="0.78" /><line x1="157.0" y1="300.9" x2="157.0" y2="347.8" stroke="#2477b3" stroke-width="1.5" /><rect x="152.0" y="323.1" width="10" height="2.5" fill="#2477b3" opacity="0.78" /><line x1="194.0" y1="305.8" x2="194.0" y2="352.7" stroke="#2477b3" stroke-width="1.5" /><rect x="189.0" y="328.0" width="10" height="2.5" fill="#2477b3" opacity="0.78" /><line x1="231.0" y1="312.0" x2="231.0" y2="356.4" stroke="#2477b3" stroke-width="1.5" /><rect x="226.0" y="333.0" width="10" height="2.5" fill="#2477b3" opacity="0.78" /><line x1="268.0" y1="312.0" x2="268.0" y2="353.9" stroke="#c43c35" stroke-width="1.5" /><rect x="263.0" y="333.0" width="10" height="2.0" fill="#c43c35" opacity="0.78" /><line x1="305.0" y1="307.1" x2="305.0" y2="352.7" stroke="#c43c35" stroke-width="1.5" /><rect x="300.0" y="329.3" width="10" height="2.0" fill="#c43c35" opacity="0.78" /><line x1="342.0" y1="303.4" x2="342.0" y2="349.0" stroke="#c43c35" stroke-width="1.5" /><rect x="337.0" y="325.6" width="10" height="2.0" fill="#c43c35" opacity="0.78" /><line x1="379.0" y1="270.1" x2="379.0" y2="345.3" stroke="#c43c35" stroke-width="1.5" /><rect x="374.0" y="292.3" width="10" height="30.8" fill="#c43c35" opacity="0.78" /><line x1="416.0" y1="240.5" x2="416.0" y2="312.0" stroke="#c43c35" stroke-width="1.5" /><rect x="411.0" y="263.9" width="10" height="25.9" fill="#c43c35" opacity="0.78" /><line x1="453.0" y1="207.2" x2="453.0" y2="284.9" stroke="#c43c35" stroke-width="1.5" /><rect x="448.0" y="230.7" width="10" height="30.8" fill="#c43c35" opacity="0.78" /><line x1="490.0" y1="209.7" x2="490.0" y2="265.2" stroke="#2477b3" stroke-width="1.5" /><rect x="485.0" y="233.1" width="10" height="8.6" fill="#2477b3" opacity="0.78" /><line x1="527.0" y1="198.6" x2="527.0" y2="262.7" stroke="#c43c35" stroke-width="1.5" /><rect x="522.0" y="222.0" width="10" height="17.3" fill="#c43c35" opacity="0.78" /><line x1="564.0" y1="174.0" x2="564.0" y2="243.0" stroke="#c43c35" stroke-width="1.5" /><rect x="559.0" y="197.4" width="10" height="22.2" fill="#c43c35" opacity="0.78" /><line x1="601.0" y1="176.4" x2="601.0" y2="228.2" stroke="#2477b3" stroke-width="1.5" /><rect x="596.0" y="199.8" width="10" height="4.9" fill="#2477b3" opacity="0.78" /><line x1="638.0" y1="157.9" x2="638.0" y2="225.7" stroke="#c43c35" stroke-width="1.5" /><rect x="633.0" y="182.6" width="10" height="19.7" fill="#c43c35" opacity="0.78" /><line x1="675.0" y1="138.2" x2="675.0" y2="204.8" stroke="#c43c35" stroke-width="1.5" /><rect x="670.0" y="162.9" width="10" height="17.3" fill="#c43c35" opacity="0.78" /><line x1="712.0" y1="140.7" x2="712.0" y2="193.7" stroke="#2477b3" stroke-width="1.5" /><rect x="707.0" y="165.3" width="10" height="3.7" fill="#2477b3" opacity="0.78" /><line x1="749.0" y1="123.4" x2="749.0" y2="191.2" stroke="#c43c35" stroke-width="1.5" /><rect x="744.0" y="148.1" width="10" height="18.5" fill="#c43c35" opacity="0.78" /><line x1="786.0" y1="107.4" x2="786.0" y2="170.3" stroke="#c43c35" stroke-width="1.5" /><rect x="781.0" y="132.0" width="10" height="13.6" fill="#c43c35" opacity="0.78" /><line x1="823.0" y1="109.9" x2="823.0" y2="165.3" stroke="#2477b3" stroke-width="1.5" /><rect x="818.0" y="134.5" width="10" height="6.2" fill="#2477b3" opacity="0.78" /><line x1="860.0" y1="97.5" x2="860.0" y2="162.9" stroke="#c43c35" stroke-width="1.5" /><rect x="855.0" y="123.4" width="10" height="14.8" fill="#c43c35" opacity="0.78" /><line x1="897.0" y1="77.8" x2="897.0" y2="146.8" stroke="#c43c35" stroke-width="1.5" /><rect x="892.0" y="103.7" width="10" height="17.3" fill="#c43c35" opacity="0.78" /><line x1="934.0" y1="67.9" x2="934.0" y2="127.1" stroke="#c43c35" stroke-width="1.5" /><rect x="929.0" y="93.8" width="10" height="7.4" fill="#c43c35" opacity="0.78" />
- <polyline points="194.0,317.2 231.0,324.6 268.0,329.0 305.0,330.7 342.0,330.7 379.0,323.1 416.0,308.8 453.0,288.3 490.0,270.8 527.0,250.1 564.0,231.1 601.0,219.3 638.0,209.7 675.0,193.9 712.0,183.3 749.0,173.5 786.0,158.9 823.0,150.5 860.0,142.6 897.0,129.6 934.0,118.7" fill="none" stroke="#d49a00" stroke-width="2" />
- <circle cx="305.0" cy="339.7" r="6" fill="#d92323" /><text x="313.0" y="334.7" font-size="12" fill="#d92323">signal</text>
- <text x="46" y="406" font-size="12" font-family="Arial" fill="#555">synthetic K-line data; red dot marks detected signal</text>
-</svg>
diff --git a/project B/exp-data/img/EXP-20260601-KLINE-VOLUME-PULLBACK-002/RUN-20260601-KLINE-VOLUME-PULLBACK-002/KOBJ002_volume_pullback.svg b/project B/exp-data/img/EXP-20260601-KLINE-VOLUME-PULLBACK-002/RUN-20260601-KLINE-VOLUME-PULLBACK-002/KOBJ002_volume_pullback.svg
deleted file mode 100644
index 7f3ac39..0000000
--- a/project B/exp-data/img/EXP-20260601-KLINE-VOLUME-PULLBACK-002/RUN-20260601-KLINE-VOLUME-PULLBACK-002/KOBJ002_volume_pullback.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="980" height="420" viewBox="0 0 980 420">
- <rect width="100%" height="100%" fill="#fbfaf6" />
- <text x="46" y="28" font-size="18" font-family="Arial" fill="#222">KOBJ002 synthetic K-line volume pullback support</text>
- <line x1="46" y1="374" x2="934" y2="374" stroke="#333" />
- <line x1="46" y1="46" x2="46" y2="374" stroke="#333" />
- <line x1="46.0" y1="307.1" x2="46.0" y2="355.3" stroke="#2477b3" stroke-width="1.5" /><rect x="41.0" y="329.9" width="10" height="2.5" fill="#2477b3" opacity="0.78" /><line x1="83.0" y1="293.7" x2="83.0" y2="352.8" stroke="#c43c35" stroke-width="1.5" /><rect x="78.0" y="316.6" width="10" height="13.3" fill="#c43c35" opacity="0.78" /><line x1="120.0" y1="274.0" x2="120.0" y2="337.5" stroke="#c43c35" stroke-width="1.5" /><rect x="115.0" y="297.5" width="10" height="16.5" fill="#c43c35" opacity="0.78" /><line x1="157.0" y1="258.2" x2="157.0" y2="318.5" stroke="#c43c35" stroke-width="1.5" /><rect x="152.0" y="281.7" width="10" height="13.3" fill="#c43c35" opacity="0.78" /><line x1="194.0" y1="244.8" x2="194.0" y2="303.2" stroke="#c43c35" stroke-width="1.5" /><rect x="189.0" y="269.0" width="10" height="10.2" fill="#c43c35" opacity="0.78" /><line x1="231.0" y1="229.0" x2="231.0" y2="290.5" stroke="#c43c35" stroke-width="1.5" /><rect x="226.0" y="253.1" width="10" height="13.3" fill="#c43c35" opacity="0.78" /><line x1="268.0" y1="212.5" x2="268.0" y2="274.7" stroke="#c43c35" stroke-width="1.5" /><rect x="263.0" y="237.2" width="10" height="13.3" fill="#c43c35" opacity="0.78" /><line x1="305.0" y1="198.5" x2="305.0" y2="259.4" stroke="#c43c35" stroke-width="1.5" /><rect x="300.0" y="223.3" width="10" height="11.4" fill="#c43c35" opacity="0.78" /><line x1="342.0" y1="183.3" x2="342.0" y2="245.5" stroke="#c43c35" stroke-width="1.5" /><rect x="337.0" y="208.7" width="10" height="12.1" fill="#c43c35" opacity="0.78" /><line x1="379.0" y1="173.7" x2="379.0" y2="231.5" stroke="#c43c35" stroke-width="1.5" /><rect x="374.0" y="199.1" width="10" height="7.0" fill="#c43c35" opacity="0.78" /><line x1="416.0" y1="176.3" x2="416.0" y2="234.0" stroke="#2477b3" stroke-width="1.5" /><rect x="411.0" y="201.7" width="10" height="7.0" fill="#2477b3" opacity="0.78" /><line x1="453.0" y1="186.4" x2="453.0" y2="241.7" stroke="#2477b3" stroke-width="1.5" /><rect x="448.0" y="211.2" width="10" height="5.7" fill="#2477b3" opacity="0.78" /><line x1="490.0" y1="194.7" x2="490.0" y2="246.1" stroke="#2477b3" stroke-width="1.5" /><rect x="485.0" y="219.4" width="10" height="2.0" fill="#2477b3" opacity="0.78" /><line x1="527.0" y1="187.1" x2="527.0" y2="243.6" stroke="#c43c35" stroke-width="1.5" /><rect x="522.0" y="211.8" width="10" height="7.0" fill="#c43c35" opacity="0.78" /><line x1="564.0" y1="170.6" x2="564.0" y2="234.0" stroke="#c43c35" stroke-width="1.5" /><rect x="559.0" y="196.0" width="10" height="13.3" fill="#c43c35" opacity="0.78" /><line x1="601.0" y1="154.7" x2="601.0" y2="218.8" stroke="#c43c35" stroke-width="1.5" /><rect x="596.0" y="180.1" width="10" height="13.3" fill="#c43c35" opacity="0.78" /><line x1="638.0" y1="140.1" x2="638.0" y2="202.9" stroke="#c43c35" stroke-width="1.5" /><rect x="633.0" y="166.1" width="10" height="11.4" fill="#c43c35" opacity="0.78" /><line x1="675.0" y1="126.1" x2="675.0" y2="189.0" stroke="#c43c35" stroke-width="1.5" /><rect x="670.0" y="152.2" width="10" height="10.8" fill="#c43c35" opacity="0.78" /><line x1="712.0" y1="116.0" x2="712.0" y2="175.0" stroke="#c43c35" stroke-width="1.5" /><rect x="707.0" y="142.0" width="10" height="7.0" fill="#c43c35" opacity="0.78" /><line x1="749.0" y1="119.1" x2="749.0" y2="175.6" stroke="#2477b3" stroke-width="1.5" /><rect x="744.0" y="145.2" width="10" height="4.4" fill="#2477b3" opacity="0.78" /><line x1="786.0" y1="107.7" x2="786.0" y2="172.5" stroke="#c43c35" stroke-width="1.5" /><rect x="781.0" y="134.4" width="10" height="12.1" fill="#c43c35" opacity="0.78" /><line x1="823.0" y1="92.5" x2="823.0" y2="157.9" stroke="#c43c35" stroke-width="1.5" /><rect x="818.0" y="119.1" width="10" height="12.1" fill="#c43c35" opacity="0.78" /><line x1="860.0" y1="95.7" x2="860.0" y2="149.6" stroke="#2477b3" stroke-width="1.5" /><rect x="855.0" y="122.3" width="10" height="2.0" fill="#2477b3" opacity="0.78" /><line x1="897.0" y1="80.4" x2="897.0" y2="146.4" stroke="#c43c35" stroke-width="1.5" /><rect x="892.0" y="107.1" width="10" height="12.7" fill="#c43c35" opacity="0.78" /><line x1="934.0" y1="69.0" x2="934.0" y2="130.6" stroke="#c43c35" stroke-width="1.5" /><rect x="929.0" y="96.3" width="10" height="7.6" fill="#c43c35" opacity="0.78" />
- <polyline points="379.0,261.9 416.0,249.5 453.0,239.5 490.0,231.9 527.0,224.9 564.0,217.6 601.0,210.3 638.0,203.2 675.0,196.1 712.0,189.4 749.0,184.5 786.0,177.0 823.0,167.3 860.0,157.4 897.0,147.0 934.0,137.0" fill="none" stroke="#d49a00" stroke-width="2" />
- <circle cx="416.0" cy="221.0" r="6" fill="#d92323" /><text x="424.0" y="216.0" font-size="12" fill="#d92323">signal</text><circle cx="453.0" cy="228.7" r="6" fill="#d92323" /><text x="461.0" y="223.7" font-size="12" fill="#d92323">signal</text><circle cx="490.0" cy="233.1" r="6" fill="#d92323" /><text x="498.0" y="228.1" font-size="12" fill="#d92323">signal</text><circle cx="527.0" cy="230.6" r="6" fill="#d92323" /><text x="535.0" y="225.6" font-size="12" fill="#d92323">signal</text><circle cx="749.0" cy="162.6" r="6" fill="#d92323" /><text x="757.0" y="157.6" font-size="12" fill="#d92323">signal</text><circle cx="860.0" cy="136.6" r="6" fill="#d92323" /><text x="868.0" y="131.6" font-size="12" fill="#d92323">signal</text>
- <text x="46" y="406" font-size="12" font-family="Arial" fill="#555">synthetic K-line data; red dot marks detected signal</text>
-</svg>
diff --git a/project B/exp-data/img/EXP-20260601-TIMESERIES-SMOKE-001/RUN-20260601-TIMESERIES-SMOKE-001/OBJECT001_2026-05_timeseries_ma5_breakout.svg b/project B/exp-data/img/EXP-20260601-TIMESERIES-SMOKE-001/RUN-20260601-TIMESERIES-SMOKE-001/OBJECT001_2026-05_timeseries_ma5_breakout.svg
deleted file mode 100644
index 760b16f..0000000
--- a/project B/exp-data/img/EXP-20260601-TIMESERIES-SMOKE-001/RUN-20260601-TIMESERIES-SMOKE-001/OBJECT001_2026-05_timeseries_ma5_breakout.svg
+++ /dev/null
@@ -1,50 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="920" height="420" viewBox="0 0 920 420">
-<rect width="100%" height="100%" fill="#fbfaf6"/>
-<text x="50" y="28" font-size="18" font-family="Consolas, monospace">Timeseries smoke experiment: OBJECT001 / MA5 breakout</text>
-<line x1="50" y1="370" x2="870" y2="370" stroke="#777"/>
-<line x1="50" y1="50" x2="50" y2="370" stroke="#777"/>
-<line x1="70.50" y1="275.45" x2="70.50" y2="324.91" stroke="#c0392b" stroke-width="2"/>
-<rect x="60.25" y="301.64" width="20.50" height="2.00" fill="#c0392b" opacity="0.85"/>
-<line x1="111.50" y1="272.55" x2="111.50" y2="349.64" stroke="#1f6f50" stroke-width="2"/>
-<rect x="101.25" y="298.73" width="20.50" height="29.09" fill="#1f6f50" opacity="0.85"/>
-<line x1="152.50" y1="303.09" x2="152.50" y2="359.82" stroke="#1f6f50" stroke-width="2"/>
-<rect x="142.25" y="329.27" width="20.50" height="8.73" fill="#1f6f50" opacity="0.85"/>
-<line x1="193.50" y1="308.91" x2="193.50" y2="370.00" stroke="#1f6f50" stroke-width="2"/>
-<rect x="183.25" y="335.09" width="20.50" height="13.09" fill="#1f6f50" opacity="0.85"/>
-<line x1="234.50" y1="320.55" x2="234.50" y2="370.00" stroke="#c0392b" stroke-width="2"/>
-<rect x="224.25" y="345.27" width="20.50" height="4.36" fill="#c0392b" opacity="0.85"/>
-<line x1="275.50" y1="308.91" x2="275.50" y2="364.18" stroke="#c0392b" stroke-width="2"/>
-<rect x="265.25" y="335.09" width="20.50" height="7.27" fill="#c0392b" opacity="0.85"/>
-<circle cx="275.50" cy="323.09" r="6" fill="#2563eb"/>
-<text x="283.50" y="319.09" font-size="12" fill="#2563eb">breakout</text>
-<line x1="316.50" y1="292.91" x2="316.50" y2="358.36" stroke="#c0392b" stroke-width="2"/>
-<rect x="306.25" y="319.09" width="20.50" height="17.45" fill="#c0392b" opacity="0.85"/>
-<line x1="357.50" y1="268.18" x2="357.50" y2="338.00" stroke="#c0392b" stroke-width="2"/>
-<rect x="347.25" y="294.36" width="20.50" height="21.82" fill="#c0392b" opacity="0.85"/>
-<line x1="398.50" y1="233.27" x2="398.50" y2="317.64" stroke="#c0392b" stroke-width="2"/>
-<rect x="388.25" y="260.91" width="20.50" height="34.91" fill="#c0392b" opacity="0.85"/>
-<line x1="439.50" y1="183.82" x2="439.50" y2="279.82" stroke="#c0392b" stroke-width="2"/>
-<rect x="429.25" y="211.45" width="20.50" height="46.55" fill="#c0392b" opacity="0.85"/>
-<line x1="480.50" y1="185.27" x2="480.50" y2="244.91" stroke="#1f6f50" stroke-width="2"/>
-<rect x="470.25" y="212.91" width="20.50" height="8.73" fill="#1f6f50" opacity="0.85"/>
-<line x1="521.50" y1="166.36" x2="521.50" y2="242.00" stroke="#c0392b" stroke-width="2"/>
-<rect x="511.25" y="194.00" width="20.50" height="24.73" fill="#c0392b" opacity="0.85"/>
-<line x1="562.50" y1="141.64" x2="562.50" y2="218.73" stroke="#c0392b" stroke-width="2"/>
-<rect x="552.25" y="170.73" width="20.50" height="24.73" fill="#c0392b" opacity="0.85"/>
-<line x1="603.50" y1="138.73" x2="603.50" y2="199.82" stroke="#1f6f50" stroke-width="2"/>
-<rect x="593.25" y="167.82" width="20.50" height="8.73" fill="#1f6f50" opacity="0.85"/>
-<line x1="644.50" y1="119.82" x2="644.50" y2="201.27" stroke="#c0392b" stroke-width="2"/>
-<rect x="634.25" y="148.91" width="20.50" height="29.09" fill="#c0392b" opacity="0.85"/>
-<line x1="685.50" y1="95.09" x2="685.50" y2="169.27" stroke="#c0392b" stroke-width="2"/>
-<rect x="675.25" y="124.18" width="20.50" height="21.82" fill="#c0392b" opacity="0.85"/>
-<line x1="726.50" y1="96.55" x2="726.50" y2="154.73" stroke="#1f6f50" stroke-width="2"/>
-<rect x="716.25" y="125.64" width="20.50" height="4.36" fill="#1f6f50" opacity="0.85"/>
-<line x1="767.50" y1="74.73" x2="767.50" y2="151.82" stroke="#c0392b" stroke-width="2"/>
-<rect x="757.25" y="103.82" width="20.50" height="23.27" fill="#c0392b" opacity="0.85"/>
-<line x1="808.50" y1="52.91" x2="808.50" y2="130.00" stroke="#c0392b" stroke-width="2"/>
-<rect x="798.25" y="83.45" width="20.50" height="21.82" fill="#c0392b" opacity="0.85"/>
-<line x1="849.50" y1="50.00" x2="849.50" y2="119.82" stroke="#1f6f50" stroke-width="2"/>
-<rect x="839.25" y="80.55" width="20.50" height="14.55" fill="#1f6f50" opacity="0.85"/>
-<polyline points="234.50,332.18 275.50,338.87 316.50,337.13 357.50,328.40 398.50,310.95 439.50,284.18 480.50,261.49 521.50,236.47 562.50,211.75 603.50,194.87 644.50,182.36 685.50,162.87 726.50,150.07 767.50,136.69 808.50,118.07 849.50,107.31" fill="none" stroke="#f59e0b" stroke-width="2"/>
-<text x="760" y="58" font-size="13" fill="#f59e0b">MA5</text>
-</svg>
\ No newline at end of file
diff --git a/project B/exp-data/raw/RUN-20260601-KLINE-MA5-BREAKOUT-001/synthetic_kline_input.csv b/project B/exp-data/raw/RUN-20260601-KLINE-MA5-BREAKOUT-001/synthetic_kline_input.csv
deleted file mode 100644
index 86e8f87..0000000
--- a/project B/exp-data/raw/RUN-20260601-KLINE-MA5-BREAKOUT-001/synthetic_kline_input.csv
+++ /dev/null
@@ -1,26 +0,0 @@
-experiment_id,run_id,object_id,event_date,open,high,low,close,volume
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-01,10.02,10.20,9.82,10.00,2100
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-04,9.98,10.16,9.72,9.90,1980
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-05,9.88,10.06,9.64,9.82,1880
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-06,9.80,9.98,9.60,9.78,1820
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-07,9.76,9.94,9.56,9.74,1760
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-08,9.72,9.89,9.53,9.70,1690
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-11,9.72,9.89,9.55,9.72,1710
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-12,9.74,9.93,9.56,9.75,1770
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-13,9.77,9.96,9.59,9.78,1840
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-14,9.80,10.23,9.62,10.05,2450
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-15,10.07,10.47,9.89,10.28,2680
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-18,10.30,10.74,10.11,10.55,2920
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-19,10.53,10.72,10.27,10.46,2510
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-20,10.48,10.81,10.29,10.62,2640
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-21,10.64,11.01,10.45,10.82,2770
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-22,10.80,10.99,10.57,10.76,2380
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-25,10.78,11.14,10.59,10.94,2460
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-26,10.96,11.30,10.76,11.10,2580
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-27,11.08,11.28,10.85,11.05,2300
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-28,11.07,11.42,10.87,11.22,2420
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-29,11.24,11.55,11.04,11.35,2550
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-01,11.33,11.53,11.08,11.28,2260
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-02,11.30,11.63,11.10,11.42,2360
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-03,11.44,11.79,11.23,11.58,2490
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-04,11.60,11.87,11.39,11.66,2520
diff --git a/project B/exp-data/raw/RUN-20260601-KLINE-VOLUME-PULLBACK-002/synthetic_kline_input.csv b/project B/exp-data/raw/RUN-20260601-KLINE-VOLUME-PULLBACK-002/synthetic_kline_input.csv
deleted file mode 100644
index 361b510..0000000
--- a/project B/exp-data/raw/RUN-20260601-KLINE-VOLUME-PULLBACK-002/synthetic_kline_input.csv
+++ /dev/null
@@ -1,26 +0,0 @@
-experiment_id,run_id,object_id,event_date,open,high,low,close,volume
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-01,20.04,20.40,19.64,20.00,3600
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-04,20.04,20.61,19.68,20.25,3720
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-05,20.29,20.92,19.92,20.55,3890
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-06,20.59,21.17,20.22,20.80,4020
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-07,20.84,21.38,20.46,21.00,4160
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-08,21.04,21.63,20.66,21.25,4310
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-11,21.29,21.89,20.91,21.50,4460
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-12,21.54,22.11,21.15,21.72,4590
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-13,21.76,22.35,21.37,21.95,4700
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-14,21.99,22.50,21.59,22.10,4820
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-15,22.06,22.46,21.55,21.95,4380
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-18,21.91,22.30,21.43,21.82,3960
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-19,21.78,22.17,21.36,21.75,3580
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-20,21.79,22.29,21.40,21.90,3440
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-21,21.94,22.55,21.55,22.15,3710
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-22,22.19,22.80,21.79,22.40,3980
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-25,22.44,23.03,22.04,22.62,4200
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-26,22.67,23.25,22.26,22.84,4410
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-27,22.89,23.41,22.48,23.00,4620
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-28,22.95,23.36,22.47,22.88,4210
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-29,22.93,23.54,22.52,23.12,4430
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-01,23.17,23.78,22.75,23.36,4650
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-02,23.31,23.73,22.88,23.30,4240
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-03,23.35,23.97,22.93,23.55,4480
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-04,23.60,24.15,23.18,23.72,4700
diff --git a/project B/exp-data/raw/RUN-20260601-TIMESERIES-SMOKE-001/synthetic_timeseries_input.csv b/project B/exp-data/raw/RUN-20260601-TIMESERIES-SMOKE-001/synthetic_timeseries_input.csv
deleted file mode 100644
index f68f59a..0000000
--- a/project B/exp-data/raw/RUN-20260601-TIMESERIES-SMOKE-001/synthetic_timeseries_input.csv
+++ /dev/null
@@ -1,21 +0,0 @@
-experiment_id,run_id,object_id,event_date,open,high,low,close,volume,data_source,source_visible_at
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-01,9.99,10.18,9.84,10.0,106500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-01 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-04,10.02,10.2,9.67,9.82,113000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-04 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-05,9.81,9.99,9.6,9.75,119500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-05 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-06,9.77,9.95,9.53,9.68,126000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-06 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-07,9.67,9.87,9.53,9.7,132500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-07 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-08,9.72,9.95,9.57,9.77,139000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-08 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-11,9.76,10.06,9.61,9.88,145500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-11 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-12,9.9,10.23,9.75,10.05,152000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-12 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-13,10.04,10.47,9.89,10.28,203500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-13 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-14,10.3,10.81,10.15,10.62,210000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-14 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-15,10.61,10.8,10.39,10.55,171500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-15 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-18,10.57,10.93,10.41,10.74,223000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-18 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-19,10.73,11.1,10.57,10.9,184500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-19 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-20,10.92,11.12,10.7,10.86,191000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-20 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-21,10.85,11.25,10.69,11.05,197500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-21 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-22,11.07,11.42,10.91,11.22,204000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-22 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-25,11.21,11.41,11.01,11.18,210500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-25 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-26,11.2,11.56,11.03,11.36,217000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-26 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-27,11.35,11.71,11.18,11.5,223500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-27 15:00:00
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-28,11.52,11.73,11.25,11.42,230000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-28 15:00:00
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/input_manifest.csv b/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/input_manifest.csv
deleted file mode 100644
index 1bad14c..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/input_manifest.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-artifact,path,artifact_role,row_count_or_count,sha256
-synthetic_kline_input.csv,exp-data/raw/RUN-20260601-KLINE-MA5-BREAKOUT-001/synthetic_kline_input.csv,raw_input,25,3c7407a5e0c13279c070472c4476a2b9eeb214cd03df784554159fa322c9cc71
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/intermediate/kline_feature_panel.csv b/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/intermediate/kline_feature_panel.csv
deleted file mode 100644
index 76162d9..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/intermediate/kline_feature_panel.csv
+++ /dev/null
@@ -1,26 +0,0 @@
-experiment_id,run_id,object_id,event_date,close,volume,ma5,ma10
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-01,10.00,2100,,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-04,9.90,1980,,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-05,9.82,1880,,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-06,9.78,1820,,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-07,9.74,1760,9.8480,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-08,9.70,1690,9.7880,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-11,9.72,1710,9.7520,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-12,9.75,1770,9.7380,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-13,9.78,1840,9.7380,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-14,10.05,2450,9.8000,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-15,10.28,2680,9.9160,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-18,10.55,2920,10.0820,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-19,10.46,2510,10.2240,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-20,10.62,2640,10.3920,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-21,10.82,2770,10.5460,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-22,10.76,2380,10.6420,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-25,10.94,2460,10.7200,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-26,11.10,2580,10.8480,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-27,11.05,2300,10.9340,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-28,11.22,2420,11.0140,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-29,11.35,2550,11.1320,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-01,11.28,2260,11.2000,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-02,11.42,2360,11.2640,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-03,11.58,2490,11.3700,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-04,11.66,2520,11.4580,
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/kline_ma5_breakout_result.csv b/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/kline_ma5_breakout_result.csv
deleted file mode 100644
index e997932..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/kline_ma5_breakout_result.csv
+++ /dev/null
@@ -1,26 +0,0 @@
-experiment_id,run_id,object_id,event_date,open,high,low,close,volume,ma5,ma10,signal_type,signal_flag,signal_reason
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-01,10.02,10.20,9.82,10.00,2100,,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-04,9.98,10.16,9.72,9.90,1980,,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-05,9.88,10.06,9.64,9.82,1880,,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-06,9.80,9.98,9.60,9.78,1820,,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-07,9.76,9.94,9.56,9.74,1760,9.8480,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-08,9.72,9.89,9.53,9.70,1690,9.7880,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-11,9.72,9.89,9.55,9.72,1710,9.7520,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-12,9.74,9.93,9.56,9.75,1770,9.7380,,MA5_BREAKOUT,1,close_cross_above_ma5
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-13,9.77,9.96,9.59,9.78,1840,9.7380,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-14,9.80,10.23,9.62,10.05,2450,9.8000,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-15,10.07,10.47,9.89,10.28,2680,9.9160,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-18,10.30,10.74,10.11,10.55,2920,10.0820,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-19,10.53,10.72,10.27,10.46,2510,10.2240,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-20,10.48,10.81,10.29,10.62,2640,10.3920,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-21,10.64,11.01,10.45,10.82,2770,10.5460,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-22,10.80,10.99,10.57,10.76,2380,10.6420,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-25,10.78,11.14,10.59,10.94,2460,10.7200,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-26,10.96,11.30,10.76,11.10,2580,10.8480,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-27,11.08,11.28,10.85,11.05,2300,10.9340,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-28,11.07,11.42,10.87,11.22,2420,11.0140,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-05-29,11.24,11.55,11.04,11.35,2550,11.1320,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-01,11.33,11.53,11.08,11.28,2260,11.2000,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-02,11.30,11.63,11.10,11.42,2360,11.2640,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-03,11.44,11.79,11.23,11.58,2490,11.3700,,,0,
-EXP-20260601-KLINE-MA5-BREAKOUT-001,RUN-20260601-KLINE-MA5-BREAKOUT-001,KOBJ001,2026-06-04,11.60,11.87,11.39,11.66,2520,11.4580,,,0,
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/output_manifest.csv b/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/output_manifest.csv
deleted file mode 100644
index 44a20f0..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/output_manifest.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-artifact,path,artifact_role,row_count_or_count,sha256
-kline_feature_panel.csv,exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/intermediate/kline_feature_panel.csv,intermediate_feature_panel,25,46f75488bbb70bc25bc0519595889977bd23bfb60705fbf33a8c75830182a0d3
-kline_ma5_breakout_result.csv,exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/kline_ma5_breakout_result.csv,result_table,25,4f7182d0bdb22bbb6b76284b2668cefc4fb48f49c1f42baee9a3b7ef7131d300
-KOBJ001_ma5_breakout.svg,exp-data/img/EXP-20260601-KLINE-MA5-BREAKOUT-001/RUN-20260601-KLINE-MA5-BREAKOUT-001/KOBJ001_ma5_breakout.svg,chart,1,885c0432d82a3c0df0b8b18ec8cc9821dfdf6e77182466af7850afad2029c0ce
-summary.json,exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/summary.json,summary,1,6fe6f5e16f66a5a6c3108346b0d7f02b91a2bc9743913c2b171d963ba0bf15ce
-readout.md,exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/readout.md,readout,1,26840c218f5fe1b01e78b5c222a8d6bcda51c86741e613fe265e44ca92354fd4
-input_manifest.csv,exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/input_manifest.csv,input_manifest,1,9f4e0b948e24c4ea6fd32ef60e7327aed6015ec0493e800e80815634f32174b5
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/readout.md b/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/readout.md
deleted file mode 100644
index 6d5be02..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/readout.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# EXP-20260601-KLINE-MA5-BREAKOUT-001 readout
-
-- status: PASS
-- design_id: DESIGN-20260601-KLINE-MA5-BREAKOUT-001
-- run_id: RUN-20260601-KLINE-MA5-BREAKOUT-001
-- data_type: synthetic_kline
-- row_count: 25
-- signal_count: 1
-- intermediate_feature_panel: `exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/intermediate/kline_feature_panel.csv`
-- result_table: `exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/kline_ma5_breakout_result.csv`
-- chart: `exp-data/img/EXP-20260601-KLINE-MA5-BREAKOUT-001/RUN-20260601-KLINE-MA5-BREAKOUT-001/KOBJ001_ma5_breakout.svg`
-
-Boundary: this experiment validates project B experiment recording and artifact chain only. It does not prove any real-world trading rule.
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/summary.json b/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/summary.json
deleted file mode 100644
index 14fe1c2..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/summary.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "experiment_id": "EXP-20260601-KLINE-MA5-BREAKOUT-001",
- "design_id": "DESIGN-20260601-KLINE-MA5-BREAKOUT-001",
- "run_id": "RUN-20260601-KLINE-MA5-BREAKOUT-001",
- "status": "PASS",
- "data_type": "synthetic_kline",
- "result_boundary": "environment_and_recording_flow_validation_only",
- "row_count": 25,
- "object_count": 1,
- "signal_count": 1,
- "raw_input": "exp-data/raw/RUN-20260601-KLINE-MA5-BREAKOUT-001/synthetic_kline_input.csv",
- "intermediate_feature_panel": "exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/intermediate/kline_feature_panel.csv",
- "result_table": "exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/kline_ma5_breakout_result.csv",
- "chart": "exp-data/img/EXP-20260601-KLINE-MA5-BREAKOUT-001/RUN-20260601-KLINE-MA5-BREAKOUT-001/KOBJ001_ma5_breakout.svg"
-}
\ No newline at end of file
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/input_manifest.csv b/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/input_manifest.csv
deleted file mode 100644
index d8cb42a..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/input_manifest.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-artifact,path,artifact_role,row_count_or_count,sha256
-synthetic_kline_input.csv,exp-data/raw/RUN-20260601-KLINE-VOLUME-PULLBACK-002/synthetic_kline_input.csv,raw_input,25,dc38c1c4e4728746b522125b2e6f0cb6039475475ccdfe381eb3f9f2b2b75895
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/intermediate/kline_feature_panel.csv b/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/intermediate/kline_feature_panel.csv
deleted file mode 100644
index 87d79c4..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/intermediate/kline_feature_panel.csv
+++ /dev/null
@@ -1,26 +0,0 @@
-experiment_id,run_id,object_id,event_date,close,volume,ma5,ma10
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-01,20.00,3600,,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-04,20.25,3720,,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-05,20.55,3890,,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-06,20.80,4020,,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-07,21.00,4160,,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-08,21.25,4310,,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-11,21.50,4460,,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-12,21.72,4590,,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-13,21.95,4700,,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-14,22.10,4820,,21.1120
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-15,21.95,4380,,21.3070
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-18,21.82,3960,,21.4640
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-19,21.75,3580,,21.5840
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-20,21.90,3440,,21.6940
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-21,22.15,3710,,21.8090
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-22,22.40,3980,,21.9240
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-25,22.62,4200,,22.0360
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-26,22.84,4410,,22.1480
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-27,23.00,4620,,22.2530
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-28,22.88,4210,,22.3310
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-29,23.12,4430,,22.4480
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-01,23.36,4650,,22.6020
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-02,23.30,4240,,22.7570
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-03,23.55,4480,,22.9220
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-04,23.72,4700,,23.0790
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/kline_volume_pullback_result.csv b/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/kline_volume_pullback_result.csv
deleted file mode 100644
index d85b20d..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/kline_volume_pullback_result.csv
+++ /dev/null
@@ -1,26 +0,0 @@
-experiment_id,run_id,object_id,event_date,open,high,low,close,volume,ma5,ma10,signal_type,signal_flag,signal_reason
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-01,20.04,20.40,19.64,20.00,3600,,,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-04,20.04,20.61,19.68,20.25,3720,,,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-05,20.29,20.92,19.92,20.55,3890,,,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-06,20.59,21.17,20.22,20.80,4020,,,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-07,20.84,21.38,20.46,21.00,4160,,,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-08,21.04,21.63,20.66,21.25,4310,,,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-11,21.29,21.89,20.91,21.50,4460,,,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-12,21.54,22.11,21.15,21.72,4590,,,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-13,21.76,22.35,21.37,21.95,4700,,,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-14,21.99,22.50,21.59,22.10,4820,,21.1120,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-15,22.06,22.46,21.55,21.95,4380,,21.3070,VOLUME_PULLBACK_SUPPORT,1,low_near_ma10_and_volume_contracts
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-18,21.91,22.30,21.43,21.82,3960,,21.4640,VOLUME_PULLBACK_SUPPORT,1,low_near_ma10_and_volume_contracts
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-19,21.78,22.17,21.36,21.75,3580,,21.5840,VOLUME_PULLBACK_SUPPORT,1,low_near_ma10_and_volume_contracts
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-20,21.79,22.29,21.40,21.90,3440,,21.6940,VOLUME_PULLBACK_SUPPORT,1,low_near_ma10_and_volume_contracts
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-21,21.94,22.55,21.55,22.15,3710,,21.8090,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-22,22.19,22.80,21.79,22.40,3980,,21.9240,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-25,22.44,23.03,22.04,22.62,4200,,22.0360,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-26,22.67,23.25,22.26,22.84,4410,,22.1480,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-27,22.89,23.41,22.48,23.00,4620,,22.2530,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-28,22.95,23.36,22.47,22.88,4210,,22.3310,VOLUME_PULLBACK_SUPPORT,1,low_near_ma10_and_volume_contracts
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-05-29,22.93,23.54,22.52,23.12,4430,,22.4480,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-01,23.17,23.78,22.75,23.36,4650,,22.6020,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-02,23.31,23.73,22.88,23.30,4240,,22.7570,VOLUME_PULLBACK_SUPPORT,1,low_near_ma10_and_volume_contracts
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-03,23.35,23.97,22.93,23.55,4480,,22.9220,,0,
-EXP-20260601-KLINE-VOLUME-PULLBACK-002,RUN-20260601-KLINE-VOLUME-PULLBACK-002,KOBJ002,2026-06-04,23.60,24.15,23.18,23.72,4700,,23.0790,,0,
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/output_manifest.csv b/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/output_manifest.csv
deleted file mode 100644
index 3ed85a0..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/output_manifest.csv
+++ /dev/null
@@ -1,7 +0,0 @@
-artifact,path,artifact_role,row_count_or_count,sha256
-kline_feature_panel.csv,exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/intermediate/kline_feature_panel.csv,intermediate_feature_panel,25,f393fa12e3329fd239298c34917cc9508b57335f64219fb6af01d855df2d7347
-kline_volume_pullback_result.csv,exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/kline_volume_pullback_result.csv,result_table,25,9db113912c6ef81c3cc24779a994e6021f8986908f60b99e768f743a959ca884
-KOBJ002_volume_pullback.svg,exp-data/img/EXP-20260601-KLINE-VOLUME-PULLBACK-002/RUN-20260601-KLINE-VOLUME-PULLBACK-002/KOBJ002_volume_pullback.svg,chart,1,0e23960890175cc2750fadbfe128f7ef9e63be0a37fe71ae052f7847b23d4bd0
-summary.json,exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/summary.json,summary,1,df011e108cd78d3f54f200b32bd36b172b34ed2323bad2e8d0a4d6548225a690
-readout.md,exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/readout.md,readout,1,d1f7843b568c4c15b3a87cb85618b9f0a148411377d7756b099e26b3175ef2a7
-input_manifest.csv,exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/input_manifest.csv,input_manifest,1,e84565b6034ddfc2958d03a65196ef6b928f28ba9eb586f06e84c3076678a9ac
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/readout.md b/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/readout.md
deleted file mode 100644
index a976efe..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/readout.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# EXP-20260601-KLINE-VOLUME-PULLBACK-002 readout
-
-- status: PASS
-- design_id: DESIGN-20260601-KLINE-VOLUME-PULLBACK-002
-- run_id: RUN-20260601-KLINE-VOLUME-PULLBACK-002
-- data_type: synthetic_kline
-- row_count: 25
-- signal_count: 6
-- intermediate_feature_panel: `exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/intermediate/kline_feature_panel.csv`
-- result_table: `exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/kline_volume_pullback_result.csv`
-- chart: `exp-data/img/EXP-20260601-KLINE-VOLUME-PULLBACK-002/RUN-20260601-KLINE-VOLUME-PULLBACK-002/KOBJ002_volume_pullback.svg`
-
-Boundary: this experiment validates project B experiment recording and artifact chain only. It does not prove any real-world trading rule.
diff --git a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/summary.json b/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/summary.json
deleted file mode 100644
index 859f5bc..0000000
--- a/project B/exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/summary.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "experiment_id": "EXP-20260601-KLINE-VOLUME-PULLBACK-002",
- "design_id": "DESIGN-20260601-KLINE-VOLUME-PULLBACK-002",
- "run_id": "RUN-20260601-KLINE-VOLUME-PULLBACK-002",
- "status": "PASS",
- "data_type": "synthetic_kline",
- "result_boundary": "environment_and_recording_flow_validation_only",
- "row_count": 25,
- "object_count": 1,
- "signal_count": 6,
- "raw_input": "exp-data/raw/RUN-20260601-KLINE-VOLUME-PULLBACK-002/synthetic_kline_input.csv",
- "intermediate_feature_panel": "exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/intermediate/kline_feature_panel.csv",
- "result_table": "exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/kline_volume_pullback_result.csv",
- "chart": "exp-data/img/EXP-20260601-KLINE-VOLUME-PULLBACK-002/RUN-20260601-KLINE-VOLUME-PULLBACK-002/KOBJ002_volume_pullback.svg"
-}
\ No newline at end of file
diff --git a/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/input_manifest.csv b/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/input_manifest.csv
deleted file mode 100644
index 3f15e47..0000000
--- a/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/input_manifest.csv
+++ /dev/null
@@ -1,2 +0,0 @@
-artifact,path,artifact_role,row_count,sha256
-synthetic_timeseries_input.csv,exp-data/raw/RUN-20260601-TIMESERIES-SMOKE-001/synthetic_timeseries_input.csv,raw_input,20,6dd6f17cf5c8d5f370929b408ea485b70fc57364cc63e967f3e90a5756f6783e
diff --git a/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/output_manifest.csv b/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/output_manifest.csv
deleted file mode 100644
index 70efcb1..0000000
--- a/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/output_manifest.csv
+++ /dev/null
@@ -1,8 +0,0 @@
-artifact,path,artifact_role,row_count_or_count,sha256
-synthetic_timeseries_input.csv,exp-data/raw/RUN-20260601-TIMESERIES-SMOKE-001/synthetic_timeseries_input.csv,raw_input,20,6dd6f17cf5c8d5f370929b408ea485b70fc57364cc63e967f3e90a5756f6783e
-timeseries_signal_result.csv,exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/timeseries_signal_result.csv,result_table,20,04fa8ddef80630efd88ff537b8f3c47c7d0e0336f2b1e3c84c5d732fc2adefd7
-OBJECT001_2026-05_timeseries_ma5_breakout.svg,exp-data/img/EXP-20260601-TIMESERIES-SMOKE-001/RUN-20260601-TIMESERIES-SMOKE-001/OBJECT001_2026-05_timeseries_ma5_breakout.svg,chart,1,f51da7be5085d7a588fffe08e2ebe06dad560066b578cc673dcb278cee2398a8
-summary.json,exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/summary.json,summary,1,e03b8f892245fd1e6ac6605a75b8c7d7b0073fd09dfd1c4d4228953ad189a7a0
-readout.md,exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/readout.md,readout,1,903d0aeeaebdd1bacd2e87e471740dac7143712d5d5d17508dbbac141ab7eee1
-input_manifest.csv,exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/input_manifest.csv,input_manifest,1,e16ca16c4a09c798aef1cef858df575034e9c6e01dfcef36d9ee27f74c3aade6
-run_timeseries_smoke_experiment.py,exp-data/tmp/run_timeseries_smoke_experiment.py,runner_script,1,215c6cbe59712ffda38ba3cb76cfe4dfc5314f84aaafd5b50c355c14edacddd0
diff --git a/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/readout.md b/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/readout.md
deleted file mode 100644
index 3f56419..0000000
--- a/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/readout.md
+++ /dev/null
@@ -1,8 +0,0 @@
-# Timeseries smoke experiment readout
-
-experiment_id: EXP-20260601-TIMESERIES-SMOKE-001
-run_id: RUN-20260601-TIMESERIES-SMOKE-001
-
-结论:实验环境闭环通过。合成时序数据、结果表、SVG 图、summary 和 manifest 均已生成。
-
-边界:本实验只验证实验体系能记录、执行、归档和审计一个轻量时序图实验,不证明任何业务规则有效。
\ No newline at end of file
diff --git a/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/summary.json b/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/summary.json
deleted file mode 100644
index 150361b..0000000
--- a/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/summary.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "experiment_id": "EXP-20260601-TIMESERIES-SMOKE-001",
- "run_id": "RUN-20260601-TIMESERIES-SMOKE-001",
- "status": "PASS__ENVIRONMENT_SMOKE_READY",
- "data_policy": "synthetic data; environment smoke only; not a business conclusion",
- "row_count": 20,
- "object_count": 1,
- "signal_count": 1,
- "raw_input": "exp-data/raw/RUN-20260601-TIMESERIES-SMOKE-001/synthetic_timeseries_input.csv",
- "result_table": "exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/timeseries_signal_result.csv",
- "chart": "exp-data/img/EXP-20260601-TIMESERIES-SMOKE-001/RUN-20260601-TIMESERIES-SMOKE-001/OBJECT001_2026-05_timeseries_ma5_breakout.svg",
- "future_function_requirement": "not applicable for synthetic environment smoke; no business conclusion"
-}
\ No newline at end of file
diff --git a/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/timeseries_signal_result.csv b/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/timeseries_signal_result.csv
deleted file mode 100644
index 7495c39..0000000
--- a/project B/exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/timeseries_signal_result.csv
+++ /dev/null
@@ -1,21 +0,0 @@
-experiment_id,run_id,object_id,event_date,open,high,low,close,volume,data_source,source_visible_at,ma5,ma5_breakout_flag,signal_rule
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-01,9.99,10.18,9.84,10.0,106500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-01 15:00:00,,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-04,10.02,10.2,9.67,9.82,113000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-04 15:00:00,,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-05,9.81,9.99,9.6,9.75,119500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-05 15:00:00,,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-06,9.77,9.95,9.53,9.68,126000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-06 15:00:00,,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-07,9.67,9.87,9.53,9.7,132500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-07 15:00:00,9.79,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-08,9.72,9.95,9.57,9.77,139000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-08 15:00:00,9.744,1,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-11,9.76,10.06,9.61,9.88,145500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-11 15:00:00,9.756,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-12,9.9,10.23,9.75,10.05,152000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-12 15:00:00,9.816,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-13,10.04,10.47,9.89,10.28,203500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-13 15:00:00,9.936,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-14,10.3,10.81,10.15,10.62,210000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-14 15:00:00,10.12,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-15,10.61,10.8,10.39,10.55,171500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-15 15:00:00,10.276,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-18,10.57,10.93,10.41,10.74,223000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-18 15:00:00,10.448,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-19,10.73,11.1,10.57,10.9,184500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-19 15:00:00,10.618,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-20,10.92,11.12,10.7,10.86,191000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-20 15:00:00,10.734,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-21,10.85,11.25,10.69,11.05,197500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-21 15:00:00,10.82,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-22,11.07,11.42,10.91,11.22,204000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-22 15:00:00,10.954,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-25,11.21,11.41,11.01,11.18,210500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-25 15:00:00,11.042,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-26,11.2,11.56,11.03,11.36,217000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-26 15:00:00,11.134,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-27,11.35,11.71,11.18,11.5,223500,SYNTHETIC_TIMESERIES_SMOKE,2026-05-27 15:00:00,11.262,0,close_cross_above_ma5_after_pullback
-EXP-20260601-TIMESERIES-SMOKE-001,RUN-20260601-TIMESERIES-SMOKE-001,OBJECT001,2026-05-28,11.52,11.73,11.25,11.42,230000,SYNTHETIC_TIMESERIES_SMOKE,2026-05-28 15:00:00,11.336,0,close_cross_above_ma5_after_pullback
diff --git a/project B/exp-data/tmp/__pycache__/run_kline_dual_experiments.cpython-312.pyc b/project B/exp-data/tmp/__pycache__/run_kline_dual_experiments.cpython-312.pyc
deleted file mode 100644
index e1f4047..0000000
--- a/project B/exp-data/tmp/__pycache__/run_kline_dual_experiments.cpython-312.pyc
+++ /dev/null
Binary files differ
diff --git a/project B/exp-data/tmp/__pycache__/run_timeseries_smoke_experiment.cpython-312.pyc b/project B/exp-data/tmp/__pycache__/run_timeseries_smoke_experiment.cpython-312.pyc
deleted file mode 100644
index 279dbd8..0000000
--- a/project B/exp-data/tmp/__pycache__/run_timeseries_smoke_experiment.cpython-312.pyc
+++ /dev/null
Binary files differ
diff --git a/project B/exp-data/tmp/run_kline_dual_experiments.py b/project B/exp-data/tmp/run_kline_dual_experiments.py
deleted file mode 100644
index 0020cd3..0000000
--- a/project B/exp-data/tmp/run_kline_dual_experiments.py
+++ /dev/null
@@ -1,494 +0,0 @@
-from __future__ import annotations
-
-import csv
-import hashlib
-import json
-from datetime import date, timedelta
-from pathlib import Path
-
-
-PROJECT_ROOT = Path(__file__).resolve().parents[2]
-
-
-def _rel(path: Path) -> str:
- return path.resolve().relative_to(PROJECT_ROOT.resolve()).as_posix()
-
-
-def _sha256(path: Path) -> str:
- digest = hashlib.sha256()
- with path.open("rb") as handle:
- for chunk in iter(lambda: handle.read(1024 * 1024), b""):
- digest.update(chunk)
- return digest.hexdigest()
-
-
-def _write_csv(path: Path, rows: list[dict], fieldnames: list[str]) -> None:
- path.parent.mkdir(parents=True, exist_ok=True)
- with path.open("w", newline="", encoding="utf-8-sig") as handle:
- writer = csv.DictWriter(handle, fieldnames=fieldnames)
- writer.writeheader()
- writer.writerows(rows)
-
-
-def _write_json(path: Path, payload: dict) -> None:
- path.parent.mkdir(parents=True, exist_ok=True)
- path.write_text(json.dumps(payload, ensure_ascii=False, indent=2), encoding="utf-8")
-
-
-def _business_days(start: date, count: int) -> list[date]:
- days: list[date] = []
- cursor = start
- while len(days) < count:
- if cursor.weekday() < 5:
- days.append(cursor)
- cursor += timedelta(days=1)
- return days
-
-
-def _build_kline_rows(
- *,
- experiment_id: str,
- run_id: str,
- object_id: str,
- closes: list[float],
- volumes: list[int],
-) -> list[dict]:
- rows: list[dict] = []
- for idx, (event_date, close, volume) in enumerate(
- zip(_business_days(date(2026, 5, 1), len(closes)), closes, volumes),
- start=1,
- ):
- prev_close = closes[idx - 2] if idx > 1 else close
- open_price = round(prev_close * (1 + (0.002 if close >= prev_close else -0.002)), 2)
- high = round(max(open_price, close) * 1.018, 2)
- low = round(min(open_price, close) * 0.982, 2)
- rows.append(
- {
- "experiment_id": experiment_id,
- "run_id": run_id,
- "object_id": object_id,
- "event_date": event_date.isoformat(),
- "open": f"{open_price:.2f}",
- "high": f"{high:.2f}",
- "low": f"{low:.2f}",
- "close": f"{close:.2f}",
- "volume": str(volume),
- }
- )
- return rows
-
-
-def _moving_average(values: list[float], window: int, idx: int) -> float | None:
- if idx + 1 < window:
- return None
- return sum(values[idx + 1 - window : idx + 1]) / window
-
-
-def _calculate_ma5_breakout(rows: list[dict]) -> list[dict]:
- closes = [float(row["close"]) for row in rows]
- result: list[dict] = []
- for idx, row in enumerate(rows):
- ma5 = _moving_average(closes, 5, idx)
- prev_ma5 = _moving_average(closes, 5, idx - 1) if idx > 0 else None
- prev_close = closes[idx - 1] if idx > 0 else None
- flag = int(
- ma5 is not None
- and prev_ma5 is not None
- and prev_close is not None
- and prev_close <= prev_ma5
- and closes[idx] > ma5
- )
- enriched = dict(row)
- enriched.update(
- {
- "ma5": "" if ma5 is None else f"{ma5:.4f}",
- "ma10": "",
- "signal_type": "MA5_BREAKOUT" if flag else "",
- "signal_flag": str(flag),
- "signal_reason": "close_cross_above_ma5" if flag else "",
- }
- )
- result.append(enriched)
- return result
-
-
-def _calculate_volume_pullback(rows: list[dict]) -> list[dict]:
- closes = [float(row["close"]) for row in rows]
- lows = [float(row["low"]) for row in rows]
- volumes = [int(row["volume"]) for row in rows]
- result: list[dict] = []
- for idx, row in enumerate(rows):
- ma10 = _moving_average(closes, 10, idx)
- prev_volume = volumes[idx - 1] if idx > 0 else None
- flag = int(
- ma10 is not None
- and prev_volume is not None
- and lows[idx] <= ma10 * 1.015
- and closes[idx] >= ma10
- and volumes[idx] < prev_volume
- )
- enriched = dict(row)
- enriched.update(
- {
- "ma5": "",
- "ma10": "" if ma10 is None else f"{ma10:.4f}",
- "signal_type": "VOLUME_PULLBACK_SUPPORT" if flag else "",
- "signal_flag": str(flag),
- "signal_reason": "low_near_ma10_and_volume_contracts" if flag else "",
- }
- )
- result.append(enriched)
- return result
-
-
-def _write_svg(path: Path, rows: list[dict], title: str, ma_field: str) -> None:
- width = 980
- height = 420
- margin = 46
- closes = [float(row["close"]) for row in rows]
- highs = [float(row["high"]) for row in rows]
- lows = [float(row["low"]) for row in rows]
- prices = highs + lows
- p_min = min(prices) * 0.985
- p_max = max(prices) * 1.015
- step = (width - margin * 2) / max(1, len(rows) - 1)
-
- def x(idx: int) -> float:
- return margin + step * idx
-
- def y(price: float) -> float:
- return height - margin - (price - p_min) / (p_max - p_min) * (height - margin * 2)
-
- candle_parts: list[str] = []
- ma_points: list[str] = []
- signal_parts: list[str] = []
- for idx, row in enumerate(rows):
- open_price = float(row["open"])
- close = float(row["close"])
- high = float(row["high"])
- low = float(row["low"])
- color = "#c43c35" if close >= open_price else "#2477b3"
- cx = x(idx)
- body_y = min(y(open_price), y(close))
- body_h = max(2, abs(y(open_price) - y(close)))
- candle_parts.append(
- f'<line x1="{cx:.1f}" y1="{y(high):.1f}" x2="{cx:.1f}" y2="{y(low):.1f}" '
- f'stroke="{color}" stroke-width="1.5" />'
- )
- candle_parts.append(
- f'<rect x="{cx - 5:.1f}" y="{body_y:.1f}" width="10" height="{body_h:.1f}" '
- f'fill="{color}" opacity="0.78" />'
- )
- ma_value = row.get(ma_field, "")
- if ma_value:
- ma_points.append(f"{cx:.1f},{y(float(ma_value)):.1f}")
- if row.get("signal_flag") == "1":
- signal_parts.append(
- f'<circle cx="{cx:.1f}" cy="{y(low) - 13:.1f}" r="6" fill="#d92323" />'
- )
- signal_parts.append(
- f'<text x="{cx + 8:.1f}" y="{y(low) - 18:.1f}" font-size="12" fill="#d92323">signal</text>'
- )
-
- ma_polyline = ""
- if len(ma_points) >= 2:
- ma_polyline = (
- f'<polyline points="{" ".join(ma_points)}" fill="none" '
- 'stroke="#d49a00" stroke-width="2" />'
- )
- svg = f"""<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" viewBox="0 0 {width} {height}">
- <rect width="100%" height="100%" fill="#fbfaf6" />
- <text x="{margin}" y="28" font-size="18" font-family="Arial" fill="#222">{title}</text>
- <line x1="{margin}" y1="{height - margin}" x2="{width - margin}" y2="{height - margin}" stroke="#333" />
- <line x1="{margin}" y1="{margin}" x2="{margin}" y2="{height - margin}" stroke="#333" />
- {''.join(candle_parts)}
- {ma_polyline}
- {''.join(signal_parts)}
- <text x="{margin}" y="{height - 14}" font-size="12" font-family="Arial" fill="#555">synthetic K-line data; red dot marks detected signal</text>
-</svg>
-"""
- path.parent.mkdir(parents=True, exist_ok=True)
- path.write_text(svg, encoding="utf-8")
-
-
-def _csv_row_count(path: Path) -> int:
- if path.suffix.lower() != ".csv":
- return 1
- with path.open("r", encoding="utf-8-sig", newline="") as handle:
- reader = csv.reader(handle)
- rows = list(reader)
- return max(0, len(rows) - 1)
-
-
-def _manifest_rows(paths: list[Path], role_map: dict[str, str]) -> list[dict]:
- rows: list[dict] = []
- for path in paths:
- rows.append(
- {
- "artifact": path.name,
- "path": _rel(path),
- "artifact_role": role_map.get(path.name, "artifact"),
- "row_count_or_count": str(_csv_row_count(path)),
- "sha256": _sha256(path),
- }
- )
- return rows
-
-
-def _run_one(config: dict) -> dict:
- run_id = config["run_id"]
- experiment_id = config["experiment_id"]
- raw_dir = PROJECT_ROOT / "exp-data" / "raw" / run_id
- result_dir = PROJECT_ROOT / "exp-data" / "result" / run_id
- img_dir = PROJECT_ROOT / "exp-data" / "img" / experiment_id / run_id
- raw_path = raw_dir / "synthetic_kline_input.csv"
- intermediate_path = result_dir / "intermediate" / "kline_feature_panel.csv"
- result_path = result_dir / config["result_file"]
- svg_path = img_dir / config["chart_file"]
- readout_path = result_dir / "readout.md"
- summary_path = result_dir / "summary.json"
- input_manifest_path = result_dir / "input_manifest.csv"
- output_manifest_path = result_dir / "output_manifest.csv"
-
- raw_rows = _build_kline_rows(
- experiment_id=experiment_id,
- run_id=run_id,
- object_id=config["object_id"],
- closes=config["closes"],
- volumes=config["volumes"],
- )
- _write_csv(raw_path, raw_rows, ["experiment_id", "run_id", "object_id", "event_date", "open", "high", "low", "close", "volume"])
-
- if config["kind"] == "ma5_breakout":
- result_rows = _calculate_ma5_breakout(raw_rows)
- ma_field = "ma5"
- elif config["kind"] == "volume_pullback":
- result_rows = _calculate_volume_pullback(raw_rows)
- ma_field = "ma10"
- else:
- raise ValueError(config["kind"])
- feature_fields = [
- "experiment_id",
- "run_id",
- "object_id",
- "event_date",
- "close",
- "volume",
- "ma5",
- "ma10",
- ]
- feature_rows = [{field: row.get(field, "") for field in feature_fields} for row in result_rows]
- _write_csv(intermediate_path, feature_rows, feature_fields)
- result_fields = [
- "experiment_id",
- "run_id",
- "object_id",
- "event_date",
- "open",
- "high",
- "low",
- "close",
- "volume",
- "ma5",
- "ma10",
- "signal_type",
- "signal_flag",
- "signal_reason",
- ]
- _write_csv(result_path, result_rows, result_fields)
- _write_svg(svg_path, result_rows, config["title"], ma_field)
-
- signal_count = sum(int(row["signal_flag"]) for row in result_rows)
- summary = {
- "experiment_id": experiment_id,
- "design_id": config["design_id"],
- "run_id": run_id,
- "status": "PASS" if signal_count >= 1 else "FAIL",
- "data_type": "synthetic_kline",
- "result_boundary": "environment_and_recording_flow_validation_only",
- "row_count": len(result_rows),
- "object_count": 1,
- "signal_count": signal_count,
- "raw_input": _rel(raw_path),
- "intermediate_feature_panel": _rel(intermediate_path),
- "result_table": _rel(result_path),
- "chart": _rel(svg_path),
- }
- _write_json(summary_path, summary)
-
- readout = f"""# {experiment_id} readout
-
-- status: {summary["status"]}
-- design_id: {config["design_id"]}
-- run_id: {run_id}
-- data_type: synthetic_kline
-- row_count: {summary["row_count"]}
-- signal_count: {signal_count}
-- intermediate_feature_panel: `{_rel(intermediate_path)}`
-- result_table: `{_rel(result_path)}`
-- chart: `{_rel(svg_path)}`
-
-Boundary: this experiment validates project B experiment recording and artifact chain only. It does not prove any real-world trading rule.
-"""
- readout_path.write_text(readout, encoding="utf-8")
-
- _write_csv(
- input_manifest_path,
- _manifest_rows([raw_path], {raw_path.name: "raw_input"}),
- ["artifact", "path", "artifact_role", "row_count_or_count", "sha256"],
- )
- _write_csv(
- output_manifest_path,
- _manifest_rows(
- [intermediate_path, result_path, svg_path, summary_path, readout_path, input_manifest_path],
- {
- result_path.name: "result_table",
- intermediate_path.name: "intermediate_feature_panel",
- svg_path.name: "chart",
- summary_path.name: "summary",
- readout_path.name: "readout",
- input_manifest_path.name: "input_manifest",
- },
- ),
- ["artifact", "path", "artifact_role", "row_count_or_count", "sha256"],
- )
- return summary
-
-
-def main() -> None:
- configs = [
- {
- "experiment_id": "EXP-20260601-KLINE-MA5-BREAKOUT-001",
- "design_id": "DESIGN-20260601-KLINE-MA5-BREAKOUT-001",
- "run_id": "RUN-20260601-KLINE-MA5-BREAKOUT-001",
- "object_id": "KOBJ001",
- "kind": "ma5_breakout",
- "title": "KOBJ001 synthetic K-line MA5 breakout",
- "result_file": "kline_ma5_breakout_result.csv",
- "chart_file": "KOBJ001_ma5_breakout.svg",
- "closes": [
- 10.00,
- 9.90,
- 9.82,
- 9.78,
- 9.74,
- 9.70,
- 9.72,
- 9.75,
- 9.78,
- 10.05,
- 10.28,
- 10.55,
- 10.46,
- 10.62,
- 10.82,
- 10.76,
- 10.94,
- 11.10,
- 11.05,
- 11.22,
- 11.35,
- 11.28,
- 11.42,
- 11.58,
- 11.66,
- ],
- "volumes": [
- 2100,
- 1980,
- 1880,
- 1820,
- 1760,
- 1690,
- 1710,
- 1770,
- 1840,
- 2450,
- 2680,
- 2920,
- 2510,
- 2640,
- 2770,
- 2380,
- 2460,
- 2580,
- 2300,
- 2420,
- 2550,
- 2260,
- 2360,
- 2490,
- 2520,
- ],
- },
- {
- "experiment_id": "EXP-20260601-KLINE-VOLUME-PULLBACK-002",
- "design_id": "DESIGN-20260601-KLINE-VOLUME-PULLBACK-002",
- "run_id": "RUN-20260601-KLINE-VOLUME-PULLBACK-002",
- "object_id": "KOBJ002",
- "kind": "volume_pullback",
- "title": "KOBJ002 synthetic K-line volume pullback support",
- "result_file": "kline_volume_pullback_result.csv",
- "chart_file": "KOBJ002_volume_pullback.svg",
- "closes": [
- 20.00,
- 20.25,
- 20.55,
- 20.80,
- 21.00,
- 21.25,
- 21.50,
- 21.72,
- 21.95,
- 22.10,
- 21.95,
- 21.82,
- 21.75,
- 21.90,
- 22.15,
- 22.40,
- 22.62,
- 22.84,
- 23.00,
- 22.88,
- 23.12,
- 23.36,
- 23.30,
- 23.55,
- 23.72,
- ],
- "volumes": [
- 3600,
- 3720,
- 3890,
- 4020,
- 4160,
- 4310,
- 4460,
- 4590,
- 4700,
- 4820,
- 4380,
- 3960,
- 3580,
- 3440,
- 3710,
- 3980,
- 4200,
- 4410,
- 4620,
- 4210,
- 4430,
- 4650,
- 4240,
- 4480,
- 4700,
- ],
- },
- ]
- summaries = [_run_one(config) for config in configs]
- print(json.dumps(summaries, ensure_ascii=False, indent=2))
-
-
-if __name__ == "__main__":
- main()
diff --git a/project B/exp-data/tmp/run_timeseries_smoke_experiment.py b/project B/exp-data/tmp/run_timeseries_smoke_experiment.py
deleted file mode 100644
index 7148e7f..0000000
--- a/project B/exp-data/tmp/run_timeseries_smoke_experiment.py
+++ /dev/null
@@ -1,257 +0,0 @@
-from __future__ import annotations
-
-import csv
-import hashlib
-import json
-from datetime import date, timedelta
-from pathlib import Path
-
-
-PROJECT_ROOT = Path(__file__).resolve().parents[2]
-EXPERIMENT_ID = "EXP-20260601-TIMESERIES-SMOKE-001"
-RUN_ID = "RUN-20260601-TIMESERIES-SMOKE-001"
-OBJECT_ID = "OBJECT001"
-
-RAW_DIR = PROJECT_ROOT / "exp-data" / "raw" / RUN_ID
-RESULT_DIR = PROJECT_ROOT / "exp-data" / "result" / RUN_ID
-IMG_DIR = PROJECT_ROOT / "exp-data" / "img" / EXPERIMENT_ID / RUN_ID
-
-
-def rel(path: Path) -> str:
- return path.resolve().relative_to(PROJECT_ROOT.resolve()).as_posix()
-
-
-def sha256_file(path: Path) -> str:
- h = hashlib.sha256()
- with path.open("rb") as f:
- for chunk in iter(lambda: f.read(1024 * 1024), b""):
- h.update(chunk)
- return h.hexdigest()
-
-
-def business_days(start: date, n: int) -> list[date]:
- days: list[date] = []
- current = start
- while len(days) < n:
- if current.weekday() < 5:
- days.append(current)
- current += timedelta(days=1)
- return days
-
-
-def build_synthetic_ohlc() -> list[dict[str, object]]:
- days = business_days(date(2026, 5, 1), 20)
- closes = [
- 10.00,
- 9.82,
- 9.75,
- 9.68,
- 9.70,
- 9.77,
- 9.88,
- 10.05,
- 10.28,
- 10.62,
- 10.55,
- 10.74,
- 10.90,
- 10.86,
- 11.05,
- 11.22,
- 11.18,
- 11.36,
- 11.50,
- 11.42,
- ]
- rows: list[dict[str, object]] = []
- prev_close = closes[0]
- for idx, (event_date, close) in enumerate(zip(days, closes), start=1):
- open_price = prev_close * (1 + (0.002 if idx % 2 == 0 else -0.001))
- high = max(open_price, close) * 1.018
- low = min(open_price, close) * 0.985
- volume = 100000 + idx * 6500 + (45000 if idx in {9, 10, 12} else 0)
- rows.append(
- {
- "experiment_id": EXPERIMENT_ID,
- "run_id": RUN_ID,
- "object_id": OBJECT_ID,
- "event_date": event_date.isoformat(),
- "open": round(open_price, 2),
- "high": round(high, 2),
- "low": round(low, 2),
- "close": round(close, 2),
- "volume": int(volume),
- "data_source": "SYNTHETIC_TIMESERIES_SMOKE",
- "source_visible_at": f"{event_date.isoformat()} 15:00:00",
- }
- )
- prev_close = close
- return rows
-
-
-def add_ma_and_signal(rows: list[dict[str, object]]) -> list[dict[str, object]]:
- closes = [float(row["close"]) for row in rows]
- output: list[dict[str, object]] = []
- prev_close = None
- prev_ma5 = None
- for idx, row in enumerate(rows):
- if idx >= 4:
- ma5 = round(sum(closes[idx - 4 : idx + 1]) / 5, 4)
- else:
- ma5 = None
- close = float(row["close"])
- breakout = bool(ma5 is not None and prev_ma5 is not None and close > ma5 and prev_close is not None and prev_close <= prev_ma5)
- output.append(
- {
- **row,
- "ma5": "" if ma5 is None else ma5,
- "ma5_breakout_flag": int(breakout),
- "signal_rule": "close_cross_above_ma5_after_pullback",
- }
- )
- prev_close = close
- prev_ma5 = ma5
- return output
-
-
-def write_csv(path: Path, rows: list[dict[str, object]]) -> None:
- path.parent.mkdir(parents=True, exist_ok=True)
- with path.open("w", encoding="utf-8-sig", newline="") as f:
- writer = csv.DictWriter(f, fieldnames=list(rows[0].keys()))
- writer.writeheader()
- writer.writerows(rows)
-
-
-def write_svg(path: Path, rows: list[dict[str, object]]) -> None:
- path.parent.mkdir(parents=True, exist_ok=True)
- width = 920
- height = 420
- margin = 50
- plot_h = height - margin * 2
- prices = [float(row[k]) for row in rows for k in ("high", "low")]
- min_p = min(prices)
- max_p = max(prices)
-
- def y(price: float) -> float:
- return margin + (max_p - price) / (max_p - min_p) * plot_h
-
- step = (width - margin * 2) / len(rows)
- parts = [
- f'<svg xmlns="http://www.w3.org/2000/svg" width="{width}" height="{height}" viewBox="0 0 {width} {height}">',
- '<rect width="100%" height="100%" fill="#fbfaf6"/>',
- '<text x="50" y="28" font-size="18" font-family="Consolas, monospace">Timeseries smoke experiment: OBJECT001 / MA5 breakout</text>',
- f'<line x1="{margin}" y1="{height-margin}" x2="{width-margin}" y2="{height-margin}" stroke="#777"/>',
- f'<line x1="{margin}" y1="{margin}" x2="{margin}" y2="{height-margin}" stroke="#777"/>',
- ]
- for idx, row in enumerate(rows):
- x = margin + idx * step + step / 2
- open_p = float(row["open"])
- close_p = float(row["close"])
- high_p = float(row["high"])
- low_p = float(row["low"])
- color = "#c0392b" if close_p >= open_p else "#1f6f50"
- body_top = min(y(open_p), y(close_p))
- body_h = max(abs(y(open_p) - y(close_p)), 2)
- parts.append(f'<line x1="{x:.2f}" y1="{y(high_p):.2f}" x2="{x:.2f}" y2="{y(low_p):.2f}" stroke="{color}" stroke-width="2"/>')
- parts.append(f'<rect x="{x - step * 0.25:.2f}" y="{body_top:.2f}" width="{step * 0.5:.2f}" height="{body_h:.2f}" fill="{color}" opacity="0.85"/>')
- if int(row["ma5_breakout_flag"]) == 1:
- parts.append(f'<circle cx="{x:.2f}" cy="{y(close_p) - 12:.2f}" r="6" fill="#2563eb"/>')
- parts.append(f'<text x="{x + 8:.2f}" y="{y(close_p) - 16:.2f}" font-size="12" fill="#2563eb">breakout</text>')
- ma_points = []
- for idx, row in enumerate(rows):
- if row["ma5"] != "":
- x = margin + idx * step + step / 2
- ma_points.append(f'{x:.2f},{y(float(row["ma5"])):.2f}')
- if ma_points:
- parts.append(f'<polyline points="{" ".join(ma_points)}" fill="none" stroke="#f59e0b" stroke-width="2"/>')
- parts.append('<text x="760" y="58" font-size="13" fill="#f59e0b">MA5</text>')
- parts.append("</svg>")
- path.write_text("\n".join(parts), encoding="utf-8")
-
-
-def main() -> None:
- RAW_DIR.mkdir(parents=True, exist_ok=True)
- RESULT_DIR.mkdir(parents=True, exist_ok=True)
- IMG_DIR.mkdir(parents=True, exist_ok=True)
-
- raw_rows = build_synthetic_ohlc()
- result_rows = add_ma_and_signal(raw_rows)
- signal_count = sum(int(row["ma5_breakout_flag"]) for row in result_rows)
-
- raw_csv = RAW_DIR / "synthetic_timeseries_input.csv"
- result_csv = RESULT_DIR / "timeseries_signal_result.csv"
- chart_svg = IMG_DIR / "OBJECT001_2026-05_timeseries_ma5_breakout.svg"
- summary_json = RESULT_DIR / "summary.json"
- readout_md = RESULT_DIR / "readout.md"
- input_manifest = RESULT_DIR / "input_manifest.csv"
- output_manifest = RESULT_DIR / "output_manifest.csv"
-
- write_csv(raw_csv, raw_rows)
- write_csv(result_csv, result_rows)
- write_svg(chart_svg, result_rows)
-
- summary = {
- "experiment_id": EXPERIMENT_ID,
- "run_id": RUN_ID,
- "status": "PASS__ENVIRONMENT_SMOKE_READY",
- "data_policy": "synthetic data; environment smoke only; not a business conclusion",
- "row_count": len(raw_rows),
- "object_count": 1,
- "signal_count": signal_count,
- "raw_input": rel(raw_csv),
- "result_table": rel(result_csv),
- "chart": rel(chart_svg),
- "future_function_requirement": "not applicable for synthetic environment smoke; no business conclusion",
- }
- summary_json.write_text(json.dumps(summary, ensure_ascii=False, indent=2), encoding="utf-8")
- readout_md.write_text(
- "\n".join(
- [
- "# Timeseries smoke experiment readout",
- "",
- f"experiment_id: {EXPERIMENT_ID}",
- f"run_id: {RUN_ID}",
- "",
- "结论:实验环境闭环通过。合成时序数据、结果表、SVG 图、summary 和 manifest 均已生成。",
- "",
- "边界:本实验只验证实验体系能记录、执行、归档和审计一个轻量时序图实验,不证明任何业务规则有效。",
- ]
- ),
- encoding="utf-8",
- )
-
- input_rows = [
- {
- "artifact": "synthetic_timeseries_input.csv",
- "path": rel(raw_csv),
- "artifact_role": "raw_input",
- "row_count": len(raw_rows),
- "sha256": sha256_file(raw_csv),
- }
- ]
- write_csv(input_manifest, input_rows)
-
- manifest_rows = []
- for path, role, rows in [
- (raw_csv, "raw_input", len(raw_rows)),
- (result_csv, "result_table", len(result_rows)),
- (chart_svg, "chart", 1),
- (summary_json, "summary", 1),
- (readout_md, "readout", 1),
- (input_manifest, "input_manifest", len(input_rows)),
- (Path(__file__), "runner_script", 1),
- ]:
- manifest_rows.append(
- {
- "artifact": path.name,
- "path": rel(path),
- "artifact_role": role,
- "row_count_or_count": rows,
- "sha256": sha256_file(path),
- }
- )
- write_csv(output_manifest, manifest_rows)
-
-
-if __name__ == "__main__":
- main()
diff --git "a/project B/exp-doc/\345\256\236\351\252\214\345\255\230\345\202\250\344\275\223\347\263\273.md" "b/project B/exp-doc/\345\256\236\351\252\214\345\255\230\345\202\250\344\275\223\347\263\273.md"
deleted file mode 100644
index 8c99c7e..0000000
--- "a/project B/exp-doc/\345\256\236\351\252\214\345\255\230\345\202\250\344\275\223\347\263\273.md"
+++ /dev/null
@@ -1,192 +0,0 @@
-# project B 实验存储体系
-
-创建人员:Codex
-文件职责:记录 project B 实验数据目录、结果包组织方式、表 schema、读取方式和审计入口。
-管理规范/模板:../../common/exp-doc/实验存储体系创建指南.md。
-引用文件:实验规范.md;实验审计规范.md;../../common/exp-doc/实验环境创建指南.md。
-
-## 1. 存储目标和范围
-
-project B 当前使用文件系统保存实验输入、结果、图片、日志和审计证据。
-
-本文件覆盖:
-
-1. 实验原始输入快照。
-2. 实验结果包。
-3. 图片和图表。
-4. 临时脚本和临时文件。
-5. 核心表 schema。
-6. 读取和追踪路径。
-
-## 2. 目录结构
-
-```text
-project B/
- exp-doc/
- 目录导读.md
- 实验规范.md
- 实验审计规范.md
- 实验存储体系.md
- 实验审计报告.md
- 实验问题记录.md
- 实验总纲.md
- 实验设计.md
- 实验执行日志.md
- exp-data/
- raw/<run_id>/
- result/<run_id>/
- img/<experiment_id>/<run_id>/
- tmp/
-```
-
-## 3. 数据流
-
-```text
-实验总纲
--> 实验设计
--> 执行脚本或人工步骤
--> exp-data/raw/<run_id> 输入快照
--> exp-data/result/<run_id> 结果包
--> exp-data/img/<experiment_id>/<run_id> 图片
--> 执行日志
--> 审计报告
-```
-
-## 4. 结果包规则
-
-结果包路径:
-
-```text
-exp-data/result/<run_id>/
-```
-
-结果包至少包含:
-
-| 文件 | 作用 |
-|---|---|
-| summary.json | 机器可读摘要 |
-| readout.md | 人读版结论和边界 |
-| output_manifest.csv | 结果包资产清单 |
-| input_manifest.csv | 输入资产清单 |
-
-## 5. 表清单
-
-| table_name | storage_backend | storage_path_or_table | table_role | row_grain | primary_key | producer | consumer | update_mode | official_flag |
-|---|---|---|---|---|---|---|---|---|---|
-| synthetic_timeseries_input.csv | csv | exp-data/raw/<run_id>/synthetic_timeseries_input.csv | raw_input | object + event_date | experiment_id + run_id + object_id + event_date | smoke runner | 实验脚本/审计员 | overwrite_snapshot | 是 |
-| timeseries_signal_result.csv | csv | exp-data/result/<run_id>/timeseries_signal_result.csv | output | object + event_date | experiment_id + run_id + object_id + event_date | smoke runner | 审计员/后续实验 | overwrite_snapshot | 是 |
-| synthetic_kline_input.csv | csv | exp-data/raw/<run_id>/synthetic_kline_input.csv | raw_input | object + event_date | experiment_id + run_id + object_id + event_date | kline smoke runner | 实验脚本/审计员 | overwrite_snapshot | 是 |
-| kline_feature_panel.csv | csv | exp-data/result/<run_id>/intermediate/kline_feature_panel.csv | intermediate_feature_panel | object + event_date | experiment_id + run_id + object_id + event_date | kline smoke runner | 审计员/后续实验 | overwrite_snapshot | 是 |
-| kline_ma5_breakout_result.csv | csv | exp-data/result/<run_id>/kline_ma5_breakout_result.csv | output | object + event_date | experiment_id + run_id + object_id + event_date | kline smoke runner | 审计员/后续实验 | overwrite_snapshot | 是 |
-| kline_volume_pullback_result.csv | csv | exp-data/result/<run_id>/kline_volume_pullback_result.csv | output | object + event_date | experiment_id + run_id + object_id + event_date | kline smoke runner | 审计员/后续实验 | overwrite_snapshot | 是 |
-| input_manifest.csv | csv | exp-data/result/<run_id>/input_manifest.csv | manifest | artifact | artifact | smoke runner | 审计员 | overwrite_snapshot | 是 |
-| output_manifest.csv | csv | exp-data/result/<run_id>/output_manifest.csv | manifest | artifact | artifact | smoke runner | 审计员 | overwrite_snapshot | 是 |
-
-## 6. 字段级 schema
-
-### 6.1 synthetic_timeseries_input.csv
-
-| field_name | data_type | required | nullable | meaning | source | time_semantics | example |
-|---|---|---|---|---|---|---|---|
-| experiment_id | string | 是 | 否 | 实验事项 ID | runner | generated-time | EXP-20260601-TIMESERIES-SMOKE-001 |
-| run_id | string | 是 | 否 | 执行 run ID | runner | generated-time | RUN-20260601-TIMESERIES-SMOKE-001 |
-| object_id | string | 是 | 否 | 合成对象 ID | synthetic generator | event-time | OBJECT001 |
-| event_date | date | 是 | 否 | 事件日期 | synthetic generator | event-time | 2026-05-01 |
-| open | decimal | 是 | 否 | 起始值 | synthetic generator | event-time | 10.00 |
-| high | decimal | 是 | 否 | 区间高值 | synthetic generator | event-time | 10.18 |
-| low | decimal | 是 | 否 | 区间低值 | synthetic generator | event-time | 9.85 |
-| close | decimal | 是 | 否 | 结束值 | synthetic generator | event-time | 10.00 |
-| volume | integer | 是 | 否 | 活跃度示例值 | synthetic generator | event-time | 106500 |
-| data_source | string | 是 | 否 | 数据来源 | runner | generated-time | SYNTHETIC_TIMESERIES_SMOKE |
-| source_visible_at | datetime | 是 | 否 | 本行数据可见时间 | runner | as-of note | 2026-05-01 15:00:00 |
-
-### 6.2 timeseries_signal_result.csv
-
-除输入字段外,新增:
-
-| field_name | data_type | required | nullable | meaning | source | time_semantics | example |
-|---|---|---|---|---|---|---|---|
-| ma5 | decimal/string | 是 | 是 | 5 日均线;不足 5 日为空 | runner | event-time | 10.01 |
-| ma5_breakout_flag | integer | 是 | 否 | 收盘上穿 MA5 的示例信号 | runner | after-close smoke | 1 |
-| signal_rule | string | 是 | 否 | 信号规则名 | runner | generated-time | close_cross_above_ma5_after_pullback |
-
-### 6.3 synthetic_kline_input.csv
-
-| field_name | data_type | required | nullable | meaning | source | time_semantics | example |
-|---|---|---|---|---|---|---|---|
-| experiment_id | string | 是 | 否 | 实验事项 ID | runner | generated-time | EXP-20260601-KLINE-MA5-BREAKOUT-001 |
-| run_id | string | 是 | 否 | 执行 run ID | runner | generated-time | RUN-20260601-KLINE-MA5-BREAKOUT-001 |
-| object_id | string | 是 | 否 | 合成对象 ID | synthetic generator | event-time | KOBJ001 |
-| event_date | date | 是 | 否 | K 线日期 | synthetic generator | event-time | 2026-05-01 |
-| open | decimal | 是 | 否 | 开盘价示例值 | synthetic generator | event-time | 10.00 |
-| high | decimal | 是 | 否 | 最高价示例值 | synthetic generator | event-time | 10.18 |
-| low | decimal | 是 | 否 | 最低价示例值 | synthetic generator | event-time | 9.85 |
-| close | decimal | 是 | 否 | 收盘价示例值 | synthetic generator | event-time | 10.00 |
-| volume | integer | 是 | 否 | 成交量示例值 | synthetic generator | event-time | 2100 |
-
-### 6.4 kline_feature_panel.csv
-
-除 synthetic_kline_input.csv 的部分字段外,保留:
-
-| field_name | data_type | required | nullable | meaning | source | time_semantics | example |
-|---|---|---|---|---|---|---|---|
-| experiment_id | string | 是 | 否 | 实验事项 ID | runner | generated-time | EXP-20260601-KLINE-MA5-BREAKOUT-001 |
-| run_id | string | 是 | 否 | 执行 run ID | runner | generated-time | RUN-20260601-KLINE-MA5-BREAKOUT-001 |
-| object_id | string | 是 | 否 | 合成对象 ID | synthetic generator | event-time | KOBJ001 |
-| event_date | date | 是 | 否 | K 线日期 | synthetic generator | event-time | 2026-05-01 |
-| close | decimal | 是 | 否 | 收盘价示例值 | synthetic generator | event-time | 10.00 |
-| volume | integer | 是 | 否 | 成交量示例值 | synthetic generator | event-time | 2100 |
-| ma5 | decimal/string | 是 | 是 | 5 日均线;不适用或不足窗口为空 | runner | after-close smoke | 10.01 |
-| ma10 | decimal/string | 是 | 是 | 10 日均线;不适用或不足窗口为空 | runner | after-close smoke | 21.18 |
-
-### 6.5 kline_*_result.csv
-
-除 synthetic_kline_input.csv 字段外,新增:
-
-| field_name | data_type | required | nullable | meaning | source | time_semantics | example |
-|---|---|---|---|---|---|---|---|
-| ma5 | decimal/string | 是 | 是 | 5 日均线;不适用或不足窗口为空 | runner | after-close smoke | 10.01 |
-| ma10 | decimal/string | 是 | 是 | 10 日均线;不适用或不足窗口为空 | runner | after-close smoke | 21.18 |
-| signal_type | string | 是 | 是 | 示例信号类型 | runner | generated-time | MA5_BREAKOUT |
-| signal_flag | integer | 是 | 否 | 示例信号是否命中 | runner | after-close smoke | 1 |
-| signal_reason | string | 是 | 是 | 示例信号命中原因 | runner | generated-time | close_cross_above_ma5 |
-
-### 6.6 manifest 文件
-
-| field_name | data_type | required | nullable | meaning |
-|---|---|---|---|---|
-| artifact | string | 是 | 否 | 资产文件名 |
-| path | string | 是 | 否 | 资产路径 |
-| artifact_role | string | 是 | 否 | 资产角色 |
-| row_count / row_count_or_count | integer | 是 | 否 | 行数或资产数量 |
-| sha256 | string | 是 | 否 | 文件 hash |
-
-## 7. 读取方式
-
-人读:
-
-```text
-exp-doc/目录导读.md
--> 实验总纲.md
--> 实验设计.md
--> 实验执行日志.md
--> exp-data/result/<run_id>/readout.md
--> exp-doc/实验审计报告.md
-```
-
-AI 读:
-
-```text
-实验总纲
--> 实验设计
--> output_manifest.csv
--> summary.json
--> 关键结果表 / 图片
--> 审计报告
-```
-
-## 8. 临时数据边界
-
-`exp-data/tmp/` 只存临时脚本和临时文件。临时文件不能作为正式结论入口。
-
-如果临时脚本用于正式实验,应在执行日志和 output_manifest 中记录脚本路径和 hash。
diff --git "a/project B/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\346\212\245\345\221\212.md" "b/project B/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\346\212\245\345\221\212.md"
deleted file mode 100644
index 7a14d4a..0000000
--- "a/project B/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\346\212\245\345\221\212.md"
+++ /dev/null
@@ -1,267 +0,0 @@
-# project B 实验审计报告
-
-创建人员:Codex
-文件职责:记录 project B 实验设计审核、执行审核或复审的依据、结论、问题和证据。
-管理规范/模板:../../common/exp-doc/实验审核规范.md
-引用文件:../../common/exp-doc/实验审计报告模版.md;实验总纲.md;实验设计.md;实验执行日志.md;实验存储体系.md;实验审计规范.md。
-
-## 0. 当前审计总览
-
-- 当前最新审计:AUDIT-20260601-KLINE-VOLUME-PULLBACK-EXEC-002,通过
-- 当前未通过审计:无
-- 当前待复审事项:无
-
-## 1. 固定审计口径
-
-- 维护方式:append-only;每次设计审核、执行审核、复审都追加到文件末尾,最新内容在最后。
-- 历史审计处理:不得删除;如被后续复审替代,追加替代说明。
-- 审计重点:抓真问题,避免为模板形式吹毛求疵;但目标、设计、执行、证据链和结论边界必须一致。
-
-## 2. 审计记录追加区
-
-## 2026-06-01 16:07:20 AUDIT-20260601-TIMESERIES-SMOKE-DESIGN-001:轻量时序图 smoke 实验环境闭环验证
-
-- 审计类型:设计审核
-- 实验事项 ID:EXP-20260601-TIMESERIES-SMOKE-001
-- 实验设计 ID:DESIGN-20260601-TIMESERIES-SMOKE-001
-- run_id:不适用
-- 审核人:Codex
-- 审计结论:通过
-
-### 审计依据
-
-| 依据类型 | 路径/说明 |
-|---|---|
-| 实验总纲 | `实验总纲.md` |
-| 实验设计 | `实验设计.md` |
-| 来源聊天记录 | 见 `实验总纲.md` 对应实验块 |
-| 实验存储体系 | `实验存储体系.md` |
-| common 规范 | `../../common/exp-doc/实验规范.md`;`../../common/exp-doc/实验审核规范.md` |
-
-### 设计审核项
-
-- 目标是否清楚:通过
-- 设计是否能回答目标:通过
-- 来源聊天要求、实验目标、实验设计是否一致:通过
-- 数据和样本是否支撑目标:通过。使用合成时序数据足以验证实验环境闭环。
-- 防偏差设计是否足够:通过。本实验不读成业务规则,未来函数不作为阻断项。
-- 产物是否方便复核:通过
-
-### 审计边界和结论
-
-- 本次审计覆盖:设计目标、边界、产物和审计入口。
-- 本次审计未覆盖:真实业务规则有效性。
-- 可以读成:设计可以执行。
-- 不应过读为:业务规则已成立。
-- 是否需要复审:否。
-
-## 2026-06-01 16:07:20 AUDIT-20260601-TIMESERIES-SMOKE-EXEC-001:轻量时序图 smoke 实验环境闭环验证
-
-- 审计类型:执行审核
-- 实验事项 ID:EXP-20260601-TIMESERIES-SMOKE-001
-- 实验设计 ID:DESIGN-20260601-TIMESERIES-SMOKE-001
-- run_id:RUN-20260601-TIMESERIES-SMOKE-001
-- 审核人:Codex
-- 审计结论:通过
-
-### 审计依据
-
-| 依据类型 | 路径/说明 |
-|---|---|
-| 实验总纲 | `实验总纲.md` |
-| 实验设计 | `实验设计.md` |
-| 执行日志 | `实验执行日志.md` |
-| 结果包 | `../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001` |
-| 图片 | `../exp-data/img/EXP-20260601-TIMESERIES-SMOKE-001/RUN-20260601-TIMESERIES-SMOKE-001` |
-| 存储体系 | `实验存储体系.md` |
-
-### 执行审核项
-
-- 是否按设计执行:通过
-- 输入输出是否对得上:通过
-- 关键数据是否可追踪:通过
-- 是否存在真 bug:无
-- 是否需要防未来函数:不适用;本实验只验证环境闭环,不形成业务结论
-- 结论是否过读:无;文档已明确只读成环境 smoke 通过
-
-### 关键证据
-
-| 证据 | 结果 |
-|---|---|
-| raw input | `synthetic_timeseries_input.csv` 已生成,20 行 |
-| result table | `timeseries_signal_result.csv` 已生成,20 行 |
-| chart | `OBJECT001_2026-05_timeseries_ma5_breakout.svg` 已生成 |
-| summary | status = PASS__ENVIRONMENT_SMOKE_READY |
-| manifest | `input_manifest.csv`、`output_manifest.csv` 已生成并带 sha256 |
-
-### 审计边界和结论
-
-- 本次审计覆盖:执行过程、产物存在性、关键计数、manifest 和结论边界。
-- 本次审计未覆盖:真实业务规则有效性。
-- 可以读成:project B 实验环境可以支撑轻量实验完整闭环。
-- 不应过读为:任何业务规则有效。
-- 是否需要复审:否。
-
-## 2026-06-01 17:11:44 AUDIT-20260601-KLINE-MA5-BREAKOUT-DESIGN-001:K 线 MA5 突破实验设计审核
-
-- 审计类型:设计审核
-- 实验事项 ID:EXP-20260601-KLINE-MA5-BREAKOUT-001
-- 实验设计 ID:DESIGN-20260601-KLINE-MA5-BREAKOUT-001
-- run_id:不适用
-- 审核人:Codex
-- 审计结论:通过
-
-### 审计依据
-
-| 依据类型 | 路径/说明 |
-|---|---|
-| 实验总纲 | `实验总纲.md` |
-| 实验设计 | `实验设计.md` |
-| 来源聊天记录 | 见 `实验总纲.md` 对应实验块 |
-| 实验存储体系 | `实验存储体系.md` |
-| common 规范 | `../../common/exp-doc/实验规范.md`;`../../common/exp-doc/实验审核规范.md` |
-
-### 设计审核项
-
-- 是否有明确目标:通过;目标是验证 K 线实验记录闭环。
-- 是否覆盖来源聊天要求:通过;覆盖两个 K 线实验中的第一个。
-- 是否有清晰边界:通过;明确不验证真实策略和收益。
-- 是否有执行步骤:通过。
-- 是否有结果包和审计入口:通过。
-- 是否需要防未来函数:不适用;本实验不做实时决策或收益验证。
-
-### 审计边界和结论
-
-- 可以执行:是。
-- 不需要修订项:无。
-- 审计结论:设计通过,可执行。
-
-## 2026-06-01 17:11:44 AUDIT-20260601-KLINE-VOLUME-PULLBACK-DESIGN-002:K 线缩量回踩实验设计审核
-
-- 审计类型:设计审核
-- 实验事项 ID:EXP-20260601-KLINE-VOLUME-PULLBACK-002
-- 实验设计 ID:DESIGN-20260601-KLINE-VOLUME-PULLBACK-002
-- run_id:不适用
-- 审核人:Codex
-- 审计结论:通过
-
-### 审计依据
-
-| 依据类型 | 路径/说明 |
-|---|---|
-| 实验总纲 | `实验总纲.md` |
-| 实验设计 | `实验设计.md` |
-| 来源聊天记录 | 见 `实验总纲.md` 对应实验块 |
-| 实验存储体系 | `实验存储体系.md` |
-| common 规范 | `../../common/exp-doc/实验规范.md`;`../../common/exp-doc/实验审核规范.md` |
-
-### 设计审核项
-
-- 是否有明确目标:通过;目标是验证第二个 K 线实验能否连续落账。
-- 是否覆盖来源聊天要求:通过;覆盖两个 K 线实验中的第二个。
-- 是否有清晰边界:通过;明确不验证真实策略和收益。
-- 是否有执行步骤:通过。
-- 是否有结果包和审计入口:通过。
-- 是否需要防未来函数:不适用;本实验不做实时决策或收益验证。
-
-### 审计边界和结论
-
-- 可以执行:是。
-- 不需要修订项:无。
-- 审计结论:设计通过,可执行。
-
-## 2026-06-01 17:11:44 AUDIT-20260601-KLINE-MA5-BREAKOUT-EXEC-001:K 线 MA5 突破实验执行审核
-
-- 审计类型:执行审核
-- 实验事项 ID:EXP-20260601-KLINE-MA5-BREAKOUT-001
-- 实验设计 ID:DESIGN-20260601-KLINE-MA5-BREAKOUT-001
-- run_id:RUN-20260601-KLINE-MA5-BREAKOUT-001
-- 审核人:Codex
-- 审计结论:通过
-
-### 审计依据
-
-| 依据类型 | 路径/说明 |
-|---|---|
-| 实验总纲 | `实验总纲.md` |
-| 实验设计 | `实验设计.md` |
-| 执行日志 | `实验执行日志.md` |
-| 结果包 | `../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001` |
-| 图片 | `../exp-data/img/EXP-20260601-KLINE-MA5-BREAKOUT-001/RUN-20260601-KLINE-MA5-BREAKOUT-001` |
-| 存储体系 | `实验存储体系.md` |
-
-### 执行审核项
-
-- 是否按设计执行:通过。
-- 输入输出是否对得上:通过。
-- 关键数据是否可追踪:通过。
-- 是否存在真 bug:最终结果包无阻断真 bug;过程中的 manifest schema 不一致已记录到 `实验问题记录.md` 并关闭。
-- 是否需要防未来函数:不适用;本实验只验证记录闭环。
-- 结论是否过读:无;文档已明确只读成实验闭环通过。
-
-### 关键证据
-
-| 证据 | 结果 |
-|---|---|
-| raw input | `synthetic_kline_input.csv` 已生成,25 行 |
-| intermediate feature | `intermediate/kline_feature_panel.csv` 已生成,25 行 |
-| result table | `kline_ma5_breakout_result.csv` 已生成,25 行 |
-| chart | `KOBJ001_ma5_breakout.svg` 已生成 |
-| summary | status = PASS;signal_count = 1 |
-| manifest | `input_manifest.csv`、`output_manifest.csv` 已生成并带 sha256 |
-
-### 审计边界和结论
-
-- 本次审计覆盖:执行过程、产物存在性、关键计数、manifest 和结论边界。
-- 本次审计未覆盖:真实业务规则有效性。
-- 可以读成:project B 能支撑 K 线 MA5 突破类实验闭环。
-- 不应过读为:MA5 突破规则有效。
-- 是否需要复审:否。
-
-## 2026-06-01 17:11:44 AUDIT-20260601-KLINE-VOLUME-PULLBACK-EXEC-002:K 线缩量回踩实验执行审核
-
-- 审计类型:执行审核
-- 实验事项 ID:EXP-20260601-KLINE-VOLUME-PULLBACK-002
-- 实验设计 ID:DESIGN-20260601-KLINE-VOLUME-PULLBACK-002
-- run_id:RUN-20260601-KLINE-VOLUME-PULLBACK-002
-- 审核人:Codex
-- 审计结论:通过
-
-### 审计依据
-
-| 依据类型 | 路径/说明 |
-|---|---|
-| 实验总纲 | `实验总纲.md` |
-| 实验设计 | `实验设计.md` |
-| 执行日志 | `实验执行日志.md` |
-| 结果包 | `../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002` |
-| 图片 | `../exp-data/img/EXP-20260601-KLINE-VOLUME-PULLBACK-002/RUN-20260601-KLINE-VOLUME-PULLBACK-002` |
-| 存储体系 | `实验存储体系.md` |
-
-### 执行审核项
-
-- 是否按设计执行:通过。
-- 输入输出是否对得上:通过。
-- 关键数据是否可追踪:通过。
-- 是否存在真 bug:最终结果包无阻断真 bug;过程中的 manifest schema 不一致已记录到 `实验问题记录.md` 并关闭。
-- 是否需要防未来函数:不适用;本实验只验证记录闭环。
-- 结论是否过读:无;文档已明确只读成实验闭环通过。
-
-### 关键证据
-
-| 证据 | 结果 |
-|---|---|
-| raw input | `synthetic_kline_input.csv` 已生成,25 行 |
-| intermediate feature | `intermediate/kline_feature_panel.csv` 已生成,25 行 |
-| result table | `kline_volume_pullback_result.csv` 已生成,25 行 |
-| chart | `KOBJ002_volume_pullback.svg` 已生成 |
-| summary | status = PASS;signal_count = 6 |
-| manifest | `input_manifest.csv`、`output_manifest.csv` 已生成并带 sha256 |
-
-### 审计边界和结论
-
-- 本次审计覆盖:执行过程、产物存在性、关键计数、manifest 和结论边界。
-- 本次审计未覆盖:真实业务规则有效性。
-- 可以读成:project B 能连续支撑多个 K 线实验闭环。
-- 不应过读为:缩量回踩规则有效。
-- 是否需要复审:否。
diff --git "a/project B/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\350\247\204\350\214\203.md" "b/project B/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\350\247\204\350\214\203.md"
deleted file mode 100644
index fb139e5..0000000
--- "a/project B/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,26 +0,0 @@
-# 实验审计规范
-
-创建人员:Codex
-文件职责:记录 project B 审核员必须遵守的实验审计规范。本文件引用 common/exp-doc/实验审核规范.md,不得削弱 common 实验审核规范硬约束。
-管理规范/模板:../../common/exp-doc/实验审核规范.md
-引用文件:../../common/exp-doc/实验审核规范.md
-
-## 1. 基本口径
-
-本项目所有审核员必须同时遵守 `../../common/exp-doc/实验审核规范.md` 和本文件。
-
-本文件当前没有额外补充规则。
-
-## 1A. 执行审核硬口径
-
-审核员审核 project B 实验时,必须检查执行日志是否记录关键节点流水和关键中间数据路径。
-
-如果执行日志只记录“开始、结果、summary”,没有记录关键中间过程,导致无法从输入追到中间处理再追到最终结果,执行审核不得通过。
-
-如果关键节点产生了影响结论的中间数据,但没有落盘或没有在执行日志中给出路径,执行审核不得通过。
-
-如果某个中间节点没有独立数据产物,执行日志必须说明原因,审核员确认不影响复核后才允许通过。
-
-## 2. 审计记录位置
-
-设计审核、执行审核和复审统一追加记录到 `实验审计报告.md`。
diff --git "a/project B/exp-doc/\345\256\236\351\252\214\346\200\273\347\272\262.md" "b/project B/exp-doc/\345\256\236\351\252\214\346\200\273\347\272\262.md"
deleted file mode 100644
index e39bb65..0000000
--- "a/project B/exp-doc/\345\256\236\351\252\214\346\200\273\347\272\262.md"
+++ /dev/null
@@ -1,223 +0,0 @@
-# project B 实验总纲
-
-创建人员:Codex
-文件职责:记录 project B 内所有实验事项的背景、目标、状态、边界、来源和关键入口。
-管理规范/模板:../../common/exp-doc/实验总纲模版.md
-引用文件:实验规范.md;实验审计规范.md;实验存储体系.md;实验设计.md;实验执行日志.md;实验审计报告.md。
-
-## 0. 当前总览
-
-- 当前主线:实验环境创建能力验证
-- 当前最新实验:EXP-20260601-KLINE-VOLUME-PULLBACK-002,已完成
-- 当前有效结论:project B 已完成 1 个环境 smoke 和 2 个 K 线实验闭环,实验总纲/设计/执行日志/审计/问题记录/结果包能够串成证据链。
-- 当前阻断项:无
-- 当前下一步:如需正式业务实验,在本文件末尾追加新实验事项;继续沿用 append-only 记录方式。
-- 关键入口:实验设计.md;实验执行日志.md;实验审计报告.md;实验存储体系.md
-
-## 1. 固定口径和长期约定
-
-- 项目名称:project B
-- 项目路径:.
-- 实验记录维护方式:append-only;新实验、新结论、新修订追加到文件末尾,最新内容在最后。
-- 历史记录处理:历史结论不得删除;如失效,追加“失效/降读/替代”说明并指向证据。
-- 路径规则:项目内文件默认使用相对路径。
-- 关键来源聊天记录规则:用户原始要求或其可打开路径必须进入对应实验块的背景。
-
-## 2. 实验记录追加区
-
-## 2026-06-01 EXP-20260601-TIMESERIES-SMOKE-001:轻量时序图 smoke 实验环境闭环验证
-
-- 创建人员:Codex
-- 创建时间:2026-06-01 16:07:20
-- 当前状态:完成
-- 当前结论:实验环境闭环通过;只证明 project B 能创建实验体系并归档一个轻量时序图实验,不证明任何业务规则有效。
-
-### 背景、由来和关键聊天记录
-
-- 背景:验证 `common/exp-doc` 是否足够让任意 AI 在项目中创建实验员实验环境。
-- 由来:用户要求拿实验环境创建指南到 project B 创建实验体系,并跑一个轻量实验,验证核心文档、审计链和数据归档是否完整。
-- 原理来源:`../../common/exp-doc/实验环境创建指南.md`
-- 关键来源聊天记录:创建 project B 实验体系;跑一个轻量图形实验;验证核心文档、审计链和数据归档是否完整。
-- 聊天要求摘要:创建实验环境、跑通轻量实验、检查是否可审计和可归档。
-
-### 目标和边界
-
-- 主目标:验证 project B 是否能按 `实验环境创建指南.md` 建立可工作的实验环境。
-- 次目标:验证一个轻量时序图实验是否能产出 raw、result、chart、summary、manifest、readout,并被审计。
-- 不属于本轮目标:不验证真实业务数据,不验证业务规则,不验证预测能力。
-- 数据边界:使用合成时序数据,20 个工作日,1 个合成对象。
-- 方法边界:运行一个移动均线示例信号,只用于测试实验环境产物链。
-- 结论边界:只能说明实验环境闭环可用,不能说明任何业务规则有效。
-
-### 设计、执行和审计入口
-
-- 实验设计:`实验设计.md` 中 `DESIGN-20260601-TIMESERIES-SMOKE-001`
-- 执行日志:`实验执行日志.md` 中 `RUN-20260601-TIMESERIES-SMOKE-001`
-- 设计审核:`实验审计报告.md` 中 `AUDIT-20260601-TIMESERIES-SMOKE-DESIGN-001`
-- 执行审核:`实验审计报告.md` 中 `AUDIT-20260601-TIMESERIES-SMOKE-EXEC-001`
-- 问题记录:`实验问题记录.md`,本轮无阻断问题
-
-### 结果包和关键证据入口
-
-- 结果包:`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001`
-- summary/readout:`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/summary.json`;`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/readout.md`
-- 核心表:`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/timeseries_signal_result.csv`
-- 核心图:`../exp-data/img/EXP-20260601-TIMESERIES-SMOKE-001/RUN-20260601-TIMESERIES-SMOKE-001/OBJECT001_2026-05_timeseries_ma5_breakout.svg`
-- manifest:`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/output_manifest.csv`
-
-### 关键结果
-
-- row_count:20
-- object_count:1
-- signal_count:1
-- 结果包状态:审核通过
-
-### 当前读法
-
-- 可以读成:project B 实验环境可用,能支撑轻量实验的设计、执行、归档和审计。
-- 不能读成:任何业务规则有效、预测能力成立或真实数据流程已验证。
-- 降读/失效记录:无。
-
-### 下一步
-
-- 下一步动作:如果需要正式业务实验,应在本文件末尾追加新实验事项,并使用真实或明确授权的数据源。
-- 继续条件:新实验目标明确,设计审核通过。
-- 停止条件:如果本地规范和 common 规范冲突,先修规范再继续。
-
-### 结论回写
-
-- 回写目标:实验环境验证
-- 回写内容:project B 实验环境 ready
-- 回写状态:已回写
-
-## 2026-06-01 EXP-20260601-KLINE-MA5-BREAKOUT-001:K 线 MA5 突破实验闭环验证
-
-- 创建人员:Codex
-- 创建时间:2026-06-01 17:11:44
-- 当前状态:完成
-- 当前结论:实验闭环通过;只证明 project B 能记录、执行、归档并审计一个 K 线 MA5 突破类实验,不证明真实交易规则有效。
-
-### 背景、由来和关键聊天记录
-
-- 背景:用户要求在 project B 中实际跑两个 K 线相关实验,用来验证实验总纲、实验设计、执行日志、结果包、审计报告和问题记录在真实记录时是否顺手、可追踪。
-- 由来:本实验是第一个 K 线实验,用合成 K 线数据验证 MA5 上穿类信号的记录闭环。
-- 原理来源:`../../common/exp-doc/实验规范.md`;`../../common/exp-doc/实验审核规范.md`;`实验存储体系.md`
-- 关键来源聊天记录:用户要求“在 project B 里跑 2 个实验,就是有两个 K 线相关的实验”,并要求按规定流程完整跑完。
-- 聊天要求摘要:两个实验都必须从总纲、设计、执行、审计、问题记录到结果包形成完整证据链。
-
-### 目标和边界
-
-- 主目标:验证一个 K 线 MA5 突破类实验能否按 project B 实验体系完整落账。
-- 次目标:验证合成 K 线 raw、result、chart、summary、manifest、readout 是否可被审计串联。
-- 不属于本轮目标:不验证真实行情、真实策略、收益率、预测能力或生产工程性能。
-- 数据边界:合成 K 线数据,1 个合成对象,25 个交易日。
-- 方法边界:使用收盘上穿 MA5 的示例信号,仅用于测试实验记录流程。
-- 结论边界:只能说明 K 线类实验记录闭环可用,不能说明 MA5 突破规则有效。
-
-### 设计、执行和审计入口
-
-- 实验设计:`实验设计.md` 中 `DESIGN-20260601-KLINE-MA5-BREAKOUT-001`
-- 执行日志:`实验执行日志.md` 中 `RUN-20260601-KLINE-MA5-BREAKOUT-001`
-- 设计审核:`实验审计报告.md` 中 `AUDIT-20260601-KLINE-MA5-BREAKOUT-DESIGN-001`
-- 执行审核:`实验审计报告.md` 中 `AUDIT-20260601-KLINE-MA5-BREAKOUT-EXEC-001`
-- 问题记录:`实验问题记录.md` 中 `NO-ISSUE-20260601-KLINE-MA5-BREAKOUT-001`
-
-### 结果包和关键证据入口
-
-- 结果包:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001`
-- summary/readout:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/summary.json`;`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/readout.md`
-- 中间特征表:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/intermediate/kline_feature_panel.csv`
-- 核心表:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/kline_ma5_breakout_result.csv`
-- 核心图:`../exp-data/img/EXP-20260601-KLINE-MA5-BREAKOUT-001/RUN-20260601-KLINE-MA5-BREAKOUT-001/KOBJ001_ma5_breakout.svg`
-- manifest:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/output_manifest.csv`
-
-### 关键结果
-
-- row_count:25
-- object_count:1
-- signal_count:1
-- 结果包状态:审核通过
-
-### 当前读法
-
-- 可以读成:project B 能支撑 K 线类实验的设计、执行、归档和审计。
-- 不能读成:MA5 突破规则有效、真实交易有效或预测能力成立。
-- 降读/失效记录:无。
-
-### 下一步
-
-- 下一步动作:继续执行第二个 K 线实验,用不同信号形态验证同一个滚动账本能否承载连续实验。
-- 继续条件:第二个设计审核通过。
-- 停止条件:如果证据链断裂,先修实验体系再继续。
-
-### 结论回写
-
-- 回写目标:K 线实验记录闭环验证
-- 回写内容:MA5 突破类 K 线实验闭环通过
-- 回写状态:已回写
-
-## 2026-06-01 EXP-20260601-KLINE-VOLUME-PULLBACK-002:K 线缩量回踩实验闭环验证
-
-- 创建人员:Codex
-- 创建时间:2026-06-01 17:11:44
-- 当前状态:完成
-- 当前结论:实验闭环通过;同一项目滚动账本可以连续记录第二个 K 线实验,并能保持证据链可追踪。
-
-### 背景、由来和关键聊天记录
-
-- 背景:用户要求连续跑两个 K 线相关实验,用来验证实际记录时是否会出现文档职责、追加位置、审计证据和数据归档问题。
-- 由来:本实验是第二个 K 线实验,用合成 K 线数据验证缩量回踩 MA10 支撑类信号的记录闭环。
-- 原理来源:`../../common/exp-doc/实验规范.md`;`../../common/exp-doc/实验审核规范.md`;`实验存储体系.md`
-- 关键来源聊天记录:用户要求“你既是实验员也是审计员,你按照规定的流程完整跑完两个实验(总纲里的两个实验)”。
-- 聊天要求摘要:实验员和审计员职责都要执行,不能只生成数据而不审计。
-
-### 目标和边界
-
-- 主目标:验证第二个 K 线实验追加到同一套滚动账本后,是否仍能保持可读、可追踪、可审计。
-- 次目标:验证缩量回踩类 K 线结果包的 raw、result、chart、summary、manifest、readout 是否可串联。
-- 不属于本轮目标:不验证真实行情、真实策略、收益率、预测能力或生产工程性能。
-- 数据边界:合成 K 线数据,1 个合成对象,25 个交易日。
-- 方法边界:使用低点接近 MA10 且成交量低于前一日的示例信号,仅用于测试实验记录流程。
-- 结论边界:只能说明第二个 K 线实验闭环可用,不能说明缩量回踩规则有效。
-
-### 设计、执行和审计入口
-
-- 实验设计:`实验设计.md` 中 `DESIGN-20260601-KLINE-VOLUME-PULLBACK-002`
-- 执行日志:`实验执行日志.md` 中 `RUN-20260601-KLINE-VOLUME-PULLBACK-002`
-- 设计审核:`实验审计报告.md` 中 `AUDIT-20260601-KLINE-VOLUME-PULLBACK-DESIGN-002`
-- 执行审核:`实验审计报告.md` 中 `AUDIT-20260601-KLINE-VOLUME-PULLBACK-EXEC-002`
-- 问题记录:`实验问题记录.md` 中 `NO-ISSUE-20260601-KLINE-VOLUME-PULLBACK-002`
-
-### 结果包和关键证据入口
-
-- 结果包:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002`
-- summary/readout:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/summary.json`;`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/readout.md`
-- 中间特征表:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/intermediate/kline_feature_panel.csv`
-- 核心表:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/kline_volume_pullback_result.csv`
-- 核心图:`../exp-data/img/EXP-20260601-KLINE-VOLUME-PULLBACK-002/RUN-20260601-KLINE-VOLUME-PULLBACK-002/KOBJ002_volume_pullback.svg`
-- manifest:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/output_manifest.csv`
-
-### 关键结果
-
-- row_count:25
-- object_count:1
-- signal_count:6
-- 结果包状态:审核通过
-
-### 当前读法
-
-- 可以读成:project B 的滚动实验账本能连续承载多个 K 线实验。
-- 不能读成:缩量回踩规则有效、真实交易有效或预测能力成立。
-- 降读/失效记录:无。
-
-### 下一步
-
-- 下一步动作:如需真实业务实验,应新增正式实验事项并明确真实数据源、目标和审计边界。
-- 继续条件:真实实验目标明确且设计审核通过。
-- 停止条件:如果后续实验开始产生业务结论,必须单独写明数据来源和结论边界。
-
-### 结论回写
-
-- 回写目标:K 线实验记录闭环验证
-- 回写内容:缩量回踩类 K 线实验闭环通过
-- 回写状态:已回写
diff --git "a/project B/exp-doc/\345\256\236\351\252\214\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/project B/exp-doc/\345\256\236\351\252\214\346\211\247\350\241\214\346\227\245\345\277\227.md"
deleted file mode 100644
index f5db55c..0000000
--- "a/project B/exp-doc/\345\256\236\351\252\214\346\211\247\350\241\214\346\227\245\345\277\227.md"
+++ /dev/null
@@ -1,217 +0,0 @@
-# project B 实验执行日志
-
-创建人员:Codex
-文件职责:记录 project B 内所有实验实际执行过程、关键输入输出、异常和下一步动作。
-管理规范/模板:../../common/exp-doc/实验执行日志模版.md
-引用文件:实验总纲.md;实验设计.md;实验审计报告.md;实验存储体系.md。
-
-## 0. 当前执行总览
-
-- 当前最新 run:RUN-20260601-KLINE-VOLUME-PULLBACK-002,成功
-- 当前可用结果包:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002`
-- 当前失败或暂停 run:无
-- 当前下一步:如需正式业务实验,在本文件末尾追加新 run
-
-## 1. 固定执行口径
-
-- 维护方式:append-only;每次执行、重跑、人工操作、异常处理都追加到文件末尾,最新内容在最后。
-- 历史 run 处理:不得删除;失败 run 标记失败/降读/暂停,并保留结果包或失败证据入口。
-- 执行前置:对应实验设计必须已通过设计审核,除非明确是探索性预跑或环境 smoke。
-- 路径规则:项目内文件默认使用相对路径。
-
-## 2. 执行日志追加区
-
-## 2026-06-01 16:07:20 RUN-20260601-TIMESERIES-SMOKE-001:轻量时序图 smoke 实验环境闭环验证
-
-- 实验事项 ID:EXP-20260601-TIMESERIES-SMOKE-001
-- 实验设计 ID:DESIGN-20260601-TIMESERIES-SMOKE-001
-- 执行人:Codex
-- 执行类型:smoke
-- 当前状态:成功
-- 结果包目录:`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001`
-
-### 执行动作
-
-- 执行入口:`../exp-data/tmp/run_timeseries_smoke_experiment.py`
-- 工作目录:项目根目录
-- 关键参数:无
-- 配置版本:脚本内固定参数;合成数据;无外部配置。
-
-### 输入
-
-- 输入快照/数据版本:`../exp-data/raw/RUN-20260601-TIMESERIES-SMOKE-001/synthetic_timeseries_input.csv`
-- 上游依赖:DESIGN-20260601-TIMESERIES-SMOKE-001
-
-### 执行过程流水
-
-| step_id | 时间 | 动作 | 输入/依赖 | 中间数据或输出 | 关键计数/校验 | 状态 | 备注 |
-|---|---|---|---|---|---|---|---|
-| STEP-001 | 2026-06-01 16:07:20 | 生成合成时序输入快照 | 脚本内固定参数 | `../exp-data/raw/RUN-20260601-TIMESERIES-SMOKE-001/synthetic_timeseries_input.csv` | raw 20 行 | PASS | 输入快照可复核 |
-| STEP-002 | 2026-06-01 16:07:20 | 计算示例 MA5 信号 | raw 输入 | `../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/timeseries_signal_result.csv` | result 20 行,signal_count 1 | PASS | 本实验无独立中间表,result 已包含示例特征 |
-| STEP-003 | 2026-06-01 16:07:20 | 生成图、summary、readout、manifest | result 表 | `../exp-data/img/EXP-20260601-TIMESERIES-SMOKE-001/RUN-20260601-TIMESERIES-SMOKE-001/OBJECT001_2026-05_timeseries_ma5_breakout.svg`;`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/summary.json`;`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/output_manifest.csv` | 图 1 张,manifest 2 份 | PASS | 结果包可审计 |
-| STEP-004 | 2026-06-01 16:07:20 | 执行审计和问题记录 | 总纲/设计/结果包 | `实验审计报告.md`;`实验问题记录.md` | 审计通过,开放问题 0 | PASS | 完成闭环 |
-
-### 输出
-
-- summary/readout:`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/summary.json`;`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/readout.md`
-- 核心输出表:`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/timeseries_signal_result.csv`
-- 中间表/中间结果:不单独生成;本 smoke 的示例特征已包含在核心输出表中。
-- 核心图表:`../exp-data/img/EXP-20260601-TIMESERIES-SMOKE-001/RUN-20260601-TIMESERIES-SMOKE-001/OBJECT001_2026-05_timeseries_ma5_breakout.svg`
-- manifest/hash:`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/input_manifest.csv`;`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/output_manifest.csv`
-
-### 关键计数和自检
-
-| 检查项 | 目标 | 实际结果 | 状态 | 证据路径 |
-|---|---|---|---|---|
-| 核心目录存在 | exp-doc/raw/result/img/tmp 都存在 | 已存在 | PASS | 项目根目录 |
-| 核心文档存在 | 总纲、设计、日志、存储、审计、问题记录存在 | 已存在 | PASS | exp-doc |
-| raw/result 行数 | raw 20 行,result 20 行 | 20/20 | PASS | summary.json |
-| 图表存在 | 1 张图 | 已生成 | PASS | exp-data/img |
-| manifest 存在 | input/output manifest | 已生成 | PASS | exp-data/result |
-| 结论边界 | 不读成业务结论 | 文档已标明 | PASS | 总纲/设计/readout |
-
-### 偏离、异常和处理
-
-- 是否偏离设计:否。
-- 异常:无。
-- 影响范围:无。
-- 处理动作:无。
-- 是否需要复审:否。
-
-### 当前读法和下一步
-
-- 当前读法:PASS,环境 smoke 通过。
-- 不能读成:任何业务规则有效。
-- 下一步:已提交并通过执行审核;如需正式业务实验,追加新实验事项。
-
-## 2026-06-01 17:11:44 RUN-20260601-KLINE-MA5-BREAKOUT-001:K 线 MA5 突破实验闭环验证
-
-- 实验事项 ID:EXP-20260601-KLINE-MA5-BREAKOUT-001
-- 实验设计 ID:DESIGN-20260601-KLINE-MA5-BREAKOUT-001
-- 执行人:Codex
-- 执行类型:synthetic_kline_smoke
-- 当前状态:成功
-- 结果包目录:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001`
-
-### 执行动作
-
-- 执行入口:`../exp-data/tmp/run_kline_dual_experiments.py`
-- 工作目录:项目根目录
-- 关键参数:内置合成 K 线序列;MA5 上穿示例规则。
-- 配置版本:脚本内固定参数;无外部配置。
-
-### 输入
-
-- 输入快照/数据版本:`../exp-data/raw/RUN-20260601-KLINE-MA5-BREAKOUT-001/synthetic_kline_input.csv`
-- 上游依赖:DESIGN-20260601-KLINE-MA5-BREAKOUT-001
-
-### 执行过程流水
-
-| step_id | 时间 | 动作 | 输入/依赖 | 中间数据或输出 | 关键计数/校验 | 状态 | 备注 |
-|---|---|---|---|---|---|---|---|
-| STEP-001 | 2026-06-01 17:11:44 | 设计审核通过 | DESIGN-20260601-KLINE-MA5-BREAKOUT-001 | `实验审计报告.md` 中 `AUDIT-20260601-KLINE-MA5-BREAKOUT-DESIGN-001` | 审核结论通过 | PASS | 执行前置满足 |
-| STEP-002 | 2026-06-01 17:11:44 | 生成合成 K 线输入快照 | 脚本内固定序列 | `../exp-data/raw/RUN-20260601-KLINE-MA5-BREAKOUT-001/synthetic_kline_input.csv` | raw 25 行 | PASS | 输入快照可复核 |
-| STEP-003 | 2026-06-01 17:11:44 | 生成 K 线特征面 | raw 输入 | `../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/intermediate/kline_feature_panel.csv` | feature 25 行 | PASS | 中间数据已落盘 |
-| STEP-004 | 2026-06-01 17:11:44 | 计算 MA5 上穿示例信号 | feature 面 | `../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/kline_ma5_breakout_result.csv` | result 25 行,signal_count 1 | PASS | 结果表可复核 |
-| STEP-005 | 2026-06-01 17:11:44 | 生成 K 线图 | result 表 | `../exp-data/img/EXP-20260601-KLINE-MA5-BREAKOUT-001/RUN-20260601-KLINE-MA5-BREAKOUT-001/KOBJ001_ma5_breakout.svg` | 图 1 张 | PASS | 图可人读 |
-| STEP-006 | 2026-06-01 17:11:44 | 生成 summary/readout/manifest | raw、feature、result、图 | `../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/summary.json`;`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/output_manifest.csv` | manifest 含 hash,summary PASS | PASS | 结果包可追踪 |
-| STEP-007 | 2026-06-01 17:11:44 | 执行审核和问题闭环 | 结果包 | `实验审计报告.md`;`实验问题记录.md` | 审计通过;过程问题 1 个已关闭 | PASS | manifest schema 问题已修复并重跑 |
-
-### 输出
-
-- 结果表:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/kline_ma5_breakout_result.csv`
-- summary:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/summary.json`
-- readout:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/readout.md`
-- 中间表/中间结果:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/intermediate/kline_feature_panel.csv`
-- 图表:`../exp-data/img/EXP-20260601-KLINE-MA5-BREAKOUT-001/RUN-20260601-KLINE-MA5-BREAKOUT-001/KOBJ001_ma5_breakout.svg`
-- manifest:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/input_manifest.csv`;`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/output_manifest.csv`
-
-### 关键计数和自检
-
-| 检查项 | 目标 | 实际结果 | 状态 | 证据路径 |
-|---|---|---|---|---|
-| raw/result 行数 | raw 25 行,result 25 行 | 25/25 | PASS | summary.json |
-| 图表存在 | 1 张 K 线图 | 已生成 | PASS | exp-data/img |
-| manifest 存在 | input/output manifest | 已生成 | PASS | exp-data/result |
-| signal_count | 至少 1 个示例信号 | 1 | PASS | summary.json |
-| 结论边界 | 不读成业务结论 | 文档已标明 | PASS | 总纲/设计/readout |
-
-### 偏离、异常和处理
-
-- 是否偏离设计:否。
-- 异常:无。
-- 影响范围:无。
-- 处理动作:无。
-- 是否需要复审:否。
-
-### 当前读法和下一步
-
-- 当前读法:PASS,K 线 MA5 突破实验记录闭环通过。
-- 不能读成:MA5 突破规则有效。
-- 下一步:继续第二个 K 线实验。
-
-## 2026-06-01 17:11:44 RUN-20260601-KLINE-VOLUME-PULLBACK-002:K 线缩量回踩实验闭环验证
-
-- 实验事项 ID:EXP-20260601-KLINE-VOLUME-PULLBACK-002
-- 实验设计 ID:DESIGN-20260601-KLINE-VOLUME-PULLBACK-002
-- 执行人:Codex
-- 执行类型:synthetic_kline_smoke
-- 当前状态:成功
-- 结果包目录:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002`
-
-### 执行动作
-
-- 执行入口:`../exp-data/tmp/run_kline_dual_experiments.py`
-- 工作目录:项目根目录
-- 关键参数:内置合成 K 线序列;缩量回踩 MA10 示例规则。
-- 配置版本:脚本内固定参数;无外部配置。
-
-### 输入
-
-- 输入快照/数据版本:`../exp-data/raw/RUN-20260601-KLINE-VOLUME-PULLBACK-002/synthetic_kline_input.csv`
-- 上游依赖:DESIGN-20260601-KLINE-VOLUME-PULLBACK-002
-
-### 执行过程流水
-
-| step_id | 时间 | 动作 | 输入/依赖 | 中间数据或输出 | 关键计数/校验 | 状态 | 备注 |
-|---|---|---|---|---|---|---|---|
-| STEP-001 | 2026-06-01 17:11:44 | 设计审核通过 | DESIGN-20260601-KLINE-VOLUME-PULLBACK-002 | `实验审计报告.md` 中 `AUDIT-20260601-KLINE-VOLUME-PULLBACK-DESIGN-002` | 审核结论通过 | PASS | 执行前置满足 |
-| STEP-002 | 2026-06-01 17:11:44 | 生成合成 K 线输入快照 | 脚本内固定序列 | `../exp-data/raw/RUN-20260601-KLINE-VOLUME-PULLBACK-002/synthetic_kline_input.csv` | raw 25 行 | PASS | 输入快照可复核 |
-| STEP-003 | 2026-06-01 17:11:44 | 生成 K 线特征面 | raw 输入 | `../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/intermediate/kline_feature_panel.csv` | feature 25 行 | PASS | 中间数据已落盘 |
-| STEP-004 | 2026-06-01 17:11:44 | 计算缩量回踩 MA10 示例信号 | feature 面 | `../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/kline_volume_pullback_result.csv` | result 25 行,signal_count 6 | PASS | 结果表可复核 |
-| STEP-005 | 2026-06-01 17:11:44 | 生成 K 线图 | result 表 | `../exp-data/img/EXP-20260601-KLINE-VOLUME-PULLBACK-002/RUN-20260601-KLINE-VOLUME-PULLBACK-002/KOBJ002_volume_pullback.svg` | 图 1 张 | PASS | 图可人读 |
-| STEP-006 | 2026-06-01 17:11:44 | 生成 summary/readout/manifest | raw、feature、result、图 | `../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/summary.json`;`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/output_manifest.csv` | manifest 含 hash,summary PASS | PASS | 结果包可追踪 |
-| STEP-007 | 2026-06-01 17:11:44 | 执行审核和问题闭环 | 结果包 | `实验审计报告.md`;`实验问题记录.md` | 审计通过;过程问题 1 个已关闭 | PASS | manifest schema 问题已修复并重跑 |
-
-### 输出
-
-- 结果表:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/kline_volume_pullback_result.csv`
-- summary:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/summary.json`
-- readout:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/readout.md`
-- 中间表/中间结果:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/intermediate/kline_feature_panel.csv`
-- 图表:`../exp-data/img/EXP-20260601-KLINE-VOLUME-PULLBACK-002/RUN-20260601-KLINE-VOLUME-PULLBACK-002/KOBJ002_volume_pullback.svg`
-- manifest:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/input_manifest.csv`;`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/output_manifest.csv`
-
-### 关键计数和自检
-
-| 检查项 | 目标 | 实际结果 | 状态 | 证据路径 |
-|---|---|---|---|---|
-| raw/result 行数 | raw 25 行,result 25 行 | 25/25 | PASS | summary.json |
-| 图表存在 | 1 张 K 线图 | 已生成 | PASS | exp-data/img |
-| manifest 存在 | input/output manifest | 已生成 | PASS | exp-data/result |
-| signal_count | 至少 1 个示例信号 | 6 | PASS | summary.json |
-| 结论边界 | 不读成业务结论 | 文档已标明 | PASS | 总纲/设计/readout |
-
-### 偏离、异常和处理
-
-- 是否偏离设计:否。
-- 异常:无。
-- 影响范围:无。
-- 处理动作:无。
-- 是否需要复审:否。
-
-### 当前读法和下一步
-
-- 当前读法:PASS,K 线缩量回踩实验记录闭环通过。
-- 不能读成:缩量回踩规则有效。
-- 下一步:如需真实业务实验,追加新实验事项并重新审核设计。
diff --git "a/project B/exp-doc/\345\256\236\351\252\214\350\247\204\350\214\203.md" "b/project B/exp-doc/\345\256\236\351\252\214\350\247\204\350\214\203.md"
deleted file mode 100644
index 957c205..0000000
--- "a/project B/exp-doc/\345\256\236\351\252\214\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,47 +0,0 @@
-# 实验规范
-
-创建人员:Codex
-文件职责:记录 project B 实验员必须遵守的实验规范。本文件引用 common/exp-doc/实验规范.md,不得削弱 common 实验规范硬约束。
-管理规范/模板:../../common/exp-doc/实验规范.md
-引用文件:../../common/exp-doc/实验规范.md;../../common/exp-doc/实验环境创建指南.md
-
-## 1. 基本口径
-
-本项目所有实验员必须同时遵守 `../../common/exp-doc/实验规范.md` 和本文件。
-
-本文件当前没有额外补充规则,但保留本项目核心实验文档说明,方便实验员直接理解本项目证据链。
-
-## 2. 核心实验文档作用
-
-| 文档 | 作用 |
-|---|---|
-| `实验总纲.md` | 记录本项目所有实验事项的背景、目标、边界、状态、结果包入口和结论 |
-| `实验设计.md` | 记录本项目所有实验的设计、步骤、依赖、产物和判定标准 |
-| `实验执行日志.md` | 记录本项目所有实验 run、输入、关键中间过程、中间数据路径、输出、异常、自检和重跑 |
-| `实验存储体系.md` | 说明实验数据、结果包、图片、表 schema 和读取追踪方式 |
-| `实验审计报告.md` | 记录设计审核、执行审核、复审结论,以及审核员发现的问题 |
-| `实验问题记录.md` | 记录非审计来源实验问题;审计问题只在需要跨轮跟踪时登记索引 |
-
-## 3. 本地目录口径
-
-项目内实验文档使用相对路径。
-
-项目级实验账本:
-
-1. `实验总纲.md`
-2. `实验设计.md`
-3. `实验执行日志.md`
-
-新实验默认追加到上述三本账本,不创建单实验独立总纲、设计或执行日志。
-
-## 4. 执行日志补充口径
-
-project B 的执行日志不能只记录开始和结果。每个 run 至少要记录:
-
-1. 输入快照在哪里。
-2. 每个关键中间步骤做了什么。
-3. 中间数据或中间表保存在哪里。
-4. 最终结果、图、summary、manifest 在哪里。
-5. 每个关键步骤的行数、数量、hash 或等价校验。
-
-需要审计员复核的中间数据应保存到 `../exp-data/result/<run_id>/intermediate/` 或等价正式结果包目录,不应只保存在 `../exp-data/tmp/`。
diff --git "a/project B/exp-doc/\345\256\236\351\252\214\350\256\276\350\256\241.md" "b/project B/exp-doc/\345\256\236\351\252\214\350\256\276\350\256\241.md"
deleted file mode 100644
index 04ba8e5..0000000
--- "a/project B/exp-doc/\345\256\236\351\252\214\350\256\276\350\256\241.md"
+++ /dev/null
@@ -1,272 +0,0 @@
-# project B 实验设计
-
-创建人员:Codex
-文件职责:记录 project B 内所有实验设计、执行步骤、产物、判定标准和设计审核。
-管理规范/模板:../../common/exp-doc/实验设计模版.md
-引用文件:实验总纲.md;实验执行日志.md;实验审计报告.md;实验存储体系.md。
-
-## 0. 当前设计总览
-
-- 当前最新设计:DESIGN-20260601-KLINE-VOLUME-PULLBACK-002,已完成
-- 当前可执行设计:无;当前 K 线实验设计已执行完成
-- 当前阻断设计:无
-- 当前下一步:如需正式业务实验,在本文件末尾追加新设计块
-
-## 0A. 文档定位和证据索引职责
-
-- 本文件是 project B 的具体实验设计与证据索引主入口。
-- 它负责回答:每个实验想解决什么问题、怎么验证、当前状态是什么、关键证据和结果包在哪里。
-- 实验总纲回答“为什么做和最后怎么读”;实验设计回答“具体怎么做、证据在哪里、结果包是什么”。
-- 后续新增实验、修订实验边界、回填执行结果,都应追加到本文件末尾,不得覆盖历史设计。
-
-## 1. 固定设计口径
-
-- 维护方式:append-only;新设计、新修订、执行结果回填追加到文件末尾,最新内容在最后。
-- 旧设计处理:不得删除;若失效,追加“失效/降读/被替代”说明。
-- 设计与计划合并:本文件同时记录“要怎么验证”和“按什么步骤执行”。
-- 设计审核要求:设计审核通过后才能执行;未通过则追加修订块,不覆盖旧设计。
-- 路径规则:项目内文件默认使用相对路径。
-
-## 2. 实验设计追加区
-
-## 2026-06-01 DESIGN-20260601-TIMESERIES-SMOKE-001:轻量时序图 smoke 实验环境闭环验证
-
-- 所属实验事项:EXP-20260601-TIMESERIES-SMOKE-001
-- 创建人员:Codex
-- 创建时间:2026-06-01 16:07:20
-- 当前状态:完成
-- 当前结论:设计已执行并通过审计。
-- 来源聊天记录:见 `实验总纲.md` 中对应实验块。
-
-### 当前约定
-
-- 本轮要验证:project B 的实验环境是否能完整支撑一个轻量时序图实验。
-- 本轮不验证:真实业务数据、业务规则、预测能力。
-- 与来源聊天要求的一致性:用户要求创建实验体系并跑一个轻量实验;本设计直接覆盖这两个目标。
-- 前置依赖:`../../common/exp-doc/实验环境创建指南.md`
-
-### 实验方法和样本
-
-- 核心假设:如果总纲、设计、执行日志、结果包、图片、manifest、审计报告和问题记录均能串起来,则实验环境可用。
-- 数据源:合成时序数据,由 `../exp-data/tmp/run_timeseries_smoke_experiment.py` 生成。
-- 样本范围:1 个合成对象,20 个工作日。
-- 实验组:合成时序序列。
-- 对照组:不需要;本轮目标是环境闭环,不验证规则效果。
-- 边界样本:前 4 行移动均线为空。
-- 防偏差要求:本实验不形成业务结论;使用合成数据并在 summary/readout 中标明边界。
-- 是否需要防未来函数:不适用。
-- 判断理由:实验目标是验证环境闭环,不是预测、收益率或实时决策。
-
-### 执行顺序
-
-1. STEP-001:创建实验环境;输入为实验环境创建指南;输出为 exp-doc / exp-data。
-2. STEP-002:运行轻量时序图 smoke;输入为 runner script;输出为 raw/result/img/summary/manifest。
-3. STEP-003:审计闭环;输入为总纲/设计/日志/结果包;输出为审计报告。
-
-### 字段、指标和状态
-
-| 名称 | 类型 | 定义 | 来源 | 计算/判定口径 | 输出位置 | 备注 |
-|---|---|---|---|---|---|---|
-| row_count | 指标 | 输入行数 | raw csv | 输入表行数 | summary.json | 期望 20 |
-| signal_count | 指标 | 示例信号数量 | result csv | flag 求和 | summary.json | 只作 smoke 指标 |
-| ma5_breakout_flag | 字段 | 示例信号 | runner | 结束值上穿 MA5 | timeseries_signal_result.csv | 非业务建议 |
-| chart | 产物 | SVG 图 | runner | 按 OHLC 绘制 | exp-data/img | 人读复核 |
-
-### 输出产物
-
-- 结果包目录:`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001`
-- 核心输出表:`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001/timeseries_signal_result.csv`
-- 核心图表:`../exp-data/img/EXP-20260601-TIMESERIES-SMOKE-001/RUN-20260601-TIMESERIES-SMOKE-001/OBJECT001_2026-05_timeseries_ma5_breakout.svg`
-- summary/readout:`summary.json`;`readout.md`
-- manifest/输入快照:`input_manifest.csv`;`output_manifest.csv`
-- 执行日志:`实验执行日志.md` 中 `RUN-20260601-TIMESERIES-SMOKE-001`
-
-### 判定标准
-
-- PASS:核心目录和项目级文档存在;结果包存在;核心表、图、summary、manifest 可读;审计报告记录通过。
-- FAIL:核心文档缺失、结果包缺关键产物、manifest 无法追踪产物、审计报告缺失。
-- HELD:项目路径或数据路径无法确认。
-- 降读规则:即使 PASS,也只能读成实验环境可用,不读成业务规则有效。
-- 停止或转向条件:如果要验证真实业务规则,必须新建正式实验并使用真实或授权数据。
-
-### 风险和不做事项
-
-- 关键风险:合成数据不能支持业务结论。
-- 阻断项:无。
-- 可接受缺口:没有真实数据和对照组,因为不属于本轮目标。
-- 本轮不做:不使用真实数据,不做收益统计,不进入业务结论。
-
-### 设计审核
-
-- 设计审核状态:通过
-- 审核人:Codex
-- 审核时间:2026-06-01 16:07:20
-- 审核结论:设计能回答本轮目标,可以执行。
-- 未通过问题:无。
-- 复审记录:无。
-
-### 执行结果回填
-
-- run_id:RUN-20260601-TIMESERIES-SMOKE-001
-- 结果包:`../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001`
-- 关键结果:raw 20 行;result 20 行;chart 1 张;manifest 已生成。
-- 当前读法:环境 smoke PASS。
-- 是否纳入实验总纲结论:是。
-
-## 2026-06-01 DESIGN-20260601-KLINE-MA5-BREAKOUT-001:K 线 MA5 突破实验闭环验证
-
-- 所属实验事项:EXP-20260601-KLINE-MA5-BREAKOUT-001
-- 创建人员:Codex
-- 创建时间:2026-06-01 17:11:44
-- 当前状态:完成
-- 当前结论:设计已执行并通过审计。
-- 来源聊天记录:见 `实验总纲.md` 中对应实验块。
-
-### 当前约定
-
-- 本轮要验证:project B 能否完整记录一个 K 线 MA5 突破类实验。
-- 本轮不验证:真实行情、真实交易规则、收益率、预测能力。
-- 与来源聊天要求的一致性:用户要求两个 K 线相关实验;本设计覆盖第一个实验。
-- 前置依赖:实验体系已创建;设计审核通过后执行。
-
-### 实验方法和样本
-
-- 核心假设:如果 K 线实验的 raw/result/chart/summary/manifest/readout 能与总纲、设计、日志和审计串起来,则实验体系支持 K 线类实验闭环。
-- 数据源:合成 K 线数据,由 `../exp-data/tmp/run_kline_dual_experiments.py` 生成。
-- 样本范围:1 个合成对象,25 个交易日。
-- 实验组:合成 K 线序列。
-- 对照组:不需要;本轮目标是环境和记录流程,不是规则效果。
-- 边界样本:MA5 不足 5 日时为空;上穿信号只在前一日未站上且当日站上时触发。
-- 防偏差要求:summary/readout 明确写入 synthetic_kline 和结论边界。
-- 是否需要防未来函数:不适用。
-- 判断理由:本轮实验目标是记录闭环,不是实时决策、收益或预测。
-
-### 执行顺序
-
-1. STEP-001:生成合成 K 线 raw;输入为脚本内固定序列;输出为 `synthetic_kline_input.csv`。
-2. STEP-002:计算 MA5 上穿示例信号;输入为 raw;输出为 `kline_ma5_breakout_result.csv`。
-3. STEP-003:生成 SVG 图和 summary/readout/manifest;输入为 result;输出为结果包和图。
-4. STEP-004:写执行日志、执行审计和问题记录。
-
-### 字段、指标和状态
-
-| 名称 | 类型 | 定义 | 来源 | 计算/判定口径 | 输出位置 | 备注 |
-|---|---|---|---|---|---|---|
-| row_count | 指标 | 输入/结果行数 | result csv | 结果表行数 | summary.json | 期望 25 |
-| signal_count | 指标 | MA5 突破信号数 | result csv | signal_flag 求和 | summary.json | 只作 smoke 指标 |
-| signal_flag | 字段 | 示例信号 | runner | close 上穿 MA5 | kline_ma5_breakout_result.csv | 非业务建议 |
-| chart | 产物 | K 线图 | runner | SVG 绘制 | exp-data/img | 人读复核 |
-
-### 输出产物
-
-- 结果包目录:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001`
-- 中间特征表:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/intermediate/kline_feature_panel.csv`
-- 核心输出表:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001/kline_ma5_breakout_result.csv`
-- 核心图表:`../exp-data/img/EXP-20260601-KLINE-MA5-BREAKOUT-001/RUN-20260601-KLINE-MA5-BREAKOUT-001/KOBJ001_ma5_breakout.svg`
-- summary/readout:`summary.json`;`readout.md`
-- manifest/输入快照:`input_manifest.csv`;`output_manifest.csv`
-- 执行日志:`实验执行日志.md` 中 `RUN-20260601-KLINE-MA5-BREAKOUT-001`
-
-### 判定标准
-
-- PASS:raw/result/chart/summary/readout/manifest 全部存在且可读;审计报告记录通过。
-- FAIL:缺核心产物、证据链断裂或 summary 状态失败。
-- HELD:路径或数据无法确认。
-- 降读规则:即使 PASS,也只读成实验体系闭环可用,不读成信号有效。
-- 停止或转向条件:如果要验证真实 K 线规则,必须新建正式业务实验。
-
-### 设计审核
-
-- 设计审核状态:通过
-- 审核人:Codex
-- 审核时间:2026-06-01 17:11:44
-- 审核结论:设计能回答本轮目标,可以执行。
-- 未通过问题:无。
-- 复审记录:无。
-
-### 执行结果回填
-
-- run_id:RUN-20260601-KLINE-MA5-BREAKOUT-001
-- 结果包:`../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001`
-- 关键结果:raw 25 行;intermediate feature 25 行;result 25 行;chart 1 张;signal_count 1;manifest 已生成。
-- 当前读法:K 线 MA5 突破实验闭环 PASS。
-- 是否纳入实验总纲结论:是。
-
-## 2026-06-01 DESIGN-20260601-KLINE-VOLUME-PULLBACK-002:K 线缩量回踩实验闭环验证
-
-- 所属实验事项:EXP-20260601-KLINE-VOLUME-PULLBACK-002
-- 创建人员:Codex
-- 创建时间:2026-06-01 17:11:44
-- 当前状态:完成
-- 当前结论:设计已执行并通过审计。
-- 来源聊天记录:见 `实验总纲.md` 中对应实验块。
-
-### 当前约定
-
-- 本轮要验证:project B 能否连续记录第二个 K 线实验,并保持证据链可追踪。
-- 本轮不验证:真实行情、真实交易规则、收益率、预测能力。
-- 与来源聊天要求的一致性:用户要求两个 K 线相关实验;本设计覆盖第二个实验。
-- 前置依赖:第一个 K 线实验已跑通;设计审核通过后执行。
-
-### 实验方法和样本
-
-- 核心假设:如果第二个 K 线实验也能完整回写到同一套滚动账本,则实验体系能支撑连续实验记录。
-- 数据源:合成 K 线数据,由 `../exp-data/tmp/run_kline_dual_experiments.py` 生成。
-- 样本范围:1 个合成对象,25 个交易日。
-- 实验组:合成 K 线序列。
-- 对照组:不需要;本轮目标是记录流程,不是规则效果。
-- 边界样本:MA10 不足 10 日时为空;缩量回踩信号只用于验证字段和图表链路。
-- 防偏差要求:summary/readout 明确写入 synthetic_kline 和结论边界。
-- 是否需要防未来函数:不适用。
-- 判断理由:本轮实验目标是记录闭环,不是实时决策、收益或预测。
-
-### 执行顺序
-
-1. STEP-001:生成合成 K 线 raw;输入为脚本内固定序列;输出为 `synthetic_kline_input.csv`。
-2. STEP-002:计算缩量回踩 MA10 示例信号;输入为 raw;输出为 `kline_volume_pullback_result.csv`。
-3. STEP-003:生成 SVG 图和 summary/readout/manifest;输入为 result;输出为结果包和图。
-4. STEP-004:写执行日志、执行审计和问题记录。
-
-### 字段、指标和状态
-
-| 名称 | 类型 | 定义 | 来源 | 计算/判定口径 | 输出位置 | 备注 |
-|---|---|---|---|---|---|---|
-| row_count | 指标 | 输入/结果行数 | result csv | 结果表行数 | summary.json | 期望 25 |
-| signal_count | 指标 | 缩量回踩信号数 | result csv | signal_flag 求和 | summary.json | 只作 smoke 指标 |
-| signal_flag | 字段 | 示例信号 | runner | low 接近 MA10 且 volume 小于前一日 | kline_volume_pullback_result.csv | 非业务建议 |
-| chart | 产物 | K 线图 | runner | SVG 绘制 | exp-data/img | 人读复核 |
-
-### 输出产物
-
-- 结果包目录:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002`
-- 中间特征表:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/intermediate/kline_feature_panel.csv`
-- 核心输出表:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002/kline_volume_pullback_result.csv`
-- 核心图表:`../exp-data/img/EXP-20260601-KLINE-VOLUME-PULLBACK-002/RUN-20260601-KLINE-VOLUME-PULLBACK-002/KOBJ002_volume_pullback.svg`
-- summary/readout:`summary.json`;`readout.md`
-- manifest/输入快照:`input_manifest.csv`;`output_manifest.csv`
-- 执行日志:`实验执行日志.md` 中 `RUN-20260601-KLINE-VOLUME-PULLBACK-002`
-
-### 判定标准
-
-- PASS:raw/result/chart/summary/readout/manifest 全部存在且可读;审计报告记录通过。
-- FAIL:缺核心产物、证据链断裂或 summary 状态失败。
-- HELD:路径或数据无法确认。
-- 降读规则:即使 PASS,也只读成实验体系闭环可用,不读成信号有效。
-- 停止或转向条件:如果要验证真实 K 线规则,必须新建正式业务实验。
-
-### 设计审核
-
-- 设计审核状态:通过
-- 审核人:Codex
-- 审核时间:2026-06-01 17:11:44
-- 审核结论:设计能回答本轮目标,可以执行。
-- 未通过问题:无。
-- 复审记录:无。
-
-### 执行结果回填
-
-- run_id:RUN-20260601-KLINE-VOLUME-PULLBACK-002
-- 结果包:`../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002`
-- 关键结果:raw 25 行;intermediate feature 25 行;result 25 行;chart 1 张;signal_count 6;manifest 已生成。
-- 当前读法:K 线缩量回踩实验闭环 PASS。
-- 是否纳入实验总纲结论:是。
diff --git "a/project B/exp-doc/\345\256\236\351\252\214\351\227\256\351\242\230\350\256\260\345\275\225.md" "b/project B/exp-doc/\345\256\236\351\252\214\351\227\256\351\242\230\350\256\260\345\275\225.md"
deleted file mode 100644
index 04e50b5..0000000
--- "a/project B/exp-doc/\345\256\236\351\252\214\351\227\256\351\242\230\350\256\260\345\275\225.md"
+++ /dev/null
@@ -1,125 +0,0 @@
-# project B 实验问题记录
-
-创建人员:Codex
-文件职责:记录 project B 实验设计、执行、数据、代码、结论中的问题及闭环状态。
-管理规范/模板:../../common/exp-doc/实验问题记录模版.md
-引用文件:../../common/exp-doc/实验规范.md;../../common/exp-doc/实验审核规范.md;实验审计报告.md。
-
-## 0. 当前问题总览
-
-- 当前开放问题数:0
-- 当前阻断问题:无
-- 当前最新关闭问题:ISSUE-20260601-KLINE-MANIFEST-SCHEMA-001
-- 当前下一步:无
-
-## 1. 固定问题闭环口径
-
-- 维护方式:append-only;新问题、修复、复验、关闭都追加到文件末尾,最新内容在最后。
-- 历史问题处理:不得删除;误报也应追加“误报/不处理/降读”说明。
-- 问题分级:阻断 / 重要 / 一般。
-- 问题类型:设计 / 执行 / 数据 / 代码 / 结论 / 流程。
-
-## 2. 问题记录追加区
-
-## 2026-06-01 16:07:20 NO-ISSUE:轻量时序图 smoke 实验环境闭环验证
-
-- 实验事项 ID:EXP-20260601-TIMESERIES-SMOKE-001
-- 实验设计 ID:DESIGN-20260601-TIMESERIES-SMOKE-001
-- run_id:RUN-20260601-TIMESERIES-SMOKE-001
-- 发现人:Codex
-- 类型:无
-- 严重度:无
-- 当前状态:已关闭
-
-### 问题描述
-
-本轮未发现阻断问题。
-
-### 证据
-
-- 证据路径:`实验审计报告.md`
-- 关键现象:设计审核和执行审核均通过。
-
-### 关闭结论
-
-- 是否关闭:是
-- 关闭原因:无问题。
-- 后续跟踪:无。
-
-## 2026-06-01 17:11:44 NO-ISSUE-20260601-KLINE-MA5-BREAKOUT-001:K 线 MA5 突破实验闭环验证
-
-- 实验事项 ID:EXP-20260601-KLINE-MA5-BREAKOUT-001
-- 实验设计 ID:DESIGN-20260601-KLINE-MA5-BREAKOUT-001
-- run_id:RUN-20260601-KLINE-MA5-BREAKOUT-001
-- 发现人:Codex
-- 类型:无
-- 严重度:无
-- 当前状态:已关闭
-
-### 问题描述
-
-本轮未发现阻断问题。
-
-### 证据
-
-- 证据路径:`实验审计报告.md` 中 `AUDIT-20260601-KLINE-MA5-BREAKOUT-EXEC-001`
-- 关键现象:设计审核和执行审核均通过。
-
-### 关闭结论
-
-- 是否关闭:是
-- 关闭原因:无问题。
-- 后续跟踪:无。
-
-## 2026-06-01 17:11:44 NO-ISSUE-20260601-KLINE-VOLUME-PULLBACK-002:K 线缩量回踩实验闭环验证
-
-- 实验事项 ID:EXP-20260601-KLINE-VOLUME-PULLBACK-002
-- 实验设计 ID:DESIGN-20260601-KLINE-VOLUME-PULLBACK-002
-- run_id:RUN-20260601-KLINE-VOLUME-PULLBACK-002
-- 发现人:Codex
-- 类型:无
-- 严重度:无
-- 当前状态:已关闭
-
-### 问题描述
-
-本轮未发现阻断问题。
-
-### 证据
-
-- 证据路径:`实验审计报告.md` 中 `AUDIT-20260601-KLINE-VOLUME-PULLBACK-EXEC-002`
-- 关键现象:设计审核和执行审核均通过。
-
-### 关闭结论
-
-- 是否关闭:是
-- 关闭原因:无问题。
-- 后续跟踪:无。
-
-## 2026-06-01 17:11:44 ISSUE-20260601-KLINE-MANIFEST-SCHEMA-001:K 线 runner 初版 manifest 字段和项目存储体系不一致
-
-- 实验事项 ID:EXP-20260601-KLINE-MA5-BREAKOUT-001;EXP-20260601-KLINE-VOLUME-PULLBACK-002
-- 实验设计 ID:DESIGN-20260601-KLINE-MA5-BREAKOUT-001;DESIGN-20260601-KLINE-VOLUME-PULLBACK-002
-- run_id:RUN-20260601-KLINE-MA5-BREAKOUT-001;RUN-20260601-KLINE-VOLUME-PULLBACK-002
-- 发现人:Codex
-- 类型:数据 / 流程
-- 严重度:一般
-- 当前状态:已关闭
-
-### 问题描述
-
-K 线 runner 初版 `input_manifest.csv` / `output_manifest.csv` 使用了 `relative_path`、`size_bytes` 字段;project B 现有存储体系和历史 smoke runner 使用的是 `path`、`artifact_role`、`row_count_or_count`、`sha256` 字段。
-
-这个问题会影响审计员按统一 manifest schema 追踪产物,但不会改变 K 线计算结果。
-
-### 证据
-
-- 发现位置:`../exp-data/tmp/run_kline_dual_experiments.py`
-- 修复动作:runner 已改为输出 `artifact,path,artifact_role,row_count_or_count,sha256`。
-- 复验结果:两个 K 线结果包已重跑,manifest 字段已和存储体系一致。
-
-### 关闭结论
-
-- 是否关闭:是
-- 关闭原因:脚本已修复并重跑结果包。
-- 后续跟踪:如新增 runner,应优先复用 project B 的 manifest 字段口径。
diff --git "a/project B/exp-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md" "b/project B/exp-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md"
deleted file mode 100644
index 88a3a13..0000000
--- "a/project B/exp-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md"
+++ /dev/null
@@ -1,66 +0,0 @@
-# project B 实验目录导读
-
-创建人员:Codex
-文件职责:说明 project B 实验体系目录结构、核心入口和当前实验状态。
-管理规范/模板:../../common/exp-doc/实验环境创建指南.md。
-引用文件:实验规范.md;实验审计规范.md;../../common/exp-doc/实验存储体系创建指南.md。
-
-## 1. 目录结构
-
-```text
-project B/
- exp-doc/
- exp-data/
- raw/
- result/
- img/
- tmp/
-```
-
-## 2. 项目级入口
-
-| 文件 | 作用 |
-|---|---|
-| 实验规范.md | 本项目实验员规范,引用 common 实验规范 |
-| 实验审计规范.md | 本项目审核员规范,引用 common 实验审核规范 |
-| 实验存储体系.md | 说明实验数据、结果包、图片、schema 和读取方式 |
-| 实验总纲.md | 持续记录所有实验背景、目标、状态和结论 |
-| 实验设计.md | 持续记录所有实验设计、步骤、产物和判定标准 |
-| 实验执行日志.md | 持续记录所有实验 run、输入、关键中间过程、中间数据路径、输出、异常、自检和重跑 |
-| 实验审计报告.md | 记录设计审核、执行审核、复审,以及审核员发现的问题 |
-| 实验问题记录.md | 记录非审计来源实验问题闭环;审计问题只做跨轮索引 |
-
-## 3. 当前实验入口
-
-| 实验事项 ID | 实验名称 | 状态 | 总纲 | 设计 | 执行日志 | 结果包 | 审计 |
-|---|---|---|---|---|---|---|---|
-| EXP-20260601-TIMESERIES-SMOKE-001 | 轻量时序图 smoke 实验环境闭环验证 | 完成 | 实验总纲.md | 实验设计.md | 实验执行日志.md | ../exp-data/result/RUN-20260601-TIMESERIES-SMOKE-001 | 实验审计报告.md |
-| EXP-20260601-KLINE-MA5-BREAKOUT-001 | K 线 MA5 突破实验 | 完成 | 实验总纲.md | 实验设计.md | 实验执行日志.md | ../exp-data/result/RUN-20260601-KLINE-MA5-BREAKOUT-001 | 实验审计报告.md |
-| EXP-20260601-KLINE-VOLUME-PULLBACK-002 | K 线缩量回踩实验 | 完成 | 实验总纲.md | 实验设计.md | 实验执行日志.md | ../exp-data/result/RUN-20260601-KLINE-VOLUME-PULLBACK-002 | 实验审计报告.md |
-
-## 4. 当前结论
-
-project B 的实验环境已完成 1 个轻量图形 smoke 实验和 2 个 K 线实验闭环验证:总纲、设计、执行日志、结果包、图片、manifest、审计报告和问题记录均已落盘。
-
-K 线实验已补齐可审计中间链路:raw 输入、intermediate feature table、结果表、图片、summary、manifest、审计报告均能互相追踪。
-
-边界:当前实验使用合成数据,只验证实验环境和记录规范闭环,不证明任何业务规则有效。
-
-## 5. 审计追踪路径
-
-人工或 AI 审计时,默认按以下路径追踪:
-
-```text
-目录导读
--> 实验总纲
--> 实验设计
--> 实验执行日志
--> exp-data/result/<run_id>/summary.json
--> exp-data/result/<run_id>/output_manifest.csv
--> exp-data/result/<run_id>/intermediate/
--> exp-data/img/<experiment_id>/<run_id>/
--> 实验审计报告
--> 实验问题记录
-```
-
-如果目录导读没有登记最新实验入口,以实验总纲和实验设计为准补齐目录导读。
diff --git "a/project 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" "b/project 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"
deleted file mode 100644
index 595d7d5..0000000
--- "a/project 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"
+++ /dev/null
@@ -1,190 +0,0 @@
-# 项目事项审计报告
-
-创建人员:Codex
-文件职责:作为 Project B 项目级滚动账本,记录项目创建、体系启用、权限、目录、规范冲突和项目级证据链的审计结果。
-管理规范/模板:../全局规范.md;../common/project-doc/项目审计规范.md;../common/project-doc/项目事项审计报告模版.md。
-引用文件:项目规范.md;项目配置清单.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目问题记录.md。
-记录方式:append-only 项目事项审计报告;每次审计和复审追加到文件末尾。
-
-固定口径:项目审核员发现的问题完整记录在本文;只有需要跨轮跟踪、跨事项汇总或长期处理时,才在 `项目问题记录.md` 中建立索引,不重复全文。
-
-## 1. 当前审计总览
-
-| 审计 ID | 审计对象 | 审计类型 | 审计人员 | 结论 | 时间 |
-|---|---|---|---|---|---|
-| AUDIT-20260603-PROJB-ANA-PLAN | PLAN-20260603-PROJB-ANA-INIT | 计划审计 | Codex | 通过 | 2026-06-03 00:10:00 |
-| AUDIT-20260603-PROJB-ANA-INIT | LOG-20260603-PROJB-ANA-INIT | 执行审计 | Codex | 通过 | 2026-06-03 11:20:00 |
-
-## 2. 审计记录
-
-### 2026-06-03 00:10:00 AUDIT-20260603-PROJB-ANA-PLAN:Project B 案例分析体系创建计划审计
-
-审计对象:
-PLAN-20260603-PROJB-ANA-INIT
-
-审计类型:
-计划审计
-
-关联项目:
-PROJECT-B / Project B
-
-关联计划 / 日志:
-PLAN-20260603-PROJB-ANA-INIT
-
-来源聊天记录 / 上游依据:
-用户要求在 Project B 重复 Project A 流程并比较差异。
-
-审计人员:
-Codex
-
-依据文档:
-
-1. `../全局规范.md`
-2. `../common/project-doc/项目规范.md`
-3. `项目事项计划.md`
-4. `common/ana-doc/案例分析环境创建指南.md`
-
-检查结果:
-
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 来源聊天记录已记录 | PASS | 已写入项目事项计划 |
-| 计划目标对齐项目事项总纲 | PASS | 目标是复验案例分析体系 |
-| 计划能满足事项目标 | PASS | 覆盖项目入口、体系创建、校验、案例执行和 A/B 对比 |
-| 计划与聊天要求一致 | PASS | 没有偏离 |
-| 证据链可追踪 | PASS | 计划指定总纲、日志、审计和 ana-doc/ana-data |
-
-发现问题:
-
-1. 无阻断问题。Project B 缺项目级入口,但当前指南已明确要先补齐项目体系入口。
-
-审计结论:
-通过
-
-是否阻断:
-否
-
-是否允许进入下一阶段:
-是
-
-建议动作:
-继续执行体系创建和校验。
-
-### 2026-06-03 11:20:00 AUDIT-20260603-PROJB-ANA-INIT:Project B 案例分析体系创建执行审计
-
-审计对象:
-LOG-20260603-PROJB-ANA-INIT;ana-doc/;ana-data/
-
-审计类型:
-执行审计
-
-关联项目:
-PROJECT-B / Project B
-
-关联计划 / 日志:
-PLAN-20260603-PROJB-ANA-INIT / LOG-20260603-PROJB-ANA-INIT
-
-来源聊天记录 / 上游依据:
-用户要求在 Project B 重复 Project A 的流程并比较差异。
-
-审计人员:
-Codex
-
-依据文档:
-
-1. `../全局规范.md`
-2. `../common/project-doc/项目规范.md`
-3. `../common/ana-doc/案例分析环境创建指南.md`
-4. `ana-doc/案例总纲.md`
-5. `ana-doc/案例分析设计.md`
-6. `ana-doc/案例执行日志.md`
-7. `ana-doc/案例审计报告.md`
-
-检查结果:
-
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 项目级入口补齐 | PASS | 项目配置清单、项目执行日志、项目变更记录存在 |
-| 案例体系基础文档齐全 | PASS | 9 个 ana-doc 基础文档存在 |
-| 案例数据目录齐全 | PASS | ana-data/cases、result、img、tmp 存在 |
-| dry-run 证据链可追踪 | PASS | ANA-SMOKE-001 -> DESIGN-SMOKE-001 -> RUN-SMOKE-001 -> AUDIT-SMOKE-001 |
-| 合成案例证据链可追踪 | PASS | ANA-PULLBACK-001 -> DESIGN-PULLBACK-001 -> RUN-CASE-PULLBACK-001 -> AUDIT-PULLBACK-EXEC-001 |
-| 表内路径可打开 | PASS | case_step_trace、operation_ledger、image_manifest、case_index 路径校验通过 |
-| 未混入外部项目残留 | PASS | 未发现外部业务路径或旧项目结果包 |
-| 与 Project A 对比结论明确 | PASS | B 复验未暴露新的 common 指南缺口 |
-
-发现问题:
-
-1. 无阻断问题。
-
-审计结论:
-通过
-
-是否阻断:
-否
-
-是否允许进入下一阶段:
-是
-
-建议动作:
-后续如果 Project B 进入真实案例分析,应基于当前环境重新记录来源聊天、设计、执行日志、结果包和审计报告,不得把本轮合成案例当真实业务结论。
-
-### 2026-06-03 14:06:55 AUDIT-20260603-PROJB-DEV-SYNC:Project B 开发体系同步审计
-
-审计对象:
-Project B 开发体系配置同步
-
-审计类型:
-执行审计
-
-关联项目:
-PROJECT-B / Project B
-
-关联计划 / 日志:
-N/A / LOG-20260603-PROJB-DEV-SYNC
-
-来源聊天记录 / 上游依据:
-用户要求继续完成开发体系同步;`../全局规范.md`;`../common/project-doc/项目规范.md`;`../common/dev-doc/开发环境创建指南.md`。
-
-审计人员:
-Codex
-
-依据文档:
-1. `../全局规范.md`
-2. `../common/project-doc/项目规范.md`
-3. `../common/dev-doc/开发环境创建指南.md`
-4. `项目配置清单.md`
-
-审计范围:
-1. 开发体系是否登记为默认启用。
-2. dev/dev-doc 根目录是否存在。
-3. 开发 AI 权限是否按目标工作区绑定。
-4. 是否未提前创建目标开发工作区。
-5. 证据链是否记录到配置清单、变更记录和执行日志。
-
-检查结果:
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 开发体系登记 | PASS | 已登记开发体系默认启用 |
-| dev/dev-doc 根目录 | PASS | 已创建 `dev/`、`dev-doc/` |
-| 目标开发工作区按需创建 | PASS | 未提前创建目标开发工作区 |
-| 开发 AI 权限收口 | PASS | 已按 target-dev / target-doc 记录 |
-| 证据链可追踪 | PASS | 配置、变更、日志可追踪 |
-
-发现问题:
-无。
-
-审计结论:
-通过
-
-是否阻断:
-否
-
-是否允许进入下一阶段:
-是
-
-建议动作:
-实际开发事项创建时再按 `common/dev-doc/开发环境创建指南.md` 初始化目标开发工作区。
-
-复审要求:
-无需复审。
diff --git "a/project B/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md" "b/project B/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md"
deleted file mode 100644
index 998de8b..0000000
--- "a/project B/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md"
+++ /dev/null
@@ -1,83 +0,0 @@
-# 项目事项总纲
-
-创建人员:Codex
-文件职责:作为 Project B 项目级滚动账本,记录项目背景、目标、边界、阶段状态、关键结论和来源聊天记录。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目事项总纲模版.md。
-引用文件:项目规范.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目问题记录.md。
-记录方式:append-only 项目事项总纲账本;新阶段、新目标、新结论、新暂停原因追加到文件末尾。
-
-## 1. 当前项目总览
-
-| 字段 | 内容 |
-|---|---|
-| 项目 ID | PROJECT-B |
-| 项目名称 | Project B |
-| 项目管理员 | Codex |
-| 创建时间 | 2026-06-03 00:00:00 |
-| 当前状态 | 完成 |
-| 当前阶段 | 案例分析体系复验 |
-| 当前结论 | Project B 案例分析体系创建校验通过,合成案例流程可审计;未发现新的 common 指南缺口 |
-
-## 2. 项目背景
-
-Project B 已验证过实验体系。本轮用于复验同一套案例分析创建指南是否能在第二个项目复用。
-
-## 3. 来源聊天记录
-
-```text
-用户要求:在 Project B 里再重复一次 Project A 的流程,看跟 Project A 的区别。
-```
-
-## 4. 项目目标
-
-1. 在 Project B 创建案例分析体系。
-2. 用同一校验方案验证体系创建是否正确。
-3. 跑一个不同于 Project A 的合成案例,比较 A/B 创建和执行差异。
-
-## 5. 项目边界
-
-本项目验证 / 交付:
-
-1. 案例分析体系跨项目复用能力。
-2. 合成案例证据链,不代表真实业务结论。
-
-本项目不验证 / 不交付:
-
-1. 不验证真实交易策略或真实收益。
-2. 不导入外部项目真实数据。
-
-## 6. 当前启用体系
-
-| 体系 | 状态 | 启用时间 | 入口 |
-|---|---|---|---|
-| 项目体系 | 已启用 | 2026-06-03 00:00:00 | 项目规范.md |
-| 实验体系 | 已启用 | 2026-06-01 | exp-doc/实验规范.md |
-| 案例分析体系 | 已启用 | 2026-06-03 00:10:00 | ana-doc/案例分析规范.md |
-
-## 7. 项目阶段记录
-
-### 2026-06-03 00:10:00 STAGE-PROJB-ANA-INIT:Project B 案例分析体系创建和复验
-
-背景:
-需要验证案例分析体系不是只在 Project A 可用。
-
-目标:
-创建案例分析体系,完成创建校验,并跑一个合成案例流程。
-
-边界:
-使用合成案例,不读成真实业务结论。
-
-状态:
-完成
-
-当前结论:
-Project B 已补齐项目级入口,完成案例分析体系创建、dry-run 校验和一个合成回踩确认案例流程。与 Project A 相比,Project B 没有暴露新的指南缺口,说明 Project A 后修正的创建指南可复用。
-
-相关计划:
-项目事项计划.md 中 PLAN-20260603-PROJB-ANA-INIT。
-
-相关结果:
-ana-doc/;ana-data/。
-
-审计入口:
-项目事项审计报告.md 中 AUDIT-20260603-PROJB-ANA-INIT。
diff --git "a/project B/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md" "b/project B/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md"
deleted file mode 100644
index 2b705f7..0000000
--- "a/project B/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md"
+++ /dev/null
@@ -1,79 +0,0 @@
-# 项目事项计划
-
-创建人员:Codex
-文件职责:作为 Project B 项目级滚动账本,记录项目阶段、体系启用计划、项目级任务和执行责任。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目事项计划模版.md。
-引用文件:项目事项总纲.md;项目规范.md;项目执行日志.md;项目事项审计报告.md。
-记录方式:append-only 项目事项计划账本;新计划、新阶段、新修订追加到文件末尾。
-
-## 1. 当前计划总览
-
-| 计划 ID | 所属阶段 | 目标 | 负责人 | 状态 | 审计状态 |
-|---|---|---|---|---|---|
-| PLAN-20260603-PROJB-ANA-INIT | STAGE-PROJB-ANA-INIT | 创建和复验案例分析体系 | Codex | 完成 | 计划审计和执行审计均通过 |
-
-## 2. 计划记录
-
-### 2026-06-03 00:10:00 PLAN-20260603-PROJB-ANA-INIT:Project B 案例分析体系创建和复验
-
-所属项目:
-PROJECT-B / Project B
-
-所属阶段:
-STAGE-PROJB-ANA-INIT
-
-创建人员:
-Codex
-
-执行人员:
-Codex
-
-计划目标:
-按 `common/ana-doc/案例分析环境创建指南.md` 创建 Project B 案例分析体系,跑 dry-run 和一个合成案例,最后对比 Project A。
-
-来源聊天记录:
-```text
-用户要求:在 Project B 里再重复一次流程,看跟 Project A 的区别。
-```
-
-上游依据:
-项目事项总纲 STAGE-PROJB-ANA-INIT;common/ana-doc/案例分析环境创建指南.md。
-
-目标对齐说明:
-本计划覆盖项目入口补齐、案例体系创建、校验、案例执行、审计和 A/B 对比。
-
-执行步骤:
-
-1. 补齐 Project B 项目级入口。
-2. 创建 `ana-doc/`、`ana-data/` 目录和案例分析基础文档。
-3. 按创建指南执行体系创建校验。
-4. 跑一个合成“回踩二次确认”案例。
-5. 以案例审核员身份审计设计和执行。
-6. 对比 Project A 和 Project B 的创建与执行差异。
-
-输入:
-common/ana-doc/ 案例分析规范、审核规范、创建指南和模板。
-
-输出:
-ana-doc/;ana-data/;项目事项审计报告.md;项目变更记录.md。
-
-验收方式:
-项目级入口存在;案例分析体系创建校验通过;合成案例全流程证据链可从总纲追到设计、执行日志、数据、图片和审计报告;形成 A/B 差异结论。
-
-计划审计状态:
-审计通过
-
-计划审计入口:
-项目事项审计报告.md 中 AUDIT-20260603-PROJB-ANA-PLAN。
-
-状态:
-完成
-
-当前结论:
-已按计划完成项目入口补齐、案例体系创建、创建校验、合成案例执行、案例审计和 Project A / Project B 差异对比。未发现新的阻断问题。
-
-执行日志入口:
-项目执行日志.md 中 LOG-20260603-PROJB-ANA-INIT。
-
-审计入口:
-项目事项审计报告.md 中 AUDIT-20260603-PROJB-ANA-INIT。
diff --git "a/project B/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md" "b/project B/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md"
deleted file mode 100644
index c062539..0000000
--- "a/project B/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md"
+++ /dev/null
@@ -1,122 +0,0 @@
-# 项目变更记录
-
-创建人员:Codex
-文件职责:记录 Project B 项目级变更,包括体系启用/停用、目录调整、角色调整、项目目标或边界变化。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目变更记录模版.md。
-引用文件:项目规范.md;项目配置清单.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md。
-记录方式:append-only 项目级变更账本;每次项目级变更追加到文件末尾。
-
-## 1. 当前变更总览
-
-| 变更 ID | 变更类型 | 变更对象 | 变更人 | 状态 | 时间 |
-|---|---|---|---|---|---|
-| CHANGE-20260603-PROJB-INIT-PROJECT | 规范修订 | 项目级入口 | Codex | 已审计通过 | 2026-06-03 00:00:00 |
-| CHANGE-20260603-PROJB-ANA-INIT | 体系启用 | 案例分析体系 | Codex | 已审计通过 | 2026-06-03 00:10:00 |
-| CHANGE-20260603-PROJB-DEV-SYNC | 目录调整 / 配置同步 | 开发体系根目录 | Codex | 已审计通过 | 2026-06-03 14:05:55 |
-
-## 2. 变更记录
-
-### 2026-06-03 00:00:00 CHANGE-20260603-PROJB-INIT-PROJECT:补齐 Project B 项目级入口
-
-变更类型:
-规范修订
-
-变更对象:
-项目规范、项目配置清单、项目事项总纲、项目事项计划、项目执行日志、项目事项审计报告、项目问题记录、项目变更记录。
-
-变更原因:
-Project B 原先只有实验体系文档,无法满足案例分析环境创建指南对项目配置清单、执行日志和变更记录的要求。
-
-变更前:
-项目根目录缺少项目级入口文档。
-
-变更后:
-已创建最小项目级入口文档。
-
-影响范围:
-Project B 项目级治理和后续体系启用审计。
-
-执行人:
-Codex
-
-关联计划 / 日志:
-PLAN-20260603-PROJB-ANA-INIT / LOG-20260603-PROJB-ANA-INIT
-
-是否需要审计:
-是
-
-审计入口:
-AUDIT-20260603-PROJB-ANA-PLAN
-
-当前状态:
-已审计通过
-
-### 2026-06-03 14:05:55 CHANGE-20260603-PROJB-DEV-SYNC:同步 Project B 开发体系口径
-
-变更类型:
-目录调整 / 配置同步
-
-变更对象:
-`dev/`、`dev-doc/` 根目录和项目配置清单中的开发体系登记。
-
-变更原因:
-全局规范已明确项目创建默认带开发体系根目录;Project B 作为已创建项目实例,需要同步公共口径。
-
-变更前:
-Project B 未登记开发体系,且缺少 `dev/`、`dev-doc/` 根目录。
-
-变更后:
-已创建 `dev/`、`dev-doc/` 根目录;已登记开发体系;目标开发工作区按需创建。
-
-影响范围:
-Project B 项目配置清单和根目录结构。
-
-执行人:
-Codex
-
-关联计划 / 日志:
-N/A / LOG-20260603-PROJB-DEV-SYNC
-
-是否需要审计:
-是
-
-审计入口:
-AUDIT-20260603-PROJB-DEV-SYNC
-
-当前状态:
-已审计通过
-
-### 2026-06-03 00:10:00 CHANGE-20260603-PROJB-ANA-INIT:启用案例分析体系
-
-变更类型:
-体系启用
-
-变更对象:
-ana-doc/;ana-data/;项目配置清单。
-
-变更原因:
-用户要求在 Project B 中重复 Project A 的案例分析体系创建流程并比较差异。
-
-变更前:
-Project B 未启用案例分析体系。
-
-变更后:
-案例分析体系目录、基础文档、存储体系、dry-run 和合成案例结果包均已创建并通过审计。
-
-影响范围:
-新增案例分析员、案例审核员、案例分析文档和数据目录。
-
-执行人:
-Codex
-
-关联计划 / 日志:
-PLAN-20260603-PROJB-ANA-INIT / LOG-20260603-PROJB-ANA-INIT
-
-是否需要审计:
-是
-
-审计入口:
-AUDIT-20260603-PROJB-ANA-INIT
-
-当前状态:
-已审计通过
diff --git "a/project B/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/project B/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md"
deleted file mode 100644
index 1638da5..0000000
--- "a/project B/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md"
+++ /dev/null
@@ -1,105 +0,0 @@
-# 项目执行日志
-
-创建人员:Codex
-文件职责:记录 Project B 项目创建、体系启用、角色调整、目录调整和其他项目级管理动作。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目执行日志模版.md。
-引用文件:项目事项总纲.md;项目事项计划.md;项目规范.md;项目配置清单.md;项目事项审计报告.md;项目变更记录.md。
-记录方式:append-only 项目级执行日志;每次项目级管理动作追加到文件末尾。
-
-## 1. 当前日志说明
-
-本日志只记录项目级管理动作。案例分析内部执行过程记录到 `ana-doc/案例执行日志.md`。
-
-## 2. 日志记录
-
-### 2026-06-03 00:10:00 LOG-20260603-PROJB-ANA-INIT:补齐项目入口并启用案例分析体系
-
-所属项目:
-PROJECT-B / Project B
-
-关联计划:
-PLAN-20260603-PROJB-ANA-INIT
-
-执行人员:
-Codex
-
-动作类型:
-体系启用
-
-执行目标:
-补齐 Project B 项目级入口文档,创建案例分析体系目录和基础文档。
-
-执行过程:
-
-1. 检查 Project B 当前结构,发现缺少项目配置清单、项目执行日志、项目变更记录等项目级入口。
-2. 按案例分析环境创建指南前置检查,先创建最小项目级入口。
-3. 创建 `ana-doc/`、`ana-data/` 及案例分析子目录。
-4. 生成案例分析体系基础文档。
-
-关键输入:
-common/ana-doc/案例分析环境创建指南.md;common/project-doc/ 项目模板。
-
-关键输出:
-项目规范.md;项目配置清单.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目问题记录.md;项目变更记录.md;ana-doc/;ana-data/。
-
-自检结果:
-体系创建校验通过;必备文档存在;结果包表内路径可从 Project B 根目录打开;未混入外部项目残留。
-
-异常 / 偏离:
-Project B 和 Project A 一样原先不是完整项目体系环境;按已修正指南先补齐项目级入口。
-
-当前状态:
-完成
-
-执行结果 / 结论回写:
-已写入项目事项总纲 STAGE-PROJB-ANA-INIT、项目配置清单、案例总纲、案例分析设计、案例执行日志、案例审计报告、目录导读。
-
-后续动作:
-本轮无需继续动作;后续真实案例应重新做设计审核和执行审核。
-
-审计入口:
-项目事项审计报告.md 中 AUDIT-20260603-PROJB-ANA-INIT。
-
-### 2026-06-03 14:06:10 LOG-20260603-PROJB-DEV-SYNC:同步 Project B 开发体系配置
-
-所属项目:
-PROJECT-B / Project B
-
-关联计划:
-N/A
-
-执行人员:
-Codex
-
-动作类型:
-目录调整 / 配置同步
-
-执行目标:
-按全局开发体系新口径同步 Project B 的开发体系登记、开发 AI 权限和 dev/dev-doc 目录映射。
-
-执行过程:
-1. 创建 Project B 缺失的 `dev/`、`dev-doc/` 根目录。
-2. 在 `项目配置清单.md` 中登记开发体系为默认启用。
-3. 将开发 AI 权限收口为目标开发工作区 `dev/<target>-dev/`、`dev/<target>-dev/test/`、`dev-doc/<target>-doc/`。
-4. 在目录映射中补充 `dev/` 和 `dev-doc/` 两行。
-
-关键输入:
-`../全局规范.md`;`../common/project-doc/项目规范.md`;`../common/dev-doc/开发环境创建指南.md`
-
-关键输出:
-`项目配置清单.md`;`项目变更记录.md`;`dev/`;`dev-doc/`
-
-自检结果:
-Project B 开发体系目录口径已与 common 规范一致。
-
-异常 / 偏离:
-无。
-
-当前状态:
-完成
-
-后续动作:
-目标开发工作区在实际开发事项创建时按需初始化。
-
-审计入口:
-AUDIT-20260603-PROJB-DEV-SYNC
diff --git "a/project B/\351\241\271\347\233\256\350\247\204\350\214\203.md" "b/project B/\351\241\271\347\233\256\350\247\204\350\214\203.md"
deleted file mode 100644
index 8165fe0..0000000
--- "a/project B/\351\241\271\347\233\256\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,59 +0,0 @@
-# 项目规范
-
-创建人员:Codex
-文件职责:记录 Project B 的项目目标、边界、项目配置入口和本地补充规则。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目规范模版.md。
-引用文件:项目配置清单.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目问题记录.md;项目变更记录.md。
-记录方式:项目级规范文档;项目长期目标、边界或本地稳定规则变化时更新,动态配置写入项目配置清单.md。
-
-## 1. 项目基本信息
-
-| 字段 | 内容 |
-|---|---|
-| 项目名称 | Project B |
-| 项目 ID | PROJECT-B |
-| 项目根目录 | ./ |
-| 项目管理员 | Codex |
-| 创建时间 | 2026-06-03 00:00:00 |
-| 当前状态 | 进行中 |
-
-## 2. 项目目标
-
-Project B 用于复验管理系统中实验体系和案例分析体系能否在第二个项目里独立创建、执行和审计。
-
-## 3. 项目边界
-
-本项目做:
-
-1. 验证同一套 common 指南能否复用于第二个项目。
-2. 使用合成数据验证案例分析体系证据链。
-
-本项目不做:
-
-1. 不导入外部项目真实数据。
-2. 不把合成案例结论读成真实策略、需求或业务结论。
-
-## 4. 项目配置入口
-
-本项目当前启用体系、目录映射、AI 角色、权限边界、工作空间和核心文档入口,以 `项目配置清单.md` 为准。
-
-## 5. 项目本地补充规则
-
-当前暂无额外补充规则。
-
-如后续设计本地项目流程,必须满足全局规范和 common 项目规范硬约束;流程通过审计后,执行时以本地流程为准。
-
-## 6. 例外规则
-
-| 例外项 | 原因 | 生效范围 | 到期 / 复审条件 |
-|---|---|---|---|
-| 暂无 | | | |
-
-## 7. 冲突处理
-
-如果本文件与 `../全局规范.md` 或 common 体系规范冲突:
-
-1. 先按全局规范和 common 体系规范执行。
-2. 审核员发现的问题主记录写入 `项目事项审计报告.md`;非审计人员发现的问题写入 `项目问题记录.md`。
-3. 修正本文件或对应本地规范。
-4. 冲突未解决前,不得把相关项目事项标记为完成。
diff --git "a/project B/\351\241\271\347\233\256\351\205\215\347\275\256\346\270\205\345\215\225.md" "b/project B/\351\241\271\347\233\256\351\205\215\347\275\256\346\270\205\345\215\225.md"
deleted file mode 100644
index 687e906..0000000
--- "a/project B/\351\241\271\347\233\256\351\205\215\347\275\256\346\270\205\345\215\225.md"
+++ /dev/null
@@ -1,76 +0,0 @@
-# 项目配置清单
-
-创建人员:Codex
-文件职责:记录 Project B 当前启用体系、AI 角色、权限边界、工作空间、目录映射和核心文档入口,是项目当前配置的事实源。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目配置清单模版.md。
-引用文件:项目规范.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目问题记录.md;项目变更记录.md。
-记录方式:项目配置清单;当前状态可覆盖更新,变更原因和历史必须同步写入项目变更记录.md 和项目执行日志.md。
-
-## 1. 项目基本配置
-
-| 字段 | 内容 |
-|---|---|
-| 项目名称 | Project B |
-| 项目 ID | PROJECT-B |
-| 项目根目录 | ./ |
-| 项目管理员 | Codex |
-| 创建时间 | 2026-06-03 00:00:00 |
-| 当前状态 | 进行中 |
-
-## 2. 已启用体系
-
-| 体系 | 是否启用 | 目录 | common 规范 | 本地规范 | 适用角色 | 最近变更记录 |
-|---|---|---|---|---|---|---|
-| 项目体系 | 是 | ./ | ../common/project-doc/项目规范.md | 项目规范.md | 项目管理员;项目审核员 | CHANGE-20260603-PROJB-INIT-PROJECT |
-| 开发体系 | 是 | dev/;dev-doc/;目标开发工作区按需创建 | ../common/dev-doc/编码规范.md | 目标开发工作区创建后登记 | 开发 AI | CHANGE-20260603-PROJB-DEV-SYNC |
-| 实验体系 | 是 | exp-doc/;exp-data/ | ../common/exp-doc/实验规范.md | exp-doc/实验规范.md | 实验员;实验审核员 | CHANGE-20260601-PROJB-EXP-INIT |
-| 案例分析体系 | 是 | ana-doc/;ana-data/ | ../common/ana-doc/案例分析规范.md | ana-doc/案例分析规范.md | 案例分析员;案例审核员 | CHANGE-20260603-PROJB-ANA-INIT |
-
-## 3. AI 角色与权限
-
-| AI 名称 | 角色 | 是否审核员 | 工作空间 | 默认写权限范围 | 备注 |
-|---|---|---|---|---|---|
-| Codex | 项目管理员;项目审核员;案例分析员;案例审核员 | 是 | ./ | 项目根目录;ana-doc/;ana-data/ | 本次负责创建和自审案例分析体系 |
-
-## 4. 默认角色权限
-
-| 角色 | 默认写权限目录 | 说明 |
-|---|---|---|
-| 项目管理员 | 项目根目录 | 管理项目规范、配置清单、项目级账本和体系启用 |
-| 项目审核员 | 项目事项审计报告.md;项目问题记录.md 仅写跨轮索引 | 审计项目初始化、配置和证据链 |
-| 开发 AI | dev/<target>-dev/;dev/<target>-dev/test/;dev-doc/<target>-doc/ | 按目标体系绑定开发代码、测试和开发文档;不默认拥有全部开发子目录 |
-| 实验员 | exp-doc/;exp-data/ | 维护实验文档、数据、结果包 |
-| 实验审核员 | exp-doc/实验审计报告.md;实验问题记录.md 仅写跨轮索引 | 审计实验设计和执行 |
-| 案例分析员 | ana-doc/;ana-data/ | 维护案例分析文档、案例数据、图片和结果包 |
-| 案例审核员 | ana-doc/案例审计报告.md;案例问题记录.md 仅写跨轮索引 | 审计案例设计和执行 |
-
-## 5. 目录映射
-
-| 目录 | 用途 | 负责人 / 角色 | 状态 | 备注 |
-|---|---|---|---|---|
-| ./ | 项目根目录,存放项目级规范和账本 | 项目管理员 | 已创建 | |
-| dev/ | 开发代码根目录;目标开发代码放到 dev/<target>-dev/ | 开发 AI | 已创建 | 项目创建默认存在 |
-| dev-doc/ | 开发文档根目录;目标开发文档放到 dev-doc/<target>-doc/ | 开发 AI | 已创建 | 项目创建默认存在 |
-| exp-doc/;exp-data/ | 实验体系文档和数据 | 实验员 | 已创建 | 既有实验体系 |
-| ana-doc/;ana-data/ | 案例分析体系文档和数据 | 案例分析员 | 已创建 | 本轮新增 |
-
-## 6. 核心文档入口
-
-| 文档 | 作用 | 状态 |
-|---|---|---|
-| 项目规范.md | 项目稳定目标、边界、本地补充规则和配置入口 | 已创建 |
-| 项目配置清单.md | 当前体系、角色、权限和目录配置事实源 | 已创建 |
-| 项目事项总纲.md | 项目级事项背景、目标、状态和结论账本 | 已创建 |
-| 项目事项计划.md | 项目级计划、步骤、验收和计划审计入口 | 已创建 |
-| 项目执行日志.md | 项目级执行关键节点日志 | 已创建 |
-| 项目事项审计报告.md | 项目计划审计、执行审计和复审账本 | 已创建 |
-| 项目问题记录.md | 非审计来源项目级问题闭环账本;审计问题只做跨轮索引 | 已创建 |
-| 项目变更记录.md | 项目级配置、目录、角色、体系变更历史 | 已创建 |
-
-## 7. 变更索引
-
-| 时间 | 变更记录 ID | 变更摘要 | 执行人 |
-|---|---|---|---|
-| 2026-06-03 00:00:00 | CHANGE-20260603-PROJB-INIT-PROJECT | 补齐 Project B 最小项目体系入口 | Codex |
-| 2026-06-03 00:10:00 | CHANGE-20260603-PROJB-ANA-INIT | 启用案例分析体系 | Codex |
-| 2026-06-03 14:05:55 | CHANGE-20260603-PROJB-DEV-SYNC | 同步开发体系默认根目录和目标工作区按需创建口径 | Codex |
diff --git "a/project B/\351\241\271\347\233\256\351\227\256\351\242\230\350\256\260\345\275\225.md" "b/project B/\351\241\271\347\233\256\351\227\256\351\242\230\350\256\260\345\275\225.md"
deleted file mode 100644
index 8e42660..0000000
--- "a/project B/\351\241\271\347\233\256\351\227\256\351\242\230\350\256\260\345\275\225.md"
+++ /dev/null
@@ -1,21 +0,0 @@
-# 项目问题记录
-
-创建人员:Codex
-文件职责:记录非审计来源 Project B 项目级问题;审计问题只在需要跨轮跟踪时登记索引。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目问题记录模版.md。
-引用文件:项目规范.md;项目配置清单.md;项目执行日志.md;项目事项审计报告.md;项目变更记录.md。
-记录方式:append-only 项目级问题账本;新问题、修复、复验、关闭追加到文件末尾。
-
-## 1. 记录范围
-
-本文件只记录非审计来源项目级问题,或需要跨轮跟踪的审计问题索引。
-
-## 2. 当前问题总览
-
-| 问题 ID | 类型 | 严重级别 | 状态 | 责任方 | 关联审计 |
-|---|---|---|---|---|---|
-| 无 | | | | | |
-
-## 3. 问题记录
-
-暂无非审计来源项目级问题。
diff --git "a/project C/\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/project C/\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"
deleted file mode 100644
index 3feb3c5..0000000
--- "a/project C/\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"
+++ /dev/null
@@ -1,290 +0,0 @@
-# 项目事项审计报告
-
-创建人员:Codex
-文件职责:作为项目级滚动账本,记录项目创建、体系启用、权限、目录、规范冲突和项目级证据链的审计结果。
-管理规范/模板:../全局规范.md;../common/project-doc/项目审计规范.md;../common/project-doc/项目事项审计报告模版.md。
-引用文件:项目规范.md;项目配置清单.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目问题记录.md。
-记录方式:append-only 项目事项审计报告;每次审计和复审追加到文件末尾。
-
-## 1. 当前审计总览
-
-本文件是项目级滚动账本,不是单次审计独立文档。项目创建、体系启用、权限变更、项目事项计划审计、项目事项执行审计和项目级复审默认追加到本文末尾。
-
-| 审计 ID | 审计对象 | 审计类型 | 审计人员 | 结论 | 时间 |
-|---|---|---|---|---|---|
-| PC-AUDIT-001 | PC-PLAN-001 | 计划审计 | Codex | 通过 | 2026-06-01 23:12:06 |
-| PC-AUDIT-002 | project C 初始化 | 执行审计 | Codex | 通过 | 2026-06-01 23:12:06 |
-| PC-AUDIT-003 | project C 初始化自检修复 | 复审 | Codex | 通过 | 2026-06-01 23:12:06 |
-
-## 2. 审计记录
-
-### 2026-06-01 23:12:06 PC-AUDIT-001:project C 初始化计划审计
-
-审计对象:
-项目初始化计划 PC-PLAN-001
-
-审计类型:
-计划审计
-
-关联项目:
-PROJECT-C / project C
-
-关联计划 / 日志:
-PC-PLAN-001 / N/A
-
-来源聊天记录 / 上游依据:
-用户要求按项目创建指南创建 project C,并在发现指南缺口时完善指南。
-
-审计人员:
-Codex
-
-依据文档:
-
-1. `../全局规范.md`
-2. `../common/project-doc/项目规范.md`
-3. `项目规范.md`
-4. `项目配置清单.md`
-
-审计范围:
-
-1. 计划是否依据项目环境创建指南。
-2. 计划是否覆盖指南要求的基础文档、基础目录、项目配置清单、执行日志和项目级审计。
-
-检查结果:
-
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 项目规范存在 | N/A | 计划审计阶段尚未创建 |
-| 项目配置清单存在 | N/A | 计划审计阶段尚未创建 |
-| 已启用体系入口完整 | PASS | 计划只启用项目体系 |
-| 来源聊天记录已记录 | PASS | 已写入项目事项总纲和计划 |
-| 项目事项总纲可追溯来源 | PASS | PC-STAGE-001 记录来源聊天 |
-| 计划目标对齐项目事项总纲 | PASS | 计划目标与创建 project C 一致 |
-| 计划能满足事项目标 | PASS | 步骤覆盖指南 3.1 到 3.8 |
-| 计划与聊天要求一致 | PASS | 未增加未启用体系 |
-| 执行按计划进行 | N/A | 尚未执行 |
-| 关键节点日志完整 | N/A | 尚未执行 |
-| 关键文件可读无乱码 | PASS | 上游指南和模板可读 |
-| 未混入其他项目内容 | PASS | 计划无其他项目内容 |
-| 证据链可追踪 | PASS | 总纲、计划、审计入口已定义 |
-
-发现问题:
-
-1. 无。
-
-审计结论:
-通过
-
-是否阻断:
-否
-
-是否允许进入下一阶段:
-是
-
-建议动作:
-按 PC-PLAN-001 执行项目初始化。
-
-复审要求:
-无需复审。
-
-### 2026-06-03 14:07:10 PC-AUDIT-004:project C 开发体系同步审计
-
-审计对象:
-project C 开发体系配置同步
-
-审计类型:
-执行审计
-
-关联项目:
-PROJECT-C / project C
-
-关联计划 / 日志:
-N/A / PC-LOG-004
-
-来源聊天记录 / 上游依据:
-用户要求继续完成开发体系同步;`../全局规范.md`;`../common/project-doc/项目规范.md`;`../common/dev-doc/开发环境创建指南.md`。
-
-审计人员:
-Codex
-
-依据文档:
-1. `../全局规范.md`
-2. `../common/project-doc/项目规范.md`
-3. `../common/dev-doc/开发环境创建指南.md`
-4. `项目配置清单.md`
-
-审计范围:
-1. 旧 `编码体系` 是否已替换为 `开发体系`。
-2. 开发体系是否登记为默认启用。
-3. dev/dev-doc 根目录是否存在。
-4. 开发 AI 权限是否按目标工作区绑定。
-5. 是否未提前创建目标开发工作区。
-6. 证据链是否记录到配置清单、变更记录和执行日志。
-
-检查结果:
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 旧口径清理 | PASS | `编码体系` 已替换为 `开发体系` |
-| 开发体系登记 | PASS | 已登记开发体系默认启用 |
-| dev/dev-doc 根目录 | PASS | 已创建 `dev/`、`dev-doc/` |
-| 目标开发工作区按需创建 | PASS | 未提前创建目标开发工作区 |
-| 开发 AI 权限收口 | PASS | 已按 target-dev / target-doc 记录 |
-| 证据链可追踪 | PASS | 配置、变更、日志可追踪 |
-
-发现问题:
-无。
-
-审计结论:
-通过
-
-是否阻断:
-否
-
-是否允许进入下一阶段:
-是
-
-建议动作:
-实际开发事项创建时再按 `common/dev-doc/开发环境创建指南.md` 初始化目标开发工作区。
-
-复审要求:
-无需复审。
-
-### 2026-06-01 23:12:06 PC-AUDIT-003:project C 初始化自检修复复审
-
-审计对象:
-project C 初始化自检修复
-
-审计类型:
-复审
-
-关联项目:
-PROJECT-C / project C
-
-关联计划 / 日志:
-PC-PLAN-001 / PC-LOG-003
-
-来源聊天记录 / 上游依据:
-全局规范要求正式文档避免不必要绝对路径;项目环境创建指南要求基础文档可用。
-
-审计人员:
-Codex
-
-依据文档:
-
-1. `../全局规范.md`
-2. `../common/project-doc/项目规范.md`
-3. `项目规范.md`
-4. `项目配置清单.md`
-
-审计范围:
-
-1. 绝对路径修复。
-2. 模板占位修复。
-
-检查结果:
-
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 项目规范存在 | PASS | `项目规范.md` 已创建 |
-| 项目配置清单存在 | PASS | `项目配置清单.md` 已创建 |
-| 已启用体系入口完整 | PASS | 项目体系已登记 |
-| 来源聊天记录已记录 | PASS | 总纲和计划均有记录 |
-| 项目事项总纲可追溯来源 | PASS | 已改为语义描述,无不必要绝对路径 |
-| 计划目标对齐项目事项总纲 | PASS | 对齐 |
-| 计划能满足事项目标 | PASS | 对齐 |
-| 计划与聊天要求一致 | PASS | 对齐 |
-| 执行按计划进行 | PASS | 修复见 PC-LOG-003 |
-| 关键节点日志完整 | PASS | 修复已记录 |
-| 关键文件可读无乱码 | PASS | 可读 |
-| 未混入其他项目内容 | PASS | 未发现 |
-| 证据链可追踪 | PASS | 问题、日志、审计可互相追踪 |
-
-发现问题:
-
-1. PC-ISSUE-001 已修复并关闭。
-
-审计结论:
-通过
-
-是否阻断:
-否
-
-是否允许进入下一阶段:
-是
-
-建议动作:
-无。
-
-复审要求:
-无需复审。
-
-### 2026-06-01 23:12:06 PC-AUDIT-002:project C 初始化执行审计
-
-审计对象:
-project C 初始化执行
-
-审计类型:
-执行审计
-
-关联项目:
-PROJECT-C / project C
-
-关联计划 / 日志:
-PC-PLAN-001 / PC-LOG-001
-
-来源聊天记录 / 上游依据:
-项目事项总纲 PC-STAGE-001;项目事项计划 PC-PLAN-001;项目环境创建指南。
-
-审计人员:
-Codex
-
-依据文档:
-
-1. `../全局规范.md`
-2. `../common/project-doc/项目规范.md`
-3. `项目规范.md`
-4. `项目配置清单.md`
-
-审计范围:
-
-1. 项目基础文档是否齐全。
-2. 基础目录和工作空间是否创建。
-3. 未启用体系目录是否未被提前创建。
-4. 执行日志和审计记录是否可追踪。
-
-检查结果:
-
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 项目规范存在 | PASS | `项目规范.md` 已创建 |
-| 项目配置清单存在 | PASS | `项目配置清单.md` 已创建 |
-| 已启用体系入口完整 | PASS | 项目体系已登记 |
-| 来源聊天记录已记录 | PASS | 总纲和计划均有记录 |
-| 项目事项总纲可追溯来源 | PASS | PC-STAGE-001 可追踪 |
-| 计划目标对齐项目事项总纲 | PASS | PC-PLAN-001 对齐 |
-| 计划能满足事项目标 | PASS | 覆盖基础创建流程 |
-| 计划与聊天要求一致 | PASS | 按指南执行 |
-| 执行按计划进行 | PASS | 见 PC-LOG-001 |
-| 关键节点日志完整 | PASS | 创建步骤和产物已记录 |
-| 关键文件可读无乱码 | PASS | 文档为 UTF-8 可读 |
-| 未混入其他项目内容 | PASS | 未写入其他项目业务内容 |
-| 证据链可追踪 | PASS | 总纲、计划、日志、审计互相引用 |
-
-发现问题:
-
-1. 无。
-
-审计结论:
-通过
-
-是否阻断:
-否
-
-是否允许进入下一阶段:
-是
-
-建议动作:
-由项目管理员决定是否启用其他体系。
-
-复审要求:
-无需复审。
diff --git "a/project C/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md" "b/project C/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md"
deleted file mode 100644
index a222b45..0000000
--- "a/project C/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md"
+++ /dev/null
@@ -1,86 +0,0 @@
-# 项目事项总纲
-
-创建人员:Codex
-文件职责:作为项目级滚动账本,记录项目背景、目标、边界、阶段状态、关键结论和来源聊天记录。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目事项总纲模版.md。
-引用文件:项目规范.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目问题记录.md。
-记录方式:append-only 项目事项总纲账本;新阶段、新目标、新结论、新暂停原因追加到文件末尾。
-
-## 1. 当前项目总览
-
-本文件是项目级滚动账本,不是单个事项独立文档。新阶段、新项目管理事项、新体系启用事项默认追加到本文末尾。
-
-| 字段 | 内容 |
-|---|---|
-| 项目 ID | PROJECT-C |
-| 项目名称 | project C |
-| 项目管理员 | Codex |
-| 创建时间 | 2026-06-01 23:12:06 |
-| 当前状态 | 进行中 |
-| 当前阶段 | 初始化项目环境 |
-| 当前结论 | project C 项目体系基础环境已创建,待审计确认 |
-
-## 2. 项目背景
-
-用户要求严格按照 `../common/project-doc/项目环境创建指南.md` 在管理系统根目录下创建 `project C`,并在过程中发现指南缺口时同步完善指南。执行过程必须只依据指南,不靠记忆或脑补。
-
-## 3. 来源聊天记录
-
-```text
-用户:接下来你按照 项目创建指南 去创建个project C到manager_system里,过程中发现自己少写了什么自己完善指南。一定保证自己只根据指南操作,不靠脑补
-```
-
-## 4. 项目目标
-
-1. 按项目环境创建指南创建 `project C`。
-2. 验证项目体系基础模板是否能支撑项目初始化。
-3. 如发现指南核心缺口,同步补充指南。
-
-## 5. 项目边界
-
-本项目验证 / 交付:
-
-1. 项目体系基础文档。
-2. 项目级 `tmp/` 目录。
-3. `项目配置清单.md` 中登记 AI 的工作空间。
-4. 初始化计划、日志、审计、问题、变更记录。
-
-本项目不验证 / 不交付:
-
-1. 需求、编码、实验、案例分析、数据等未启用体系。
-2. git 仓库初始化。
-3. 具体业务事项。
-
-## 6. 当前启用体系
-
-| 体系 | 状态 | 启用时间 | 入口 |
-|---|---|---|---|
-| 项目体系 | 已启用 | 2026-06-01 23:12:06 | 项目规范.md |
-
-## 7. 项目阶段记录
-
-### 2026-06-01 23:12:06 PC-STAGE-001:初始化项目环境
-
-背景:
-用户要求按项目创建指南创建 project C,并校验指南是否足够。
-
-目标:
-完成 project C 最小可用项目体系初始化。
-
-边界:
-不启用业务体系,不创建未启用体系目录,不复制 common 规范正文。
-
-状态:
-待审核
-
-当前结论:
-项目基础文档和基础目录已按指南创建。
-
-相关计划:
-PC-PLAN-001
-
-相关结果:
-项目根目录 `./`
-
-审计入口:
-PC-AUDIT-001;PC-AUDIT-002;PC-AUDIT-003
diff --git "a/project C/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md" "b/project C/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md"
deleted file mode 100644
index 2fb5110..0000000
--- "a/project C/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md"
+++ /dev/null
@@ -1,83 +0,0 @@
-# 项目事项计划
-
-创建人员:Codex
-文件职责:作为项目级滚动账本,记录项目阶段、里程碑、体系启用计划、项目级任务和执行责任。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目事项计划模版.md。
-引用文件:项目事项总纲.md;项目规范.md;项目执行日志.md;项目事项审计报告.md。
-记录方式:append-only 项目事项计划账本;新计划、新阶段、新修订追加到文件末尾。
-
-## 1. 当前计划总览
-
-本文件是项目级滚动账本,不是单个计划独立文档。项目级新计划、新修订和新阶段计划默认追加到本文末尾。
-
-| 计划 ID | 所属阶段 | 目标 | 负责人 | 状态 | 审计状态 |
-|---|---|---|---|---|---|
-| PC-PLAN-001 | PC-STAGE-001 | 按指南创建 project C 最小项目环境 | Codex | 完成 | 审计通过 |
-
-## 2. 计划记录
-
-### 2026-06-01 23:12:06 PC-PLAN-001:创建 project C 项目环境
-
-所属项目:
-PROJECT-C / project C
-
-所属阶段:
-PC-STAGE-001 / 初始化项目环境
-
-创建人员:
-Codex
-
-执行人员:
-Codex
-
-计划目标:
-按 `../common/project-doc/项目环境创建指南.md` 创建 project C 的项目体系基础环境。
-
-来源聊天记录:
-```text
-用户:接下来你按照 项目创建指南 去创建个project C到manager_system里,过程中发现自己少写了什么自己完善指南。一定保证自己只根据指南操作,不靠脑补
-```
-
-上游依据:
-项目事项总纲 PC-STAGE-001;`../common/project-doc/项目环境创建指南.md`
-
-目标对齐说明:
-本计划逐项执行指南中的 3.1 到 3.8:创建项目根目录、基础文档、基础目录、更新项目配置清单、更新项目规范、记录执行日志、完成项目级审计。
-
-执行步骤:
-
-1. 读取项目环境创建指南和项目体系模板。
-2. 创建项目根目录 `project C/`。
-3. 创建基础目录 `tmp/` 和 `ai-codex/`。
-4. 创建 8 个项目基础文档。
-5. 在 `项目规范.md` 登记启用项目体系和目录映射。
-6. 在 `项目配置清单.md` 登记 Codex 角色和工作空间。
-7. 在 `项目执行日志.md` 记录初始化过程。
-8. 在 `项目事项审计报告.md` 记录计划审计和执行审计。
-
-输入:
-`../common/project-doc/项目环境创建指南.md`;本目录项目体系模板;用户来源聊天记录。
-
-输出:
-project C 项目根目录、8 个基础文档、`tmp/`、`ai-codex/`。
-
-验收方式:
-项目根目录存在;基础文档齐全;`项目配置清单.md` 能解释启用体系、AI、角色、权限和工作空间;工作空间已创建;项目执行日志和项目事项审计报告有初始化记录;未创建未启用体系目录。
-
-计划审计状态:
-审计通过
-
-计划审计入口:
-PC-AUDIT-001
-
-状态:
-完成
-
-当前结论:
-计划已按指南执行完成,等待最终确认。
-
-执行日志入口:
-PC-LOG-001
-
-审计入口:
-PC-AUDIT-002
diff --git "a/project C/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md" "b/project C/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md"
deleted file mode 100644
index 21280db..0000000
--- "a/project C/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md"
+++ /dev/null
@@ -1,100 +0,0 @@
-# 项目变更记录
-
-创建人员:Codex
-文件职责:记录项目级变更,包括体系启用/停用、目录调整、角色调整、项目目标或边界变化。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目变更记录模版.md。
-引用文件:项目规范.md;项目配置清单.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md。
-记录方式:append-only 项目级变更账本;每次项目级变更追加到文件末尾。
-
-## 1. 当前变更总览
-
-| 变更 ID | 变更类型 | 变更对象 | 变更人 | 状态 | 时间 |
-|---|---|---|---|---|---|
-| PC-CHANGE-001 | 体系启用 / 目录初始化 / 角色初始化 | project C 项目体系 | Codex | 已审计通过 | 2026-06-01 23:12:06 |
-| PC-CHANGE-003 | 目录调整 / 配置同步 | 开发体系根目录 | Codex | 已审计通过 | 2026-06-03 14:05:55 |
-
-## 2. 何时必须记录项目变更
-
-以下情况必须写入本文件:
-
-1. 启用或停用体系。
-2. 新增、删除、移动或重命名项目级正式目录。
-3. 调整 AI 角色、权限边界、审核员身份或工作空间。
-4. 修改项目目标、项目边界、阶段优先级或交付范围。
-5. 修改项目根目录 `项目规范.md` 的关键规则。
-6. 修改项目级证据链入口、正式账本入口或审计入口。
-7. 因审计问题导致项目级流程、目录或权限需要调整。
-
-普通执行日志、体系内部日常迭代、临时草稿和不影响治理结构的措辞修订,通常不写项目变更记录。
-
-## 3. 变更记录
-
-### 2026-06-01 23:12:06 PC-CHANGE-001:初始化 project C 项目体系
-
-变更类型:
-体系启用 / 目录初始化 / 角色初始化
-
-变更对象:
-project C 项目体系基础环境
-
-变更原因:
-用户要求按项目环境创建指南创建 project C。
-
-变更前:
-project C 不存在。
-
-变更后:
-project C 项目根目录、项目体系基础文档、`tmp/`、`ai-codex/` 工作空间已创建;项目体系已启用。
-
-影响范围:
-project C 项目根目录。
-
-执行人:
-Codex
-
-关联计划 / 日志:
-PC-PLAN-001 / PC-LOG-001
-
-是否需要审计:
-是
-
-审计入口:
-PC-AUDIT-002
-
-当前状态:
-已审计通过
-
-### 2026-06-03 14:05:55 PC-CHANGE-003:同步 project C 开发体系口径
-
-变更类型:
-目录调整 / 配置同步
-
-变更对象:
-`dev/`、`dev-doc/` 根目录和项目配置清单中的开发体系登记。
-
-变更原因:
-全局规范已明确开发体系默认随项目创建,且旧“编码体系”叫法已统一为“开发体系”;project C 配置清单仍保留旧口径。
-
-变更前:
-项目配置清单中记录为“编码体系”,状态为未启用;项目根目录缺少 `dev/`、`dev-doc/`。
-
-变更后:
-已改为“开发体系”,状态为启用;已创建 `dev/`、`dev-doc/` 根目录;目标开发工作区按需创建。
-
-影响范围:
-project C 项目配置清单和根目录结构。
-
-执行人:
-Codex
-
-关联计划 / 日志:
-N/A / PC-LOG-004
-
-是否需要审计:
-是
-
-审计入口:
-PC-AUDIT-004
-
-当前状态:
-已审计通过
diff --git "a/project C/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/project C/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md"
deleted file mode 100644
index 15ce248..0000000
--- "a/project C/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md"
+++ /dev/null
@@ -1,196 +0,0 @@
-# 项目执行日志
-
-创建人员:Codex
-文件职责:记录项目创建、体系启用、角色调整、目录调整和其他项目级管理动作。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目执行日志模版.md。
-引用文件:项目事项总纲.md;项目事项计划.md;项目规范.md;项目配置清单.md;项目事项审计报告.md;项目变更记录.md。
-记录方式:append-only 项目级执行日志;每次项目级管理动作追加到文件末尾。
-
-## 1. 当前日志说明
-
-本日志只记录项目级管理动作。
-
-需求、编码、实验、案例分析等体系内部执行过程,应记录到对应体系的执行日志。
-
-## 2. 日志记录
-
-### 2026-06-01 23:12:06 PC-LOG-001:初始化 project C 项目环境
-
-所属项目:
-PROJECT-C / project C
-
-关联计划:
-PC-PLAN-001
-
-执行人员:
-Codex
-
-动作类型:
-项目创建
-
-执行目标:
-按项目环境创建指南创建 project C 最小可用项目体系环境。
-
-执行过程:
-
-1. 读取 `../common/project-doc/项目环境创建指南.md`。
-2. 读取项目体系模板清单。
-3. 创建项目根目录 `./`。
-4. 创建基础目录 `tmp/` 和 `ai-codex/`。
-5. 创建 `项目规范.md`、`项目配置清单.md`、`项目事项总纲.md`、`项目事项计划.md`、`项目执行日志.md`、`项目事项审计报告.md`、`项目问题记录.md`、`项目变更记录.md`。
-6. 登记已启用项目体系。
-7. 登记 Codex 为项目管理员和项目审核员。
-8. 完成初始化计划审计和执行审计记录。
-
-关键输入:
-`../common/project-doc/项目环境创建指南.md`;`../common/project-doc/*模版.md`;用户来源聊天记录。
-
-关键输出:
-项目根目录基础文档;`tmp/`;`ai-codex/`。
-
-自检结果:
-项目基础文档已创建;项目配置清单中登记的 `ai-codex/` 工作空间已创建;未创建未启用体系目录;项目规范未复制 common 正文。
-
-异常 / 偏离:
-无。
-
-当前状态:
-完成
-
-后续动作:
-项目管理员确认是否需要启用其他体系。
-
-审计入口:
-PC-AUDIT-001;PC-AUDIT-002
-
-### 2026-06-01 23:12:06 PC-LOG-002:补充项目环境创建指南初始化审计口径
-
-所属项目:
-PROJECT-C / project C
-
-关联计划:
-PC-PLAN-001
-
-执行人员:
-Codex
-
-动作类型:
-规范修订
-
-执行目标:
-补齐项目环境创建指南中关于初始化事项计划审计和执行审计的说明。
-
-执行过程:
-
-1. 对照 `../common/project-doc/项目规范.md` 的项目事项生命周期流程。
-2. 确认 `../common/project-doc/项目环境创建指南.md` 只写了创建后审计,没有说明初始化计划审计。
-3. 在项目环境创建指南中补充初始化事项记录、计划审计、执行审计要求。
-
-关键输入:
-`../common/project-doc/项目规范.md`;`../common/project-doc/项目环境创建指南.md`
-
-关键输出:
-`../common/project-doc/项目环境创建指南.md` 已补充初始化审计口径。
-
-自检结果:
-指南现在明确初始化阶段允许同轮补齐计划审计和执行审计,但必须分开记录。
-
-异常 / 偏离:
-无。
-
-当前状态:
-完成
-
-后续动作:
-后续创建项目时按更新后的指南执行。
-
-审计入口:
-PC-AUDIT-002
-
-### 2026-06-01 23:12:06 PC-LOG-003:修正初始化自检发现的文档问题
-
-所属项目:
-PROJECT-C / project C
-
-关联计划:
-PC-PLAN-001
-
-执行人员:
-Codex
-
-动作类型:
-审计修复
-
-执行目标:
-修正初始化自检中发现的本地文档问题,确保项目文档不含不必要绝对路径和模板占位。
-
-执行过程:
-
-1. 检查 project C 文档是否存在绝对路径、其他项目残留和未替换占位。
-2. 将 `项目事项总纲.md` 中的绝对路径描述改成“管理系统根目录”。
-3. 将 `项目规范.md` 未启用体系里的 `<待补>` 占位改成明确的“common 规范待建立 / 本地规范未创建”。
-
-关键输入:
-项目基础文档;`../全局规范.md`
-
-关键输出:
-`项目事项总纲.md`;`项目规范.md`
-
-自检结果:
-已修正。
-
-异常 / 偏离:
-无。
-
-当前状态:
-完成
-
-后续动作:
-复查项目文档。
-
-审计入口:
-PC-AUDIT-003
-
-### 2026-06-03 14:06:25 PC-LOG-004:同步 project C 开发体系配置
-
-所属项目:
-PROJECT-C / project C
-
-关联计划:
-N/A
-
-执行人员:
-Codex
-
-动作类型:
-目录调整 / 配置同步
-
-执行目标:
-按全局开发体系新口径同步 project C,把旧 `编码体系` 口径改为 `开发体系`,并补齐开发 AI 权限和 dev/dev-doc 目录映射。
-
-执行过程:
-1. 创建 project C 缺失的 `dev/`、`dev-doc/` 根目录。
-2. 在 `项目配置清单.md` 中将旧 `编码体系` 改为 `开发体系`,并登记为默认启用。
-3. 将开发 AI 权限收口为目标开发工作区 `dev/<target>-dev/`、`dev/<target>-dev/test/`、`dev-doc/<target>-doc/`。
-4. 在目录映射中补充 `dev/` 和 `dev-doc/` 两行。
-
-关键输入:
-`../全局规范.md`;`../common/project-doc/项目规范.md`;`../common/dev-doc/开发环境创建指南.md`
-
-关键输出:
-`项目配置清单.md`;`项目变更记录.md`;`dev/`;`dev-doc/`
-
-自检结果:
-project C 已不再使用旧 `编码体系` 口径,开发体系目录口径已与 common 规范一致。
-
-异常 / 偏离:
-无。
-
-当前状态:
-完成
-
-后续动作:
-目标开发工作区在实际开发事项创建时按需初始化。
-
-审计入口:
-PC-AUDIT-004
diff --git "a/project C/\351\241\271\347\233\256\350\247\204\350\214\203.md" "b/project C/\351\241\271\347\233\256\350\247\204\350\214\203.md"
deleted file mode 100644
index b638fb2..0000000
--- "a/project C/\351\241\271\347\233\256\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,66 +0,0 @@
-# 项目规范
-
-创建人员:Codex
-文件职责:记录 project C 的项目目标、边界、项目配置入口和本地补充规则。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目规范模版.md。
-引用文件:项目配置清单.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目问题记录.md;项目变更记录.md。
-记录方式:项目级规范文档;项目长期目标、边界或本地稳定规则变化时更新,不复制全局规范和 common 体系规范正文;动态配置写入项目配置清单.md。
-
-本文件是项目根目录的本地项目规范,不是 `common/project-doc/项目规范.md` 的副本。本地项目规范默认引用全局项目规范,只记录本项目特化内容和例外。
-
-## 1. 项目基本信息
-
-| 字段 | 内容 |
-|---|---|
-| 项目名称 | project C |
-| 项目 ID | PROJECT-C |
-| 项目根目录 | ./ |
-| 项目管理员 | Codex |
-| 创建时间 | 2026-06-01 23:12:06 |
-| 当前状态 | 进行中 |
-
-## 2. 项目目标
-
-按 `../common/project-doc/项目环境创建指南.md` 创建一个最小可用项目环境,用于验证通用项目体系模板和创建流程是否可执行。
-
-## 3. 项目边界
-
-本项目做:
-
-1. 初始化项目体系基础文档。
-2. 初始化项目级 `tmp/` 目录和 AI 工作空间。
-3. 记录项目创建计划、执行日志、审计报告、问题记录和变更记录。
-
-本项目不做:
-
-1. 不启用需求、编码、实验、案例分析、数据等业务体系。
-2. 不创建未启用体系的目录。
-3. 不复制 common 规范正文。
-4. 不初始化 git 仓库。
-
-## 4. 项目配置入口
-
-本项目当前启用体系、目录映射、AI 角色、权限边界、工作空间和核心文档入口,以 `项目配置清单.md` 为准。
-
-本文件不维护动态配置清单,避免项目规范频繁变更。
-
-## 5. 项目本地补充规则
-
-当前本项目暂无额外补充规则。
-
-如果后续新增项目特化规则,只能补充全局规范和 common 体系规范,不能冲突或削弱。
-
-## 6. 例外规则
-
-| 例外项 | 原因 | 生效范围 | 到期 / 复审条件 |
-|---|---|---|---|
-| 暂无 | | | |
-
-## 7. 冲突处理
-
-如果本文件与 `../全局规范.md` 或 common 体系规范冲突:
-
-1. 先按全局规范和 common 体系规范执行。
-2. 按发现来源记录冲突:审核员发现的主记录写入 `项目事项审计报告.md`;非审计人员发现的写入 `项目问题记录.md`;需要跨轮跟踪时可在 `项目问题记录.md` 建索引。
-3. 修正本文件或对应本地规范。
-4. 冲突未解决前,不得把相关项目事项标记为完成。
diff --git "a/project C/\351\241\271\347\233\256\351\205\215\347\275\256\346\270\205\345\215\225.md" "b/project C/\351\241\271\347\233\256\351\205\215\347\275\256\346\270\205\345\215\225.md"
deleted file mode 100644
index 3cb7bc5..0000000
--- "a/project C/\351\241\271\347\233\256\351\205\215\347\275\256\346\270\205\345\215\225.md"
+++ /dev/null
@@ -1,76 +0,0 @@
-# 项目配置清单
-
-创建人员:Codex
-文件职责:记录 project C 当前启用体系、AI 角色、权限边界、工作空间、目录映射和核心文档入口,是项目当前配置的事实源。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目配置清单模版.md。
-引用文件:项目规范.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目问题记录.md;项目变更记录.md。
-记录方式:项目配置清单;当前状态可覆盖更新,变更原因和历史同步写入项目变更记录.md 和项目执行日志.md。
-
-## 1. 项目基本配置
-
-| 字段 | 内容 |
-|---|---|
-| 项目名称 | project C |
-| 项目 ID | PROJECT-C |
-| 项目根目录 | ./ |
-| 项目管理员 | Codex |
-| 创建时间 | 2026-06-01 23:12:06 |
-| 当前状态 | 进行中 |
-
-## 2. 已启用体系
-
-| 体系 | 是否启用 | 目录 | common 规范 | 本地规范 | 适用角色 | 最近变更记录 |
-|---|---|---|---|---|---|---|
-| 项目体系 | 是 | ./ | ../common/project-doc/项目规范.md | 项目规范.md | 项目管理员 | PC-CHANGE-001 |
-| 需求体系 | 否 | pro-doc/ | ../common/pro-doc/需求规范.md | pro-doc/需求规范.md | 需求 AI | |
-| 开发体系 | 是 | dev/;dev-doc/;目标开发工作区按需创建 | ../common/dev-doc/编码规范.md | 目标开发工作区创建后登记 | 开发 AI | PC-CHANGE-003 |
-| 实验体系 | 否 | exp-doc/;exp-data/ | ../common/exp-doc/实验规范.md | exp-doc/实验规范.md | 实验员 | |
-| 案例分析体系 | 否 | ana-doc/;ana-data/ | ../common/ana-doc/案例分析规范.md | ana-doc/案例分析规范.md | 案例分析员 | |
-| 数据体系 | 否 | data-doc/;项目约定数据目录 | common 规范待建立 | 本地规范未创建 | 数据负责人 | |
-
-## 3. AI 角色与权限
-
-这里记录的是协作权限约束,不等同于操作系统或工具实际权限。所有 AI 默认拥有项目内文件读权限,写权限按角色和工作空间执行。
-
-| AI 名称 | 角色 | 是否审核员 | 工作空间 | 默认写权限范围 | 备注 |
-|---|---|---|---|---|---|
-| Codex | 项目管理员;项目审核员 | 是 | ai-codex/ | 项目根目录;ai-codex/ | 负责本次项目环境初始化和项目级审计 |
-
-## 4. 默认角色权限
-
-| 角色 | 默认写权限目录 | 说明 |
-|---|---|---|
-| 项目管理员 | 项目根目录 | 管理项目规范、项目配置清单、项目级账本和体系启用 |
-| 项目审核员 | 项目事项审计报告.md;项目问题记录.md 仅写跨轮索引 | 审计项目初始化、配置和项目级证据链 |
-| 开发 AI | dev/<target>-dev/;dev/<target>-dev/test/;dev-doc/<target>-doc/ | 按目标体系绑定开发代码、测试和开发文档;不默认拥有全部开发子目录 |
-
-## 5. 目录映射
-
-| 目录 | 用途 | 负责人 / 角色 | 状态 | 备注 |
-|---|---|---|---|---|
-| ./ | 项目根目录,存放项目级规范和项目级账本 | 项目管理员 | 已创建 | |
-| dev/ | 开发代码根目录;目标开发代码放到 dev/<target>-dev/ | 开发 AI | 已创建 | 项目创建默认存在 |
-| dev-doc/ | 开发文档根目录;目标开发文档放到 dev-doc/<target>-doc/ | 开发 AI | 已创建 | 项目创建默认存在 |
-| tmp/ | 项目级临时文件 | 项目管理员 | 已创建 | 临时产物不得当正式结果 |
-| ai-codex/ | ai-codex 工作空间 | Codex | 已创建 | 草稿和临时分析 |
-
-## 6. 核心文档入口
-
-| 文档 | 作用 | 状态 |
-|---|---|---|
-| 项目规范.md | 项目稳定目标、边界、本地补充规则和配置入口 | 已创建 |
-| 项目配置清单.md | 当前体系、角色、权限和目录配置事实源 | 已创建 |
-| 项目事项总纲.md | 项目级事项背景、目标、状态和结论账本 | 已创建 |
-| 项目事项计划.md | 项目级计划、步骤、验收和计划审计入口 | 已创建 |
-| 项目执行日志.md | 项目级执行关键节点日志 | 已创建 |
-| 项目事项审计报告.md | 项目计划审计、执行审计和复审账本 | 已创建 |
-| 项目问题记录.md | 项目级问题闭环账本 | 已创建 |
-| 项目变更记录.md | 项目级配置、目录、角色、体系变更历史 | 已创建 |
-
-## 7. 变更索引
-
-| 时间 | 变更记录 ID | 变更摘要 | 执行人 |
-|---|---|---|---|
-| 2026-06-01 23:12:06 | PC-CHANGE-001 | 初始化项目配置清单 | Codex |
-| 2026-06-01 23:30:00 | PC-CHANGE-002 | 将旧角色清单和体系清单合并为项目配置清单 | Codex |
-| 2026-06-03 14:05:55 | PC-CHANGE-003 | 同步开发体系默认根目录和目标工作区按需创建口径 | Codex |
diff --git "a/project C/\351\241\271\347\233\256\351\227\256\351\242\230\350\256\260\345\275\225.md" "b/project C/\351\241\271\347\233\256\351\227\256\351\242\230\350\256\260\345\275\225.md"
deleted file mode 100644
index 27977b6..0000000
--- "a/project C/\351\241\271\347\233\256\351\227\256\351\242\230\350\256\260\345\275\225.md"
+++ /dev/null
@@ -1,58 +0,0 @@
-# 项目问题记录
-
-创建人员:Codex
-文件职责:记录非审计来源项目级问题;审计问题只在需要跨轮跟踪时登记索引。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目问题记录模版.md。
-引用文件:项目规范.md;项目配置清单.md;项目执行日志.md;项目事项审计报告.md;项目变更记录.md。
-记录方式:append-only 项目级问题账本;新问题、修复、复验、关闭追加到文件末尾。
-
-## 1. 记录范围
-
-本文件只记录项目级问题。
-
-需求、编码、实验、案例分析、数据等体系内部问题,优先记录到对应体系问题文档;本文件只保留项目治理层面的索引或冲突。
-
-项目审核员发现的问题,主记录写入 `项目事项审计报告.md`。本文件后续只承接非审计来源项目问题,或审计问题的跨轮跟踪索引;历史记录保留,不作为新口径示例。
-
-## 2. 当前问题总览
-
-| 问题 ID | 类型 | 严重级别 | 状态 | 责任方 | 关联审计 |
-|---|---|---|---|---|---|
-| PC-ISSUE-001 | 项目规范问题 | P2 | CLOSED | Codex | PC-AUDIT-003 |
-
-## 3. 问题记录
-
-### 2026-06-01 23:12:06 PC-ISSUE-001:初始化文档存在绝对路径和模板占位
-
-问题类型:
-项目规范问题
-
-严重级别:
-P2
-
-关联项目:
-PROJECT-C / project C
-
-关联审计:
-PC-AUDIT-003
-
-证据:
-`项目事项总纲.md` 曾包含管理系统绝对路径描述;`项目规范.md` 未启用体系字段曾保留 `<待补>` 占位。
-
-影响:
-不影响项目环境创建结果,但不符合全局规范中避免不必要绝对路径和正式文档占位残留的要求。
-
-建议修复:
-改为相对/语义描述,并把未启用体系写成明确状态。
-
-责任方:
-Codex
-
-当前状态:
-CLOSED
-
-复验结论:
-通过。
-
-关闭条件:
-项目文档不再包含不必要绝对路径或未替换模板占位。
diff --git "a/wuji-trade/ai-codex/worklog/20260603_\345\267\245\344\275\234\350\257\264\346\230\216\351\246\226\346\254\241\351\230\205\350\257\273\345\217\215\351\246\210.md" "b/wuji-trade/ai-codex/worklog/20260603_\345\267\245\344\275\234\350\257\264\346\230\216\351\246\226\346\254\241\351\230\205\350\257\273\345\217\215\351\246\210.md"
deleted file mode 100644
index 3142082..0000000
--- "a/wuji-trade/ai-codex/worklog/20260603_\345\267\245\344\275\234\350\257\264\346\230\216\351\246\226\346\254\241\351\230\205\350\257\273\345\217\215\351\246\210.md"
+++ /dev/null
@@ -1,19 +0,0 @@
-# 20260603 工作说明首次阅读反馈
-
-阅读人员:Codex
-关联文件:../工作说明.md
-记录时间:2026-06-03
-
-## 理解结论
-
-我能明确当前在 wuji-trade 中的角色是项目管理员和项目初始化审核员。
-
-任务入口应先读项目总览、项目配置清单和项目规范,再根据任务类型进入项目、实验、案例分析或开发体系。
-
-## 需要注意
-
-当前未分配正式实验员、案例分析员或开发 AI。后续如果让我承担这些角色,必须先更新项目配置清单。
-
-## 是否有不理解或不合理
-
-暂无。
diff --git "a/wuji-trade/ai-codex/\345\267\245\344\275\234\350\257\264\346\230\216.md" "b/wuji-trade/ai-codex/\345\267\245\344\275\234\350\257\264\346\230\216.md"
deleted file mode 100644
index 77bab25..0000000
--- "a/wuji-trade/ai-codex/\345\267\245\344\275\234\350\257\264\346\230\216.md"
+++ /dev/null
@@ -1,47 +0,0 @@
-# 工作说明
-
-创建人员:Codex
-文件职责:说明 Codex 在 wuji-trade 项目中的职责、权限、工作入口和必须阅读的规范。
-管理规范/模板:../项目配置清单.md;../../common/ai-workplace/AI工作空间创建指南.md。
-引用文件:../项目总览.md;../项目规范.md;../项目配置清单.md;../项目事项总纲.md;../项目事项计划.md;../项目执行日志.md;../项目事项审计报告.md;../项目问题记录.md;../项目变更记录.md。
-记录方式:AI 工作说明;角色、权限或工作入口变化时更新。
-
-## 1. 角色
-
-Codex 当前角色:
-
-1. 项目管理员。
-2. 审核员(项目初始化审核)。
-
-后续如果要承担实验员、案例分析员、开发 AI 或其他审核角色,必须先更新 `../项目配置清单.md`。
-
-## 2. 必读入口
-
-接任务前先读:
-
-1. `../项目总览.md`
-2. `../项目配置清单.md`
-3. `../项目规范.md`
-4. `../../全局规范.md`
-5. 对应体系的本地规范和 common 规范
-
-## 3. 当前写权限
-
-| 范围 | 说明 |
-|---|---|
-| ../ | 项目管理员可维护项目级配置、账本和审计记录 |
-| ./ | 本 AI 工作空间,可写草稿、临时记录和工作日志 |
-| ../项目事项审计报告.md | 当前初始化审核入口 |
-
-## 4. 任务路由
-
-1. 项目配置、体系启用、角色权限:先查 `../项目配置清单.md`。
-2. 项目事项:写入 `../项目事项总纲.md`、`../项目事项计划.md`、`../项目执行日志.md`。
-3. 项目审计:写入 `../项目事项审计报告.md`。
-4. 实验事项:进入 `../exp-doc/`,按实验规范执行。
-5. 案例分析事项:进入 `../ana-doc/`,按案例分析规范执行。
-6. 开发事项:进入 `../dev-doc/`,按编码规范和开发审计规范执行。
-
-## 5. 工作日志
-
-首次阅读本说明后,应在 `worklog/` 写一条理解反馈;后续关键项目管理动作也应写入 `../项目执行日志.md`。
diff --git "a/wuji-trade/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md" "b/wuji-trade/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md"
deleted file mode 100644
index 90b94e3..0000000
--- "a/wuji-trade/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,30 +0,0 @@
-# 案例分析规范
-
-创建人员:Codex
-文件职责:记录 wuji-trade 案例分析员必须遵守的案例分析规范入口。本文件引用 common 案例分析规范,不复制全文。
-管理规范/模板:../../common/ana-doc/案例分析规范.md。
-引用文件:案例审核规范.md;案例存储体系.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md。
-记录方式:本地案例分析规范;项目特化案例规则变化时更新。
-
-## 1. 基本口径
-
-本项目所有案例分析员必须同时遵守:
-
-1. `../../全局规范.md`
-2. `../../common/ana-doc/案例分析规范.md`
-3. 本文件
-
-本文件当前没有额外补充规则。
-
-## 2. wuji-trade 本地补充
-
-无忌交易系统案例分析必须尽量保留全流程证据:
-
-1. 候选来源。
-2. 候选图或条件说明。
-3. 关键判断图。
-4. 操作或标记流水。
-5. 结果图或结果表。
-6. 审计入口。
-
-案例结论不得直接替代实验结论;如果要验证普遍性,必须进入实验体系。
diff --git "a/wuji-trade/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md" "b/wuji-trade/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md"
deleted file mode 100644
index fbc5a97..0000000
--- "a/wuji-trade/ana-doc/\346\241\210\344\276\213\345\210\206\346\236\220\350\256\276\350\256\241.md"
+++ /dev/null
@@ -1,43 +0,0 @@
-# 案例分析设计
-
-创建人员:Codex
-文件职责:记录 wuji-trade 所有案例分析的案例选择、步骤、证据、产物和判定标准。
-管理规范/模板:../../common/ana-doc/案例分析规范.md;../../common/ana-doc/案例分析设计模版.md。
-引用文件:案例总纲.md;案例执行日志.md;案例存储体系.md;案例审计报告.md;案例问题记录.md。
-记录方式:append-only 案例分析设计;新案例设计追加到文件末尾,设计审核通过后才能执行。
-
-## 1. 当前设计总览
-
-| 设计 ID | 案例 ID | 目标 | 状态 | 审计 |
-|---|---|---|---|---|
-| DESIGN-ANA-WUJI-ENV-SMOKE | ANA-WUJI-ENV-SMOKE | 验证案例分析体系环境和证据链 | PASS | AUDIT-ANA-WUJI-ENV-SMOKE |
-
-## 2. 设计记录
-
-### DESIGN-ANA-WUJI-ENV-SMOKE:案例分析体系初始化 dry-run 设计
-
-案例目标:
-验证案例分析体系入口、目录、执行日志和审计报告能串起来。
-
-案例步骤:
-
-1. 创建案例分析体系目录。
-2. 创建案例分析规范、审核规范、存储体系、总纲、设计、执行日志、审计报告、问题记录。
-3. 写入一个 dry-run 案例记录。
-4. 做初始化审计。
-
-输入:
-`../../common/ana-doc/案例分析环境创建指南.md`。
-
-输出:
-案例分析体系文档和目录。
-
-判定标准:
-
-1. 文档存在。
-2. 目录存在。
-3. dry-run 证据链可追踪。
-4. 无真实交易案例结论被误写。
-
-状态:
-PASS
diff --git "a/wuji-trade/ana-doc/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md" "b/wuji-trade/ana-doc/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md"
deleted file mode 100644
index 2b802a2..0000000
--- "a/wuji-trade/ana-doc/\346\241\210\344\276\213\345\255\230\345\202\250\344\275\223\347\263\273.md"
+++ /dev/null
@@ -1,92 +0,0 @@
-# 案例存储体系
-
-创建人员:Codex
-文件职责:记录 wuji-trade 案例数据、图片、结果包、表结构和读取方式。
-管理规范/模板:../../common/ana-doc/案例存储体系创建指南.md;../../common/ana-doc/案例分析规范.md。
-引用文件:案例分析规范.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md。
-记录方式:项目级案例存储合同;数据目录、表 schema 或读取规则变化时更新。
-
-## 1. 存储目标和范围
-
-本文件说明 wuji-trade 案例分析体系中案例数据、图片、操作流水和结果包如何存放、读取、追踪和审计。
-
-## 2. 目录结构
-
-| 目录 | 作用 | 是否正式 |
-|---|---|---|
-| ana-data/cases/ | 单案例结构化数据和证据包 | 是 |
-| ana-data/result/ | 汇总结果包、审计辅助输出 | 是 |
-| ana-data/img/ | 案例图片、图册、标注图 | 是 |
-| ana-data/tmp/ | 临时中间文件 | 否 |
-
-## 3. 核心表
-
-### case_index.csv
-
-| 字段 | 含义 |
-|---|---|
-| case_id | 案例唯一 ID |
-| case_name | 案例名称 |
-| case_type | 案例类型 |
-| source_id | 来源方法论、笔记、样本或聊天要求 ID |
-| target_object | 分析对象,如股票、规则、交易日组合 |
-| anchor_date_or_time | 案例关键锚点日期或时间 |
-| status | 未开始 / 进行中 / 待审核 / 完成 / 暂缓 |
-| result_summary | 当前结果摘要 |
-| evidence_pack_path | 证据包路径 |
-| audit_id | 审计报告 ID |
-
-### case_step_trace.csv
-
-| 字段 | 含义 |
-|---|---|
-| trace_id | 步骤证据 ID |
-| case_id | 所属案例 |
-| step_order | 步骤顺序 |
-| step_name | 步骤名 |
-| rule_or_reason | 使用的规则或判断原因 |
-| input_path | 输入数据路径 |
-| output_path | 输出数据路径 |
-| image_path | 图片证据路径 |
-| decision | 本步骤判断或动作 |
-| reviewer_note | 审核备注 |
-
-### operation_ledger.csv
-
-| 字段 | 含义 |
-|---|---|
-| operation_id | 操作 ID |
-| case_id | 所属案例 |
-| operation_time | 操作时间 |
-| operation_type | 买入 / 卖出 / 选择 / 排除 / 标记 / 其他 |
-| trigger_rule | 触发规则 |
-| trigger_evidence_path | 触发证据 |
-| quantity | 数量,可为空 |
-| price_or_value | 价格或数值,可为空 |
-| result | 操作结果 |
-
-### image_manifest.csv
-
-| 字段 | 含义 |
-|---|---|
-| image_id | 图片 ID |
-| case_id | 所属案例 |
-| image_type | 候选图 / 操作图 / 结果图 / 汇总图 / 审计图 |
-| image_path | 图片路径 |
-| marked_points | 图上标注的关键点 |
-| source_data_path | 生成图片的数据 |
-| generated_by | 生成者 |
-| generated_at | 生成时间 |
-
-## 4. 结果包要求
-
-正式案例结果包至少包含:
-
-1. 主表。
-2. case_index。
-3. case_step_trace。
-4. image_manifest,如有图片。
-5. summary。
-6. readout 或说明文档。
-
-结果包入口必须回写到案例总纲、案例分析设计和案例执行日志;审计结论回写到案例审计报告。
diff --git "a/wuji-trade/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md" "b/wuji-trade/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md"
deleted file mode 100644
index 2f13b82..0000000
--- "a/wuji-trade/ana-doc/\346\241\210\344\276\213\345\256\241\346\240\270\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,27 +0,0 @@
-# 案例审核规范
-
-创建人员:Codex
-文件职责:记录 wuji-trade 案例审核员必须遵守的案例审核规范入口。本文件引用 common 案例审核规范,不复制全文。
-管理规范/模板:../../common/ana-doc/案例审核规范.md。
-引用文件:案例分析规范.md;案例存储体系.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md。
-记录方式:本地案例审核规范;项目特化审核规则变化时更新。
-
-## 1. 基本口径
-
-本项目所有案例审核员必须同时遵守:
-
-1. `../../全局规范.md`
-2. `../../common/ana-doc/案例审核规范.md`
-3. 本文件
-
-本文件当前没有额外补充规则。
-
-## 2. wuji-trade 本地审计重点
-
-审核无忌交易系统案例时,必须检查:
-
-1. 案例是否能从来源笔记或聊天要求追到候选。
-2. 每一步操作或判断是否有数据、图或文字证据支撑。
-3. 买卖点、候选池、过滤条件和结果是否能串成完整链路。
-4. 如果案例涉及交易触发条件,审核员应人工复核关键触发点是否成立。
-5. 案例结论是否被过度推广。
diff --git "a/wuji-trade/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md" "b/wuji-trade/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md"
deleted file mode 100644
index 0652451..0000000
--- "a/wuji-trade/ana-doc/\346\241\210\344\276\213\345\256\241\350\256\241\346\212\245\345\221\212.md"
+++ /dev/null
@@ -1,31 +0,0 @@
-# 案例审计报告
-
-创建人员:Codex
-文件职责:记录 wuji-trade 案例设计审核、执行审核和复审结论。
-管理规范/模板:../../common/ana-doc/案例审核规范.md;../../common/ana-doc/案例审计报告模版.md。
-引用文件:案例分析规范.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例存储体系.md;案例问题记录.md。
-记录方式:append-only 案例审计报告;审计记录追加到文件末尾。
-
-## 1. 审计记录
-
-### AUDIT-ANA-WUJI-ENV-SMOKE:案例分析体系初始化 dry-run 审计
-
-审计对象:
-ANA-WUJI-ENV-SMOKE;DESIGN-ANA-WUJI-ENV-SMOKE;RUN-ANA-WUJI-ENV-SMOKE
-
-审计类型:
-设计审核 / 执行审核
-
-审计人员:
-Codex
-
-检查结果:
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 案例目录 | PASS | `ana-doc/`、`ana-data/` 子目录已创建 |
-| 案例文档 | PASS | 规范、审核规范、存储体系、总纲、设计、日志、审计、问题记录已创建 |
-| 证据链 | PASS | 总纲、设计、日志和审计报告能互相引用 |
-| 真实案例结论 | PASS | 未产生真实交易案例结论 |
-
-审计结论:
-通过
diff --git "a/wuji-trade/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md" "b/wuji-trade/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md"
deleted file mode 100644
index 843147f..0000000
--- "a/wuji-trade/ana-doc/\346\241\210\344\276\213\346\200\273\347\272\262.md"
+++ /dev/null
@@ -1,41 +0,0 @@
-# 案例总纲
-
-创建人员:Codex
-文件职责:记录 wuji-trade 所有案例分析事项的背景、目标、边界、状态、结果包入口和结论。
-管理规范/模板:../../common/ana-doc/案例分析规范.md;../../common/ana-doc/案例总纲模版.md。
-引用文件:案例分析规范.md;案例分析设计.md;案例执行日志.md;案例存储体系.md;案例审计报告.md;案例问题记录.md。
-记录方式:append-only 案例总纲;新案例事项追加到文件末尾。
-
-## 1. 当前案例总览
-
-| 案例 ID | 主题 | 状态 | 设计 | 执行日志 | 审计 |
-|---|---|---|---|---|---|
-| ANA-WUJI-ENV-SMOKE | 案例分析体系初始化 dry-run | PASS | DESIGN-ANA-WUJI-ENV-SMOKE | RUN-ANA-WUJI-ENV-SMOKE | AUDIT-ANA-WUJI-ENV-SMOKE |
-
-## 2. 案例记录
-
-### ANA-WUJI-ENV-SMOKE:案例分析体系初始化 dry-run
-
-背景:
-wuji-trade 项目初始化时启用案例分析体系,需要验证案例文档、存储目录和审计入口是否能串起来。
-
-目标:
-证明案例分析体系环境可用,不产生真实交易案例结论。
-
-边界:
-不分析具体股票,不生成案例图片,不生成真实案例结果包。
-
-状态:
-PASS
-
-当前结论:
-案例分析体系基础文档和目录已创建,可承接后续正式案例分析。
-
-设计入口:
-DESIGN-ANA-WUJI-ENV-SMOKE
-
-执行入口:
-RUN-ANA-WUJI-ENV-SMOKE
-
-审计入口:
-AUDIT-ANA-WUJI-ENV-SMOKE
diff --git "a/wuji-trade/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/wuji-trade/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md"
deleted file mode 100644
index 3137289..0000000
--- "a/wuji-trade/ana-doc/\346\241\210\344\276\213\346\211\247\350\241\214\346\227\245\345\277\227.md"
+++ /dev/null
@@ -1,39 +0,0 @@
-# 案例执行日志
-
-创建人员:Codex
-文件职责:记录 wuji-trade 所有案例分析 run、输入、关键步骤、图证、中间数据、输出、异常和自检。
-管理规范/模板:../../common/ana-doc/案例分析规范.md;../../common/ana-doc/案例执行日志模版.md。
-引用文件:案例总纲.md;案例分析设计.md;案例存储体系.md;案例审计报告.md;案例问题记录.md。
-记录方式:append-only 案例执行日志;新 run 追加到文件末尾。
-
-## 1. 执行记录
-
-### RUN-ANA-WUJI-ENV-SMOKE:案例分析体系初始化 dry-run
-
-关联案例:
-ANA-WUJI-ENV-SMOKE
-
-执行人员:
-Codex
-
-执行时间:
-2026-06-03
-
-执行内容:
-
-1. 创建 `ana-doc/`。
-2. 创建 `ana-data/cases/`、`ana-data/result/`、`ana-data/img/`、`ana-data/tmp/`。
-3. 创建案例分析体系入口文档。
-4. 写入 dry-run 总纲、设计、执行日志和审计报告。
-
-中间数据:
-无真实中间数据。
-
-结果包:
-无真实结果包;本 run 只验证环境。
-
-自检:
-文档和目录存在;无真实交易案例结论。
-
-状态:
-PASS
diff --git "a/wuji-trade/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md" "b/wuji-trade/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md"
deleted file mode 100644
index 2313925..0000000
--- "a/wuji-trade/ana-doc/\346\241\210\344\276\213\351\227\256\351\242\230\350\256\260\345\275\225.md"
+++ /dev/null
@@ -1,13 +0,0 @@
-# 案例问题记录
-
-创建人员:Codex
-文件职责:记录 wuji-trade 非审计来源案例分析问题、影响、修复建议和复验状态;审计问题只做跨轮索引。
-管理规范/模板:../../common/ana-doc/案例分析规范.md;../../common/ana-doc/案例问题记录模版.md。
-引用文件:案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md。
-记录方式:append-only 案例问题记录;非审计来源问题追加到文件末尾。
-
-## 1. 当前问题
-
-| 问题 ID | 来源 | 摘要 | 优先级 | 状态 | 审计入口 |
-|---|---|---|---|---|---|
-| 暂无 | | | | | |
diff --git "a/wuji-trade/ana-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md" "b/wuji-trade/ana-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md"
deleted file mode 100644
index deb2d73..0000000
--- "a/wuji-trade/ana-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md"
+++ /dev/null
@@ -1,40 +0,0 @@
-# ana-doc 目录导读
-
-创建人员:Codex
-文件职责:说明 wuji-trade 案例分析体系目录结构、关键入口、当前案例状态和审计入口。
-管理规范/模板:../../common/ana-doc/案例分析规范.md;../../common/ana-doc/案例分析环境创建指南.md。
-引用文件:案例分析规范.md;案例审核规范.md;案例存储体系.md;案例总纲.md;案例分析设计.md;案例执行日志.md;案例审计报告.md;案例问题记录.md。
-记录方式:案例分析目录入口文档;新增案例、完成案例、更新证据包或审计结论后同步更新。
-
-## 1. 目录结构
-
-| 路径 | 作用 |
-|---|---|
-| ana-doc/ | 案例分析文档、总纲、设计、日志、审计报告和问题记录 |
-| ana-data/cases/ | 案例级结构化数据 |
-| ana-data/result/ | 案例结果包、汇总表、审计辅助输出 |
-| ana-data/img/ | 案例图片、图册、标注图 |
-| ana-data/tmp/ | 临时案例数据,不作为正式证据入口 |
-
-## 2. 核心入口
-
-| 文档 | 作用 |
-|---|---|
-| 案例分析规范.md | 本项目案例分析员规范入口 |
-| 案例审核规范.md | 本项目案例审核员规范入口 |
-| 案例存储体系.md | 案例数据、图片、结果包、表 schema 和读取方式 |
-| 案例总纲.md | 案例背景、目标、边界、状态和结论总账本 |
-| 案例分析设计.md | 案例选择、步骤、证据和判定标准 |
-| 案例执行日志.md | 案例执行步骤、输入、输出、图证和自检 |
-| 案例审计报告.md | 案例设计审核、执行审核和复审 |
-| 案例问题记录.md | 非审计来源案例问题闭环 |
-
-## 3. 当前案例
-
-| 案例 ID | 主题 | 状态 | 总纲入口 | 设计入口 | 审计入口 |
-|---|---|---|---|---|---|
-| ANA-WUJI-ENV-SMOKE | 案例分析体系初始化 dry-run | PASS | 案例总纲.md | 案例分析设计.md | AUDIT-ANA-WUJI-ENV-SMOKE |
-
-## 4. 当前结论
-
-案例分析体系已创建,可承接后续无忌交易系统案例分析。当前没有正式交易案例结论。
diff --git "a/wuji-trade/dev-doc/\345\274\200\345\217\221\344\272\213\351\241\271\346\200\273\347\272\262.md" "b/wuji-trade/dev-doc/\345\274\200\345\217\221\344\272\213\351\241\271\346\200\273\347\272\262.md"
deleted file mode 100644
index ee29b1e..0000000
--- "a/wuji-trade/dev-doc/\345\274\200\345\217\221\344\272\213\351\241\271\346\200\273\347\272\262.md"
+++ /dev/null
@@ -1,32 +0,0 @@
-# 开发事项总纲
-
-创建人员:Codex
-文件职责:记录 wuji-trade 开发事项背景、目标、边界、状态和结论。
-管理规范/模板:../../common/dev-doc/编码规范.md;../../common/dev-doc/开发事项总纲模版.md。
-引用文件:编码规范.md;开发事项计划.md;开发执行日志.md;开发审计报告.md;开发问题记录.md。
-记录方式:append-only 开发事项总纲;新开发事项追加到文件末尾。
-
-## 1. 当前开发事项总览
-
-| 开发事项 ID | 目标 | 状态 | 计划 | 审计 |
-|---|---|---|---|---|
-| DEV-WUJI-INIT | 创建默认开发体系 root_default | PASS | PLAN-DEV-WUJI-INIT | AUDIT-DEV-WUJI-INIT |
-
-## 2. 开发事项记录
-
-### DEV-WUJI-INIT:默认开发体系初始化
-
-来源:
-项目创建时按 `../../common/dev-doc/开发环境创建指南.md` root_default 模式自动创建。
-
-目标:
-创建开发根目录、测试目录、临时目录和根级开发账本。
-
-边界:
-不创建具体目标开发工作区,不写业务代码。
-
-状态:
-PASS
-
-审计入口:
-AUDIT-DEV-WUJI-INIT
diff --git "a/wuji-trade/dev-doc/\345\274\200\345\217\221\344\272\213\351\241\271\350\256\241\345\210\222.md" "b/wuji-trade/dev-doc/\345\274\200\345\217\221\344\272\213\351\241\271\350\256\241\345\210\222.md"
deleted file mode 100644
index aca140d..0000000
--- "a/wuji-trade/dev-doc/\345\274\200\345\217\221\344\272\213\351\241\271\350\256\241\345\210\222.md"
+++ /dev/null
@@ -1,32 +0,0 @@
-# 开发事项计划
-
-创建人员:Codex
-文件职责:记录 wuji-trade 开发事项计划、步骤、输入输出、验收方式和审计入口。
-管理规范/模板:../../common/dev-doc/编码规范.md;../../common/dev-doc/开发事项计划模版.md。
-引用文件:开发事项总纲.md;开发执行日志.md;开发审计报告.md;开发问题记录.md。
-记录方式:append-only 开发事项计划;新计划追加到文件末尾。
-
-## 1. 当前计划
-
-| 计划 ID | 开发事项 ID | 目标 | 状态 | 审计 |
-|---|---|---|---|---|
-| PLAN-DEV-WUJI-INIT | DEV-WUJI-INIT | 创建 root_default 开发体系 | PASS | AUDIT-DEV-WUJI-INIT |
-
-## 2. 计划记录
-
-### PLAN-DEV-WUJI-INIT:默认开发体系初始化计划
-
-目标:
-按 root_default 模式创建 `dev/`、`dev/test/`、`dev/tmp/`、`dev-doc/` 和根级开发账本。
-
-步骤:
-
-1. 创建开发目录。
-2. 创建根级开发入口文档和账本。
-3. 确认未提前创建目标开发工作区。
-
-验收:
-目录和账本存在;无空 `编码方案.md`;无目标工作区。
-
-状态:
-PASS
diff --git "a/wuji-trade/dev-doc/\345\274\200\345\217\221\345\256\241\350\256\241\346\212\245\345\221\212.md" "b/wuji-trade/dev-doc/\345\274\200\345\217\221\345\256\241\350\256\241\346\212\245\345\221\212.md"
deleted file mode 100644
index 88bc148..0000000
--- "a/wuji-trade/dev-doc/\345\274\200\345\217\221\345\256\241\350\256\241\346\212\245\345\221\212.md"
+++ /dev/null
@@ -1,31 +0,0 @@
-# 开发审计报告
-
-创建人员:Codex
-文件职责:记录 wuji-trade 开发事项的方案审核、实现审核、测试验收和复审。
-管理规范/模板:../../common/dev-doc/开发审计规范.md;../../common/dev-doc/开发审计报告模版.md。
-引用文件:编码规范.md;开发事项总纲.md;开发事项计划.md;开发执行日志.md;开发问题记录.md。
-记录方式:append-only 开发审计报告;审计记录追加到文件末尾。
-
-## 1. 审计记录
-
-### AUDIT-DEV-WUJI-INIT:默认开发体系初始化审计
-
-审计对象:
-LOG-DEV-WUJI-INIT;dev/;dev-doc/
-
-审计类型:
-初始化执行审计
-
-审计人员:
-Codex
-
-检查结果:
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 开发目录 | PASS | `dev/`、`dev/test/`、`dev/tmp/` 已创建 |
-| 根级开发账本 | PASS | `dev-doc/` 下 8 个根级文档已创建 |
-| 空编码方案 | PASS | 未创建空 `编码方案.md` |
-| 目标工作区 | PASS | 未提前创建 `dev/<target>-dev/` 或 `dev-doc/<target>-doc/` |
-
-审计结论:
-通过
diff --git "a/wuji-trade/dev-doc/\345\274\200\345\217\221\345\256\241\350\256\241\350\247\204\350\214\203.md" "b/wuji-trade/dev-doc/\345\274\200\345\217\221\345\256\241\350\256\241\350\247\204\350\214\203.md"
deleted file mode 100644
index 52441f9..0000000
--- "a/wuji-trade/dev-doc/\345\274\200\345\217\221\345\256\241\350\256\241\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,21 +0,0 @@
-# 开发审计规范
-
-创建人员:Codex
-文件职责:记录 wuji-trade 开发审核员必须遵守的本地开发审计规范入口。本文件引用 common 开发审计规范,不复制全文。
-管理规范/模板:../../common/dev-doc/开发审计规范.md。
-引用文件:编码规范.md;开发事项总纲.md;开发事项计划.md;开发执行日志.md;开发审计报告.md;开发问题记录.md。
-记录方式:本地开发审计规范;如有项目特化补充规则则追加。
-
-## 1. 基本口径
-
-本项目所有开发审核员必须同时遵守:
-
-1. `../../全局规范.md`
-2. `../../common/dev-doc/开发审计规范.md`
-3. 本文件
-
-本文件当前无额外补充规则。
-
-## 2. 审计边界
-
-开发审核员审核编码方案、代码实现、测试结果和执行日志。审核问题主记录写入 `开发审计报告.md`,非审计来源问题写入 `开发问题记录.md`。
diff --git "a/wuji-trade/dev-doc/\345\274\200\345\217\221\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/wuji-trade/dev-doc/\345\274\200\345\217\221\346\211\247\350\241\214\346\227\245\345\277\227.md"
deleted file mode 100644
index 17c60bb..0000000
--- "a/wuji-trade/dev-doc/\345\274\200\345\217\221\346\211\247\350\241\214\346\227\245\345\277\227.md"
+++ /dev/null
@@ -1,32 +0,0 @@
-# 开发执行日志
-
-创建人员:Codex
-文件职责:记录 wuji-trade 开发事项的实际执行、测试、自检和偏离。
-管理规范/模板:../../common/dev-doc/编码规范.md;../../common/dev-doc/开发执行日志模版.md。
-引用文件:开发事项总纲.md;开发事项计划.md;开发审计报告.md;开发问题记录.md。
-记录方式:append-only 开发执行日志;执行记录追加到文件末尾。
-
-## 1. 执行记录
-
-### LOG-DEV-WUJI-INIT:创建默认开发体系
-
-关联事项:
-DEV-WUJI-INIT
-
-执行人员:
-Codex
-
-执行时间:
-2026-06-03
-
-执行内容:
-
-1. 创建 `dev/`、`dev/test/`、`dev/tmp/`。
-2. 创建 `dev-doc/`。
-3. 创建 `目录导读.md`、`编码规范.md`、`开发审计规范.md`、`开发事项总纲.md`、`开发事项计划.md`、`开发执行日志.md`、`开发审计报告.md`、`开发问题记录.md`。
-
-自检:
-root_default 已创建;未创建目标开发工作区;未创建空 `编码方案.md`。
-
-状态:
-PASS
diff --git "a/wuji-trade/dev-doc/\345\274\200\345\217\221\351\227\256\351\242\230\350\256\260\345\275\225.md" "b/wuji-trade/dev-doc/\345\274\200\345\217\221\351\227\256\351\242\230\350\256\260\345\275\225.md"
deleted file mode 100644
index f0eb72a..0000000
--- "a/wuji-trade/dev-doc/\345\274\200\345\217\221\351\227\256\351\242\230\350\256\260\345\275\225.md"
+++ /dev/null
@@ -1,13 +0,0 @@
-# 开发问题记录
-
-创建人员:Codex
-文件职责:记录 wuji-trade 非审计来源开发问题、影响、修复建议和复验状态;审计发现的问题主记录写在开发审计报告。
-管理规范/模板:../../common/dev-doc/编码规范.md;../../common/dev-doc/开发问题记录模版.md。
-引用文件:开发事项总纲.md;开发事项计划.md;开发执行日志.md;开发审计报告.md。
-记录方式:append-only 开发问题记录;非审计来源问题追加到文件末尾。
-
-## 1. 当前问题
-
-| 问题 ID | 来源 | 摘要 | 优先级 | 状态 | 审计入口 |
-|---|---|---|---|---|---|
-| 暂无 | | | | | |
diff --git "a/wuji-trade/dev-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md" "b/wuji-trade/dev-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md"
deleted file mode 100644
index 2c531f2..0000000
--- "a/wuji-trade/dev-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md"
+++ /dev/null
@@ -1,39 +0,0 @@
-# dev-doc 目录导读
-
-创建人员:Codex
-文件职责:说明 wuji-trade 默认开发体系的入口、账本和当前状态。
-管理规范/模板:../../common/dev-doc/开发环境创建指南.md;../../common/dev-doc/编码规范.md;../../common/dev-doc/开发审计规范.md。
-引用文件:编码规范.md;开发审计规范.md;开发事项总纲.md;开发事项计划.md;开发执行日志.md;开发审计报告.md;开发问题记录.md。
-记录方式:开发目录入口文档;开发目标工作区或账本入口变化时更新。
-
-## 1. 当前状态
-
-wuji-trade 已创建默认开发体系 root_default。
-
-当前未创建具体目标开发工作区。后续如需要实验开发、案例分析开发或项目工具开发,按 `../../common/dev-doc/开发环境创建指南.md` 的 `target_workspace` 模式创建。
-
-## 2. 根级账本
-
-| 文档 | 作用 |
-|---|---|
-| 编码规范.md | 本项目开发规范入口 |
-| 开发审计规范.md | 本项目开发审核规范入口 |
-| 开发事项总纲.md | 开发事项背景、目标、边界、状态和结论账本 |
-| 开发事项计划.md | 开发计划、步骤、输入输出和审计入口 |
-| 开发执行日志.md | 编码、自测、自检和偏离记录 |
-| 开发审计报告.md | 方案审核、实现审核、测试验收和复审 |
-| 开发问题记录.md | 非审计来源开发问题闭环 |
-
-## 3. 代码目录
-
-| 目录 | 作用 | 状态 |
-|---|---|---|
-| ../dev/ | 开发代码根目录 | 已创建 |
-| ../dev/test/ | 根级测试目录 | 已创建 |
-| ../dev/tmp/ | 临时开发文件 | 已创建 |
-
-## 4. 目标工作区
-
-| target | 代码目录 | 文档目录 | 状态 |
-|---|---|---|---|
-| 暂无 | | | 未创建 |
diff --git "a/wuji-trade/dev-doc/\347\274\226\347\240\201\350\247\204\350\214\203.md" "b/wuji-trade/dev-doc/\347\274\226\347\240\201\350\247\204\350\214\203.md"
deleted file mode 100644
index fe6ca85..0000000
--- "a/wuji-trade/dev-doc/\347\274\226\347\240\201\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,27 +0,0 @@
-# 编码规范
-
-创建人员:Codex
-文件职责:记录 wuji-trade 开发 AI 必须遵守的本地编码规范入口。本文件引用 common 编码规范,不复制全文。
-管理规范/模板:../../common/dev-doc/编码规范.md。
-引用文件:开发审计规范.md;开发事项总纲.md;开发事项计划.md;开发执行日志.md;开发审计报告.md;开发问题记录.md。
-记录方式:本地开发规范;如有项目特化补充规则则追加。
-
-## 1. 基本口径
-
-本项目所有开发 AI 必须同时遵守:
-
-1. `../../全局规范.md`
-2. `../../common/dev-doc/编码规范.md`
-3. 本文件
-
-本文件当前无额外补充规则。
-
-## 2. 开发方案口径
-
-轻量开发可以不写完整编码方案,但必须记录输入输出、自测和执行日志。
-
-重型开发、多模块开发、公共模块、性能风险、失败代价高的开发,必须先写编码方案,并经开发审核通过后再编码。
-
-## 3. 目标工作区
-
-当前未创建目标开发工作区。后续按 `../../common/dev-doc/开发环境创建指南.md` 创建。
diff --git "a/wuji-trade/exp-doc/\345\256\236\351\252\214\345\255\230\345\202\250\344\275\223\347\263\273.md" "b/wuji-trade/exp-doc/\345\256\236\351\252\214\345\255\230\345\202\250\344\275\223\347\263\273.md"
deleted file mode 100644
index a4dc2f9..0000000
--- "a/wuji-trade/exp-doc/\345\256\236\351\252\214\345\255\230\345\202\250\344\275\223\347\263\273.md"
+++ /dev/null
@@ -1,71 +0,0 @@
-# 实验存储体系
-
-创建人员:Codex
-文件职责:记录 wuji-trade 实验数据、结果包、图片、表 schema 和读取方式。
-管理规范/模板:../../common/exp-doc/实验存储体系创建指南.md;../../common/exp-doc/实验规范.md。
-引用文件:实验规范.md;实验总纲.md;实验设计.md;实验执行日志.md;实验审计报告.md。
-记录方式:项目级实验存储合同;数据目录、表 schema 或读取规则变化时更新。
-
-## 1. 存储目标和范围
-
-本文件说明 wuji-trade 实验体系中数据如何存放、读取、追踪和审计。
-
-## 2. 目录结构
-
-| 目录 | 作用 | 是否正式 |
-|---|---|---|
-| exp-data/raw/ | 原始输入、外部快照、人工回执 | 是 |
-| exp-data/result/ | 实验结果包,按 run_id 分目录 | 是 |
-| exp-data/img/ | 图片、图表、验收图 | 是 |
-| exp-data/tmp/ | 临时中间文件 | 否 |
-
-## 3. 数据流
-
-```text
-source / note / case / market data
--> input snapshot
--> experiment intermediate
--> result package
--> audit/readout
-```
-
-每一层都必须能追到 experiment_id、run_id、source snapshot、生产者和生成时间。
-
-## 4. 结果包规则
-
-结果包路径:
-
-```text
-exp-data/result/<run_id>/
-```
-
-每个正式结果包建议包含:
-
-1. `summary.md` 或 `summary.json`
-2. `output_manifest.csv`
-3. `readout.md`
-4. 必要的输入快照或 input manifest
-5. 必要的中间数据说明
-
-## 5. 表清单
-
-| table_name | storage_backend | storage_path_or_table | table_role | row_grain | primary_key | producer | consumer | official_flag |
-|---|---|---|---|---|---|---|---|---|
-| output_manifest.csv | csv | exp-data/result/<run_id>/output_manifest.csv | manifest | 一个结果资产一行 | artifact_id | 实验执行者 | 审核员 | 是 |
-| experiment_summary | md/json | exp-data/result/<run_id>/summary.md 或 summary.json | output | 一个 run 一个 summary | run_id | 实验执行者 | 审核员 | 是 |
-
-## 6. 字段 schema
-
-### output_manifest.csv
-
-| field_name | data_type | required | nullable | meaning | source | time_semantics |
-|---|---|---|---|---|---|---|
-| artifact_id | string | 是 | 否 | 结果资产 ID | 执行日志 | generated-time |
-| artifact_path | string | 是 | 否 | 项目根目录相对路径 | 文件系统 | generated-time |
-| artifact_type | string | 是 | 否 | csv/json/md/image/other | 执行者 | generated-time |
-| row_count | integer | 否 | 是 | 表格行数 | 执行者 | generated-time |
-| purpose | string | 是 | 否 | 资产用途 | 执行者 | generated-time |
-
-## 7. 临时数据边界
-
-`exp-data/tmp/` 不能作为正式结果入口。需要长期复核的中间数据必须放入 `exp-data/result/<run_id>/intermediate/` 并登记 manifest。
diff --git "a/wuji-trade/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\346\212\245\345\221\212.md" "b/wuji-trade/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\346\212\245\345\221\212.md"
deleted file mode 100644
index 6438032..0000000
--- "a/wuji-trade/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\346\212\245\345\221\212.md"
+++ /dev/null
@@ -1,32 +0,0 @@
-# 实验审计报告
-
-创建人员:Codex
-文件职责:记录 wuji-trade 实验设计审核、执行审核和复审结论。
-管理规范/模板:../../common/exp-doc/实验审核规范.md;../../common/exp-doc/实验审计报告模版.md。
-引用文件:实验规范.md;实验总纲.md;实验设计.md;实验执行日志.md;实验存储体系.md;实验问题记录.md。
-记录方式:append-only 实验审计报告;审计记录追加到文件末尾。
-
-## 1. 审计记录
-
-### AUDIT-EXP-WUJI-ENV-SMOKE:实验体系初始化 dry-run 审计
-
-审计对象:
-EXP-WUJI-ENV-SMOKE;DESIGN-WUJI-ENV-SMOKE;RUN-WUJI-ENV-SMOKE
-
-审计类型:
-设计审核 / 执行审核
-
-审计人员:
-Codex
-
-检查结果:
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 实验目录 | PASS | `exp-doc/`、`exp-data/` 子目录已创建 |
-| 实验文档 | PASS | 规范、审计规范、存储体系、总纲、设计、日志、审计、问题记录已创建 |
-| 证据链 | PASS | 总纲、设计、日志和审计报告能互相引用 |
-| 未来函数 | PASS | 环境 dry-run 不涉及交易信号或收益 |
-| 结论等级 | PASS | 未产生真实交易实验结论 |
-
-审计结论:
-通过
diff --git "a/wuji-trade/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\350\247\204\350\214\203.md" "b/wuji-trade/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\350\247\204\350\214\203.md"
deleted file mode 100644
index e056e3f..0000000
--- "a/wuji-trade/exp-doc/\345\256\236\351\252\214\345\256\241\350\256\241\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,27 +0,0 @@
-# 实验审计规范
-
-创建人员:Codex
-文件职责:记录 wuji-trade 实验审核员必须遵守的实验审计规范入口。本文件引用 common 实验审核规范,不复制全文。
-管理规范/模板:../../common/exp-doc/实验审核规范.md。
-引用文件:实验规范.md;实验存储体系.md;实验总纲.md;实验设计.md;实验执行日志.md;实验审计报告.md;实验问题记录.md。
-记录方式:本地实验审计规范;项目特化审计规则变化时更新。
-
-## 1. 基本口径
-
-本项目所有实验审核员必须同时遵守:
-
-1. `../../全局规范.md`
-2. `../../common/exp-doc/实验审核规范.md`
-3. 本文件
-
-本文件当前没有额外补充规则。
-
-## 2. wuji-trade 本地审计重点
-
-审核无忌交易系统相关实验时,必须检查:
-
-1. 实验目标是否和来源聊天、笔记章节或上游案例一致。
-2. 实验设计是否能满足实验总纲目标。
-3. 实验是否把“理解启动点 / 买卖规则”与“预测 / 实盘收益”混淆。
-4. 如果实验涉及收益、交易模拟或入场出场,必须检查触发条件是否使用未来信息。
-5. 结果包、执行日志、中间数据和审计报告是否能串起来。
diff --git "a/wuji-trade/exp-doc/\345\256\236\351\252\214\346\200\273\347\272\262.md" "b/wuji-trade/exp-doc/\345\256\236\351\252\214\346\200\273\347\272\262.md"
deleted file mode 100644
index d557e90..0000000
--- "a/wuji-trade/exp-doc/\345\256\236\351\252\214\346\200\273\347\272\262.md"
+++ /dev/null
@@ -1,41 +0,0 @@
-# 实验总纲
-
-创建人员:Codex
-文件职责:记录 wuji-trade 所有实验事项的背景、目标、边界、状态、结果包入口和结论。
-管理规范/模板:../../common/exp-doc/实验规范.md;../../common/exp-doc/实验总纲模版.md。
-引用文件:实验规范.md;实验设计.md;实验执行日志.md;实验存储体系.md;实验审计报告.md;实验问题记录.md。
-记录方式:append-only 实验总纲;新实验追加到文件末尾。
-
-## 1. 当前实验总览
-
-| 实验 ID | 主题 | 状态 | 设计 | 执行日志 | 审计 |
-|---|---|---|---|---|---|
-| EXP-WUJI-ENV-SMOKE | 实验体系初始化 dry-run | PASS | DESIGN-WUJI-ENV-SMOKE | RUN-WUJI-ENV-SMOKE | AUDIT-EXP-WUJI-ENV-SMOKE |
-
-## 2. 实验记录
-
-### EXP-WUJI-ENV-SMOKE:实验体系初始化 dry-run
-
-背景:
-wuji-trade 项目初始化时启用实验体系,需要验证实验文档、存储目录和审计入口是否能串起来。
-
-目标:
-证明实验体系环境可用,不产生真实交易实验结论。
-
-边界:
-不跑具体无忌交易规则,不生成收益结论,不生成真实结果包。
-
-状态:
-PASS
-
-当前结论:
-实验体系基础文档和目录已创建,可承接后续正式实验。
-
-设计入口:
-DESIGN-WUJI-ENV-SMOKE
-
-执行入口:
-RUN-WUJI-ENV-SMOKE
-
-审计入口:
-AUDIT-EXP-WUJI-ENV-SMOKE
diff --git "a/wuji-trade/exp-doc/\345\256\236\351\252\214\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/wuji-trade/exp-doc/\345\256\236\351\252\214\346\211\247\350\241\214\346\227\245\345\277\227.md"
deleted file mode 100644
index 1edcd4c..0000000
--- "a/wuji-trade/exp-doc/\345\256\236\351\252\214\346\211\247\350\241\214\346\227\245\345\277\227.md"
+++ /dev/null
@@ -1,39 +0,0 @@
-# 实验执行日志
-
-创建人员:Codex
-文件职责:记录 wuji-trade 所有实验 run、输入、关键中间过程、中间数据路径、输出、异常、自检和重跑。
-管理规范/模板:../../common/exp-doc/实验规范.md;../../common/exp-doc/实验执行日志模版.md。
-引用文件:实验总纲.md;实验设计.md;实验存储体系.md;实验审计报告.md;实验问题记录.md。
-记录方式:append-only 实验执行日志;新 run 追加到文件末尾。
-
-## 1. 执行记录
-
-### RUN-WUJI-ENV-SMOKE:实验体系初始化 dry-run
-
-关联实验:
-EXP-WUJI-ENV-SMOKE
-
-执行人员:
-Codex
-
-执行时间:
-2026-06-03
-
-执行内容:
-
-1. 创建 `exp-doc/`。
-2. 创建 `exp-data/raw/`、`exp-data/result/`、`exp-data/img/`、`exp-data/tmp/`。
-3. 创建实验体系入口文档。
-4. 写入 dry-run 总纲、设计、执行日志和审计报告。
-
-中间数据:
-无真实中间数据。
-
-结果包:
-无真实结果包;本 run 只验证环境。
-
-自检:
-文档和目录存在;无真实交易结论。
-
-状态:
-PASS
diff --git "a/wuji-trade/exp-doc/\345\256\236\351\252\214\350\247\204\350\214\203.md" "b/wuji-trade/exp-doc/\345\256\236\351\252\214\350\247\204\350\214\203.md"
deleted file mode 100644
index 3ba4090..0000000
--- "a/wuji-trade/exp-doc/\345\256\236\351\252\214\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,37 +0,0 @@
-# 实验规范
-
-创建人员:Codex
-文件职责:记录 wuji-trade 实验员必须遵守的实验规范入口。本文件引用 common 实验规范,不复制全文。
-管理规范/模板:../../common/exp-doc/实验规范.md。
-引用文件:实验审计规范.md;实验存储体系.md;实验总纲.md;实验设计.md;实验执行日志.md;实验审计报告.md;实验问题记录.md。
-记录方式:本地实验规范;项目特化实验规则变化时更新。
-
-## 1. 基本口径
-
-本项目所有实验员必须同时遵守:
-
-1. `../../全局规范.md`
-2. `../../common/exp-doc/实验规范.md`
-3. 本文件
-
-本文件当前没有额外补充规则。
-
-## 2. 核心实验文档作用
-
-| 文档 | 作用 |
-|---|---|
-| 实验总纲.md | 记录本项目所有实验事项的背景、目标、边界、状态、结果包入口和结论 |
-| 实验设计.md | 记录本项目所有实验的设计、步骤、依赖、产物和判定标准 |
-| 实验执行日志.md | 记录本项目所有实验 run、输入、关键中间过程、中间数据路径、输出、异常、自检和重跑 |
-| 实验存储体系.md | 说明实验数据、结果包、图片、表 schema 和读取追踪方式 |
-| 实验审计报告.md | 记录设计审核、执行审核和复审结论 |
-| 实验问题记录.md | 记录非审计来源实验问题、影响、修复建议和复验状态;审计问题只记录索引 |
-
-## 3. wuji-trade 本地补充
-
-涉及无忌交易系统的实验,实验总纲和实验设计必须写清:
-
-1. 对应的笔记章节、聊天要求或上游案例来源。
-2. 实验目标是理解、验证、对比、工程化还是收益评估。
-3. 是否需要防未来函数,由实验目标决定;若目标涉及交易收益或模拟实盘,必须检查未来函数。
-4. 结论等级,不得把研究结论直接升级为实盘可用结论。
diff --git "a/wuji-trade/exp-doc/\345\256\236\351\252\214\350\256\276\350\256\241.md" "b/wuji-trade/exp-doc/\345\256\236\351\252\214\350\256\276\350\256\241.md"
deleted file mode 100644
index 6ca8436..0000000
--- "a/wuji-trade/exp-doc/\345\256\236\351\252\214\350\256\276\350\256\241.md"
+++ /dev/null
@@ -1,46 +0,0 @@
-# 实验设计
-
-创建人员:Codex
-文件职责:记录 wuji-trade 所有实验的设计、步骤、依赖、产物和判定标准。
-管理规范/模板:../../common/exp-doc/实验规范.md;../../common/exp-doc/实验设计模版.md。
-引用文件:实验总纲.md;实验执行日志.md;实验存储体系.md;实验审计报告.md;实验问题记录.md。
-记录方式:append-only 实验设计;新实验设计追加到文件末尾,设计审核通过后才能执行。
-
-## 1. 当前设计总览
-
-| 设计 ID | 实验 ID | 目标 | 状态 | 审计 |
-|---|---|---|---|---|
-| DESIGN-WUJI-ENV-SMOKE | EXP-WUJI-ENV-SMOKE | 验证实验体系环境和证据链 | PASS | AUDIT-EXP-WUJI-ENV-SMOKE |
-
-## 2. 设计记录
-
-### DESIGN-WUJI-ENV-SMOKE:实验体系初始化 dry-run 设计
-
-实验目标:
-验证实验体系入口、目录、执行日志和审计报告能串起来。
-
-实验步骤:
-
-1. 创建实验体系目录。
-2. 创建实验规范、审计规范、存储体系、总纲、设计、执行日志、审计报告、问题记录。
-3. 写入一个 dry-run 实验记录。
-4. 做初始化审计。
-
-输入:
-`../../common/exp-doc/实验环境创建指南.md`。
-
-输出:
-实验体系文档和目录。
-
-判定标准:
-
-1. 文档存在。
-2. 目录存在。
-3. dry-run 证据链可追踪。
-4. 无真实交易结论被误写。
-
-未来函数检查:
-本实验只验证环境,不涉及交易信号和收益,因此不需要未来函数检查。
-
-状态:
-PASS
diff --git "a/wuji-trade/exp-doc/\345\256\236\351\252\214\351\227\256\351\242\230\350\256\260\345\275\225.md" "b/wuji-trade/exp-doc/\345\256\236\351\252\214\351\227\256\351\242\230\350\256\260\345\275\225.md"
deleted file mode 100644
index 4db0c42..0000000
--- "a/wuji-trade/exp-doc/\345\256\236\351\252\214\351\227\256\351\242\230\350\256\260\345\275\225.md"
+++ /dev/null
@@ -1,13 +0,0 @@
-# 实验问题记录
-
-创建人员:Codex
-文件职责:记录 wuji-trade 非审计来源实验问题、影响、修复建议和复验状态;审计问题只做跨轮索引。
-管理规范/模板:../../common/exp-doc/实验规范.md;../../common/exp-doc/实验问题记录模版.md。
-引用文件:实验总纲.md;实验设计.md;实验执行日志.md;实验审计报告.md。
-记录方式:append-only 实验问题记录;非审计来源问题追加到文件末尾。
-
-## 1. 当前问题
-
-| 问题 ID | 来源 | 摘要 | 优先级 | 状态 | 审计入口 |
-|---|---|---|---|---|---|
-| 暂无 | | | | | |
diff --git "a/wuji-trade/exp-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md" "b/wuji-trade/exp-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md"
deleted file mode 100644
index 8930d04..0000000
--- "a/wuji-trade/exp-doc/\347\233\256\345\275\225\345\257\274\350\257\273.md"
+++ /dev/null
@@ -1,40 +0,0 @@
-# exp-doc 目录导读
-
-创建人员:Codex
-文件职责:说明 wuji-trade 实验体系目录结构、关键入口、当前实验状态和审计入口。
-管理规范/模板:../../common/exp-doc/实验规范.md;../../common/exp-doc/实验环境创建指南.md。
-引用文件:实验规范.md;实验审计规范.md;实验存储体系.md;实验总纲.md;实验设计.md;实验执行日志.md;实验审计报告.md;实验问题记录.md。
-记录方式:实验目录入口文档;新增实验、完成实验、重跑关键 run 或更新结果包后同步更新。
-
-## 1. 目录结构
-
-| 路径 | 作用 |
-|---|---|
-| exp-doc/ | 实验文档、总纲、设计、执行日志、审计报告和问题记录 |
-| exp-data/raw/ | 原始输入、快照、人工回执 |
-| exp-data/result/ | 实验结果包 |
-| exp-data/img/ | 图片、图表、验收图 |
-| exp-data/tmp/ | 临时实验数据,不作为正式结论入口 |
-
-## 2. 核心入口
-
-| 文档 | 作用 |
-|---|---|
-| 实验规范.md | 本项目实验员规范入口 |
-| 实验审计规范.md | 本项目实验审核员规范入口 |
-| 实验存储体系.md | 实验数据、结果包、表 schema 和读取方式 |
-| 实验总纲.md | 实验背景、目标、边界、状态和结论总账本 |
-| 实验设计.md | 实验设计、步骤、产物和判定标准 |
-| 实验执行日志.md | 实验 run、输入、中间数据、输出和自检 |
-| 实验审计报告.md | 设计审核、执行审核和复审 |
-| 实验问题记录.md | 非审计来源实验问题闭环 |
-
-## 3. 当前实验
-
-| 实验 ID | 主题 | 状态 | 总纲入口 | 设计入口 | 审计入口 |
-|---|---|---|---|---|---|
-| EXP-WUJI-ENV-SMOKE | 实验体系初始化 dry-run | PASS | 实验总纲.md | 实验设计.md | AUDIT-EXP-WUJI-ENV-SMOKE |
-
-## 4. 当前结论
-
-实验体系已创建,可承接后续无忌交易系统相关实验。当前没有正式交易实验结论。
diff --git "a/wuji-trade/\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/wuji-trade/\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"
deleted file mode 100644
index ef8f3d1..0000000
--- "a/wuji-trade/\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"
+++ /dev/null
@@ -1,79 +0,0 @@
-# 项目事项审计报告
-
-创建人员:Codex
-文件职责:记录 wuji-trade 项目事项计划审计、执行审计、复审和审计问题。
-管理规范/模板:../全局规范.md;../common/project-doc/项目审计规范.md;../common/project-doc/项目事项审计报告模版.md。
-引用文件:项目总览.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目问题记录.md;项目变更记录.md。
-记录方式:append-only 项目事项审计报告;审计记录追加到文件末尾。
-
-## 1. 审计记录
-
-### 2026-06-03 AUDIT-WUJI-PLAN-INIT:wuji-trade 初始化计划审计
-
-审计对象:
-PLAN-WUJI-INIT
-
-审计类型:
-计划审计
-
-审计人员:
-Codex
-
-审计依据:
-`../common/project-doc/项目环境创建指南.md`;`../common/dev-doc/开发环境创建指南.md`;`../common/exp-doc/实验环境创建指南.md`;`../common/ana-doc/案例分析环境创建指南.md`。
-
-检查结果:
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 项目基础信息 | PASS | 用户已确认项目名、根目录、目标、背景、周期和启用体系 |
-| 计划覆盖基础文档 | PASS | 计划包含项目总览、规范、配置、事项、日志、审计、问题、变更 |
-| 计划覆盖默认开发体系 | PASS | 计划包含 root_default 开发体系 |
-| 计划覆盖实验体系 | PASS | 计划包含 exp-doc、exp-data 和实验入口文档 |
-| 计划覆盖案例分析体系 | PASS | 计划包含 ana-doc、ana-data 和案例入口文档 |
-| 计划边界清楚 | PASS | 初始化不跑具体实验、不创建具体案例、不创建目标开发工作区 |
-
-审计结论:
-通过
-
-是否阻断:
-否
-
-是否允许执行:
-是
-
-### 2026-06-03 AUDIT-WUJI-EXEC-INIT:wuji-trade 初始化执行审计
-
-审计对象:
-LOG-WUJI-INIT;项目配置清单.md;项目总览.md;dev-doc/目录导读.md;exp-doc/目录导读.md;ana-doc/目录导读.md;ai-codex/工作说明.md
-
-审计类型:
-执行审计
-
-审计人员:
-Codex
-
-检查结果:
-| 检查项 | 结果 | 说明 |
-|---|---|---|
-| 项目根目录 | PASS | `D:\manage_system\wuji-trade` 已创建 |
-| 项目基础文档 | PASS | 9 个项目基础文档已创建 |
-| 项目总览 | PASS | 已记录项目名称、目标、周期、背景、范围和入口 |
-| 项目配置清单 | PASS | 已登记项目、开发、实验、案例分析体系和 ai-codex 工作空间 |
-| 默认开发体系 | PASS | `dev/`、`dev/test/`、`dev/tmp/`、`dev-doc/` 和根级开发账本已创建 |
-| 目标开发工作区 | PASS | 未提前创建 `dev/<target>-dev/` 或 `dev-doc/<target>-doc/` |
-| 实验体系 | PASS | `exp-doc/`、`exp-data/` 和实验入口文档已创建 |
-| 案例分析体系 | PASS | `ana-doc/`、`ana-data/` 和案例入口文档已创建 |
-| AI 工作空间 | PASS | `ai-codex/` 和 `ai-codex/工作说明.md` 已创建 |
-| 证据链 | PASS | 总览、总纲、计划、日志、变更和审计能互相追踪 |
-
-发现问题:
-无。
-
-审计结论:
-通过
-
-是否阻断:
-否
-
-是否允许项目环境可用:
-是
diff --git "a/wuji-trade/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md" "b/wuji-trade/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md"
deleted file mode 100644
index 23c5f1b..0000000
--- "a/wuji-trade/\351\241\271\347\233\256\344\272\213\351\241\271\346\200\273\347\272\262.md"
+++ /dev/null
@@ -1,48 +0,0 @@
-# 项目事项总纲
-
-创建人员:Codex
-文件职责:作为 wuji-trade 项目级滚动账本,记录项目事项、阶段状态、关键结论和事项来源聊天记录;项目稳定背景和长期目标以项目总览.md 为准。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目事项总纲模版.md。
-引用文件:项目总览.md;项目规范.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目问题记录.md。
-记录方式:append-only 项目事项总纲账本;新阶段、新目标、新结论、新暂停原因追加到文件末尾。
-
-## 1. 当前事项总览
-
-| 字段 | 内容 |
-|---|---|
-| 项目 ID | WUJI-TRADE |
-| 项目名称 | wuji-trade |
-| 项目管理员 | Codex |
-| 创建时间 | 2026-06-03 |
-| 当前状态 | 进行中 |
-| 当前阶段 | PROJECT-WUJI-INIT |
-| 当前结论 | 项目环境正在初始化,目标是启用项目、开发、实验和案例分析体系 |
-| 项目总览入口 | 项目总览.md |
-
-## 2. 事项记录
-
-### 2026-06-03 PROJECT-WUJI-INIT:创建 wuji-trade 项目环境
-
-来源:
-用户确认创建 `D:\manage_system\wuji-trade`,项目目标为围绕无忌交易系统做策略研究、案例分析、实验验证和后续工程化管理;背景来自 `炒股笔记 / 无忌心法` 交易系统研究线;时间周期为长期维护,先做 P0 研究验证阶段;初始启用实验体系和案例分析体系。
-
-目标:
-创建 wuji-trade 项目根目录、基础项目文档、默认开发体系、实验体系、案例分析体系、项目管理员工作空间,并完成初始化计划审计和执行审计。
-
-边界:
-本事项只创建项目环境,不跑具体交易实验,不创建具体交易案例,不创建目标开发工作区。
-
-状态:
-进行中
-
-当前结论:
-待初始化执行审计完成后更新。
-
-相关计划:
-PLAN-WUJI-INIT
-
-相关结果:
-项目配置清单.md;项目执行日志.md;项目事项审计报告.md;项目变更记录.md
-
-审计入口:
-AUDIT-WUJI-PLAN-INIT;AUDIT-WUJI-EXEC-INIT
diff --git "a/wuji-trade/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md" "b/wuji-trade/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md"
deleted file mode 100644
index bce9d0e..0000000
--- "a/wuji-trade/\351\241\271\347\233\256\344\272\213\351\241\271\350\256\241\345\210\222.md"
+++ /dev/null
@@ -1,65 +0,0 @@
-# 项目事项计划
-
-创建人员:Codex
-文件职责:记录 wuji-trade 项目级计划、步骤、输入输出、验收方式和计划审计入口。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目事项计划模版.md。
-引用文件:项目总览.md;项目事项总纲.md;项目执行日志.md;项目事项审计报告.md;项目问题记录.md;项目变更记录.md。
-记录方式:append-only 项目事项计划账本;新计划追加到文件末尾。
-
-## 1. 当前计划总览
-
-| 计划 ID | 事项 ID | 目标 | 状态 | 审计 |
-|---|---|---|---|---|
-| PLAN-WUJI-INIT | PROJECT-WUJI-INIT | 创建 wuji-trade 项目环境并启用默认开发、实验、案例分析体系 | 进行中 | AUDIT-WUJI-PLAN-INIT |
-
-## 2. 计划记录
-
-### 2026-06-03 PLAN-WUJI-INIT:wuji-trade 项目初始化计划
-
-关联事项:
-PROJECT-WUJI-INIT
-
-来源聊天记录:
-```text
-好这样,我们接下来创建一个项目 wuji-trade
-1. 项目根目录 D:\manage_system\wuji-trade
-2. 项目目标:围绕无忌交易系统做策略研究、案例分析、实验验证和后续工程化管理
-3. 项目背景:来自 炒股笔记 / 无忌心法 这条交易系统研究线
-4. 时间周期:长期维护,先做 P0 研究验证阶段
-5. 初始启用体系:默认项目体系 + 开发体系,同时启用实验体系和案例分析体系
-```
-
-计划目标:
-创建可承接无忌交易系统研究的项目环境。
-
-执行步骤:
-
-1. 创建项目根目录和项目基础文档。
-2. 创建项目管理员工作空间 `ai-codex/`。
-3. 按 root_default 创建默认开发体系。
-4. 创建实验体系目录、入口文档、存储体系和审计入口。
-5. 创建案例分析体系目录、入口文档、存储体系和审计入口。
-6. 更新项目配置清单、执行日志和变更记录。
-7. 做初始化计划审计和执行审计。
-
-输入:
-用户确认的项目基础信息;`../common/project-doc/项目环境创建指南.md`;`../common/dev-doc/开发环境创建指南.md`;`../common/exp-doc/实验环境创建指南.md`;`../common/ana-doc/案例分析环境创建指南.md`。
-
-输出:
-项目基础文档、默认开发体系、实验体系、案例分析体系、项目管理员工作空间、审计报告。
-
-验收方式:
-
-1. `项目总览.md`、`项目规范.md`、`项目配置清单.md` 等项目基础文档存在。
-2. `dev/`、`dev-doc/` 根级开发体系存在,且未创建目标开发工作区。
-3. `exp-doc/`、`exp-data/` 实验体系入口和存储目录存在。
-4. `ana-doc/`、`ana-data/` 案例分析体系入口和存储目录存在。
-5. `ai-codex/工作说明.md` 存在。
-6. 项目配置清单能解释启用体系、目录、AI、角色和权限。
-7. 初始化计划审计和执行审计通过。
-
-计划审计入口:
-AUDIT-WUJI-PLAN-INIT
-
-当前状态:
-进行中
diff --git "a/wuji-trade/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md" "b/wuji-trade/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md"
deleted file mode 100644
index 249b542..0000000
--- "a/wuji-trade/\351\241\271\347\233\256\345\217\230\346\233\264\350\256\260\345\275\225.md"
+++ /dev/null
@@ -1,44 +0,0 @@
-# 项目变更记录
-
-创建人员:Codex
-文件职责:记录 wuji-trade 项目级目录、配置、角色、权限、体系启用和关键口径变化。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目变更记录模版.md。
-引用文件:项目总览.md;项目配置清单.md;项目执行日志.md;项目事项审计报告.md。
-记录方式:append-only 变更账本;项目级变更追加到文件末尾。
-
-## 1. 变更记录
-
-### 2026-06-03 CHANGE-WUJI-INIT:初始化 wuji-trade 项目环境
-
-变更类型:
-项目创建 / 体系启用 / 目录创建 / 角色配置
-
-变更对象:
-wuji-trade 项目根目录;默认开发体系;实验体系;案例分析体系;ai-codex 工作空间;项目配置清单
-
-变更原因:
-用户要求创建 wuji-trade 项目,用于围绕无忌交易系统做策略研究、案例分析、实验验证和后续工程化管理。
-
-变更前:
-`D:\manage_system\wuji-trade` 不存在。
-
-变更后:
-已创建项目基础文档、默认开发体系、实验体系、案例分析体系和 `ai-codex/` 工作空间。
-
-影响范围:
-wuji-trade 项目环境和后续研究/实验/案例分析入口。
-
-执行人:
-Codex
-
-关联计划 / 日志:
-PLAN-WUJI-INIT / LOG-WUJI-INIT
-
-是否需要审计:
-是
-
-审计入口:
-AUDIT-WUJI-PLAN-INIT;AUDIT-WUJI-EXEC-INIT
-
-当前状态:
-已审计通过
diff --git "a/wuji-trade/\351\241\271\347\233\256\346\200\273\350\247\210.md" "b/wuji-trade/\351\241\271\347\233\256\346\200\273\350\247\210.md"
deleted file mode 100644
index 90e086e..0000000
--- "a/wuji-trade/\351\241\271\347\233\256\346\200\273\350\247\210.md"
+++ /dev/null
@@ -1,118 +0,0 @@
-# 项目总览
-
-创建人员:Codex
-文件职责:记录 wuji-trade 项目的稳定基础信息、目标、周期、背景、范围和关键入口。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目总览范本.md。
-引用文件:项目规范.md;项目配置清单.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目变更记录.md。
-记录方式:项目稳定画像文档;项目目标、背景、周期、阶段、范围发生实质变化时更新,并同步记录到项目变更记录.md、项目执行日志.md 和相关项目事项账本。
-
-## 1. 基本信息
-
-| 字段 | 内容 |
-|---|---|
-| 项目名称 | wuji-trade |
-| 项目 ID | WUJI-TRADE |
-| 项目根目录 | ./ |
-| 项目创建时间 | 2026-06-03 |
-| 项目创建人 | Codex |
-| 项目管理员 | Codex |
-| 当前状态 | 进行中 |
-| 当前阶段 | P0 研究验证阶段 |
-| 预计时间周期 | 长期维护;先做 P0 研究验证阶段 |
-| Git 仓库 | 未创建;待项目管理员决定 |
-| 最近更新时间 | 2026-06-03 |
-
-## 2. 一句话介绍
-
-wuji-trade 用于围绕无忌交易系统做策略研究、案例分析、实验验证和后续工程化管理。
-
-## 3. 项目背景
-
-项目来自 `炒股笔记 / 无忌心法` 交易系统研究线。当前重点不是直接工程化成交易系统,而是先把笔记理论、候选规则、案例证据、实验验证和后续实现路径管理清楚。
-
-关键来源:
-
-| 来源时间 | 来源类型 | 摘要 | 对应记录 |
-|---|---|---|---|
-| 2026-06-03 | 聊天要求 | 创建 wuji-trade 项目,目标是围绕无忌交易系统做策略研究、案例分析、实验验证和后续工程化管理;初始启用实验体系和案例分析体系 | 项目事项总纲.md |
-
-## 4. 项目目标
-
-总目标:
-
-建立一个可长期维护、可审计、可追踪的无忌交易系统研究项目环境。
-
-阶段目标:
-
-| 阶段 | 目标 | 完成标准 | 状态 |
-|---|---|---|---|
-| P0 研究验证 | 梳理无忌交易系统的理论、案例、实验和证据链 | 实验体系、案例分析体系、默认开发体系和项目治理链路创建完成 | 进行中 |
-| P1 规则沉淀 | 将通过验证的理论和案例沉淀为可复用规则 | 规则有来源、案例、实验结果和审计结论 | 未开始 |
-| P2 工程化 | 将稳定规则按开发体系转为工具或模块 | 需求、设计、代码、自测和审计链路齐全 | 未开始 |
-
-## 5. 项目范围和边界
-
-本项目做:
-
-1. 无忌交易系统理论研究。
-2. 炒股笔记相关案例分析。
-3. 启动点、买点、卖点、风控、收益等实验验证。
-4. 关键数据、图表、案例证据和实验结果归档。
-5. 后续必要的工具和模块开发管理。
-
-本项目不做:
-
-1. 不直接把未经验证的笔记内容当成正式交易系统。
-2. 不把实验收益直接升级成实盘结论。
-3. 不在项目初始化阶段创建具体交易代码模块。
-
-## 6. 时间周期和里程碑
-
-| 里程碑 | 预计时间 | 目标 | 状态 | 关联事项 |
-|---|---|---|---|---|
-| WUJI-INIT | 2026-06-03 | 创建项目环境并启用实验体系、案例分析体系、默认开发体系 | 进行中 | PROJECT-WUJI-INIT |
-| WUJI-P0-RESEARCH | 待定 | 承接无忌交易系统研究验证 | 未开始 | 待创建 |
-
-## 7. 角色和协作入口
-
-本节只记录稳定概览;当前 AI 名单、角色、权限和工作空间以 `项目配置清单.md` 为准。
-
-| 角色类别 | 当前负责人 / AI | 主要职责 | 详细入口 |
-|---|---|---|---|
-| 项目管理员 | Codex | 项目配置、体系启用、项目级审计组织 | 项目配置清单.md |
-
-## 8. 已启用体系概览
-
-本节只记录概览;体系启停、目录映射和角色权限以 `项目配置清单.md` 为准。
-
-| 体系 | 状态 | 用途 | 入口 |
-|---|---|---|---|
-| 项目体系 | 已启用 | 项目治理、事项、审计、变更 | 项目规范.md;项目配置清单.md |
-| 开发体系 | 已启用 root_default | 后续工具和模块开发管理 | dev-doc/目录导读.md |
-| 实验体系 | 已启用 | 交易系统实验设计、执行、审计和结果归档 | exp-doc/目录导读.md |
-| 案例分析体系 | 已启用 | 炒股笔记案例分析、图证、操作链路和审计 | ana-doc/目录导读.md |
-
-## 9. 核心文档入口
-
-| 文档 | 作用 |
-|---|---|
-| 项目规范.md | 项目本地治理规则和稳定补充 |
-| 项目配置清单.md | 当前体系、角色、权限、目录和工作空间事实源 |
-| 项目事项总纲.md | 项目事项背景、目标、状态和结论滚动账本 |
-| 项目事项计划.md | 项目事项计划、步骤、验收和计划审计入口 |
-| 项目执行日志.md | 项目级关键执行节点日志 |
-| 项目事项审计报告.md | 项目事项计划审计、执行审计和复审账本 |
-| 项目变更记录.md | 项目目标、范围、目录、体系、角色等项目级变更历史 |
-
-## 10. 关键假设、风险和待确认
-
-| 类型 | 内容 | 影响 | 处理方式 | 状态 |
-|---|---|---|---|---|
-| 假设 | 初始项目管理员暂记为 Codex | 后续可由项目管理员调整 | 调整时更新项目配置清单和项目变更记录 | 打开 |
-| 风险 | 笔记理论、案例分析和收益实验容易混淆结论等级 | 可能把研究结论过早工程化 | 实验和案例必须走设计、执行、审计链路 | 打开 |
-
-## 11. 变更摘要
-
-| 时间 | 摘要 | 关联变更记录 |
-|---|---|---|
-| 2026-06-03 | 初始化 wuji-trade 项目,启用项目、开发、实验、案例分析体系 | CHANGE-WUJI-INIT |
diff --git "a/wuji-trade/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md" "b/wuji-trade/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md"
deleted file mode 100644
index 025ac87..0000000
--- "a/wuji-trade/\351\241\271\347\233\256\346\211\247\350\241\214\346\227\245\345\277\227.md"
+++ /dev/null
@@ -1,52 +0,0 @@
-# 项目执行日志
-
-创建人员:Codex
-文件职责:记录 wuji-trade 项目级执行关键节点、目录创建、文档创建、体系启用、角色分配和偏离。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目执行日志模版.md。
-引用文件:项目总览.md;项目事项总纲.md;项目事项计划.md;项目事项审计报告.md;项目问题记录.md;项目变更记录.md。
-记录方式:append-only 项目执行日志;执行动作追加到文件末尾。
-
-## 1. 执行记录
-
-### 2026-06-03 LOG-WUJI-INIT:创建 wuji-trade 项目环境
-
-所属项目:
-WUJI-TRADE / wuji-trade
-
-关联计划:
-PLAN-WUJI-INIT
-
-执行人员:
-Codex
-
-动作类型:
-项目初始化 / 体系启用 / 目录创建 / 文档创建
-
-执行目标:
-创建 wuji-trade 项目环境,并启用默认开发体系、实验体系和案例分析体系。
-
-执行过程:
-
-1. 创建项目根目录 `D:\manage_system\wuji-trade`。
-2. 创建项目基础文档:`项目总览.md`、`项目规范.md`、`项目配置清单.md`、`项目事项总纲.md`、`项目事项计划.md`、`项目执行日志.md`、`项目事项审计报告.md`、`项目问题记录.md`、`项目变更记录.md`。
-3. 创建项目管理员工作空间:`ai-codex/tmp/`、`ai-codex/draft/`、`ai-codex/worklog/`、`ai-codex/工作说明.md`。
-4. 创建默认开发体系:`dev/`、`dev/test/`、`dev/tmp/`、`dev-doc/` 和根级开发账本。
-5. 创建实验体系:`exp-doc/`、`exp-data/raw/`、`exp-data/result/`、`exp-data/img/`、`exp-data/tmp/` 和实验入口文档。
-6. 创建案例分析体系:`ana-doc/`、`ana-data/cases/`、`ana-data/result/`、`ana-data/img/`、`ana-data/tmp/` 和案例入口文档。
-7. 更新项目配置清单,登记项目、开发、实验、案例分析体系。
-8. 写入项目变更记录和项目事项审计报告。
-
-关键输入:
-`../common/project-doc/项目环境创建指南.md`;`../common/dev-doc/开发环境创建指南.md`;`../common/exp-doc/实验环境创建指南.md`;`../common/ana-doc/案例分析环境创建指南.md`。
-
-关键输出:
-wuji-trade 项目环境、开发体系、实验体系、案例分析体系和项目管理员工作空间。
-
-异常 / 偏离:
-初始项目管理员按创建者记为 Codex;后续可由项目管理员调整。
-
-当前状态:
-完成
-
-审计入口:
-AUDIT-WUJI-PLAN-INIT;AUDIT-WUJI-EXEC-INIT
diff --git "a/wuji-trade/\351\241\271\347\233\256\350\247\204\350\214\203.md" "b/wuji-trade/\351\241\271\347\233\256\350\247\204\350\214\203.md"
deleted file mode 100644
index 8bdb440..0000000
--- "a/wuji-trade/\351\241\271\347\233\256\350\247\204\350\214\203.md"
+++ /dev/null
@@ -1,56 +0,0 @@
-# 项目规范
-
-创建人员:Codex
-文件职责:记录 wuji-trade 的项目边界、项目配置入口、项目总览入口和项目本地补充规则。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目规范模版.md。
-引用文件:项目总览.md;项目配置清单.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目问题记录.md;项目变更记录.md。
-记录方式:项目级规范文档;项目长期目标、边界或本地稳定规则变化时更新,不复制全局规范和 common 体系规范正文;动态配置写入项目配置清单.md。
-
-本文件是 wuji-trade 的本地项目规范,不是 `common/project-doc/项目规范.md` 的副本。本地规则不得削弱全局规范和 common 项目规范。
-
-## 1. 项目总览入口
-
-本项目稳定基础信息、目标、周期、背景和关键入口,以 `项目总览.md` 为准。
-
-## 2. 项目边界
-
-本项目做:
-
-1. 无忌交易系统理论研究。
-2. 炒股笔记案例分析。
-3. 交易规则实验验证。
-4. 研究证据链、图片、日志、结果包归档。
-5. 后续工具和模块开发管理。
-
-本项目不做:
-
-1. 不把未经审计的实验结论当成正式交易结论。
-2. 不绕过实验体系或案例分析体系直接工程化。
-3. 不在项目初始化阶段创建具体交易代码模块。
-
-## 3. 项目配置入口
-
-本项目当前启用体系、目录映射、AI 角色、权限边界、工作空间和核心文档入口,以 `项目配置清单.md` 为准。
-
-本文件不维护动态配置清单,避免项目规范频繁变更。
-
-## 4. 项目本地补充规则
-
-1. 涉及无忌交易系统的实验,必须在实验总纲或实验设计中写清对应的笔记来源、聊天要求和结论等级。
-2. 涉及具体交易案例的分析,必须优先使用案例分析体系记录候选、操作、图证、结果和审计链路。
-3. 后续如需写代码,必须先在开发体系登记开发事项;重型开发按编码规范写编码方案并先审计。
-
-## 5. 例外规则
-
-| 例外项 | 原因 | 生效范围 | 到期 / 复审条件 |
-|---|---|---|---|
-| 暂无 | | | |
-
-## 6. 冲突处理
-
-如果本文件与 `../全局规范.md` 或 common 体系规范冲突:
-
-1. 先按全局规范和 common 体系规范执行。
-2. 将冲突记录到 `项目问题记录.md`。
-3. 修正本文件或对应本地规范。
-4. 冲突未解决前,不得把相关项目事项标记为完成。
diff --git "a/wuji-trade/\351\241\271\347\233\256\351\205\215\347\275\256\346\270\205\345\215\225.md" "b/wuji-trade/\351\241\271\347\233\256\351\205\215\347\275\256\346\270\205\345\215\225.md"
deleted file mode 100644
index c2cf8fa..0000000
--- "a/wuji-trade/\351\241\271\347\233\256\351\205\215\347\275\256\346\270\205\345\215\225.md"
+++ /dev/null
@@ -1,90 +0,0 @@
-# 项目配置清单
-
-创建人员:Codex
-文件职责:记录 wuji-trade 当前启用体系、AI 角色、权限边界、工作空间、目录映射和核心文档入口,是项目当前配置的事实源。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目配置清单模版.md;../common/ai-workplace/AI工作空间创建指南.md。
-引用文件:项目总览.md;项目规范.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目问题记录.md;项目变更记录.md。
-记录方式:项目配置清单;当前状态可覆盖更新,变更原因和历史必须同步写入项目变更记录.md 和项目执行日志.md。
-
-## 1. 项目基本配置
-
-| 字段 | 内容 |
-|---|---|
-| 项目名称 | wuji-trade |
-| 项目 ID | WUJI-TRADE |
-| 项目根目录 | ./ |
-| 项目管理员 | Codex |
-| 创建时间 | 2026-06-03 |
-| 当前状态 | 进行中 |
-| Git 仓库 | 未创建;待项目管理员决定 |
-
-## 2. 已启用体系
-
-| 体系 | 是否启用 | 目录 | common 规范 | 本地规范 | 适用角色 | 最近变更记录 |
-|---|---|---|---|---|---|---|
-| 项目体系 | 是 | ./ | ../common/project-doc/项目规范.md | 项目规范.md | 项目管理员 | CHANGE-WUJI-INIT |
-| 需求体系 | 否 | pro-doc/ | ../common/pro-doc/需求规范.md | pro-doc/需求规范.md | 需求 AI | |
-| 开发体系 | 是 | dev/;dev/test/;dev/tmp/;dev-doc/ | ../common/dev-doc/开发环境创建指南.md;../common/dev-doc/编码规范.md;../common/dev-doc/开发审计规范.md | dev-doc/目录导读.md;dev-doc/编码规范.md;dev-doc/开发审计规范.md;dev-doc/开发事项总纲.md;dev-doc/开发事项计划.md;dev-doc/开发执行日志.md;dev-doc/开发审计报告.md;dev-doc/开发问题记录.md | 开发 AI | CHANGE-WUJI-INIT |
-| 实验体系 | 是 | exp-doc/;exp-data/ | ../common/exp-doc/实验规范.md;../common/exp-doc/实验审核规范.md | exp-doc/实验规范.md;exp-doc/实验审计规范.md | 实验员 | CHANGE-WUJI-INIT |
-| 案例分析体系 | 是 | ana-doc/;ana-data/ | ../common/ana-doc/案例分析规范.md;../common/ana-doc/案例审核规范.md | ana-doc/案例分析规范.md;ana-doc/案例审核规范.md | 案例分析员 | CHANGE-WUJI-INIT |
-| 数据体系 | 否 | data-doc/;<数据目录> | ../common/data-doc/<待建> | data-doc/<待建> | 数据负责人 | |
-
-## 3. AI 角色与权限
-
-这里记录的是协作权限约束,不等同于操作系统或工具实际权限。所有 AI 默认拥有项目内文件读权限,写权限按角色和工作空间执行。
-
-| AI 名称 | 角色 | 是否审核员 | 工作空间 | 默认写权限范围 | 备注 |
-|---|---|---|---|---|---|
-| Codex | 项目管理员;审核员(项目初始化审核) | 是 | ai-codex/ | 项目根目录;ai-codex/;项目事项审计报告.md | 负责本轮初始化和审计;后续实验员、案例分析员、开发 AI 可另行指派 |
-
-## 4. 默认角色权限
-
-| 角色 | 默认写权限目录 | 说明 |
-|---|---|---|
-| 项目管理员 | 项目根目录 | 管理项目规范、项目配置清单、项目级账本和体系启用 |
-| 需求 AI | pro-doc/ | 需求、策略文档;需求体系未启用时只能写工作空间草稿 |
-| 开发 AI(指定体系开发) | dev/<target>-dev/;dev/<target>-dev/test/;dev-doc/<target>-doc/ | 代码、测试、目标代码文档和方案附件;正式开发账本统一在 dev-doc/ 根目录 |
-| 实验员 | exp-doc/;exp-data/ | 实验文档、实验数据、结果包 |
-| 案例分析员 | ana-doc/;ana-data/ | 案例分析文档、案例数据、图片 |
-| 数据负责人 | data-doc/;<数据目录> | 数据字典、数据存储说明、正式数据入口 |
-| 审核员(指定体系审核) | 对应审计报告;问题记录仅写跨轮索引 | 不直接改被审计主产物 |
-
-## 5. 目录映射
-
-| 目录 | 用途 | 负责人 / 角色 | 状态 | 备注 |
-|---|---|---|---|---|
-| ./ | 项目根目录,存放项目级规范和项目级账本 | 项目管理员 | 已创建 | |
-| dev/ | 开发代码根目录;根级 test/tmp 放在 dev/,目标代码放到 dev/<target>-dev/ | 开发 AI(指定体系开发) | 已创建 | 项目创建默认存在 |
-| dev-doc/ | 开发文档根目录;根级开发入口规范和唯一开发账本放在 dev-doc/ | 开发 AI(指定体系开发) | 已创建 | 项目创建默认存在 |
-| exp-doc/ | 实验文档目录 | 实验员 | 已创建 | 已启用实验体系 |
-| exp-data/ | 实验数据和结果包目录 | 实验员 | 已创建 | 已启用实验体系 |
-| ana-doc/ | 案例分析文档目录 | 案例分析员 | 已创建 | 已启用案例分析体系 |
-| ana-data/ | 案例分析数据、图片和结果包目录 | 案例分析员 | 已创建 | 已启用案例分析体系 |
-| tmp/ | 项目级临时文件 | 项目管理员 | 已创建 | 临时产物不得当正式结果 |
-| ai-codex/ | AI 工作空间 | Codex | 已创建 | 含工作说明、tmp、draft、worklog |
-
-## 6. 核心文档入口
-
-| 文档 | 作用 | 状态 |
-|---|---|---|
-| 项目总览.md | 项目稳定基础信息、目标、周期、背景和关键入口 | 已创建 |
-| 项目规范.md | 项目稳定边界、本地补充规则和配置入口 | 已创建 |
-| 项目配置清单.md | 当前体系、角色、权限和目录配置事实源 | 已创建 |
-| 项目事项总纲.md | 项目级事项背景、目标、状态和结论账本 | 已创建 |
-| 项目事项计划.md | 项目级计划、步骤、验收和计划审计入口 | 已创建 |
-| 项目执行日志.md | 项目级执行关键节点日志 | 已创建 |
-| 项目事项审计报告.md | 项目计划审计、执行审计和复审账本 | 已创建 |
-| 项目问题记录.md | 非审计来源项目级问题闭环账本;审计问题只做跨轮索引 | 已创建 |
-| 项目变更记录.md | 项目级配置、目录、角色、体系变更历史 | 已创建 |
-| dev-doc/目录导读.md | 开发体系入口 | 已创建 |
-| exp-doc/目录导读.md | 实验体系入口 | 已创建 |
-| ana-doc/目录导读.md | 案例分析体系入口 | 已创建 |
-| ai-codex/工作说明.md | Codex 的职责、权限和流程说明 | 已创建 |
-
-## 7. 变更索引
-
-本文件记录当前状态。配置变化的原因、影响范围和历史过程必须写入 `项目变更记录.md`。
-
-| 时间 | 变更记录 ID | 变更摘要 | 执行人 |
-|---|---|---|---|
-| 2026-06-03 | CHANGE-WUJI-INIT | 初始化 wuji-trade,启用项目体系、默认开发体系、实验体系和案例分析体系 | Codex |
diff --git "a/wuji-trade/\351\241\271\347\233\256\351\227\256\351\242\230\350\256\260\345\275\225.md" "b/wuji-trade/\351\241\271\347\233\256\351\227\256\351\242\230\350\256\260\345\275\225.md"
deleted file mode 100644
index 55d8666..0000000
--- "a/wuji-trade/\351\241\271\347\233\256\351\227\256\351\242\230\350\256\260\345\275\225.md"
+++ /dev/null
@@ -1,13 +0,0 @@
-# 项目问题记录
-
-创建人员:Codex
-文件职责:记录 wuji-trade 非审计来源项目级问题、影响、修复建议和复验状态;审计发现的问题主记录写在项目事项审计报告。
-管理规范/模板:../全局规范.md;../common/project-doc/项目规范.md;../common/project-doc/项目问题记录模版.md。
-引用文件:项目总览.md;项目事项总纲.md;项目事项计划.md;项目执行日志.md;项目事项审计报告.md;项目变更记录.md。
-记录方式:append-only 项目问题记录;非审计来源问题追加到文件末尾。
-
-## 1. 当前问题总览
-
-| 问题 ID | 来源 | 摘要 | 优先级 | 状态 | 审计入口 |
-|---|---|---|---|---|---|
-| 暂无 | | | | | |
--
Gitblit v1.9.3