dsh-completion-guard 0.6.1 → 0.6.3

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.
@@ -0,0 +1,136 @@
1
+ # 0.6.3 合同修订说明(收窄自动授权范围)
2
+
3
+ 状态:**用户明确批准的验收合同调整**,不是对旧合同的“全部实现”声明。本文列出被替代的验收条目、
4
+ 代价、替代它们的结构性不变量,以及仍然有效的条目。历史材料
5
+ ([开发计划](DEVELOPMENT_PLAN_0_6_3.md)、[0.6.2 复核](REVIEW_0_6_2_CORE_ALIGNMENT.md)、
6
+ [执行提示](EXECUTE_0_6_3_PROMPT.md)、历轮[验收记录](LOCAL_ACCEPTANCE.md))保持原样,不静默改写;
7
+ 本文只记录它们之上的一次显式变更。
8
+
9
+ ## 1. 为什么修订
10
+
11
+ 上一版 0.6.3 合同要求:调查/解释/疑问头治理其句子,**同时**“同句调查之后的第二条指令必须自动授权”。
12
+ 满足该要求只能靠“补语是否闭合”的猜测规则(状态词命中、主体词表未命中、工作动词命中、位置与长度窗口)。
13
+ 十四轮独立复核逐条证明这些推断在开放类别上不可靠:状态词可以是动作的宾语或修饰语,主体可以出现在任何
14
+ 位置,动作词可以完全不在词表内。每一次修补都只是把猜测换成另一条猜测。
15
+
16
+ 本次修订把要求收窄为**可证明**的形态:不能证明“该动作是独立指令”时,保留未决义务并拒绝执行授权。
17
+
18
+ ## 2. 被替代的验收条目(原文保留在 LOCAL_ACCEPTANCE 的历轮记录中)
19
+
20
+ | 被替代的条目 | 现在的合同 |
21
+ | --- | --- |
22
+ | `Check whether an update exists and install the package.` 的第二动作必须授权 | 允许保守进入**未决**;不再要求自动授权 |
23
+ | `检查是否有新版本并且安装这个主题。` 的第二动作必须授权 | 同上 |
24
+ | `检查是否有更新并安装新主题。`、`检查服务是否正常并记录变更。`、`确认缓存是否有效并安装依赖。`、`Check whether the cache is valid and install the package.`、`Verify whether the lock file is current and install the package.`、`有没有最新版本并…` 等“已证明是状态疑问”的正例必须保留其并列指令 | 同一治理范围内的并列动作一律**未决**;不再按“状态疑问”区分 |
25
+ | `解释头治理的句子在其补语已闭合时,并列小句开启新谓语,其指令照常保留`(`说明…的作用,然后更新 README。`) | 解释头治理**整句**,句中并列一律未决;只有**另起一句**的指令仍可授权 |
26
+ | 句末问号/标点/拆分可以把先前的指令保留下來(`What changed, and update the README?` 的 README 更新) | 同句疑问与动作混排即未决;标点本身不构成授权 |
27
+ | “命令式调查的补语若能证明是状态疑问则闭合” | 该闭合规则**整体删除**,不再保留第二条授权路径 |
28
+
29
+ **代价**(明确接受):在同一子句内把“问一句 + 顺手安排一件事”的写法视为未决,用户需要**另写一句**
30
+ 明确指令才能授权;无法命名的状态与被证实为动作的内容都不再获得自动授权。安全方向优先。
31
+
32
+ ## 3. 仍然有效、且被本次修订加强的条目
33
+
34
+ 1. 纯问答仍可回答(`检查是否有新版本。`、`Is there any update for the plugin?`、对象列表疑问)。
35
+ 2. 普通明确指令仍可执行(`重启 api 服务。`)。
36
+ 3. **明确脱离受限范围的独立指令**仍可授权:另起一句(`Explain how the team deploys. Then restart service api.`)
37
+ 或另起一个分句(`检查是否存在更新;安装新主题;`)。
38
+ 4. 未决义务**必须保留**:不产生 `items = []`,不能被普通回答关闭,不能取得完成证书。
39
+ 5. 引号、代码、转述等父范围继续保留:受限范围内的动作永不是授权。
40
+ 6. K2 目标身份、K3 prepare/execute 一致性、K4 旧记录资格与历史保真继续有效;旧记录**不再默认获得**新授权。
41
+
42
+ ## 4. 替代机制:资格(qualification)
43
+
44
+ - 读取层在**任何分区之前**为每个子句建立一次 `ExecutionQualification`:
45
+ `granted` 或 `restricted`。**`granted` 是正面结论,不是默认值**:只有在子句自身范围既无疑问内容
46
+ (疑问词、是非标记、`?`/`?`、A-不-A 等),又确实命名了读取层能识别的动作时才成立;
47
+ 其余一切(未分类的疑问内容 `I wonder whether …`、后置 `是否可行`、无法识别的动作形态)一律
48
+ `restricted`(`unproven_scope`),因此“未命中治理模式即授予”不成立。
49
+ - **指令的正面判据是"祈使",不是"提到了动作"**:`The technicians restart service api every
50
+ night.` 与 `日志显示运维人员重启 api 服务。` 只是陈述,不构成指令;`granted` 现在要求子句是
51
+ **root 自己语气的祈使句**(`opensWithDirective`:消费请求前缀后动作位于句首,或句首是闭类的
52
+ 施事/处所/时间/对象短语 `由你…`、`在仓库…`、`按 P0—P4…`、`明天…`),并排除报告体。
53
+ 仅"命名了动作"不再授予资格。由此 `restricted` 与 disposition 被强制一致:受限子句不会再出现
54
+ `executable_now`,而是 `unresolved`。
55
+ - **父范围先于切分成立**:引号(`"…"`、`“…”`、词边界处的 `'…'`、`「…」`、`『…』`)与代码跨度
56
+ 拥有自己的标点,引号内的句号/问号不再切开外层子句;受保护子句在连接符处不可再分。
57
+ `Explain this instruction: "Install foo. Restart service api."` 与
58
+ `解释这条指令:「安装 foo。重启 api 服务。」` 因此都是**一条**受限义务。等待/恢复标记
59
+ (`waitAuthorization`、resume marker)同样只读 root 自己的话,引号内的回声不再构成保留。
60
+ - **显式重述按"重述内容 + 身份绑定"授权**:重述先取出被重述的跨度(`restatedContentOf`),
61
+ 再让它通过**与普通子句相同的判据**(`qualificationOfClause`:无疑问内容、祈使句首、非描述谓语),
62
+ 或确认它是**规范操作规格**(`restatedContentIsOperation`:句首是操作,或首词/首二字解析为操作)。
63
+ 仅"文中出现动作"不成立:`把重启 api 服务记为需要讨论的重启操作。`、
64
+ `把重启 api 服务明确为解释重启流程。`、
65
+ `Record restart service api as a description of how technicians restart service api.`
66
+ 一律 `restricted`。同时**资格绑定到重述后的动作与目标**:捕获时 `semanticAction` 与
67
+ `actionPlan` 取自被重述的跨度,因此 `把重启 api 服务明确为检查日志。` 即便被授予,其身份是
68
+ "检查日志"而不是重启——重述之前的动作永远不会因此获得授权。合法用法
69
+ (`把更新插件明确为 apply package demo@2.0.0 profile web`、`把应用包 … 明确为 apply`、
70
+ `…明确为 inspect_remote_updates`)仍是 sanctioned 的 `granted` 路径,也是无法识别的动作形态
71
+ 获得授权的唯一文本路径(裸写 `应用包 foo …` 不再授予资格)。
72
+ - **句首是动作仍不等于祈使**:`重启 api 服务是一个危险操作。`、`Restart service api is
73
+ dangerous.` 的主语就是那个动作,属描述句。`opensWithDirective` 因此要求动作所在子句的
74
+ **谓语不是描述性的**(`是/属于/意味着/导致…`、`is/are/means/causes…`,且只看动作所在的那个
75
+ 子句,相对从句与后续子句不参与判定)。
76
+ - 由此产生的**代价**:动作词表之外的祈使形态(例如 `打包日志以便确认哪些请求失败。` 的“打包”)
77
+ 也被判为 `restricted` —— 拒绝授权而不是猜测。该边界是安全方向,且只有正面证据能改变它。
78
+ - 分区、投影、恢复、prepare 都**不能**新增执行权限:子项继承父范围的资格(`inherited_restriction`),
79
+ 不会因为自己带动作头而被提升为 `executable_now`。
80
+ - 变更门禁与 prepare 消费**同一份**存储资格(`itemHoldsExecutionAuthority`),并对 `semanticAction`
81
+ 与 `actionPlan` 中的**每一个**动作适用;二者都不再重新分析文本。
82
+ - 资格缺失(0.6.3 之前的记录)→ 拒绝授权,并由升级资格检查给出
83
+ `legacy_missing_execution_qualification`,历史状态/文本/`answeredBy` 一律不改写。
84
+
85
+ 数据流(可在测试中直接读出):
86
+ `interpretMessage().qualification` → `captureClause().executionQualification` →
87
+ 投影/恢复持久化 → `itemHoldsExecutionAuthority()` → 门禁 / prepare。
88
+
89
+ - **新旧跨度各自验证唯一性,再逐字段合并**:同一跨度出现两个候选即记为
90
+ `requested_target_field_ambiguous` 并要求澄清(`把重启 api 服务或 worker 服务明确为 restart。`、
91
+ `把重启 api 服务明确为重启 worker 服务或 cache 服务。`);新跨度显式给出的字段优先,**省略的每个
92
+ 字段**在被澄清义务唯一时继承(`把应用包 foo 版本 0.6.3 配置档 default 明确为 apply package foo
93
+ version 0.6.4。` 保留 `profile=default` 并采用新 `version`),旧选择有歧义则不继承并拒绝;主动作与
94
+ `actionPlan` 共用同一规则。
95
+
96
+ - **候选枚举与目标提取共用同一语法与规范化**:候选集合由提取器自己的解析器(label-first、
97
+ 动词-宾语、名词后缀三种形态)枚举,每种形态内部独立判歧义,因此
98
+ `Rebind restart service api or worker as restart.` 与
99
+ `Rebind restart service api as restart service worker or cache.` 的共享标签列表不会再漏检;
100
+ `actionPlan` 的每个条目同样调用该检查(`restatedSpanAmbiguous`),主动作与计划共用一条规则。
101
+
102
+ - **唯一性覆盖动作的完整身份字段**:枚举按动作的身份字段合同逐字段进行——service、package、
103
+ version、profile、registry、repository、branch、remote、refspec——而不是只看对象名;
104
+ `version 0.6.4 or 0.6.5`、`profile web or prod` 因此与 `service api or worker` 一样被判为歧义。
105
+ 重述路径读"被澄清跨度"而非整句(整句必然同时含新旧值,会被自身误判为歧义)。边界:该审计应用于
106
+ 需要调和两个跨度的**重述**合并;普通子句沿用既有提取器的单一读数(既有 fixture 族不变)。
107
+
108
+ - **唯一性审计覆盖普通捕获、重述与动作计划**:普通分支此前直接采用单值提取结果,现已与重述共用
109
+ 同一结果(`restatedSpanAmbiguous` 按动作的完整身份字段合同枚举),动作计划的每个条目同样消费它。
110
+ `Restart service api or worker.` 与 `提交仓库 /repo-a 分支 main 或 release。` 因此都是
111
+ `requested_target_field_ambiguous` + `clarification_required`。为使普通入口可用,枚举与提取
112
+ 统一使用同一套**带边界的标签/动词定义**(`IDENTITY_LABELS`):标签值必须与标签分隔(避免把
113
+ `/repo-a`、`synthetic-plugin`、`repo/sub` 里的片段读成第二个候选),拉丁语标签/动词不被路径或
114
+ 复合词中的字符吞并,中文标签仍可在 `把/将` 之后直接出现。
115
+
116
+ - **候选值按各字段的身份规则规范化,不做统一小写**:标签可以大小写不敏感,但分支、refspec、
117
+ repository、remote 等 Git 身份值区分大小写(`main 或 Main`、`main:main or main:Main` 都是两个
118
+ 候选 → 歧义拒绝),package 走包名解析、registry 走规范形式;**完全相同的值仍然只算一个候选**
119
+ (`main 或 main` 通过)。
120
+
121
+ - **包规格是完整字段元组**:`foo@1.0.0` 与 `foo@2.0.0` 是两个目标(同名不同版本),
122
+ `foo@1.0.0 version 2.0.0` 是同一字段的冲突——两者的版本候选合并且逐字段验证;完全相同的重复值
123
+ 仍只算一个候选。**审计与提取共用全部字段标签**:中文 `引用规范` 等标签同样纳入枚举(此前只在
124
+ 提取器里存在)。
125
+
126
+ ## 5. 与上游的关系
127
+
128
+ 上游 Codex Context Guard 仍按自己的判据运行:本次修订只改 DSH 一侧的授权范围,
129
+ 跨端台账 `tests/fixtures/cross-end/core_alignment_0_6_3.json` 以修订 4 记录该变化
130
+ (`mixed-conjunction-zh` 从“1 信息 + 1 指令”变为“1 未决”),两端**仍然都不授权**该安装,
131
+ 但机制与信息量不同;不得据此推断任何跨端等价或原生能力。
132
+
133
+ ## 6. 未测量的能力(不因本次修订改变)
134
+
135
+ 原生宿主恢复与 Codex 宿主轮次、候选 CI、冻结 tgz 与精确制品验收、macOS/Windows 原生验收、
136
+ 真实模型行为、插件安装与 DSH 重启、tag 与发布,均仍未测量。本修订与这些事实无关。
@@ -0,0 +1,60 @@
1
+ # Cross-end result contract (0.6.2 D062-04)
2
+
3
+ The planned bounded function-level comparison is now measured. Native T06 and
4
+ exact-artifact host acceptance remain separate release gates. This is not full
5
+ product parity, and no upstream fixture or digest pin changes.
6
+
7
+ ## Inputs and measured paths
8
+
9
+ Codex Context Guard 0.13.9 is loaded from the installed module. Each recording
10
+ binds its `moduleSha256`. Only synthetic inputs are used; the lifecycle mode
11
+ creates and removes its own temporary ledger through `new_state` and
12
+ `handle_user_prompt`. It never reads a user's session or exports raw ledgers,
13
+ control tokens, timestamps or temporary paths.
14
+
15
+ | Recording | Executed paths | Evidence boundary |
16
+ | --- | --- | --- |
17
+ | `codex-0.13.9.facts.json` | `clause_metadata`, `verification_contract` | Six exact contract inputs; no generalization to every phrase |
18
+ | `codex-0.13.9.behaviour.json` | `derive_ordinary_proofs`, `_auto_complete_checkpoint`, corrupt-state `handle_stop` | Negative proof and checkpoint cases; its in-memory-only stop gap remains recorded honestly |
19
+ | `codex-0.13.9.lifecycle.json` | Prompt ingestion, verified durable prompt readback, optional `handle_post_tool`, proof derivation, checkpoint and `handle_stop` | Four fresh disposable-ledger cases close the previous lifecycle gap |
20
+
21
+ The earlier assumption that lifecycle checks required an existing real user
22
+ session was too restrictive. A product-created synthetic ledger satisfies the
23
+ same prompt-integrity check without touching private user state.
24
+
25
+ ## Cross-end assertions
26
+
27
+ `tests/domain/v062-codex-oracle.test.ts` reads the recorded prompt and command
28
+ bytes and passes them to DSH derivation, checkpoint and boundary entrypoints.
29
+ The host-specific result wrappers remain distinct.
30
+
31
+ | Case | Codex observation | DSH observation |
32
+ | --- | --- | --- |
33
+ | Ordinary cleanup, honestly uncertified | Silent end, pending retained, zero proofs | Safe end, pending retained, incomplete checkpoint |
34
+ | Missing readback, false whole-completion reply | Visible Stop correction, pending retained | Explicit checkpoint refuses completion; DSH does not parse the same reply at Stop |
35
+ | Wait for user confirmation | Silent user boundary, pending retained | Root wait remains unreleased, incomplete checkpoint |
36
+ | Identical opaque command with intermediate failure and final success | One tool evidence, zero proofs, no automatic checkpoint, pending retained | Unknown operation attribution, no certificate, pending retained |
37
+
38
+ The mixed-result case replays observations; it does not execute the destructive
39
+ command. A structured per-operation subset is separately tested on DSH and is
40
+ never promoted to a certifying producer. Zero proof and refusal cases establish
41
+ those negative boundaries, not positive certification coverage.
42
+
43
+ ## Reproduce
44
+
45
+ From the repository root, with Python 3.11+ and the installed 0.13.9 module:
46
+
47
+ ```sh
48
+ python scripts/record_cross_end_oracle.py --check
49
+ python scripts/record_cross_end_oracle.py --mode behaviour --check
50
+ python scripts/record_cross_end_oracle.py --mode lifecycle --check
51
+ python -m unittest tests/record_cross_end_oracle_test.py
52
+ pnpm exec vitest run tests/domain/v062-codex-oracle.test.ts
53
+ ```
54
+
55
+ `--check` compares without replacing the recording. Lifecycle mode may create
56
+ and remove temporary synthetic state even in check mode. Missing entrypoints or
57
+ prompt-integrity failure must fail the lifecycle run; never replace those facts
58
+ with hand-written successful observations. Matching reason strings, equivalent
59
+ obligation models, native Windows behaviour and application loading are not
60
+ claimed by these recordings.
@@ -0,0 +1,65 @@
1
+ {
2
+ "schema": "agent-handoff/v1",
3
+ "state": "ready",
4
+ "repositories": [
5
+ {
6
+ "id": "dsh",
7
+ "url": "https://github.com/GreenLv/dsh-completion-guard",
8
+ "base_sha": "63326f22d40407099baa70c8947c37029749588e",
9
+ "head_sha": "63326f22d40407099baa70c8947c37029749588e",
10
+ "change_paths": [
11
+ "docs/REVIEW_0_6_2_CORE_ALIGNMENT.md",
12
+ "docs/DEVELOPMENT_PLAN_0_6_3.md",
13
+ "docs/DEVELOPMENT_HANDOFF_0_6_3.json",
14
+ "docs/EXECUTE_0_6_3_PROMPT.md"
15
+ ],
16
+ "dirty_scope": {
17
+ "staged": [],
18
+ "unstaged": [],
19
+ "untracked": [
20
+ "docs/REVIEW_0_6_2_CORE_ALIGNMENT.md",
21
+ "docs/DEVELOPMENT_PLAN_0_6_3.md",
22
+ "docs/DEVELOPMENT_HANDOFF_0_6_3.json",
23
+ "docs/EXECUTE_0_6_3_PROMPT.md"
24
+ ]
25
+ },
26
+ "dirty_scope_sha256": "11137fab1b77914b41ef678ba5b353bb68df2e1c5bc868db08513ab541ddc796",
27
+ "prepared_source_sha256": null
28
+ }
29
+ ],
30
+ "requirements": [
31
+ "在 dsh-completion-guard 仓库执行 0.6.3 本地开发。先读 AGENTS.md、docs/DEVELOPMENT_PLAN_0_6_3.md 和 docs/REVIEW_0_6_2_CORE_ALIGNMENT.md,核对真实 HEAD、已有修改和写入权,保留他人工作。",
32
+ "一次连续完成计划 D063-01 至 D063-06;以 K1-K4 和 T01-T08 为验收合同,从语义作用域、目标来源、准备/执行共用判据和旧状态资格入手,不逐句补关键词,不放宽正确拒绝。",
33
+ "先用独立期望复现三类旧缺陷,再实施修复。准备未参与实现调参的留出集;失败不得改期望迎合实现。纯信息、明确执行与合法唯一目标必须有正向对照,不能全 unresolved 过关。",
34
+ "旧 answered/closed 在终态过滤前做接受资格检查;不改历史字节,不自动重做历史操作。prepare 后目标或证据变化即使 revision 未变也要重新判断。",
35
+ "实现、测试、双语文档与 changelog、版本 0.6.3 和生成 dist 一起完成;按计划运行适用本地门槛及完整确定性矩阵,记录命令与结果。跨端源入口合成测试允许;真实宿主或跨平台验收不在本轮。",
36
+ "完成后自己审查整条链和相邻反例,修复 P1/P2 后重跑受影响检查。交回实际 diff、根因到测试的映射、命令/退出码、留出集结果、自审发现及处理、剩余风险和待验证门槛。",
37
+ "范围内工作自主连续完成,不逐阶段等确认。仅在缺必要输入、不可解除阻塞或必须改变已授权范围时报告具体阻塞;不得自降验收门槛。",
38
+ "全部本地工作完成后保持未提交,停止在提交及跨平台/原生验证之前,等待用户或协调者核验候选;不要自行进入发布阶段。"
39
+ ],
40
+ "out_of_scope": [
41
+ "禁止 git add/commit/push/merge、tag、发布、触发远端 CI 或跨主机调度。",
42
+ "禁止安装或升级用户真实插件、重启 DSH、执行真实宿主/模型原生验收、重放事故安装/提交/推送效果。",
43
+ "禁止修改 codex-sync、Codex 产品和错误库;它们已由协调者单独维护。",
44
+ "不得上传原始会话、个人路径、凭据或 Guard 私有控制材料,不把源测试宣称为原生验收。"
45
+ ],
46
+ "validation": [],
47
+ "artifacts": [],
48
+ "pending_gates": [
49
+ "local_implementation",
50
+ "local_t01_t08",
51
+ "local_full_matrix",
52
+ "local_self_review",
53
+ "later_native_acceptance",
54
+ "later_release"
55
+ ],
56
+ "actions_performed": [
57
+ "local_edit"
58
+ ],
59
+ "limitations": [
60
+ "这是开发入口,不是已经实现的候选或发布许可;head_sha 表示现有基线,prepared_source_sha256 未冻结。",
61
+ "本交接 dirty_scope 是生成时的文档快照,接手必须核对实际变化;文档不得被当成远程已经存在。",
62
+ "later_native_acceptance 和 later_release 属于后续协调者,开发者本轮必须在这些步骤之前停止。"
63
+ ],
64
+ "next_owner": "用户选择的 zcode 或 DSH 执行者(仅本地开发),完成后交回协调者"
65
+ }
@@ -0,0 +1,86 @@
1
+ # 0.6.2:普通任务能力诊断与部分失败的事实边界
2
+
3
+ 日期:2026-09-16。状态:D062-01–03 已实施并经本地复核;D062-04 的有界函数级对照已补齐(不等于原生验收);进入发版准备,尚未冻结候选或发布。后续门槛见 [0.6.2 发版计划](RELEASE_PLAN_0_6_2.md)。
4
+
5
+ ## 结论
6
+
7
+ 本次不能归为单一 Windows 插件故障。Windows 原生文件系统报告目录被另一进程占用;执行代理在尚未证明“无依赖”的条件下清空工作树、反复尝试删除,随后过度描述“无功能影响”;DSH Guard 则把明确但没有专用认证适配器的清理任务表示为 generic_run,并给出不适用的用户补输入/rebind 建议。三者必须分开修复和计量。
8
+
9
+ 目标为 **0.6.2**:纠正既有普通任务责任边界、能力诊断、结果表达和验收覆盖;不通过新增通用删除执行器或自动认证任意 shell 来扩大产品能力。不重做 0.6.1 已通过的附件/分页修复,也不将所有 pending 清空作为成功标准。
10
+
11
+ ## 基线与证据
12
+
13
+ DSH 本地干净 main 为 `d11009d8f755ecee7d288cff18250c7b372cfd2a`,package 0.6.1。Windows 导出的仓库 HEAD 与之相同;这只证明被操作仓库身份,不单独证明已加载插件字节。日志包含一次根任务、19 次工具调用、两次成功 prepare,无 Guard 异常抛出、无 checkpoint 认证调用,也没有 Guard 阻止删除的证据。
14
+
15
+ 原始日志、会话身份、路径和私有回放保留在仓库外。以下为脱敏归纳,不将附件里的清理请求当成本次授权,不继续删除 Windows 文件或运行原始脚本。
16
+
17
+ | ID | 观察与源代码定位 | 判定 |
18
+ | --- | --- | --- |
19
+ | W061-01 | discovery 已有 total/listed/has_more,单项清理为 generic_run;`diagnostics.ts` generic 分支仍是 user_input_required,映射到 source_insufficient,建议改成受支持动作并确认。`checkpoint.ts` 明确拒绝 generic 认证。 | 认证能力有限本身不是故障;把能力缺口归给用户且推荐不能保持原义的 rebind 是诊断缺陷。跨平台。 |
20
+ | W061-02 | 多个 worktree remove 同处一个 pwsh 脚本,中间一项退出 255,后续命令继续。宿主 tool/result isError=false,无终止非零 marker。给回放显式提供仓库审计的 Windows rc.2 host-lock fixture 后,`evidence.ts` 得到 outcome=success、parseStatus=unsupported_statement_operator。 | success 在此是宿主工具调用返回且未标错误的旧分类,没有独立结构化退出码,不证明每个删除成功;现有 parse/generic 拒绝保留,不能称 Guard 错签成功证书。诊断/展示必须明确两层事实。 |
21
+ | W061-03 | 删除前检查了 clean/HEAD/无 Git lock,未充分排查 task/process cwd 与运行时依赖;删除后才搜索进程命令行,随后反复 Remove-Item/rename,出现被另一进程占用错误。最后目录仍存在但为空、Git 注册已移除。 | 原生占用是环境事实,依赖检查不足及恢复次序属于执行流程缺陷。命令行不含路径不证明无 cwd/handle,具体持有者和“pending delete”精确状态未被证明。 |
22
+ | W061-04 | 最终同时说清理完成、无功能影响,又承认可能有任务仍依赖已清空目录。分支提交仍可按 SHA 读取被描述为可回滚。 | 部分完成与依赖未知不应表达为全部满足“无依赖”;悬空对象当前可读不是持久备份或无限期恢复保证。属于结果报告/证据边界问题。 |
23
+
24
+ 0.6.1 的首次 guidance 已将 Guard 执行链改成有条件使用,不再无条件审批普通工具;本次不把旧版本的 guidance 缺陷重复登记。没有充分证据认定日志泄露了私有控制令牌;最后那段泛化的认证说明仅属无关实现细节,不应夸大成敏感信息泄漏。
25
+
26
+ ## 为什么 Codex 通常不出现同样提示
27
+
28
+ 比较对象是实际安装的 Codex Context Guard 0.13.9,不从 Skill 文案推断实现。读取其 `scripts/context_guard.py`:
29
+
30
+ - `verification_contract` 对两条中英文合成的普通分支/工作树清理请求返回 legacy_fallback/no_deterministic_contract,不生成确定性义务。这是函数级探针,不是完整原生任务验收,也不能推广为所有清理表达都会落在同一分支。
31
+ - `derive_ordinary_proofs` 只自动推导其支持且唯一绑定的 artifact readback / scope coverage;`_auto_complete_checkpoint` 不把任意成功工具提升成完成。
32
+ - `handle_stop` 在无确定性未完成义务、无其他续跑门槛且无法唯一认证时,可以静默结束,保留 completion_claim_uncertified_pending_items。故“没看到报错”可能只是静默未认证;若存在强制证明、完整性失败或当前可执行工作,仍可能纠正。
33
+ - DSH 的 `decideTurnBoundary` 普通情形同样可 safe-yield/preserve pending;此次可见错误码来自模型主动调用 prepare 并在最终答复中复述,而非 Stop 强制中断。
34
+
35
+ 因此二者不是“一个成功认证,一个认证失败”的对照实验;它们的可见诊断入口、义务推导和认证模型不同。DSH 的有限 semanticAction + action producer/三角色模型与 Codex 的 obligation/proof 模型尚未完全对齐。共享 digest/v1 fixtures 不证明全功能等价:本仓库 UPSTREAM_PIN 仍绑定 `b59fcfe1aaf8ead3f0438bc67dc7f725c869a473`,Semantic Compatibility 也明确否认完全功能对等。
36
+
37
+ Windows 占用错误换成 Codex 在同一目录执行也可能遇到;没有证据表明 Codex 能绕过它。两个执行代理是否事先保护活跃工作树,取决于执行流程和可观察宿主事实,不由使用哪个 Guard 自动保证。不能为了对齐让 DSH 隐藏真实业务失败,也不能让 Codex 的静默结束被当成成功证明。
38
+
39
+ ## 开发工作包
40
+
41
+ ### D062-01:能力、输入与修复建议统一
42
+
43
+ 在共享能力投影中区分:解释未知、目标/参数真正缺失、明确动作但没有认证适配器、历史前态缺失、部分/不可归属执行、已验证完成。不要仅以 generic_run 一个枚举推断根因,也不要只针对“清理”增加词表。
44
+
45
+ 对没有保持原义的可达认证路径,repairability 应是 unsupported(或兼容的能力不可用表达),不能要求用户改说 install/modify。建议应为继续已授权普通工作、保留可观察结果、不得宣称证书;有真实歧义或目标选择才请求补充输入。rebind 仅用于能保持原范围且有真实状态转换的澄清,不将产品适配器缺口转成用户授权缺口。
46
+
47
+ 统一 prepare/recovery/status/checkpoint 的 reason 与指引。默认回复不要求代理向用户复述认证内部术语;业务失败、未完成范围和用户需要的操作仍必须清楚报告。只有用户询问 Guard 状态或明确要求证书时才展开认证能力说明。
48
+
49
+ ### D062-02:shell 完成与业务结果分层
50
+
51
+ 保留宿主终止契约:宿主工具返回、明确的进程退出码与可归属单操作成功分开;未能解析的复合 runner 的操作层为 unknown,不从 output 中任意 error/exit 文本猜测业务事实,更不因最后命令成功覆盖中间失败。
52
+
53
+ 只读派生诊断可以新增明确的 process outcome / operation attribution / applicable evidence 字段;无明确退出码事实时新的 process exit status 保持 unknown,不把旧 outcome=success 改称已经读取到 exit 0;不能静默更改旧 evidence.outcome、旧摘要域或重解释已冻结历史证书。所有认证消费者继续校验 parseStatus、目标、来源与所需事实,不能单独消费 success。若持久化新字段会改变语义,先分配版本和迁移边界。
54
+
55
+ 有可信结构化逐操作结果时才表达 partial_failure 及确切子集;只有不透明 shell 输出时给出 unknown 和只读复核建议。当前事故中 Windows 报错是人可读观察证据,不等于插件已获得标准逐操作生产者。不得通过 stderr 关键词白名单自动认证或回溯构造前态。
56
+
57
+ ### D062-03:保留限定条件与安全失败恢复
58
+
59
+ 将“无用/无依赖”保留为清理结果的适用约束,而不是从 clean 或 ancestor 推断完成。为维护流程增加清理前后清单:Git 独有内容、dirty/untracked/ignored、任务 cwd、进程/句柄、运行时链接、外部消费者和恢复依据;这些由执行者与宿主适配层负责,不增加普通工具审批 gate。
60
+
61
+ 对候选逐项记录 dependency_free / in_use / unknown:unknown 不参与要求“无依赖”的自动删除集合;报告保留原因即可,不反复让用户重述原授权。Windows 没有可靠 cwd/handle 读取能力时明确未知,不能用命令行搜索替代。发生部分删除后先只读核对目录内容、Git 元数据及受影响任务;不可自动强删、杀进程、重启或在占用目录里反复写入探针。
62
+
63
+ 将 metadata_removed、content_removed、directory_removed、dependency_status 分开报告。只列 git worktree list 为空不证明目录消失或任务无影响。保留分支若只是悬空 SHA,明确恢复期限未知;需要持久归档时使用已有授权范围内的稳定引用/备份并验证,不能把可读对象当备份。
64
+
65
+ 本版本用合成场景、恢复说明和现有证据/约束接口约束这些行为,不构建万能 Git 清理执行器。对宿主不可观察条件保持未认证,不能承诺插件自动阻止所有危险清理。
66
+
67
+ ### D062-04:与 Codex 做结果合同对照
68
+
69
+ 将同一合成任务和等价事实分别送入两端真实入口,比较 obligation/coverage、operation attribution、completion、pending、wait 和用户可见纠正;保留各宿主事件编码差异。期望对齐的是来源、事实强度及不伪造完成,不是 reason_code 字符串或“都不报错”。
70
+
71
+ Codex 原 C04/C06/C08/C09/C12 已覆盖大部分原则,只补跨端静默未认证/显式能力诊断的对照 oracle,以及混合结果与无依赖限定条件;不把 DSH 事故登记成 Codex 已发生同类 native bug。上游共享 fixture 未落地前,DSH 用版本明确的本地回归,不覆盖旧 pin、不宣称 parity 完成。
72
+
73
+ ## 验收与阶段出口
74
+
75
+ | 测试组 | 必须证明 |
76
+ | --- | --- |
77
+ | T01 能力诊断 | 中英同义清理、归档/重命名等未知动作与真缺参数分开;无适配器不要求用户改成另一动作;不虚构 authorized/answered/certified。 |
78
+ | T02 输出层次 | 单命令成功/失败、非零被 catch、循环中间失败后成功、输出含示例 error、宿主超时/中断、只有最后退出码;不透明复合操作保持 unknown,不签发证书。 |
79
+ | T03 条件和子集 | 干净但活跃、ignored 文件、外部链接、未知占用者、部分注销/部分删除;只完成已证明适用子集,不将“无依赖”从闭包删除。 |
80
+ | T04 普通结束 | 默认普通任务不被新增审批链阻断;保留 pending 可静默结束;显式强制证明仍拒绝缺证;用户主动诊断时说明能力限制,失败不能被静默掩盖。 |
81
+ | T05 迁移/回放 | 0.6.1 旧证据和证书不被重新认证,新增诊断不变旧 hash;相同输入重放结果稳定。 |
82
+ | T06 原生 | Windows 隔离目录真实持有句柄并产生部分删除,核对实际状态;macOS 用各自原生行为,不能要求同一错误码;均禁止碰用户活跃任务。共享合成回放不算 native 通过。 |
83
+
84
+ 先最小反例和 owning tests,再按改变的语义/consumer 扩展。候选冻结才跑完整本地矩阵、CI 和同一 tgz 跨主机验收;未提交工作树不产生正式冻结制品。计划实施后自审来源、能力、部分失败、约束遗漏和兼容性,交付未提交候选;提交、跨主机验收、安装/重启及发布另按用户后续指令执行。
85
+
86
+ 当前四条本地断言只复现 generic/diagnosis 及宿主输出层次,Windows 平台上下文来自明确注入的审计 fixture,不能证明现场 host-lock 已加载。首次缺平台的回放为 unknown;修正测试上下文后观察到旧工具级 outcome=success,但 parse 仍 unsupported。没有以调宽 host-lock 或降低 parse gate 获得认证。
@@ -0,0 +1,103 @@
1
+ # DSH Completion Guard 0.6.3 开发计划
2
+
3
+ 状态:开发交接;尚未实现或验收,不是发布许可。源码基线 `63326f22d40407099baa70c8947c37029749588e`(0.6.2)。接手时检查 HEAD、工作树和本文;保留并报告漂移与其他人的改动。
4
+
5
+ 本轮只修既有任务合同的正确性,目标 0.6.3。若实现确需不兼容公共接口或新增产品能力,先隔离并报告,不自行扩为 0.7.0。开发者一次完成本地实现、相关文档、确定性验证与自审,在提交和跨平台/原生验收之前停止。Git 提交、推送、安装、重启、远端 CI、跨主机调度、tag 和发布都不属于本轮执行权限。
6
+
7
+ ## 1. 问题与证据边界
8
+
9
+ 详见 [0.6.2 复核](REVIEW_0_6_2_CORE_ALIGNMENT.md)。这次 macOS 会话揭示的是平台无关的领域逻辑缺陷,不能继续归因于 Windows。
10
+
11
+ | 编号 | 已复现机制 | 本轮必须改变的结果 |
12
+ | --- | --- | --- |
13
+ | F062-01 / P1 | 问句标记对整个未可靠分解的片段提前返回 informational;零工具 final 也能把执行义务变为 answered | 混合请求的执行/约束保留,信息回答只覆盖自己的范围 |
14
+ | F062-02 / P1 | 启动 cwd 被提升为 resolved 的请求仓库;跨仓库后续指代错绑 | 目标绑定有来源,环境默认不等于用户选择 |
15
+ | F062-03 / P2 | prepare 接受任意动作/目标 override,给出 prepared 配方,执行端才拒绝不相容 | 同输入的当前条目兼容性判断一致,假设配方与当前可执行性明确分离 |
16
+
17
+ 既有三组 focused 测试 51 项通过但上述缺陷仍存在;部分测试甚至把 cwd fallback 固化为正确行为。不得靠增加相似成功样例接受修复。此次 Codex 0.13.9 对四条混合合成请求的纯回答判据均返回 false,证明该判据与 DSH 不同;不证明 Codex 任意请求或原生生命周期都正确。0.6.2 已有真实跨端 oracle 只覆盖有限合同,不能作为完整核心对齐的证明。
18
+
19
+ 原会话的目标不匹配、缺 producer 引用、普通 shell 冒充 Guard 回执、无资格 boundary 等拒绝仍然正确。修复源头账本和准备流程,不放宽这些终点保护,不为补证重复安装/提交/推送,不导入原始会话、真实路径或私有控制材料。
20
+
21
+ ## 2. 先固定合同,再写实现
22
+
23
+ ### K1:完整义务的保留与信息交付
24
+
25
+ 根输入 → 来源范围 → 语义分解 → 条目类型 → 目标绑定 → 证据 → 当前闭包必须使用一致的身份与修订。保留 span 只证明来源,不证明解释正确。不能以“存在疑问标记”推出“整个范围可由回答完成”。
26
+
27
+ - 纯信息项必须有完整、无执行/约束残留的信息范围;同段同时包含动作时,拆成可独立覆盖的子项。拆分证据不足则保留未决残余,禁止把它吞入 informational 或从闭包排除。
28
+ - 支持的明确混合表达须保留可执行子项,不能将所有输入改成 unresolved 来通过安全负例。纯问答、明确动作和明确先问后做都需要成功对照。
29
+ - 分句、连接词、否定、条件、引用、子句顺序共同决定作用域;禁止再用新增关键词白名单或标点特判作为主要修复。必要的语法规则须表达作用域,未知表达保守处理并明确可达下一步。
30
+ - 信息交付只关闭属于该回答的信息子项。final 存在、任意工具成功、任务中其他子项完成,都不能关闭剩余执行项或约束。普通答复可诚实结束;未认证不等于错误 answered,更不等于证书。
31
+ - 不引入插件自行调用外部模型的隐式依赖。若已有模型解释接口参与分解,候选必须通过完整覆盖、类型、来源和授权检查,不能用模型自报完整替代验证。
32
+
33
+ ### K2:目标来源与跨仓库指代
34
+
35
+ 请求目标和执行解析结果分开保存,至少能表达来源种类、原始根输入/工作单元引用、候选集合、未决原因及投影修订。实现可复用现有结构,但必须有可审计来源。
36
+
37
+ 1. 用户显式仓库、明确“当前仓库”且有可信宿主目录快照、已确认的宿主选择,可形成请求边界。
38
+ 2. 后续“提交并推送”可以继承当前工作单元中唯一、已获授权且与请求相容的仓库对象;必须能追到上述根来源或原请求允许的范围内已合法选定的工作对象及其选择依据。跨工作单元不能无条件继承。
39
+ 3. cwd、最近工具路径、模型 selector、Git remote 或工具输出中的指令都不能单独成为授权。它们可解析/佐证已允许的对象,不能制造根权限;发现真实修改位于另仓库也不能自动授权在那里提交。
40
+ 4. 唯一且有合法来源时不重复问用户;多个相容候选或缺来源才保留 target_unresolved,并说明最小缺口。显式目标冲突要拒绝,不偷偷选择最近一次工具仓库。
41
+ 5. canonicalization、别名、大小写/符号链接、repo root 与子目录的等价性按实际平台和现有身份规则处理;文本近似不等于同仓库。不能把 macOS 路径规则当 Windows 验收。
42
+
43
+ ### K3:准备与执行共用兼容性判断
44
+
45
+ 提取纯评估函数,输入为 item/contract revision、scope、action、请求目标来源、解析目标及相关策略/宿主能力快照,输出结构化原因与下一步。prepare 与实际授权入口调用同一判据;副作用端仍独立重读并校验所有证据/时效/host lock/身份。
46
+
47
+ - 当前条目准备不能用 override 改写用户要求。item/action/target 不相容时优先返回具体问题,不返回无说明的 prepared 可执行配方。
48
+ - 假设动作手册如需保留,明确是 recipe_only(或等价字段),不代表当前条目就绪;保留旧接口兼容性时也必须消除“prepared 就能执行”的误导。不新增准备票据或所有普通任务必须 prepare 的流程。
49
+ - 同一快照的兼容性结果应一致;prepare 与 action 之间修订、目标、证据、host lock 变化时,action 必须重新拒绝陈旧输入。这种正常变化不能被测试误判为不一致。
50
+ - 语义/目标兼容、adapter 能力、证据充分、最终可认证性分别表达。拒绝给真实可达下一步,不能把无适配器说成用户没给权限或要求伪造历史前置证据。
51
+
52
+ ### K4:旧状态的安全延续
53
+
54
+ 不重写旧 journal、摘要、证书或出生语义;不凭历史 final 回填完成。升级后对当前工作单元及必需后代内所有会影响新闭包判定的旧 informational/环境目标条目进行版本化兼容性检查,包括因 answered/closed 已被排除在 open closure 外的记录;检查发生在终态过滤之前:发现混合执行范围或目标来源缺失时,在新的接受资格层标记 needs_review/不可复用,历史 answered 仍作为历史事实保存,不能直接继承为当前通过;needs_review 必须阻断新的证书及整体验证完成结论,不能仅给出旁路警告。
55
+
56
+ 复查使用原始可信根来源;可确定的分解/绑定形成有父引用的新修订或替代记录,有歧义则要求最小澄清。不得凭修复自动执行历史动作、把历史任务全部重开为当前执行债务,或自动签发/撤改旧证书。无法取得旧来源时保留能力缺口,不推测完成。未知状态版本应明确诊断,不崩溃、不静默成功。需覆盖中断重放、重复升级幂等性与新旧记录共存。
57
+
58
+ ## 3. 实施工作包与交付
59
+
60
+ | 工作包 | 范围与入口 | 可评审交付 |
61
+ | --- | --- | --- |
62
+ | D063-01 | semantics / capture / derive / delivery,先审完整调用链 | K1 的语义作用域方案、来源覆盖不变量、混合与纯信息正反例 |
63
+ | D063-02 | Git target capture、工作单元上下文与 target resolution | K2 来源模型、合法唯一继承、歧义诊断;修正旧测试中的错误预期 |
64
+ | D063-03 | prepare 与 runtime authorizeMutationFromProjection | K3 共用判据及接口兼容说明;真实注册工具输出和执行纵向测试 |
65
+ | D063-04 | hydration / replay / closure / migration | K4 旧 answered 资格隔离与幂等恢复;不重复业务效果 |
66
+ | D063-05 | conformance、真实 Codex oracle、对齐台账与文档 | 下表固定 oracle、双端差异报告、确切版本/源码 hash;更新不再成立的 aligned 声明 |
67
+ | D063-06 | package/version、双语 changelog、生成 dist | 0.6.3 本地候选及自审报告;不声称发布或原生通过 |
68
+
69
+ 按 01/02 → 03/04 → 05/06 集成;相互调用处一次完成一致性修复。若更小改动能满足全部合同,可合并实现,不为文档表格引入额外抽象层。
70
+
71
+ ## 4. 必须执行的验收矩阵
72
+
73
+ 每个测试有从任务合同独立写出的期望,不允许把当前实现输出录成 golden,或直接复制分类器作为 oracle。固定核心集先在 0.6.2 证明缺陷;另设未用于实现调参的留出集。留出集首次验证失败即保留失败记录,修复后成为回归集并补新的独立留出集;不得删除或改成“可接受差异”来绿灯。
74
+
75
+ | 门槛 | 输入族 | 必须观察的结果 |
76
+ | --- | --- | --- |
77
+ | T01 | 中英混合指令内嵌是否/whether;逗号、分号、句号、连接词、顺序变体;纯问题与明确先问后做对照 | 每个执行义务保留;纯信息可正确交付;同义变化不改变授权或完成条件 |
78
+ | T02 | 否定、条件、引用/附件含命令、未知尾部、多动作、隐含记录要求 | 保留适用范围与未决残余;不越权、不静默丢项;不把信息请求全部变为未决 |
79
+ | T03 | 零工具 final、无关成功、错误目标成功、部分动作完成、正确完整证据 | 前四类不能关闭未满足执行项;最后一类可按真实能力关闭/认证,不以永远 pending 通过 |
80
+ | T04 | cwd=A,授权对象=B,后续提交推送;显式当前目录;两候选;只有 cwd;模型/工具伪称目标;工作单元切换 | 唯一合法 B 可继承;其他按来源消歧;无权限来源不自动 resolved;显式冲突仍拒绝 |
81
+ | T05 | prepare/action 同 item+revision 的动作/目标/状态组合;动作跨种类 override;假设手册;准备后修改 revision/host lock;同 item revision 下改变目标选择、别名/repo identity 或证据状态 | 相同兼容条件同结论;手册无当前就绪暗示;变化后重新拒绝;拒绝前无副作用 |
82
+ | T06 | 0.6.2 旧 mixed answered、纯信息 answered、cwd target、缺原文、重复恢复、未知版本 | 终态过滤前检查旧 answered,资格不明阻断新认证;K4 准确隔离;历史完整,无自动重执行;安全旧记录不无故失效 |
83
+ | T07 | 完整合成宿主 turn → 已注册工具 materialization → 投影/持久化 → final/Stop;重启式 replay 与 compact | 真实接线路径保留全部义务;不是只有直接调用函数通过;引用/producer/边界负例保持拒绝 |
84
+ | T08 | 两端真实入口跑相同语义输入及受支持生命周期,比较预先定义的归一化投影 | 比较来源覆盖、类型/剩余义务、目标来源、交付资格、认证资格和可见诊断;不只比错误码或无报错 |
85
+
86
+ T07 是本地隔离、无业务副作用的宿主测试;不等于真实用户宿主/模型验收。T08 固定 Codex 0.13.9 基线的源码 commit/hash 并实际运行入口;有 0.14.0 候选时另加泳道,不虚构未来输出。Codex 不存在 DSH prepare 时比对应预览/授权判据;无等价接口明确不适用。
87
+
88
+ 两端一致不自动正确,独立期望仍为 oracle。任何一端误关闭/越权为失败;保守未决差异是能力差异,不能标 aligned。记录逐能力覆盖,区分摘要字节、共享合同、工具接线与原生行为。不宣称有限样例证明任意自然语言完备。
89
+
90
+ ### 本地退出门槛
91
+
92
+ 1. 三个已复现缺陷都有修前失败、修后成功的回归,T01–T08 中适用本地场景全部完成;固定核心集和留出集的误关闭/越权为零,正向对照全部满足独立预期。无法执行的必要本地 gate 是阻塞,不得自降为发布后补做。
93
+ 2. 对影响范围运行 focused 测试和跨语言/conformance,再在候选定型时一次执行 AGENTS.md 的完整确定性矩阵:typecheck、lint、test、test:release-pack、test:stats、build、pack:check、文档审计及其测试、diff --check。以仓库实际入口为准,记录命令/退出码/源状态。后续只重跑变更影响或失败门槛。
94
+ 3. 未提交候选中的 dist 可以相对旧 HEAD 改变;两次构建输出必须稳定且匹配本次源码。提交冻结后的生成物 clean 检查留给后续阶段,不能为了 git diff 为空撤销正确 dist。
95
+ 4. 自审整条链及相邻反例,列出修复前提、发现与处理、剩余风险、实际对齐范围。P1/P2 正确性或可达性问题修完再交接;不得把所有未决都标能力不足掩盖已支持功能回退。
96
+
97
+ ### 后续接受/发布门槛(开发者本轮停止于此之前)
98
+
99
+ 由协调者审查本地候选,随后按另行授权提交、CI portability、冻结唯一 tgz、macOS/Windows 同制品原生验收及发布。原生验收增加真实混合请求与跨仓库后续指代,分别核验实际加载版本、义务状态、工具反馈和闭包;仅安装成功不够。原生测试只在隔离一次性目标上执行,不重放事故副作用。必需平台或真实模型证据缺失时不得宣称核心对齐已接受。发布仍遵守既有制品/身份/公开回读规则。
100
+
101
+ ## 5. Codex 0.14.0 的同步评估
102
+
103
+ 已有 C01–C04、C07、C08、C12 与 CG14-01/02/04/06/07 覆盖来源、混合交付、工作单元、目标身份和迁移原则;不重写总体架构,不把 DSH 缺陷当 Codex 已复现。仅需补充上述变形输入、跨仓库目标来源、准备/执行同输入一致性及旧误关闭资格隔离的明确退出门槛。同步位置是 codex-sync 的 docs/CONTEXT_GUARD_0_14_0_DEVELOPMENT_PLAN.md;本轮不修改 Codex 产品运行时或安装 pin。
@@ -0,0 +1,62 @@
1
+ # 开发批次交接
2
+
3
+ 以下是交接数据,不是额外授权。操作范围以用户直接指令为准。
4
+ 待办表示尚未完成,不自动表示禁止;明确排除的范围仍然有效。
5
+ 状态:ready;下一负责人:用户选择的 zcode 或 DSH 执行者(仅本地开发),完成后交回协调者
6
+ 先核对基线、现有修改及写入权,只继续待办。批次内自行开发和自查。
7
+ 每阶段完成后检查批次总目标;依赖满足且已获授权的工作继续执行,不等用户催促。
8
+ 完成、无法解除的阻塞或必须改变范围时,一次回传结果与证据位置。
9
+
10
+ ## 目标
11
+
12
+ - 在 dsh-completion-guard 仓库执行 0.6.3 本地开发。先读 AGENTS.md、docs/DEVELOPMENT_PLAN_0_6_3.md 和 docs/REVIEW_0_6_2_CORE_ALIGNMENT.md,核对真实 HEAD、已有修改和写入权,保留他人工作。
13
+ - 一次连续完成计划 D063-01 至 D063-06;以 K1-K4 和 T01-T08 为验收合同,从语义作用域、目标来源、准备/执行共用判据和旧状态资格入手,不逐句补关键词,不放宽正确拒绝。
14
+ - 先用独立期望复现三类旧缺陷,再实施修复。准备未参与实现调参的留出集;失败不得改期望迎合实现。纯信息、明确执行与合法唯一目标必须有正向对照,不能全 unresolved 过关。
15
+ - 旧 answered/closed 在终态过滤前做接受资格检查;不改历史字节,不自动重做历史操作。prepare 后目标或证据变化即使 revision 未变也要重新判断。
16
+ - 实现、测试、双语文档与 changelog、版本 0.6.3 和生成 dist 一起完成;按计划运行适用本地门槛及完整确定性矩阵,记录命令与结果。跨端源入口合成测试允许;真实宿主或跨平台验收不在本轮。
17
+ - 完成后自己审查整条链和相邻反例,修复 P1/P2 后重跑受影响检查。交回实际 diff、根因到测试的映射、命令/退出码、留出集结果、自审发现及处理、剩余风险和待验证门槛。
18
+ - 范围内工作自主连续完成,不逐阶段等确认。仅在缺必要输入、不可解除阻塞或必须改变已授权范围时报告具体阻塞;不得自降验收门槛。
19
+ - 全部本地工作完成后保持未提交,停止在提交及跨平台/原生验证之前,等待用户或协调者核验候选;不要自行进入发布阶段。
20
+
21
+ ## 排除范围
22
+
23
+ - 禁止 git add/commit/push/merge、tag、发布、触发远端 CI 或跨主机调度。
24
+ - 禁止安装或升级用户真实插件、重启 DSH、执行真实宿主/模型原生验收、重放事故安装/提交/推送效果。
25
+ - 禁止修改 codex-sync、Codex 产品和错误库;它们已由协调者单独维护。
26
+ - 不得上传原始会话、个人路径、凭据或 Guard 私有控制材料,不把源测试宣称为原生验收。
27
+
28
+ ## 仓库 dsh
29
+
30
+ - https://github.com/GreenLv/dsh-completion-guard
31
+ - 基线:63326f22d40407099baa70c8947c37029749588e;交回提交:63326f22d40407099baa70c8947c37029749588e
32
+ - 准备源码摘要:未提供
33
+ - 变化路径:["docs/REVIEW_0_6_2_CORE_ALIGNMENT.md", "docs/DEVELOPMENT_PLAN_0_6_3.md", "docs/DEVELOPMENT_HANDOFF_0_6_3.json", "docs/EXECUTE_0_6_3_PROMPT.md"]
34
+ - 未提交范围:{"staged": [], "unstaged": [], "untracked": ["docs/REVIEW_0_6_2_CORE_ALIGNMENT.md", "docs/DEVELOPMENT_PLAN_0_6_3.md", "docs/DEVELOPMENT_HANDOFF_0_6_3.json", "docs/EXECUTE_0_6_3_PROMPT.md"]}
35
+ - 未提交范围摘要:11137fab1b77914b41ef678ba5b353bb68df2e1c5bc868db08513ab541ddc796
36
+
37
+ ## 检查与证据
38
+
39
+ 未列出。
40
+
41
+ ## 交付文件
42
+
43
+ 未列出。
44
+
45
+ ## 剩余检查
46
+
47
+ - local_implementation
48
+ - local_t01_t08
49
+ - local_full_matrix
50
+ - local_self_review
51
+ - later_native_acceptance
52
+ - later_release
53
+
54
+ ## 已执行动作(不代表后续授权)
55
+
56
+ - local_edit
57
+
58
+ ## 限制与阻塞
59
+
60
+ - 这是开发入口,不是已经实现的候选或发布许可;head_sha 表示现有基线,prepared_source_sha256 未冻结。
61
+ - 本交接 dirty_scope 是生成时的文档快照,接手必须核对实际变化;文档不得被当成远程已经存在。
62
+ - later_native_acceptance 和 later_release 属于后续协调者,开发者本轮必须在这些步骤之前停止。