@furongjun1999/dsh-memory 0.6.0 → 0.7.0
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 +618 -572
- package/codebuddy/CODEBUDDY.md +10 -10
- package/data/policy.json +27 -0
- package/docs/README.md +1 -0
- package/docs/discipline/harnesses.yaml +31 -0
- package/docs/discipline/templates/full.md.tmpl +1 -1
- package/docs/discipline/templates/rules.mdc.tmpl +1 -1
- package/docs/eval/N225_/347/264/242/345/274/225/346/227/245/345/277/227/351/235/236/345/257/271/350/261/241/350/243/205/350/275/275/351/235/242/347/261/273/345/236/213/351/227/270_v1.0.md +418 -0
- package/docs/eval/issue43_/351/273/230/350/256/244/347/255/226/347/225/245/344/270/216/351/224/256/347/261/273/345/236/213/351/227/270_v1.1.md +441 -0
- package/docs/eval/issue43_/351/273/230/350/256/244/347/255/226/347/225/245/345/212/240/350/275/275/344/270/216/345/207/255/346/215/256/346/230/216/346/226/207/351/230/237/345/210/227_v1.0.md +398 -0
- package/docs/eval//344/274/230/345/214/226/347/254/254/344/270/200/346/211/271_/346/216/245/347/272/277/344/270/216/347/255/211/344/273/267/345/217/230/346/215/242_v1.0.md +498 -0
- package/docs/eval//344/274/230/345/214/226/347/254/254/344/270/211/346/211/271_/351/227/250/347/246/201/350/275/254/346/255/243/344/270/216/350/260/203/345/272/246/346/255/242/350/241/200/344/270/216/351/227/250/346/216/247/346/224/266/345/217/243_v1.0.md +669 -0
- package/docs/eval//344/274/230/345/214/226/347/254/254/344/272/214/346/211/271_/344/276/235/350/265/226/351/200/217/344/274/240/344/270/216/345/257/271/346/213/215/345/217/243/345/276/204/344/270/216/350/264/237/347/274/223/345/255/230_v1.0.md +683 -0
- package/docs/eval//345/207/272/350/264/247/351/235/242/345/206/222/347/203/237_/350/277/233/350/264/247/351/227/250/347/246/201_v1.0.md +460 -0
- package/docs/eval//345/217/221/345/270/20307_/345/244/226/351/203/250/346/212/245/345/221/212/345/233/233/346/211/271/344/277/256/345/244/215/344/270/216/346/217/222/344/273/266/351/235/242/345/212/240/345/233/272_v1.0.md +205 -0
- package/docs/eval//345/217/221/345/270/20308_/350/207/252/350/277/255/344/273/243/344/270/216/347/235/241/347/234/240_/345/233/276/346/243/200/347/264/242/350/267/257/344/270/216/346/235/203/351/207/215_v1.0.md +97 -0
- package/docs/eval//345/275/222/344/270/200/345/261/202/347/274/272/347/234/201/347/277/273/345/205/263_/344/277/256/345/244/215/350/256/260/345/275/225_v1.0.md +458 -0
- package/docs/eval//346/200/247/350/203/275/344/270/223/351/241/271_/345/206/267/346/237/245/350/257/242/344/270/216/345/206/205/345/255/230_v1.0.md +218 -0
- package/docs/eval//346/225/205/351/232/234/346/263/250/345/205/245/345/256/236/346/265/213_v1.0.md +10 -0
- package/docs/eval//347/274/226/347/240/201/351/235/242/345/211/215/347/275/256_/345/205/245/345/217/243/350/207/252/344/277/235/350/257/201UTF8/344/270/216/346/226/207/346/234/254open/345/256/210/345/215/253_v1.0.md +646 -0
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v20.md +283 -0
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v21.md +224 -0
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v22.md +223 -0
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v23.md +293 -0
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v24.md +303 -0
- package/docs/eval//347/274/272/351/231/267/346/214/226/346/216/230_/350/207/252/344/270/273/350/277/255/344/273/243_v25.md +230 -0
- package/docs/hive//346/243/200/347/264/242/347/256/227/346/263/225/345/217/243/345/276/204/345/257/271/347/205/247_v0.1.md +136 -11
- 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 +52 -2
- package/docs/hive//350/234/202/345/267/242M6_ingest/345/256/236/346/226/275/350/256/241/345/210/222_v0.1.md +1 -1
- package/docs/mdcg/README/350/257/246/347/273/206/347/211/210_v0.4.10.md +100 -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 +40 -40
- package/docs/mdcg//345/217/221/345/270/203/351/227/250/347/246/201/351/223/276_v0.1.md +57 -9
- 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 +7 -2
- package/docs/mdcg//347/235/241/347/234/240/345/221/250/346/234/237_/350/277/220/347/273/264/345/211/215/346/217/220/344/270/216/347/273/264/346/212/244/346/214/207/345/215/227_v1.0.md +183 -0
- package/docs/mdcg//350/256/244/347/237/245/345/233/276_/347/264/242/345/274/225/344/270/216/345/267/245/347/250/213/350/247/204/350/214/203/345/214/226_/350/256/241/345/210/222_v0.1.md +39 -3
- package/docs/plans//345/205/250/344/270/255/346/226/207/347/274/226/347/240/201/344/270/216/350/234/202/345/267/242/344/273/273/345/212/241/346/240/207/350/257/206/345/245/221/347/272/246_v2.0.md +220 -0
- package/docs/plans//347/234/237/346/272/220/347/264/242/345/274/225_/351/200/232/347/224/250/346/234/272/345/210/266_v0.3.md +227 -0
- package/docs/plans//347/235/241/347/234/240/344/270/216/350/207/252/350/277/255/344/273/243_/345/212/237/350/203/275/344/274/230/345/214/226/350/256/276/350/256/241_v0.4.md +547 -0
- package/docs/plans//350/234/202/345/267/242/346/250/241/345/236/213/345/257/206/351/222/245/351/205/215/347/275/256/351/235/242_v1.0.md +385 -0
- 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 +460 -460
- package/lib/bridge.js +24 -2
- package/lib/hooks.d.ts +31 -2
- package/lib/hooks.js +219 -16
- package/lib/init.js +16 -1
- package/lib/lib/prompt_safety.d.ts +52 -1
- package/lib/lib/prompt_safety.js +76 -1
- package/md_cg/audit.py +652 -379
- package/md_cg/bench6_arms.py +1 -1
- package/md_cg/bench_e2e_locomo_qa.py +11 -4
- package/md_cg/bench_p0.py +1 -1
- package/md_cg/branches.py +2 -2
- package/md_cg/ccgc.py +1071 -1006
- package/md_cg/chain.py +48 -1
- package/md_cg/consistency.py +97 -9
- package/md_cg/consolidate.py +34 -9
- package/md_cg/crypto.py +59 -26
- package/md_cg/docindex.py +16 -1
- package/md_cg/evolution.py +17 -1
- package/md_cg/export.py +1 -1
- package/md_cg/forgetting.py +309 -13
- package/md_cg/freshness.py +511 -0
- package/md_cg/fsutil.py +454 -8
- package/md_cg/generation.py +409 -0
- package/md_cg/hotcache.py +4 -1
- package/md_cg/identity.py +3 -3
- package/md_cg/insight.py +24 -3
- package/md_cg/linkref.py +1 -1
- package/md_cg/logref.py +327 -0
- package/md_cg/mcp_server.py +4261 -3818
- package/md_cg/mdcg.py +4695 -3547
- package/md_cg/mdcos.py +4672 -4159
- package/md_cg/mreview/pipeline.py +15 -1
- package/md_cg/nodefile.py +713 -576
- package/md_cg/protect.py +158 -11
- package/md_cg/protocol.py +41 -2
- package/md_cg/provenance.py +22 -4
- package/md_cg/reach.py +4 -4
- package/md_cg/readcache.py +76 -15
- package/md_cg/reconcile.py +1 -1
- package/md_cg/refindex.py +246 -37
- package/md_cg/refine.py +1 -1
- package/md_cg/routing.py +32 -5
- package/md_cg/run_tests.py +17 -0
- package/md_cg/scrub.py +30 -3
- package/md_cg/security.py +47 -1
- package/md_cg/self_state.py +5 -5
- package/md_cg/semantic/canonical.py +22 -0
- package/md_cg/semantic/unify.py +73 -22
- package/md_cg/semantic/unify_fixture.json +25 -0
- package/md_cg/sleep.py +1297 -0
- package/md_cg/sources.py +23 -6
- package/md_cg/srcindex.py +352 -0
- package/md_cg/stg.py +47 -3
- package/md_cg/subgraph.py +2 -2
- package/md_cg/sustain.py +1436 -1168
- package/md_cg/tasks.py +469 -470
- package/md_cg/test_auto_defaults.py +424 -0
- package/md_cg/test_b1_auto_id_multiproc.py +277 -0
- package/md_cg/test_b1b2_write_face.py +417 -0
- package/md_cg/test_b2_sensitivity_landing.py +223 -0
- package/md_cg/test_b3_merge_keeps_content.py +576 -0
- package/md_cg/test_b4_shard_dir_selfheal.py +843 -0
- package/md_cg/test_b4_shard_dir_selfheal_guard.py +238 -0
- package/md_cg/test_boundary_hit.py +410 -0
- package/md_cg/test_c3_transient_read_negative.py +793 -0
- package/md_cg/test_c8_search_rrf_gates.py +502 -0
- package/md_cg/test_ccg_form_parity.py +188 -0
- package/md_cg/test_ccgc.py +28 -3
- package/md_cg/test_en_pipeline.py +22 -13
- package/md_cg/test_generation_guard.py +352 -0
- package/md_cg/test_govern_directread.py +17 -4
- package/md_cg/test_h2_session_view_norm.py +233 -0
- package/md_cg/test_h4_sustain_snapshot.py +1387 -0
- package/md_cg/test_hive_ingest.py +285 -285
- package/md_cg/test_issue39_utf8_stdio.py +307 -16
- package/md_cg/test_issue43_default_policy.py +865 -0
- package/md_cg/test_legacy_p3_node_id_type.py +375 -0
- package/md_cg/test_linkref.py +10 -3
- package/md_cg/test_lock.py +2 -2
- package/md_cg/test_logref.py +1109 -0
- package/md_cg/test_m3_h9_bucket_health_protect_mark.py +301 -0
- package/md_cg/test_m3_h9_semantic_guard.py +525 -0
- package/md_cg/test_mr_m2.py +15 -3
- package/md_cg/test_n130_verify_falsified_protect.py +1 -1
- package/md_cg/test_n139_dek_provision_failclosed.py +185 -0
- package/md_cg/test_n176_link_trust.py +221 -0
- package/md_cg/test_n178_units_jobid_gate.py +212 -0
- package/md_cg/test_n184_keys_concurrent_provision.py +307 -0
- package/md_cg/test_n195_writepath_reload.py +283 -0
- package/md_cg/test_n196_stale_gate_skip.py +169 -0
- package/md_cg/test_n197_n208_write_face_gates.py +471 -0
- package/md_cg/test_n198_tokens_corrupt_failclosed.py +225 -0
- package/md_cg/test_n199_tokens_concurrent_write.py +378 -0
- package/md_cg/test_n201_proposal_visibility.py +382 -0
- package/md_cg/test_n202_session_notes_visibility.py +461 -0
- package/md_cg/test_n204_n205_n226_n227_n228_n229_exit_gates.py +542 -0
- package/md_cg/test_n206_stdio_jsonrpc_type.py +403 -0
- package/md_cg/test_n209_verify_write_face_gates.py +461 -0
- package/md_cg/test_n212_n213_n224_generation_gates.py +519 -0
- package/md_cg/test_n214_n215_n221_n222_write_face_gates.py +563 -0
- package/md_cg/test_n225_nonobject_load.py +1110 -0
- package/md_cg/test_n230_dirty_replay.py +375 -0
- package/md_cg/test_n62_tenant_bind_failclosed.py +200 -0
- package/md_cg/test_neg_condition_hits.py +333 -0
- package/md_cg/test_neg_tail_honesty.py +663 -0
- package/md_cg/test_none_id_write_guard.py +4 -3
- package/md_cg/test_opt_batch1_md_cg.py +451 -0
- package/md_cg/test_p1.py +5 -5
- package/md_cg/test_p11_consistency.py +161 -12
- package/md_cg/test_p26_refindex.py +2 -2
- package/md_cg/test_p27_docindex.py +777 -774
- package/md_cg/test_p28_refcheck.py +740 -13
- package/md_cg/test_p29_session_ingest_export.py +2 -2
- package/md_cg/test_p2_mcp.py +12 -1
- package/md_cg/test_p2_six_elements.py +463 -0
- package/md_cg/test_p30_maintain.py +33 -2
- package/md_cg/test_p31_insight.py +1 -0
- package/md_cg/test_p3_legacy_closure.py +433 -0
- package/md_cg/test_p4_freshness.py +680 -0
- package/md_cg/test_p8_subgraph_chain.py +14 -1
- package/md_cg/test_p9c_dedup_hints.py +276 -0
- package/md_cg/test_policy_required_ccg.py +426 -0
- package/md_cg/test_protocol.py +22 -0
- package/md_cg/test_rank_parity_score_mode.py +522 -0
- package/md_cg/test_read_face_input_gates.py +363 -0
- package/md_cg/test_read_face_semantics.py +489 -0
- package/md_cg/test_recall_face_guards.py +812 -0
- package/md_cg/test_rejected_credential_forms.py +188 -0
- package/md_cg/test_rejected_redact.py +146 -0
- package/md_cg/test_retr_s1b.py +2 -2
- package/md_cg/test_retr_s5.py +20 -7
- package/md_cg/test_review_conformance.py +21 -3
- package/md_cg/test_security_audit_v21.py +2 -2
- package/md_cg/test_semantic_canonical.py +5 -3
- package/md_cg/test_server_version.py +67 -0
- package/md_cg/test_sleep.py +611 -0
- package/md_cg/test_sleep_p1.py +784 -0
- package/md_cg/test_srcindex.py +171 -0
- package/md_cg/test_tenant_env_override_warn.py +63 -50
- package/md_cg/test_time_core_lint.py +968 -0
- package/md_cg/test_token_lowercase_form.py +315 -0
- package/md_cg/test_unify_default_off.py +701 -0
- package/md_cg/test_unify_scope.py +182 -0
- package/md_cg/test_v21r1_package_version.py +310 -0
- package/md_cg/test_writepipe.py +10 -4
- package/md_cg/tokens.py +225 -95
- package/md_cg/tool_face.py +4 -4
- package/md_cg/trust.py +49 -5
- package/md_cg/units.py +204 -6
- package/md_cg/weights.py +4 -4
- package/md_cg/whitebox_kb/aeis_core/time_core.py +8 -0
- package/md_cg/whitebox_kb/wisdom/knowledge_points.py +1 -1
- package/md_cg/writelimit.py +42 -8
- package/md_cg/writepipe.py +651 -554
- package/package.json +4 -2
- package/skills/plugin.json +1 -1
- package/src/bridge.ts +25 -2
- package/src/hooks.ts +229 -16
- package/src/init.ts +15 -1
- package/src/lib/prompt_safety.ts +88 -1
- package/utf8_boot.py +237 -0
- package/zcode/AGENTS.md +10 -10
package/codebuddy/CODEBUDDY.md
CHANGED
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
|
|
3
3
|
> 本文件由 `scripts/render_discipline.py` 从真源
|
|
4
4
|
> `docs/工作纪律_认知图条目_v1.1.json` 渲染生成,**请勿手改**;改真源后重跑渲染。
|
|
5
|
-
> 真源指纹(SHA256 前16位):
|
|
5
|
+
> 真源指纹(SHA256 前16位):e1e9112a409894aa
|
|
6
6
|
|
|
7
7
|
## 概述
|
|
8
8
|
|
|
9
|
-
工作纪律集: 4条方法论(理论先行/全面处理/白箱方法/根因) + 3条执行(验证/双副本/兜底) + 1条思考(中文思考/协作模式分级) + 1条保密(敏感信息隔离) + 3条图像线(选源护栏/历史查询优先/算法权威唯一) + 1条协作(访谈澄清:先问清再动手) + 1条合规(内容政策合规:公开产物过内容政策+隐私双清单) + 2条执行调度与运行环境(命令执行统一走python/UTF-8: 显式encoding+PYTHONUTF8=1, 规避GBK; 任务派发统一走蜂巢: 任何执行性任务经蜂巢spawn/submit执行并留痕, agent本体只做编排, L1出口=产物落点为只读判定(不改仓库/外部状态)可直跑须留痕) + 1条记忆闭环(任务收尾归档:每次任务执行完只将核心修改(内容/原因/位置/验证结论)按CCG六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆,
|
|
9
|
+
工作纪律集: 4条方法论(理论先行/全面处理/白箱方法/根因) + 3条执行(验证/双副本/兜底) + 1条思考(中文思考/协作模式分级) + 1条保密(敏感信息隔离) + 3条图像线(选源护栏/历史查询优先/算法权威唯一) + 1条协作(访谈澄清:先问清再动手) + 1条合规(内容政策合规:公开产物过内容政策+隐私双清单) + 2条执行调度与运行环境(命令执行统一走python/UTF-8: 显式encoding+PYTHONUTF8=1, 规避GBK, 全仓文本与路径一律UTF-8(无BOM, 中文可进路径), 不做控制台兼容(取用走python); 任务派发统一走蜂巢: 任何执行性任务经蜂巢spawn/submit执行并留痕, agent本体只做编排, L1出口=产物落点为只读判定(不改仓库/外部状态)可直跑须留痕) + 1条记忆闭环(任务收尾归档:每次任务执行完只将核心修改(内容/原因/位置/验证结论)按CCG六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆, 不写中间过程; text 类缺要素即被写入闸门拒并当场返回缺失清单) + 1条信息获取(工作区索引优先: 查工作区文件先读 WORKSPACE_INDEX.md(仓根, 由 scripts/workspace_index.py 从 git 追踪面管线生成), 尚无则先跑 --write 生成再读, 不以重复全盘浏览代替; 索引是会陈化的手工件, 故须管线生成+机械守卫, 否则退化为误导源)
|
|
10
10
|
|
|
11
11
|
## 执行公约
|
|
12
12
|
|
|
@@ -121,16 +121,16 @@
|
|
|
121
121
|
### 15. 命令执行统一走python
|
|
122
122
|
|
|
123
123
|
- **触发**:执行命令|运行测试/脚本|跨进程读写文本
|
|
124
|
-
- **动作**:构造 argv 列表→subprocess.run(capture_output=True, text=True, encoding='utf-8', errors='replace')→env 带 PYTHONUTF8=1→shell=False
|
|
125
|
-
- **不适用**:IDE
|
|
126
|
-
- **声明**:按工作纪律第15条: 命令执行统一走python——argv列表+显式UTF-8+PYTHONUTF8=1, 不经Windows shell, 规避GBK解码异常。
|
|
124
|
+
- **动作**:构造 argv 列表→subprocess.run(capture_output=True, text=True, encoding='utf-8', errors='replace')→env 带 PYTHONUTF8=1→shell=False;边界判据=本次调用是否产出非UTF-8字节流(纯MSYS工具与不起进程的内置工具豁免;原生Windows程序不豁免,须python包装或显式解码)
|
|
125
|
+
- **不适用**:IDE内置工具直调(判据=本次调用是否产出非UTF-8字节流;不起进程的内置工具(Read/Write/Edit/Grep/Glob/WebFetch)与纯MSYS工具(grep/ls/sed)归入本豁免;拉起shell且执行原生Windows程序者(taskkill/wmic/npm.cmd/cargo/where)不属本豁免,仍须python包装或对输出显式解码;2026-09-28使用者裁定)|无跨进程的纯内存计算
|
|
126
|
+
- **声明**:按工作纪律第15条: 命令执行统一走python——argv列表+显式UTF-8+PYTHONUTF8=1, 不经Windows shell, 规避GBK解码异常。 另: 全仓文本与路径/文件名一律UTF-8(中文可进路径), 不做控制台兼容(取用走python, 控制台乱码属显示层)。
|
|
127
127
|
|
|
128
128
|
### 16. 任务收尾归档(记忆闭环)
|
|
129
129
|
|
|
130
130
|
- **触发**:任务执行完成|修改落地后|交付后
|
|
131
|
-
- **动作**:任务收尾→提炼核心修改(内容/原因/位置/验证结论四要素, 不写中间过程/试错/调试/重复确认)→按 CCG 六要素成文(# 功能名/# 生效条件/# 子功能/# 执行/# 验证方式/# 不适用条件 六行缺一不可, 与正文四要素并置)→写入灵枢记忆(认知图/MCP memory)
|
|
131
|
+
- **动作**:任务收尾→提炼核心修改(内容/原因/位置/验证结论四要素, 不写中间过程/试错/调试/重复确认)→按 CCG 六要素成文(# 功能名/# 生效条件/# 子功能/# 执行/# 验证方式/# 不适用条件 六行缺一不可, 与正文四要素并置)→写入灵枢记忆(认知图/MCP memory)——text 类缺要素即被写入闸门拒(REJECT, 当场返回缺失清单, 不是重试无用), 按清单补齐后重写即可→读回确认(写入后发起一次读取查询确认写入成功且可检索)→标注关联条目+更新 subgraph/depends_on
|
|
132
132
|
- **不适用**:情感交互|闲聊|纯查询无改动
|
|
133
|
-
- **声明**:按工作纪律第16条: 任务收尾归档——每次任务执行完只提炼核心修改(内容/原因/位置/验证结论)并按 CCG 六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)
|
|
133
|
+
- **声明**:按工作纪律第16条: 任务收尾归档——每次任务执行完只提炼核心修改(内容/原因/位置/验证结论)并按 CCG 六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆(text 类六要素缺失会被写入闸门当场拒绝并返回缺失清单——补齐后重写即可, 不必等读回确认才发现), 写入后发起一次读取查询确认写入成功且可检索, 禁写中间过程/试错/调试等无效信息, 与第2条形成「查记忆→执行→写记忆→读回确认」闭环。
|
|
134
134
|
|
|
135
135
|
### 17. 任务派发统一走蜂巢
|
|
136
136
|
|
|
@@ -164,8 +164,8 @@
|
|
|
164
164
|
| 12 | 按工作纪律第12条: 算法权威唯一(线稿=darkline.py/色块=contour_semantics)——选算法查文档, 勿临时切换/漂移; 换算法须记录+更新文档。 |
|
|
165
165
|
| 13 | 按工作纪律第13条: 访谈澄清——先提问确认要做什么,逐轮问到完全清楚才动手;事实自查,决策归使用者,不完全清楚不固化。 |
|
|
166
166
|
| 14 | 按工作纪律第14条: 内容政策合规——对外公开产物必须过「内容政策+隐私」双清单,过滤在生成阶段做;已发布发现违规要删条+重写git历史+通知平台清缓存。 |
|
|
167
|
-
| 15 | 按工作纪律第15条: 命令执行统一走python——argv列表+显式UTF-8+PYTHONUTF8=1, 不经Windows shell, 规避GBK解码异常。 |
|
|
168
|
-
| 16 | 按工作纪律第16条: 任务收尾归档——每次任务执行完只提炼核心修改(内容/原因/位置/验证结论)并按 CCG 六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)
|
|
167
|
+
| 15 | 按工作纪律第15条: 命令执行统一走python——argv列表+显式UTF-8+PYTHONUTF8=1, 不经Windows shell, 规避GBK解码异常。 另: 全仓文本与路径/文件名一律UTF-8(中文可进路径), 不做控制台兼容(取用走python, 控制台乱码属显示层)。 |
|
|
168
|
+
| 16 | 按工作纪律第16条: 任务收尾归档——每次任务执行完只提炼核心修改(内容/原因/位置/验证结论)并按 CCG 六要素(功能名/生效条件/子功能/执行/验证方式/不适用条件)成文存入灵枢记忆(text 类六要素缺失会被写入闸门当场拒绝并返回缺失清单——补齐后重写即可, 不必等读回确认才发现), 写入后发起一次读取查询确认写入成功且可检索, 禁写中间过程/试错/调试等无效信息, 与第2条形成「查记忆→执行→写记忆→读回确认」闭环。 |
|
|
169
169
|
| 17 | 按工作纪律第17条: 任务派发统一走蜂巢——任何执行性任务经蜂巢 spawn/submit 执行并留痕(spec/status/result), agent本体只做编排; 宿主自带subagent/team不是等价通道, 兜底须声明。L1只读判定(产物落点=不改仓库/外部状态)可直跑, 须输出「L1 直跑:<命令> — 风险/频次/可逆性」留痕。 |
|
|
170
170
|
| 18 | 按工作纪律第18条: 工作区索引优先——查工作区文件先读 WORKSPACE_INDEX.md(仓根, 管线生成); 无则先跑 scripts/workspace_index.py --write 生成再读, 不以重复全盘浏览代替。 |
|
|
171
171
|
|
|
@@ -188,7 +188,7 @@
|
|
|
188
188
|
|
|
189
189
|
三条调用铁律:
|
|
190
190
|
1. **`op` 必填**——漏传会触发参数签名推导兜底(返回标记 `op_derived: true`),复杂任务中也必须显式传,防静默执行错误意图。
|
|
191
|
-
2. **返回 `moved_to: "review_queue"` / `verdict: DEFER
|
|
191
|
+
2. **返回 `moved_to: "review_queue"` / `verdict: DEFER` 时不要重试**——这是校验闸门的正常行为(返回自带 `hint` 说明下一步);落盘须经裁决(`op=review` 的 `decision=accept/reject/edit/merge/noop`,本机工具:`python scripts/review_cli.py list`)。**裁决权(2026-09-28 使用者裁定)**:写入者不得自裁——不得自己写、自己判、无复核一路到底;**经蜂群或验证端复核后,agent 可自行执行裁决**,不必每次转告使用者。**三类例外不适用该授权,必须转交使用者并止步**:①不适用于智能论这类重要协议真源的修改;②不适用于向外部发送信息和数据;③不适用于可能造成信息泄露/病毒/恶意操纵的动作。**`verdict: REJECT` 分两类,处置相反**:① 命中禁止规则(内容政策违规)→ 内容本身不该入库,重试同样结果;② 缺必需要素(`text` 类缺 CCG 六要素)→ **可修正**,按 `verdict.evidence` / `verdict.detail.missing` 给出的**完整缺失清单**补齐六要素后**重写**即落盘(本条未入库、已记入负记忆)——不要把它当「闸门故障」或「重试无用」。
|
|
192
192
|
3. `stg` 同理经 `op` 分发(`timeline` / `relation` / `anchors` 等)。
|
|
193
193
|
|
|
194
194
|
## 收尾强制流程(任务完成时不可跳过)
|
package/data/policy.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_comment": "灵枢写入审核策略(合规 + 纪律)。由 md_cg/audit.py:load_rulebook() 经 MDCG_POLICY_FILE 读取。forbidden=命中即 REJECT(禁止写入,对所有 content_kind 生效);required=缺失即 REJECT(必需要素,默认对所有 kind 生效,可由 required_kinds 收窄到指定 kind)。两者全空则 text 类写入恒判 DEFER('无规则不能假装合规')。required 缺失时返回体如实列出全部缺失项并记入负记忆(rejected),补齐后重写即可——不是重试无用。",
|
|
3
|
+
"_note": "本文件只放**高精度**模式——宁可漏报也不误伤正常记忆。长 hex(git SHA)等易误伤的模式刻意不收。`tk_[0-9a-f]{8,}` 是灵枢令牌 id 形态(2026-09-28 增,使用者裁定):令牌 id 本身即凭据,正文里出现即视为凭据入库——此前一批归档实测有一条明文令牌正是因缺此模式而过了闸(仓库发版门禁 check_publish_artifact 早有同类 TOKEN_MDCG 规则,写入闸门此前没有),补上后「凭据不入库」在写入当刻才真正成立;不误伤 `tk_fake`/`tk_zzzz` 一类非 hex 哑值。required 当前收窄到 text 类(required_kinds=['text']):六要素是「归档写入成文格式」的要求,work_wip 等过程性内容不受此约束,但 forbidden 仍对其生效。required_labels 与去空后的 required 一一对应,仅用于报错展示(写入返回的缺失清单),不影响判定;该键缺失或与 required 长度不一致时回落显示正则串本身。**形态口径(2026-09-28 收单点)**:必需正则 `^#\\s*<要素名>` **不要求冒号**——`# 生效条件:<值>` 与 `# 生效条件` 后换行接值两种形态都算已声明;检索面判据 `md_cg/nodefile.py::ccg_mark_present`(及其取值面 `ccg_field_value`)已与本文件**同一正则语义**。此前检索面要求冒号,致无冒号归档过闸后被判 BLINDSPOT(存量实测 88 件,收单点后复扫不一致 = 0)。另注:二级标题 `## <要素名>` 与缩进标题两侧**同判不认**——这是与正则一致的边界,非疏漏。**全形态令牌(2026-09-28 增,PR#44 复核时补)**:`mdcg1\\.[A-Za-z0-9._\\-]{20,}`—— 令牌是 `mdcg1.<role>.<id>.<secret>`(tokens.make_token);只禁 id 段会让「id 命中而 role/密钥段落进负记忆」:负记忆脱敏按命中片段替换,掩掉 id 却留着密钥段。本条与发布门禁 `check_publish_artifact` 的 TOKEN_MDCG **同一口径**(写入闸门此前没有 = 两闸分叉)。注意:写入闸门**不做**发布闸那种占位符豁免(那是「红着等于没门禁」的取舍),故正文里连示例令牌也会被拒——写格式请用泛形 `mdcg1.<role>.<id>.<secret>`(尖括号不在字符类内,不命中)。调整规则只需改本文件,无需改代码。**受理面口径(2026-09-28 同日裁定「不认大写,统一只认小写」)**:`md_cg/tokens.py::parse_token` 对 role/token_id 拒收含大写者(不再 `role.lower()` 静默归一),故本表两条令牌规则**有意**保持窄形态(`[0-9a-f]`、不带 `(?i)`)——识别面宽是为了拦得住,受理面窄是为了说得准,两面组合后不存在「检测漏 + 受理收」的缝隙。若日后要把本表改成大小写不敏感,须先确认受理面仍拒大写,否则窄形态会变成误报源,而大写 hex id 反而成了可用凭据。守卫:`md_cg/test_token_lowercase_form.py`(36 断言,`--head-baseline` 红基线 11 红)。**同日补裁(三面口径)**:使用者裁定「已有测试把大写归一当预期行为。大写也转小写识别,以后写统一小写,现有的大写内容就不动了」——故**入参面**(角色/单元名 role=、as_unit=)继续允许大写并归一小写(凭据=存量断言 `test_p46_unit_scope.py` 的 C2),**令牌字符串面**照旧拒大写(本表两条规则保持窄形态即以此成立),**写面**以后一律小写形态,**存量大写内容不迁移**;两者差异是有意的,G8 组把三面一并钉死,勿「统一」掉。",
|
|
4
|
+
"forbidden": [
|
|
5
|
+
"-----BEGIN [A-Z ]*PRIVATE KEY-----",
|
|
6
|
+
"\\bsk-[A-Za-z0-9_\\-]{20,}",
|
|
7
|
+
"\\bAKIA[0-9A-Z]{16}\\b",
|
|
8
|
+
"\\bgh[pousr]_[A-Za-z0-9]{20,}\\b",
|
|
9
|
+
"(?i)\\bapi[_-]?key\\s*[:=]\\s*[A-Za-z0-9_\\-]{16,}",
|
|
10
|
+
"(?i)\\b(app[_-]?secret|appsecret|client[_-]?secret|secret[_-]?key|access[_-]?key)\\s*[:=]?\\s*[A-Za-z0-9]{16,}",
|
|
11
|
+
"(?i)\\b(password|passwd|pwd|密码|口令)\\s*[:=:]\\s*\\S{6,}",
|
|
12
|
+
"(?i)\\bBearer\\s+[A-Za-z0-9._\\-]{20,}",
|
|
13
|
+
"[a-z][a-z0-9+.\\-]*://[^/\\s:@]+:[^/\\s@]+@",
|
|
14
|
+
"\\btk_[0-9a-f]{8,}\\b",
|
|
15
|
+
"mdcg1\\.[A-Za-z0-9._\\-]{20,}"
|
|
16
|
+
],
|
|
17
|
+
"required": [
|
|
18
|
+
"(?m)^#\\s*功能名",
|
|
19
|
+
"(?m)^#\\s*生效条件",
|
|
20
|
+
"(?m)^#\\s*子功能",
|
|
21
|
+
"(?m)^#\\s*执行",
|
|
22
|
+
"(?m)^#\\s*验证方式",
|
|
23
|
+
"(?m)^#\\s*不适用条件"
|
|
24
|
+
],
|
|
25
|
+
"required_kinds": ["text"],
|
|
26
|
+
"required_labels": ["功能名", "生效条件", "子功能", "执行", "验证方式", "不适用条件"]
|
|
27
|
+
}
|
package/docs/README.md
CHANGED
|
@@ -43,6 +43,7 @@ docs/
|
|
|
43
43
|
| [护栏宪章 v2.0](mdcg/guardrail-charter.md) | 对外部智能体与人类的行为边界 |
|
|
44
44
|
| [memory_score](mdcg/memory_score.html)([png](mdcg/memory_score.png)) · [memory-assessment](mdcg/memory-assessment.html) · [教学教程](mdcg/lingshu_tutorial.html) | 评分 / 评估 / 教程 |
|
|
45
45
|
| [发布门禁链 v0.1](mdcg/发布门禁链_v0.1.md) | 三层门禁(pre-commit 自动重挂 / prepublishOnly check / CI 兜底)与安装 |
|
|
46
|
+
| [睡眠周期 · 运维前提与维护指南 v1.0](mdcg/睡眠周期_运维前提与维护指南_v1.0.md) | 睡眠周期的 git 前提 / 版本库位置 / 维护动作(看历史·看改动·只给 revert 的回退·冲突挂起)/ 开关与自动边界 |
|
|
46
47
|
| [D_meta 工程化方案 v0.2](mdcg/D_meta_工程化方案_v0.2.md) | D_task / D_meta 分离的工程化方案 |
|
|
47
48
|
| [代码评审与条件化注释 · 契约 v0.1](mdcg/代码评审与条件化注释_契约_v0.1.md) | 评审与条件化注释契约 |
|
|
48
49
|
| [全库代码评审与条件化注释 · 计划 v0.1](mdcg/全库代码评审与条件化注释_计划_v0.1.md) | 全库评审执行计划 |
|
|
@@ -45,6 +45,11 @@ injection:
|
|
|
45
45
|
codebuddy-session: [CODEBUDDY.md, AGENTS.md]
|
|
46
46
|
codebuddy-rules: [RULE.mdc]
|
|
47
47
|
zcode-session: [AGENTS.md]
|
|
48
|
+
# 用户级槽位(2026-09-28 登记):ZCode 除「工作区级 <repo>/AGENTS.md」外还读**用户级**
|
|
49
|
+
# ~/.zcode/AGENTS.md(对所有工作目录生效)。该件落在仓外用户目录,**不参与本仓祖先链
|
|
50
|
+
# 发现**(链终点不在它上面,probe 命中只报告不判失败);但与 zcode-session 同槽同名,
|
|
51
|
+
# 故在此显式声明,供发现面报告「同一启动目录下并存的竞争件」。
|
|
52
|
+
zcode-user-session: [AGENTS.md]
|
|
48
53
|
codex-session: [AGENTS.md]
|
|
49
54
|
claude-session: [CLAUDE.md]
|
|
50
55
|
plugin-skill: [SKILL.md]
|
|
@@ -137,6 +142,32 @@ targets:
|
|
|
137
142
|
ZCode 读项目根 AGENTS.md。本仓产物落 zcode/AGENTS.md(不落根,避免与
|
|
138
143
|
CodeBuddy 的 CODEBUDDY.md 及本地 AGENTS.md 冲突);复制到项目根生效。
|
|
139
144
|
|
|
145
|
+
# —— 用户级注入件(仓外:用户目录):**指针形态**,只校验不渲染 ——
|
|
146
|
+
# 为什么 render: false:本件是「指针」而非纪律本体——正文只有「当工作目录是本仓时先读
|
|
147
|
+
# <repo>/zcode/AGENTS.md 取纪律本体」+ 执行公约摘要,**不含任何条款正文** ⇒ 不可能与
|
|
148
|
+
# 真源漂移;若用 full/compact 模板渲染,会把整份纪律正文复制进**用户全局**注入面
|
|
149
|
+
# (对非本仓的其它项目也生效),且每次改真源都要重渲染用户目录文件——得不偿失。
|
|
150
|
+
# 为什么仍给判据:`pointer: true` 触发判据侧的三条指针检查(指向面 / 陈化面 / 工具名随端),
|
|
151
|
+
# 见 verify_discipline.check——无守卫的手工件必然漂移(20260916 codebuddy-local 实例)。
|
|
152
|
+
zcode-user:
|
|
153
|
+
enabled: true
|
|
154
|
+
render: false
|
|
155
|
+
pointer: true
|
|
156
|
+
# 指针须指向的纪律本体(相对仓库根)——判据侧按此值查「指向面」,故路径只有这一处声明
|
|
157
|
+
pointer_body: zcode/AGENTS.md
|
|
158
|
+
transport: file
|
|
159
|
+
slot: zcode-user-session
|
|
160
|
+
path: ~/.zcode/AGENTS.md
|
|
161
|
+
format: markdown
|
|
162
|
+
preserve: true
|
|
163
|
+
memory: mcp/mdcg (cg,stg) · mcp/hive (蜂巢并发:spawn/poll/kill/doctor)
|
|
164
|
+
note: >-
|
|
165
|
+
ZCode 的**用户级**指令件(对所有工作目录生效;工作区级见 zcode target 的
|
|
166
|
+
zcode/AGENTS.md)。存在理由:本仓纪律产物落在**子目录** zcode/,而 ZCode 的
|
|
167
|
+
工作区级发现面只查 <repo>/AGENTS.md ⇒ 子目录件永不进注入面;用户级指针把
|
|
168
|
+
「会话起始(含压缩续接后)先读 <repo>/zcode/AGENTS.md」钉在每轮都在的位置。
|
|
169
|
+
注入验收见本条 note 的后续记录与 docs/discipline 的验收协议。
|
|
170
|
+
|
|
140
171
|
codex:
|
|
141
172
|
enabled: true
|
|
142
173
|
transport: file
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
|
|
46
46
|
三条调用铁律:
|
|
47
47
|
1. **`op` 必填**——漏传会触发参数签名推导兜底(返回标记 `op_derived: true`),复杂任务中也必须显式传,防静默执行错误意图。
|
|
48
|
-
2. **返回 `moved_to: "review_queue"` / `verdict: DEFER
|
|
48
|
+
2. **返回 `moved_to: "review_queue"` / `verdict: DEFER` 时不要重试**——这是校验闸门的正常行为(返回自带 `hint` 说明下一步);落盘须经裁决(`op=review` 的 `decision=accept/reject/edit/merge/noop`,本机工具:`python scripts/review_cli.py list`)。**裁决权(2026-09-28 使用者裁定)**:写入者不得自裁——不得自己写、自己判、无复核一路到底;**经蜂群或验证端复核后,agent 可自行执行裁决**,不必每次转告使用者。**三类例外不适用该授权,必须转交使用者并止步**:①不适用于智能论这类重要协议真源的修改;②不适用于向外部发送信息和数据;③不适用于可能造成信息泄露/病毒/恶意操纵的动作。**`verdict: REJECT` 分两类,处置相反**:① 命中禁止规则(内容政策违规)→ 内容本身不该入库,重试同样结果;② 缺必需要素(`text` 类缺 CCG 六要素)→ **可修正**,按 `verdict.evidence` / `verdict.detail.missing` 给出的**完整缺失清单**补齐六要素后**重写**即落盘(本条未入库、已记入负记忆)——不要把它当「闸门故障」或「重试无用」。
|
|
49
49
|
3. `stg` 同理经 `op` 分发(`timeline` / `relation` / `anchors` 等)。
|
|
50
50
|
|
|
51
51
|
## 收尾强制流程(任务完成时不可跳过)
|
|
@@ -52,7 +52,7 @@ provider:
|
|
|
52
52
|
|
|
53
53
|
三条调用铁律:
|
|
54
54
|
1. **`op` 必填**——漏传会触发参数签名推导兜底(返回标记 `op_derived: true`),复杂任务中也必须显式传,防静默执行错误意图。
|
|
55
|
-
2. **返回 `moved_to: "review_queue"` / `verdict: DEFER
|
|
55
|
+
2. **返回 `moved_to: "review_queue"` / `verdict: DEFER` 时不要重试**——这是校验闸门的正常行为(返回自带 `hint` 说明下一步);落盘须经裁决(`op=review` 的 `decision=accept/reject/edit/merge/noop`,本机工具:`python scripts/review_cli.py list`)。**裁决权(2026-09-28 使用者裁定)**:写入者不得自裁——不得自己写、自己判、无复核一路到底;**经蜂群或验证端复核后,agent 可自行执行裁决**,不必每次转告使用者。**三类例外不适用该授权,必须转交使用者并止步**:①不适用于智能论这类重要协议真源的修改;②不适用于向外部发送信息和数据;③不适用于可能造成信息泄露/病毒/恶意操纵的动作。**`verdict: REJECT` 分两类,处置相反**:① 命中禁止规则(内容政策违规)→ 内容本身不该入库,重试同样结果;② 缺必需要素(`text` 类缺 CCG 六要素)→ **可修正**,按 `verdict.evidence` / `verdict.detail.missing` 给出的**完整缺失清单**补齐六要素后**重写**即落盘(本条未入库、已记入负记忆)——不要把它当「闸门故障」或「重试无用」。
|
|
56
56
|
3. `stg` 同理经 `op` 分发(`timeline` / `relation` / `anchors` 等)。
|
|
57
57
|
|
|
58
58
|
## 收尾强制流程(任务完成时不可跳过)
|