@furongjun1999/dsh-memory 0.4.8 → 0.4.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -26
- package/codebuddy/CODEBUDDY.md +196 -195
- package/codebuddy/README.md +13 -1
- package/codebuddy/mcp.json +9 -0
- package/docs/GBrain/345/217/257/345/200/237/351/211/264/347/202/271_/347/201/265/346/236/242/350/220/275/347/202/271/344/272/244/346/216/245_20260919.md +169 -0
- package/docs/README.md +1 -1
- package/docs/discipline/harnesses.yaml +18 -7
- package/docs/discipline/templates/full.md.tmpl +4 -3
- package/docs/experiments/linkref_backfill/candidates_20260917.json +726 -0
- package/docs/experiments/linkref_backfill/candidates_internal_20260917.json +602 -0
- package/docs/experiments/linkref_backfill/candidates_internal_v2.json +603 -0
- package/docs/experiments/linkref_backfill/candidates_secret_20260917.json +884 -0
- package/docs/experiments/linkref_backfill/candidates_secret_v2.json +789 -0
- package/docs/hive//345/244/232/347/253/257harness/351/200/232/344/277/241/345/245/221/347/272/246_v0.1.md +42 -0
- package/docs/hive//346/243/200/347/264/242/346/224/266/346/225/233/345/256/236/346/265/213/344/270/216S1b/350/256/276/350/256/241_v0.1.md +43 -0
- package/docs/hive//346/243/200/347/264/242/350/267/257/345/276/204/344/270/216/350/256/244/347/237/245/347/273/223/346/236/204/345/245/221/347/272/246_v0.1.md +102 -0
- package/docs/hive//347/234/237/345/256/236/345/272/223/347/253/257/345/210/260/347/253/257/345/256/236/346/265/213_S1b/344/270/216/345/217/254/345/233/236/346/235/203/350/241/241_v0.1.md +57 -0
- package/docs/hive//347/234/237/345/256/236/345/272/223/347/253/257/345/210/260/347/253/257/345/256/236/346/265/213_S7/345/200/222/346/216/222/345/200/231/351/200/211/345/261/202_v0.1.md +126 -0
- package/docs/hive//350/234/202/345/267/242/345/217/214/345/256/236/344/276/213/344/272/222/351/252/214_/350/256/276/350/256/241/345/256/232/347/250/277.md +503 -0
- package/docs/mdcg/D_meta_/345/267/245/347/250/213/345/214/226/346/226/271/346/241/210_v0.2.md +216 -0
- package/docs/mdcg/README/350/257/246/347/273/206/347/211/210_v0.4.5.md +631 -625
- package/docs/mdcg//344/273/243/347/240/201/350/257/204/345/256/241/344/270/216/346/235/241/344/273/266/345/214/226/346/263/250/351/207/212_/345/245/221/347/272/246_v0.1.md +82 -0
- package/docs/mdcg//345/205/250/345/272/223/344/273/243/347/240/201/350/257/204/345/256/241/344/270/216/346/235/241/344/273/266/345/214/226/346/263/250/351/207/212_/350/256/241/345/210/222_v0.1.md +600 -0
- package/docs/mdcg//345/212/237/350/203/275/350/260/203/347/224/250/346/230/240/345/260/204/350/241/250_v0.1.md +47 -45
- package/docs/mdcg//345/255/220/344/273/243/347/220/206/351/205/215/347/275/256/346/240/207/345/207/{206_v0.4.md → 206_v0.5.md} +92 -4
- package/docs/mdcg//347/201/265/346/236/242/350/256/260/345/277/206/345/212/250/350/257/215/345/215/217/350/256/256_v1.0-draft.md +172 -0
- package/docs/mdcg//347/216/257/344/272/214_/347/231/275/347/256/261/345/241/253/345/205/205/346/265/201/346/260/264/347/272/277_v0.1.md +31 -0
- package/docs/mdcg//350/267/250/347/253/257/351/252/214/350/257/201/344/270/216/345/220/214/346/255/245/345/215/217/350/256/256_v0.1.md +93 -0
- package/docs/theory//345/271/266/345/217/221/345/277/205/347/204/266/346/200/247/347/220/206/350/256/272_v0.2.md +2 -2
- package/docs/theory//347/220/206/350/256/272_/346/234/272/345/210/266_/344/273/243/347/240/201_/345/256/236/351/252/214_/347/274/272/345/217/243/347/237/251/351/230/265_v0.1.md +3 -3
- package/docs/theory//350/256/244/347/237/245/344/273/243/347/220/206/344/270/216/346/224/266/346/225/233/347/273/223/346/236/204_/346/235/241/344/273/266/350/256/272/351/207/215/346/236/204_v0.1.md +2 -2
- package/docs//345/267/245/344/275/234/347/272/252/345/276/213_/350/256/244/347/237/245/345/233/276/346/235/241/347/233/256_v1.1.json +434 -433
- package/docs//347/201/265/346/236/242/350/207/252/346/210/221/346/224/271/350/277/233/345/267/245/344/275/234/350/256/241/345/210/222_/345/244/226/351/203/250/347/240/224/347/251/266/347/263/273/345/210/227/345/220/270/346/224/266_v1_20260919.md +286 -0
- package/dsh/README.md +33 -0
- package/dsh/cordis.yml.example +13 -7
- package/dsh/hive-mcp-probe.mjs +94 -0
- package/dsh/hive-mcp.example.yml +62 -0
- package/dsh/update-lingshu.bat +11 -0
- package/dsh/update-lingshu.ps1 +337 -0
- package/lib/hooks.d.ts +3 -0
- package/lib/hooks.js +17 -23
- package/lib/index.d.ts +4 -2
- package/lib/index.js +29 -6
- package/lib/lib/datapath.d.ts +76 -1
- package/lib/lib/datapath.js +199 -13
- package/lib/lib/mdcg_client.d.ts +6 -3
- package/lib/lib/mdcg_client.js +6 -5
- package/lib/lib/mutual.js +4 -4
- package/lib/lib/token_store.js +4 -5
- package/md_cg/audit.py +17 -2
- package/md_cg/autonomy.py +86 -15
- package/md_cg/backfill.py +36 -1
- package/md_cg/backfill_bigdomain.py +34 -0
- package/md_cg/bench6_arms.py +28 -1
- package/md_cg/bench6_common.py +10 -1
- package/md_cg/bench6_competitors.py +6 -1
- package/md_cg/bench_axis_domain.py +9 -1
- package/md_cg/bench_blind_comp.py +7 -1
- package/md_cg/bench_en_atoms_public.py +9 -0
- package/md_cg/bench_governance.py +348 -0
- package/md_cg/bench_lme_zh.py +16 -1
- package/md_cg/bench_locomo.py +2 -1
- package/md_cg/bench_locomo_zh.py +16 -1
- package/md_cg/bench_locomo_zh_public.py +4 -1
- package/md_cg/bench_longmem.py +2 -1
- package/md_cg/bench_membench.py +27 -1
- package/md_cg/bench_p0.py +4 -1
- package/md_cg/bench_progressive.py +13 -1
- package/md_cg/bench_role_views.py +238 -0
- package/md_cg/bench_task_ab.py +8 -1
- package/md_cg/bench_task_ab_llm.py +13 -1
- package/md_cg/bench_unified_en.py +6 -1
- package/md_cg/bench_zh_mad.py +20 -1
- package/md_cg/blindspot_tickets.py +123 -0
- package/md_cg/branches.py +12 -1
- package/md_cg/build_postings.py +73 -0
- package/md_cg/ccgc.py +67 -2
- package/md_cg/census.py +5 -1
- package/md_cg/chain.py +24 -3
- package/md_cg/codeindex.py +134 -17
- package/md_cg/coldverify.py +265 -0
- package/md_cg/comment_gate.py +338 -0
- package/md_cg/cond_compose.py +190 -0
- package/md_cg/cond_facts.py +155 -0
- package/md_cg/cond_template.json +107 -0
- package/md_cg/condition_anchor.py +143 -0
- package/md_cg/conformance.py +69 -4
- package/md_cg/consistency.py +24 -1
- package/md_cg/consolidate.py +53 -2
- package/md_cg/corpus.py +4 -0
- package/md_cg/crosscheck.py +42 -2
- package/md_cg/crypto.py +35 -1
- package/md_cg/d_meta.py +310 -0
- package/md_cg/datapath.py +201 -26
- package/md_cg/docindex.py +122 -1
- package/md_cg/eval_common.py +29 -1
- package/md_cg/evidence.py +27 -1
- package/md_cg/evolution.py +21 -1
- package/md_cg/export.py +11 -1
- package/md_cg/forgetting.py +23 -1
- package/md_cg/fsutil.py +18 -1
- package/md_cg/hotcache.py +214 -0
- package/md_cg/hyperedge.py +251 -0
- package/md_cg/identity.py +18 -1
- package/md_cg/insight.py +17 -1
- package/md_cg/lexicon/build_cedict_en_zh.py +9 -0
- package/md_cg/lexicon/build_standard_en.py +171 -168
- package/md_cg/lexicon/expand_en_zh.py +6 -0
- package/md_cg/lifecycle.py +12 -1
- package/md_cg/linkref.py +281 -0
- package/md_cg/links.py +29 -1
- package/md_cg/mcp_server.py +362 -43
- package/md_cg/md_whitebox.py +53 -1
- package/md_cg/mdcg.py +1003 -27
- package/md_cg/mdcos.py +558 -36
- package/md_cg/metacognition.py +37 -2
- package/md_cg/migrate.py +4 -0
- package/md_cg/migrate_aeis.py +221 -213
- package/md_cg/migrate_roleplay.py +8 -0
- package/md_cg/migrate_wisdom_graph.py +14 -1
- package/md_cg/mreview/__main__.py +3 -0
- package/md_cg/mreview/bundle.py +8 -0
- package/md_cg/mreview/candidates.py +9 -0
- package/md_cg/mreview/govern.py +21 -1
- package/md_cg/mreview/locate.py +34 -0
- package/md_cg/mreview/pipeline.py +29 -1
- package/md_cg/mreview/ruleset.py +16 -1
- package/md_cg/nodefile.py +233 -3
- package/md_cg/pooling.py +23 -1
- package/md_cg/postings.py +298 -0
- package/md_cg/predict.py +89 -9
- package/md_cg/progressive.py +3 -0
- package/md_cg/protect.py +14 -1
- package/md_cg/protocol.py +372 -0
- package/md_cg/provenance.py +262 -0
- package/md_cg/reach.py +453 -0
- package/md_cg/refindex.py +47 -2
- package/md_cg/refine.py +20 -1
- package/md_cg/roleviews.py +89 -0
- package/md_cg/routing.py +76 -0
- package/md_cg/scrub.py +63 -2
- package/md_cg/security.py +26 -1
- package/md_cg/self_state.py +64 -1
- package/md_cg/selfreport.py +151 -0
- package/md_cg/semantic/canonical.py +5 -0
- package/md_cg/semantic/en_normalizer.py +364 -355
- package/md_cg/semantic/zh_en_atoms.py +139 -136
- package/md_cg/signer.py +41 -1
- package/md_cg/sources.py +583 -547
- package/md_cg/statushdr.py +179 -0
- package/md_cg/stg.py +59 -18
- package/md_cg/subgraph.py +23 -0
- package/md_cg/sustain.py +56 -1
- package/md_cg/tasks.py +26 -2
- package/md_cg/test_autonomy.py +26 -0
- package/md_cg/test_bench_governance.py +102 -0
- package/md_cg/test_blindspot_tickets.py +166 -0
- package/md_cg/test_ccgc.py +10 -0
- package/md_cg/test_codeindex.py +338 -0
- package/md_cg/test_comment_gate.py +187 -0
- package/md_cg/test_cond_compose_anchors.py +76 -0
- package/md_cg/test_condition_anchor.py +82 -0
- package/md_cg/test_d_meta.py +412 -0
- package/md_cg/test_datapath_root.py +188 -0
- package/md_cg/test_gain_gate.py +47 -1
- package/md_cg/test_hot_cold.py +187 -0
- package/md_cg/test_hyperedge.py +245 -0
- package/md_cg/test_linkref.py +306 -0
- package/md_cg/test_md_access_parity.py +15 -3
- package/md_cg/test_mr_m1.py +108 -18
- package/md_cg/test_mr_m3.py +8 -1
- package/md_cg/test_p26_refindex.py +49 -20
- package/md_cg/test_p27_docindex.py +236 -2
- package/md_cg/test_p2_mcp.py +1 -1
- package/md_cg/test_p31_insight.py +24 -0
- package/md_cg/test_p44_md_whitebox.py +14 -1
- package/md_cg/test_protocol.py +243 -0
- package/md_cg/test_reach.py +378 -0
- package/md_cg/test_reach_keys.py +201 -0
- package/md_cg/test_reach_meta_exits.py +145 -0
- package/md_cg/test_read_clip.py +8 -4
- package/md_cg/test_retr_s1.py +340 -0
- package/md_cg/test_retr_s1b.py +209 -0
- package/md_cg/test_retr_s3.py +194 -0
- package/md_cg/test_retr_s4.py +163 -0
- package/md_cg/test_retr_s5.py +200 -0
- package/md_cg/test_retr_s6.py +157 -0
- package/md_cg/test_retr_s7.py +385 -0
- package/md_cg/test_retr_s8_time.py +316 -0
- package/md_cg/test_retr_s9_edges.py +286 -0
- package/md_cg/test_retr_s9_entity_ctx.py +175 -0
- package/md_cg/test_review_conformance.py +59 -2
- package/md_cg/test_role_views.py +354 -0
- package/md_cg/test_trust.py +361 -0
- package/md_cg/test_units_poll.py +71 -0
- package/md_cg/test_v14_fixes.py +397 -0
- package/md_cg/test_validity_filter.py +280 -0
- package/md_cg/test_wisdom_md_store.py +7 -3
- package/md_cg/test_writepipe.py +5 -1
- package/md_cg/theory.py +16 -1
- package/md_cg/tokens.py +40 -8
- package/md_cg/tool_face.py +13 -2
- package/md_cg/trust.py +943 -0
- package/md_cg/twophase.py +12 -1
- package/md_cg/units.py +129 -10
- package/md_cg/vision_evidence.py +24 -1
- package/md_cg/weights.py +24 -1
- package/md_cg/whitebox.py +32 -1
- package/md_cg/whitebox_kb/data/verify_cache.json +21210 -365
- package/md_cg/whitebox_kb/data/verify_savings.jsonl +5078 -0
- package/md_cg/whitebox_kb/wisdom/audit_log/chain_heat.json +10 -10
- package/md_cg/whitebox_kb/wisdom/code_compose.py +113 -6
- package/md_cg/whitebox_kb/wisdom/code_solidified.json +1 -1
- package/md_cg/whitebox_kb/wisdom/verifier.py +340 -55
- package/md_cg/whitebox_kb/wisdom/wisdom-book-cloud.db +0 -0
- package/md_cg/writelimit.py +18 -4
- package/md_cg/writepipe.py +178 -7
- package/package.json +2 -2
- package/skills/skills/designer-perspective/scripts/__pycache__/designer.cpython-310.pyc +0 -0
- package/skills/skills/designer-perspective/scripts/designer.py +17 -1
- package/skills/skills/designer-perspective/tests/selftest.py +3 -1
- package/src/hooks.ts +17 -21
- package/src/index.ts +33 -6
- package/src/lib/datapath.ts +211 -13
- package/src/lib/mdcg_client.ts +12 -8
- package/src/lib/mutual.ts +411 -411
- package/src/lib/token_store.ts +4 -5
- package/zcode/AGENTS.md +196 -195
- package/zcode/README.md +4 -0
- package/md_cg/whitebox_kb/wisdom/wisdom-book-cloud.db-shm +0 -0
- package/md_cg/whitebox_kb/wisdom/wisdom-book-cloud.db-wal +0 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
# D_task / D_meta 工程化方案 v0.2
|
|
2
|
+
|
|
3
|
+
> 目的:将智能论3.4 信息差公理中的 `D_task/D_meta` 分离从理论声明推进到可执行工程,
|
|
4
|
+
> 回应缺口矩阵 #31/#33(🔴 未投影 / 无对象)。
|
|
5
|
+
>
|
|
6
|
+
> **v0.2 说明(2026-09-20)**:本版是 v0.1 的定点修订版——v0.1 原文逐字保留(凡修订处标注
|
|
7
|
+
> `✅ v0.2 修订`),本文件为**唯一真源**;已实现部分以本文件与代码为准,v0.1 仅作历史留存。
|
|
8
|
+
|
|
9
|
+
## 0-A. v0.2 变更单(先读本节)
|
|
10
|
+
|
|
11
|
+
### A. 三处原文偏差的处置(依据=代码条件证据,非偏好)
|
|
12
|
+
|
|
13
|
+
| # | v0.1 原文 | 偏差为何 | v0.2 处置 |
|
|
14
|
+
|---|-----------|----------|-----------|
|
|
15
|
+
| a | §2.1 `unmodeled_growth` 数据源 = `_neg_coverage` 命中 + `unresolved` 增长率 + `blindspots` 项数 | `_neg_coverage` 是 **query-relative**(需现场 query+results),当"全局增长率"用属语义错位;且全库正文 `_read` 会拖垮热路径 | **改为库侧 query 无关口径**:`0.5×存量饱和率(rejected+unresolved / 100) + 0.5×反思窗口未消化率(BLINDSPOT+DEFER)`;query-relative 的 `_neg_coverage` 命中留在 `reflect`(彼处有现场) |
|
|
16
|
+
| b | §2.5 要求把 `outcomes[bid]` 扩展为 dict(terminal/d_meta_before/d_meta_after) | 会同时打破 `test_gain_gate ⑤b` 的终态字符串守卫与 `autonomy.gain_gate` 的 `str(oc[bid])` 停滞集比对——dict 字串永不属停滞集 → **σ 恒 1.0,增益门槛静默报废** | **`outcomes[bid]` 契约不动**(终态字符串);D_meta 维度**并列新增** `meta_outcomes`(before/prev_before/delta/proxy/enabled) |
|
|
17
|
+
| c | §2.3 第五维 `meta_pressure` 与 §4.1"不合成单一数值"并存 | v0.1 未给 `meta_pressure` 的构造式,若取三代理加权即违反 DEV-002a | **只允许取单一指定代理**(`PREDICTION_META_PROXY`,缺省 `unmodeled_growth`),**禁三代理加权合成**;代码内以 `d_meta.pressure(vec, key)` 强制该访问模式 |
|
|
18
|
+
|
|
19
|
+
### B. 行为变更单(默认是否生效,逐条可回退)
|
|
20
|
+
|
|
21
|
+
| 变更 | 默认 | 回退开关 | 影响面 |
|
|
22
|
+
|------|------|----------|--------|
|
|
23
|
+
| `mdcg.reflect` 新增 `d_meta` / `d_meta_delta` 两键 | **生效** | `MDCG_D_META=0`(三值恒 0.0、delta=None) | 反思留痕字段(既有键不动) |
|
|
24
|
+
| `autonomy.proposals` 叠加 D_meta 排序加分 | **生效(W_DMETA=0.1)** | `MDCG_D_META=0` → 加分退化 0 | 只进 `sort_score` 与 `reason`;`score`/资格/σ 不变 |
|
|
25
|
+
| `autonomy.explore` 新增 `meta_outcomes` | **生效** | `MDCG_D_META=0` → 记录 `enabled:false` | 并列新增,`outcomes` 值类型不变 |
|
|
26
|
+
| `autonomy.gain_gate` 新增「停滞+压力扩大」冷却分支 | **生效** | 缺 `meta_outcomes` 键即不触发(旧留痕兼容) | 仅"冷却已过且压力仍扩大"这一新条件下改判 σ=0 |
|
|
27
|
+
| `predict.score_route` 第五维 `meta_pressure` | **关闭(opt-in)** | `PREDICTION_META_DIM=0`(默认) | 默认不落键、不改 composite、SORT_KEYS 不扩张 |
|
|
28
|
+
| `self_state` 预测面新增 `d_meta_trend` + 状态卡一行 | **生效** | `MDCG_D_META=0` → 回落 0.0 | 状态卡指纹随内容变化(仍为日志确定性函数) |
|
|
29
|
+
| MCP `cg(op=metacognition, action="d_meta")` | **生效(只读)** | — | 新增只读观测面 |
|
|
30
|
+
|
|
31
|
+
### C. 开关名统一(消除 v0.1 内两套命名冲突)
|
|
32
|
+
|
|
33
|
+
- `MDCG_D_META`:D_meta **计算总闸**,默认开启;置 `0/false/off/no` 显式回退。
|
|
34
|
+
- `W_DMETA = 0.1`:`autonomy.proposals` **排序加分**权重(§2.4 优先于 §3 阶段表的"权重 0")。
|
|
35
|
+
- `PREDICTION_META_DIM` / `PREDICTION_META_PROXY`:`predict.score_route` **第五维**数值权重(默认 0)与所取单一代理。
|
|
36
|
+
|
|
37
|
+
### D. 阶段状态(本轮交付 1–5;6 交使用者)
|
|
38
|
+
|
|
39
|
+
阶段 1–5 已交付(模块 + 5 处接入 + 测试 + 文档 + 矩阵状态);**阶段 6(生产库开启 + 48h 轨迹审计)不在本轮执行**,
|
|
40
|
+
开启动作与观测交使用者(`MDCG_D_META` 默认已开启,生产库如需显式关闭:置 `0`)。
|
|
41
|
+
|
|
42
|
+
## 0. 理论约束(必须先遵守)
|
|
43
|
+
|
|
44
|
+
| 条款 | 内容 | 工程含义 |
|
|
45
|
+
|------|------|----------|
|
|
46
|
+
| DEV-002 | `D_task` = 图上操作性距离;`D_meta` = 未被建模的现实总量 | 两者对象不同,不能数值打通 |
|
|
47
|
+
| DEV-002a | `D_task` 可分化多个工程化身,对象同一、数值不互换 | 可新增 `D_meta` 投影链路,但不能并入 `D_task` 计算公式 |
|
|
48
|
+
| 增定律 | `d(D_meta)/dt ≥ 0`(结构性论证) | `D_meta` 不能做「缩小」运算,只能观测其压力趋势 |
|
|
49
|
+
| 统一变量边界 | 审美/创造/非任务探索不由 `ΔD·σ(Gain)` 定价 | D_meta 只做排序加分,不改变资格筛选 |
|
|
50
|
+
|
|
51
|
+
## 1. 现有代码的半成品盘点
|
|
52
|
+
|
|
53
|
+
| 能力 | 位置 | 现状 |
|
|
54
|
+
|------|------|------|
|
|
55
|
+
| D_task 一阶数值 | `md_cg/mdcg.py:_compute_d` | `D = max(0, 1 − ACCEPT/候选数)`,已有口径声明 |
|
|
56
|
+
| D 时间序列 | `md_cg/mdcg.py:reflect` | `_reflection.jsonl` 落 `d_prev/d_curr/d_delta/d2` |
|
|
57
|
+
| D 二阶差分 | `md_cg/mdcg.py:reflect` | `d2 = (d_curr−d_prev) − (d_prev−_d_prev2())` |
|
|
58
|
+
| 预测闭环 | `md_cg/predict.py:feedback` | `_prediction.jsonl` + `_boost_incoming` + `dynamic_hit_threshold` |
|
|
59
|
+
| 通道贝叶斯 | `md_cg/predict.py:beta_posterior` | 已可产出 `mean/ci95`,但不回流 D |
|
|
60
|
+
| 信息差提案 | `md_cg/autonomy.py:proposals` | 按 `|d2| + BLINDSPOT×2 + DEFER×1` 评分 |
|
|
61
|
+
| 增益筛选 | `md_cg/autonomy.py:gain_gate` | 读 `_explore.jsonl` outcomes 实现值 |
|
|
62
|
+
| 探索闭环 | `md_cg/autonomy.py:explore` | 提案 → `predict.learn_blindspots` 五态 → 回写 gap_hint |
|
|
63
|
+
|
|
64
|
+
**核心缺口**:
|
|
65
|
+
- `D_meta` 完全无对象(缺口矩阵 #33)。
|
|
66
|
+
- `U_behavior` 零对应(行为偏差只存文本无量化)。
|
|
67
|
+
- `U_prediction_error` 不回流 D(预测误差只进 self 校准面)。
|
|
68
|
+
- 情绪 `d²D/dt²` 在实库恒 0(D 序列无变化能力)。
|
|
69
|
+
- `D_task/D_meta` 分离未投影到任何数据结构或 API。
|
|
70
|
+
|
|
71
|
+
## 2. 推荐方案:D_meta 结构性投影(不引入新数值)
|
|
72
|
+
|
|
73
|
+
### 2.1 新增 `md_cg/d_meta.py`(D_meta 代理指标模块)
|
|
74
|
+
|
|
75
|
+
**定位**:D_meta 不做数值等价,只产出「边界压力向量」`{events_pressure, unmodeled_growth, boundary_violation_rate}`,三个字段各自有可观测代理。
|
|
76
|
+
|
|
77
|
+
| D_meta 代理 | 理论对应 | 工程代理变量(v0.1 原文) | 数据源(v0.1 原文) |
|
|
78
|
+
|-------------|----------|--------------|--------|
|
|
79
|
+
| `events_pressure` | 未被建模的现实总量 | 单位时间内新增未消化事件数(recent_events + 未路由 hits) | `_explore.jsonl` outcomes + `recent_events` |
|
|
80
|
+
| `unmodeled_growth` | 未建模信号持续增长 | `_neg_coverage` 命中数 + `unresolved` 层增长率 + `blindspots` 项数 | `_neg_coverage` + `metacognition.blindspots` |
|
|
81
|
+
| `boundary_violation_rate` | 边界违反速率 | `non_applicable_conditions` 命中数 / 查询数 + `REJECT` 率 | `_candidates` + `judge_qualification` 结果 |
|
|
82
|
+
|
|
83
|
+
**关键设计**:三个代理各自返回 `[0, 1]` 归一化值,**不合成单一 D_meta 数值**,以向量形式供上层消费。这样遵守「D_meta 不参与数值计算」的硬约束,同时给系统提供「外部压力有多大」的可观测信号。
|
|
84
|
+
|
|
85
|
+
**✅ v0.2 修订(已实现口径,逐条可复算;对应变更单 A.a)**:
|
|
86
|
+
|
|
87
|
+
| 代理 | 实现口径(`md_cg/d_meta.py`) | 归一化 |
|
|
88
|
+
|------|------------------------------|--------|
|
|
89
|
+
| `events_pressure` | `(recent 尾窗条数 + explore 尾窗条数) / (2×window)` | 天然 `[0,1]`(尾窗各自 ≤ window) |
|
|
90
|
+
| `unmodeled_growth` | `0.5×min(1, stock/100) + 0.5×((BLINDSPOT+DEFER)/全部资格态)`;`stock` = 索引中 `rejected`/`unresolved` 两层条目数(**零正文 IO**) | clamp `[0,1]` |
|
|
91
|
+
| `boundary_violation_rate` | `(REJECT+BLINDSPOT) / 全部资格态`(反思窗口 `states` 分布) | `[0,1]` |
|
|
92
|
+
|
|
93
|
+
- 尾窗读盘用 `d_meta.tail_jsonl(path, window)`(反向分块,读盘量 ≈ O(window),不扫全文件)。
|
|
94
|
+
- 进程内缓存 key = `(root, 反思条数, 层存量, recent 条数, explore 条数, window)`;无后台线程、无网络、无嵌入调用。
|
|
95
|
+
- 全部数据来自**已落盘留痕与索引**;`blindspots 项数` 的等价可观测量取反思窗口的 `BLINDSPOT` 计数(同一分布,避免重复全扫描)。
|
|
96
|
+
- **叶子只读模块纪律**:不 import `mdcg` / `mdcos`(防循环依赖);`metacognition` 惰性导入;**无任何写路径**。
|
|
97
|
+
|
|
98
|
+
### 2.2 修改 `mdcg.reflect`:双 D 同步落盘
|
|
99
|
+
|
|
100
|
+
在现有 `reflection` 记录里新增 `d_meta` 三字段:
|
|
101
|
+
|
|
102
|
+
```python
|
|
103
|
+
# mdcg.py reflect() 内新增
|
|
104
|
+
reflection["d_meta"] = d_meta # {events_pressure, unmodeled_growth, boundary_violation_rate}
|
|
105
|
+
reflection["d_meta_delta"] = ...
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
`d_meta` 由 `d_meta.compute(self, query, results)` 纯函数产出,不改变 `_compute_d` 的既有语义。
|
|
109
|
+
|
|
110
|
+
**✅ v0.2 修订(实现细节)**:`d_meta` 只落**三代理三键**(`PROXY_KEYS`);`d_meta_delta = d_meta.diff(上一条反思的 d_meta, 本次向量)`,**首条为 `None`**;`MDCG_D_META=0` 时三代理恒 0.0 且 `d_meta_delta=None`(**回退留痕,不是缺键**)。`_compute_d` 与其 docstring **一字未动**。
|
|
111
|
+
|
|
112
|
+
### 2.3 修改 `predict.score_route`:四维变五维(opt-in)
|
|
113
|
+
|
|
114
|
+
现有 D-004 四维:`trend / boundary / verification / balance`。
|
|
115
|
+
新增第五维 `meta_pressure`(来自 d_meta 向量),权重初始为 0(默认关闭),由 `PREDICTION_META_DIM=1` 显式启用。
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
W_META = getattr(env, "PREDICTION_META_DIM", 0.0) # 0=关闭,默认零变更
|
|
119
|
+
composite += W_META * meta_pressure
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**✅ v0.2 修订**:环境变量读的是**权重值**(`PREDICTION_META_DIM=0.2` → `W_META=0.2`;`1` 亦合法),非法值按 0 处理(不炸导入);第五维取值 = `d_meta.pressure(d_meta.compute(cg), PREDICTION_META_PROXY)`,**单一代理、禁加权合成**(变更单 A.c)。关闭时**不落 `meta_pressure` 键、`weights` 与 `SORT_KEYS` 均不扩张**(默认返回与四维时代逐字节一致);开启时 `catalog().weights` 同步扩张(防文档漂移)。导入期读一次环境变量。
|
|
123
|
+
|
|
124
|
+
### 2.4 修改 `autonomy.proposals`:ΔD_task × σ(Gain) 保留,D_meta 只做排序加分
|
|
125
|
+
|
|
126
|
+
现有评分:`score = W_D2*|d2| + W_BLINDSPOT*blindspot + W_DEFER*defer`。
|
|
127
|
+
新增 D_meta 加分项(非定价,只做排序微调):
|
|
128
|
+
|
|
129
|
+
```python
|
|
130
|
+
# autonomy.py proposals() 内
|
|
131
|
+
meta = d_meta.compute(cg, query, results) if query else {}
|
|
132
|
+
meta_score = meta.get("unmodeled_growth", 0.0) * W_DMETA # W_DMETA 初始 0.1
|
|
133
|
+
a["score"] = round(score + meta_score, 4)
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**边界**:D_meta 加分只影响排序,不影响 `gain_gate` 的 σ 资格筛选(后者只读 outcomes 实现值)。
|
|
137
|
+
|
|
138
|
+
**✅ v0.2 修订(实现形态与口径诚实标注)**:
|
|
139
|
+
|
|
140
|
+
- `a["score"]` **不再被改写**(仍是纯 ΔD 定价器);加分落在**新键** `a["d_meta_bonus"]` 与 `a["sort_score"] = score + bonus`,排序键改用 `(-sort_score, -last_t)`。理由:`score` 是定价器口径,回归断言与下游都按它比对,混合会把"定价"与"排序"两个语义压在一个字段上。
|
|
141
|
+
- 加分**每轮一次**(循环外 `mv = d_meta.compute(cg, window)`)并在循环内复用,**禁止 N× 扫描**;`reason` 追加 `D_meta 排序加分 +x(proxy=y,三代理不合成;不改资格/σ(Gain))`,同时保留 `d2` / `BLINDSPOT` 既有子串。
|
|
142
|
+
- **资格判据先于加分**:`score <= 0 → continue` 保持在加分之前(无信号不提案,D_meta 不构成资格)。
|
|
143
|
+
- **当前口径下排序不变**(诚实标注):代理取库侧 query 无关量,同轮各提案加分**同值** → 排序与旧版逐位一致;区分性须待 query-relative 口径(`_neg_coverage`)在 `reflect` 侧落盘后才生效——**不提前编造区分性**。
|
|
144
|
+
|
|
145
|
+
### 2.5 修改 `autonomy.gain_gate`:实现值增加 D_meta 维度
|
|
146
|
+
|
|
147
|
+
当前 outcomes 只记 terminal(`carried/unresolved/...`),扩展为:
|
|
148
|
+
|
|
149
|
+
```python
|
|
150
|
+
outcomes = {
|
|
151
|
+
bid: {
|
|
152
|
+
"terminal": step["terminal"],
|
|
153
|
+
"d_meta_before": step.get("d_meta_before"),
|
|
154
|
+
"d_meta_after": step.get("d_meta_after"),
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
`gain_gate` 读取时新增 `d_meta_delta = after - before`,若连续多轮 `d_meta_delta > 0` 且 terminal 停滞,则 `sigma = 0`(D_meta 持续扩大 → 无增益,冷却)。
|
|
160
|
+
|
|
161
|
+
**✅ v0.2 修订(契约保护,对应变更单 A.b)**:**上述 dict 化被否决**——`outcomes[bid]` 保持**终态字符串**(`test_gain_gate ⑤b` 的五态守卫 + `gain_gate` 的停滞集比对都依赖它;dict 化会让 σ 静默恒 1.0)。D_meta 维度**并列**落在 `explore` 留痕新键:
|
|
162
|
+
|
|
163
|
+
```python
|
|
164
|
+
"meta_outcomes": {"before": {...三代理...}, "prev_before": {...} | None,
|
|
165
|
+
"delta": diff(prev_before, before), "proxy": ..., "enabled": ...}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
`delta` 是**跨轮压力增量**(本轮 before − 上一条 explore 的 before,含上轮 apply 效果),`gain_gate` 取与该 bid 相关轮次的 `delta[proxy]` 求均值:
|
|
169
|
+
|
|
170
|
+
- 均值 > 0 且终态全停滞且**冷却已过** → `sigma = 0`(`DEFER_EXHAUSTED_UNDER_PRESSURE`,`meta_rising=True`):压力扩大而终态停滞 = 重复探索不再产生增益,**冷却期延长**。
|
|
171
|
+
- 均值 ≤ 0 或 `meta_outcomes` 键缺失 → **不触发**(既有 ①–④ 行为逐字不变,旧留痕天然兼容)。
|
|
172
|
+
|
|
173
|
+
### 2.6 修改 `predict.feedback`:sync_self 侧增加 D_meta 审计
|
|
174
|
+
|
|
175
|
+
`self_state.refresh` 当前已刷新 `prediction_hit_rate` 等字段,新增 `d_meta_trend`(最近 N 轮 `d_meta.unmodeled_growth` 均值),供自我模型观测「边界压力趋势」。
|
|
176
|
+
|
|
177
|
+
**✅ v0.2 修订(落点澄清)**:实现落在 `self_state._prediction_face` 的 `d_meta_trend`(**由 `self_state.refresh` 聚合进状态卡**,故 `predict.feedback → sync_self → refresh` 链路自然带着它),`predict.feedback` 本体不改。`_d_meta_trend(cg, window=20)` 是**反思日志的确定性函数**(无留痕时回落当前单代理值,不可用为 `None`);`_render` 状态卡新增一行「D_meta:边界压力趋势」(人可读观测面)。
|
|
178
|
+
|
|
179
|
+
## 3. 最小侵入实现路线图(不改既有默认行为)
|
|
180
|
+
|
|
181
|
+
| 阶段 | 文件 | 改动 | 默认行为 | 验证 |
|
|
182
|
+
|------|------|------|----------|------|
|
|
183
|
+
| 1 | `md_cg/d_meta.py`(新) | 三代理纯函数 + `compute()` | 零变更 | `test_d_meta.py` 20 断言 |
|
|
184
|
+
| 2 | `mdcg.py` reflect | 落 `d_meta/d_meta_delta` | 零变更(新增字段) | `test_p12` 回归 |
|
|
185
|
+
| 3 | `predict.py` score_route | 第五维 meta_pressure(权重 0) | 零变更 | `test_predict_beta` 回归 |
|
|
186
|
+
| 4 | `autonomy.py` proposals | D_meta 加分(权重 0) | 零变更 | `test_autonomy` 回归 |
|
|
187
|
+
| 5 | `autonomy.py` gain_gate | outcomes 扩展 d_meta 维度 | 零变更 | `test_gain_gate` 回归 |
|
|
188
|
+
| 6 | 生产库运行 | `MDCG_D_META=1` 开启 | 默认关闭 | 48h 轨迹审计 |
|
|
189
|
+
|
|
190
|
+
**✅ v0.2 修订(实际交付与偏差)**:
|
|
191
|
+
|
|
192
|
+
- 阶段 3/4 的「权重 0」与 §2.4「W_DMETA=0.1」冲突 → 按 **§2.4 优先**:`W_DMETA=0.1` **默认生效**;`PREDICTION_META_DIM` 仍为 **opt-in(默认 0)**。
|
|
193
|
+
- 阶段 5 的「outcomes 扩展」改为「并列 `meta_outcomes`」(见 §2.5 修订)。
|
|
194
|
+
- 阶段 6 的开关语义:**默认开启**(`MDCG_D_META` 未设即生效),置 `0` 显式回退——与 v0.1「默认关闭」相反,理由:本轮只交付结构性投影且全部可回退,默认关闭会使"交付即不可观测"。
|
|
195
|
+
- **实际交付状态(2026-09-20)**:阶段 1–5 完成;`test_d_meta.py` 实际 **66 断言**(>20);全组 `md_cg` 回归 **113/113**、`gain_gate` 21/21、`autonomy` 14/14;阶段 6 未执行。
|
|
196
|
+
|
|
197
|
+
## 4. 关键诚实边界(必须写进代码注释/文档)
|
|
198
|
+
|
|
199
|
+
1. **D_meta 不合成单一数值**:它是三指标向量,任何把三指标加权为单一 `D_meta` 数值的企图都违反 DEV-002a。
|
|
200
|
+
2. **D_meta 不参与 D_task 的计算**:`_compute_d` 不动,`D_task` 口径零变更。
|
|
201
|
+
3. **D_meta 代理是诚实估计**:`events_pressure` 只计「进入系统但未被消化的事件」,不是「世界真实未发生事件」——后者不可观测。
|
|
202
|
+
4. **统一变量边界**:审美/创造/非任务探索的 `bypass_gain=True` 已存在,D_meta 只做排序加分不改变资格筛选,不侵犯边界条款。
|
|
203
|
+
5. **✅ v0.2 新增|第五维不得加权合成**:`meta_pressure` 只允许取**单一指定代理**(`d_meta.pressure(vec, key)` 为该访问模式的唯一入口);三代理加权即违反 DEV-002a。
|
|
204
|
+
6. **✅ v0.2 新增|区分性诚实标注**:`W_DMETA` 加分在当前库侧 query 无关口径下**同轮同值**,排序不产生区分;区分性依赖 query-relative 口径(`_neg_coverage`)未来在 `reflect` 侧落盘,**现阶段不宣称**。
|
|
205
|
+
7. **✅ v0.2 新增|增定律只被观测不被运算**:模块不含任何「缩小 D_meta」的运算路径;`d_meta_delta > 0` 仅用于冷却判定(不因压力上升去"优化"压力)。
|
|
206
|
+
|
|
207
|
+
## 5. 关联
|
|
208
|
+
|
|
209
|
+
- 缺口矩阵:`docs/theory/理论_机制_代码_实验_缺口矩阵_v0.1.md` #31/#33
|
|
210
|
+
- 理论真源:`docs/智能论3.4.md` §2.7.0 DEV-002/DEV-002a、§2.9.3.1
|
|
211
|
+
- 既有桥接:`dnorm_bridge_and_boundary_clause`(#32/#39 收口)
|
|
212
|
+
- 依赖能力:`predict.py` / `autonomy.py` / `mdcg.py` reflect
|
|
213
|
+
- **✅ v0.2 新增|实现与验证入口**:
|
|
214
|
+
- 模块:`md_cg/d_meta.py`(`compute` / `pressure` / `diff` / `tail_jsonl` / `catalog`)
|
|
215
|
+
- 观测面:`cg(op=metacognition, action="d_meta")`、`mdcos.metacognition_d_meta(window)`
|
|
216
|
+
- 自检:`python -m md_cg.test_d_meta`(66 断言);回归:`python scripts/run_tests.py md_cg`
|