frontend-project-context 1.0.0 → 1.2.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.
@@ -1,10 +1,10 @@
1
1
  # Frontend Project Context — 产品宪法
2
2
 
3
- > 宪法版本:`1.1.1`
3
+ > 宪法版本:`1.2.0`
4
4
  >
5
5
  > 状态:`frozen`
6
6
  >
7
- > 生效日期:`2026-09-07`
7
+ > 生效日期:`2026-09-09`
8
8
 
9
9
  ## 1. 文档权威
10
10
 
@@ -15,7 +15,7 @@
15
15
  - `PROJECT_STATE.json` 只记录当前事实、实现状态、授权和下一步;
16
16
  - `RTK.md` 只提供新窗口启动摘要;
17
17
  - `README.md` 只提供产品介绍和使用入口;
18
- - `docs/01` 至 `docs/05`、`docs/08`、`docs/11`、`docs/12` 是形成当前决定的设计或路线说明;
18
+ - `docs/01` 至 `docs/05`、`docs/08`、`docs/11` 至 `docs/17` 是形成当前决定的设计或路线说明;
19
19
  - `docs/06`、`docs/07`、`docs/09`、`docs/10` 是历史或验证证据;
20
20
  - 任务讨论、实验结果和真实项目观察都是输入证据,不能自行改变本文档。
21
21
 
@@ -23,9 +23,9 @@
23
23
 
24
24
  ## 2. 唯一产品定义
25
25
 
26
- Frontend Project Context 是一个**落在项目中的、位于项目与 AI 编程工具之间的模型无关上下文治理与编译层**。
26
+ Frontend Project Context 是一个**落在项目中的、位于项目与 AI 编程工具之间的模型无关双向上下文治理与交换层**。
27
27
 
28
- 它把项目明确提供的事实、规则和来源治理为一份人工批准的 `Project Contract`,再针对目录和任务生成最小、可追溯的 `Context Bundle`,投影给已有 AI 编程工具,并检测来源、合同和投影漂移。
28
+ 它把项目明确提供的事实、规则和来源治理为一份人工批准的 `Project Contract`,再针对目录和任务生成最小、可追溯的 `Context Bundle`,投影给已有 AI 编程工具,并把 AI 返回的建议收敛为可预检、可集中审查的短生命周期 action,最后在人明确批准后复用现有安全写入原语。
29
29
 
30
30
  ```text
31
31
  项目显式来源 + 人工规则
@@ -33,22 +33,26 @@ Frontend Project Context 是一个**落在项目中的、位于项目与 AI 编
33
33
  → 人工批准的 Project Contract
34
34
  → 按目录/任务编译的 Context Bundle
35
35
  → AGENTS.md / Ruler / 其他 AI 工具
36
- 来源与投影漂移检查
36
+ AI Action Plan
37
+ → 确定性预检与人工集中审查
38
+ → 已授权的细粒度写入
39
+ → 来源、合同与投影漂移检查
37
40
  ```
38
41
 
39
- 本产品治理“项目希望 AI 知道什么”,不负责“AI 如何完成开发任务”。
42
+ 本产品治理“项目希望 AI 知道什么”和“AI 建议如何在人工授权前被安全表达与预检”,不负责“AI 如何完成开发任务”。
40
43
 
41
44
  ## 3. 固定用户问题
42
45
 
43
46
  同一项目的知识分散在设计资料、文档、配置、代码和团队约定中,不同 AI 工具会获得不完整、重复或互相冲突的指导,并且规则变化难以追溯。
44
47
 
45
- 本产品提供的稳定价值只有三点:
48
+ 本产品提供的稳定价值只有四点:
46
49
 
47
50
  1. 一份有人批准、保留来源的项目合同;
48
51
  2. 针对目录和任务的确定性上下文编译;
49
52
  3. 同一合同面向多个 AI 消费者的一致投影和漂移检查。
53
+ 4. 项目与不同 AI 编程工具之间一份双向、模型无关、可预检且不扩张人工权限的交换协议。
50
54
 
51
- 如果某项能力不能直接服务这三点,它默认不属于内核。
55
+ 如果某项能力不能直接服务这四点,它默认不属于内核。
52
56
 
53
57
  ## 4. 固定内核
54
58
 
@@ -60,6 +64,7 @@ Frontend Project Context 是一个**落在项目中的、位于项目与 AI 编
60
64
  4. **Context Renderer**:生成包含必要批准内容和来源引用的稳定 Context Bundle,任务约束不写回合同;
61
65
  5. **Projection Boundary**:把同一合同投影为受管 Markdown、AGENTS 或 Ruler 输入,不重建完整工具适配矩阵;
62
66
  6. **Conflict and Drift Check**:报告来源、合同和受管投影变化,不自动修复或静默提升规则。
67
+ 7. **AI Exchange Boundary**:以公开、带版本的机器合同向外部 AI 输出 Context/Assist Bundle,并把 AI 建议收敛为无权限的 Action Plan 与只读 Review Bundle;所有持久动作仍需人对精确 action、ID 和路径明确批准。
63
68
 
64
69
  自动 discovery 只是帮助项目首次接入的可选辅助,不是内核完整性的衡量标准。它可以保守地提出候选,但不承担理解所有前端技术和业务语义的责任。
65
70
 
@@ -90,6 +95,7 @@ Vue、React、uni-app、Vuex、Element UI、路由、租户和发布方式等都
90
95
  8. 未知项目语义是待录入的项目数据,不自动成为产品缺陷。
91
96
  9. 真实项目只能验证预先定义的能力,不能直接产生内核需求。
92
97
  10. 新技术、新文件名或单个项目差异不能成为扩大 discovery 的充分理由。
98
+ 11. AI 产生的 Action Plan、Review Bundle、推理或建议都不是 Project Contract、approval 或持久执行权限;必须通过 schema、baseline、impact 和人工精确授权边界。
93
99
 
94
100
  ## 7. v1 完成定义
95
101
 
@@ -112,6 +118,19 @@ v1 只有在以下闭环同时成立时才算产品完成:
112
118
 
113
119
  该版本只扩展现有来源追溯、人工合同治理和漂移检查,没有改变第 2 至第 6 节的产品身份、内核、永久边界和不变量。
114
120
 
121
+ ### 7.2 AI Exchange Boundary 完成条件
122
+
123
+ `1.2.0` 的双向桥梁扩展只有在以下闭环同时成立时才算完成:
124
+
125
+ 1. 未初始化或已初始化项目都可以机器可读地查询协议能力、schema 和永久边界;
126
+ 2. Context/Assist Bundle、Action Plan 和 Review Bundle 都有公开版本化 schema;
127
+ 3. AI 建议可以通过结构化 Action Plan 复用现有原语完成确定性预检,不需要拼接 shell 字符串;
128
+ 4. Review Bundle 完整展示 current/proposed、baseline、impact、blocker、item/source/path/projection 和 structured invocation;
129
+ 5. 任何人工批准前的交换都保持只读,任何过期 baseline 都失败封闭;
130
+ 6. 宿主 Agent 适配可替换,且不改变 Project Contract、scope、approval、ownership 或漂移语义。
131
+
132
+ 完整实现合同以 [17-AI-EXCHANGE-BOUNDARY-DESIGN.md](./17-AI-EXCHANGE-BOUNDARY-DESIGN.md) 为准。
133
+
115
134
  ## 8. 真实项目与实验规则
116
135
 
117
136
  `dtg-tmc-mobile` 和 `dtg-tmc-pc` 已经完成 B0。它们证明核心机制和首轮安全修补可以落在真实仓库结构中。
@@ -130,11 +149,12 @@ v1 只有在以下闭环同时成立时才算产品完成:
130
149
  任何新增建议必须先归入且只能归入一类:
131
150
 
132
151
  - **内核缺陷**:违反第 6 节不变量或第 7 节既定完成条件,可以进入设计;
152
+ - **宪法级产品演进**:现有稳定价值或内核无法完整表达经用户确认的产品问题,必须按第 11 节单独获得产品方向变更授权;
133
153
  - **项目数据**:某项目自己的技术、目录、规则和业务语义,由 Project Contract 表达;
134
154
  - **可选适配器**:减少某种来源导入或消费者输出成本,不改变内核;
135
155
  - **外部工具职责**:继续采用现成工具,本项目拒绝实现。
136
156
 
137
- 无法证明属于内核缺陷的建议,不得进入核心实现。多个项目重复出现也只能提高审查优先级,不能绕过这一分类。
157
+ 无法证明属于内核缺陷,且没有按第 11 节获得宪法级产品演进授权的建议,不得进入核心实现。多个项目重复出现也只能提高审查优先级,不能绕过这一分类。
138
158
 
139
159
  ## 10. 当前事实职责与阶段停止规则
140
160
 
@@ -164,3 +184,15 @@ v1 只有在以下闭环同时成立时才算产品完成:
164
184
  2. 第 10 节删除会随时间失效的具体“当前下一步”,把当前事实、授权和下一步的唯一记录职责交还给 `PROJECT_STATE.json`;
165
185
  3. 产品身份、固定用户问题、内核、永久边界、不变量、需求分类和已有用户数据合同均未改变;
166
186
  4. 本次修订不授权产品代码、Git、真实项目、自托管 Project Contract、看板、团队验收或发布工作。
187
+
188
+ ## 13. `1.2.0` 双向桥梁修订记录
189
+
190
+ 本次修订经用户于 `2026-09-09` 在确认“主要功能就是项目与 AI 之间桥梁,有必要可以扩大自研内核”后明确要求执行,变更如下:
191
+
192
+ 1. 第 2 节把单向上下文输出补全为项目 → AI 与 AI → 项目的双向桥梁;
193
+ 2. 第 3 节增加“模型无关、可预检、不扩张人工权限的交换协议”作为第四项稳定价值;
194
+ 3. 第 4 节新增 AI Exchange Boundary 作为第七项自研内核;
195
+ 4. 第 6 节新增 AI 建议不是真源、批准或持久权限的不变量;
196
+ 5. 第 7.2 节新增 `1.2.0` 双向交换完成条件;
197
+ 6. Provider、Agent Runtime、开发任务执行、Git、网络、自动批准、业务代码修改和框架识别白名单仍在永久边界外;
198
+ 7. 本次授权只包含宪法修订、`1.1.0` 完整性修正和 `docs/17` 设计落盘,不自动授权 `1.2.0` 产品代码、真实项目、Git 写入或发布。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 权威说明:本文记录当前实现设计;如与 [00-PRODUCT-CONSTITUTION.md](./00-PRODUCT-CONSTITUTION.md) 冲突,以产品宪法为准。
4
4
 
5
- > 状态:`1.0.0 Source Lifecycle Closure implemented locally; A-01 through A-45, B0 regressions, and CLI verified`
5
+ > 状态:`1.2.0 AI Exchange Boundary implemented locally; A-01 through A-63, B0 regressions, CLI, schemas, and release artifacts verified; 69 tests total`
6
6
  >
7
7
  > 前置真源:[03-FINAL-SOLUTION.md](./03-FINAL-SOLUTION.md)。本文不得重新引入 Agent Runtime、任务执行、Git 生命周期或完整多工具适配矩阵。
8
8
 
@@ -12,17 +12,23 @@ v1 是一个本地 Node.js CLI 和一组无第三方依赖的可复用模块,
12
12
 
13
13
  ```text
14
14
  project-context init
15
+ project-context capabilities
16
+ project-context setup
15
17
  project-context register
16
18
  project-context propose
17
19
  project-context review-source
18
20
  project-context accept-source-change
19
21
  project-context revise
20
22
  project-context deprecate
23
+ project-context deprecate-source
21
24
  project-context discover
22
25
  project-context approve
23
26
  project-context context
24
27
  project-context publish
25
28
  project-context check
29
+ project-context dashboard
30
+ project-context sync
31
+ project-context preflight
26
32
  ```
27
33
 
28
34
  CLI 不提供 `run`、`generate-code`、`validate`、`retry`、`review-candidate`、`deliver` 或任何 Git 命令。
@@ -52,8 +58,9 @@ CLI 不提供 `run`、`generate-code`、`validate`、`retry`、`review-candidate
52
58
  - proposal 为 `{ schemaVersion, projectId, sources, items }`,所有 item 必须保持 `proposed`;
53
59
  - source lock 为 `{ schemaVersion, sources: [{ id, digest }] }`,只记录经过显式 register 或 approve 动作确认的本地来源;
54
60
  - projection lock 为 `{ schemaVersion, projections[] }`,每项记录输出路径、target、目标 scope paths、合同/bundle/内容 digest、item IDs 和 renderer version;
55
- - contract、proposal 和两个 lock schema version authoring closure 后仍为 1;新投影使用 renderer version 2,读取器兼容 renderer version 1 的受管投影并要求显式重发;
61
+ - Contract reader 支持 schema 1/2,并只在成功废弃来源时延迟写 schema 2;proposal 和两个 lock 继续使用 schema 1;新投影使用 renderer version 3,读取器兼容 renderer version 1/2 的受管投影并要求显式重发;
56
62
  - `contract.json` 中的本地 source digest 必须与 source lock 一致;lock 是上次人工批准时的确认点,`check` 不自动更新它。
63
+ - npm 包中的 `schemas/capabilities.schema.json`、`assist-bundle.schema.json`、`action-plan.schema.json` 和 `review-bundle.schema.json` 是版本化机器交换合同,不是项目 store 或第二真源。
57
64
 
58
65
  ## 4. Project Contract schema
59
66
 
@@ -287,6 +294,42 @@ project-context check --project PATH
287
294
 
288
295
  `check` 不更新 digest、不写文件、不执行项目验证。
289
296
 
297
+ ### 5.9 `setup`
298
+
299
+ ```text
300
+ project-context setup --project PATH --id ID --name NAME [--output FILE] [--write] [--json]
301
+ ```
302
+
303
+ `setup` 在内存中聚合现有 `init` 和 `discover`,输出 Assist Bundle schema 1。preview 保持全部文件字节不变;`--write` 只创建三个 store 和 create-only proposal,默认 proposal 路径为 `.project-context/setup.proposal.json`。JSON `artifacts` receipt 返回该路径、`preview | create | unchanged` action 和 persisted 状态。已初始化项目必须匹配原 id/name,partial store 和不同 proposal 均失败封闭。所有候选保持 proposed,`setup` 不批准、不发布,也不修改业务文件。
304
+
305
+ ### 5.10 `sync`
306
+
307
+ ```text
308
+ project-context sync --project PATH [--changed-path RELATIVE_PATH...] [--json]
309
+ ```
310
+
311
+ `sync` 永远只读。它对全部 active 本地来源复用 `reviewSource/sourceImpact`,合并变化来源、direct/verification/override-dependent item、fallback、projection、pending 与 checker finding;即使无 source drift,pending item 和 projection-only finding 仍形成 `pending-review`/`projection-review` 工作单元。调用方 changed path 只经过现有路径策略和 Scope Compiler,不读取 Git、不自动登记来源。
312
+
313
+ ### 5.11 `capabilities`
314
+
315
+ ```text
316
+ project-context capabilities --project PATH [--json]
317
+ ```
318
+
319
+ `capabilities` 在未初始化、partial 或已初始化项目中均只读可用。JSON 从实现常量派生 package/exchange protocol/schema version、公共命令、八类 Action Plan action、初始化状态、项目 ID/name 和永久 false 的 Provider、Agent Runtime、Git、network、dependency install、automatic approval、business-code write、apply-plan、scheduler、daemon 边界;它不创建 capability 配置文件。
320
+
321
+ ### 5.12 `preflight`
322
+
323
+ ```text
324
+ project-context preflight --project PATH --plan FILE [--json]
325
+ ```
326
+
327
+ `preflight` 先按 Action Plan schema 1 严格拒绝未知字段、重复 action ID、未知 kind、权限字段、shell/Provider 字段和项目外路径,再验证 project ID 与 contract/source/projection 三个 snapshot。八类 action 分别复用现有 register、propose、review/accept、revise、deprecate、approve 与 publish preview;Review Bundle 完整列出 current/proposed、action baseline、item/source/path/projection impact、blocker、稳定分组和 `{ command, args }`。
328
+
329
+ 整份 plan 中任一 action 不可审查时 bundle 状态为 `blocked`,但其他 action 仍完整展示。只有 `reviewable` action 才有 invocation,且 invocation 不含 `--write`、`--by` 或伪造身份。Action Plan 与 Review Bundle 均不写 store/projection/业务文件、不创建 approval,也不能被原命令当成授权;任一真实写入后,未执行 invocation 必须废弃并重新 `sync`/`preflight`。
330
+
331
+ Assist Bundle 默认只含摘要、digest、精确 ID、locator、`readTargets` 和稳定 `workUnits`,不含来源正文或无关 item 的完整值。超大影响显式标记并保留全部 ID,不静默截断。AI 可以据此准备既有安全命令,但规范写入仍要求人明确批准具体 ID 和路径。
332
+
290
333
  ## 6. 确定性编译规则
291
334
 
292
335
  1. 只读取 `approved` item。
@@ -303,12 +346,17 @@ project-context check --project PATH
303
346
  bin/project-context.mjs
304
347
  src/project-context/
305
348
  approver.mjs
349
+ assist.mjs
350
+ exchange-schema.mjs
351
+ exchange.mjs
306
352
  authoring.mjs
307
353
  checker.mjs
308
354
  cli.mjs
309
355
  contract-schema.mjs
310
356
  canonical-json.mjs
311
357
  discovery.mjs
358
+ dashboard-model.mjs
359
+ dashboard-renderer.mjs
312
360
  errors.mjs
313
361
  io.mjs
314
362
  maintenance.mjs
@@ -324,6 +372,9 @@ test/project-context/
324
372
  - `source-reader` 只读取和哈希来源。
325
373
  - `authoring` 只构造/登记显式 source 和单 item proposal,不批准内容。
326
374
  - `discovery` 产生 proposal,不接触 approved 状态。
375
+ - `assist` 只聚合现有 discovery、checker、maintenance 和 scope compiler 的确定性派生结果,不保存新 store。
376
+ - `exchange-schema` 严格验证并稳定规范化 Action Plan 与 Review Bundle schema,同时定义协议版本、action kind 与公共 capability 常量;所有项目路径仍复用 path policy。
377
+ - `exchange` 只聚合现有 preview/helper 为 capabilities 与 Review Bundle,不保存 plan/review、不执行 invocation。
327
378
  - `scope-compiler` 是纯函数,不访问 Runtime。
328
379
  - `projection-store` 是唯一可写目标项目文件的模块。
329
380
  - 所有模块使用 Node.js 标准库;不安装依赖。
@@ -340,6 +391,8 @@ test/project-context/
340
391
  4 unexpected internal failure
341
392
  ```
342
393
 
394
+ Action Plan 的新增稳定错误为:schema/project mismatch 退出 2;project snapshot、action conflict 与 action-specific preflight blocker 退出 1。能由既有 source/item/projection 错误精确表达的 blocker 继续保留原 code。
395
+
343
396
  错误报告至少包含 code、message、相关 item/source/path 和建议的人工下一步。不得建议自动重试 Provider 或自动覆盖文件。
344
397
 
345
398
  ## 9. 程序明确禁止
@@ -364,6 +417,8 @@ test/project-context/
364
417
  7. CLI 整合与完整 fixture 验收;
365
418
  8. 通用 register/propose、approval 预检、renderer v2 和 A-15 至 A-20。
366
419
  9. 来源 review/accept、同 ID revise、deprecate、pending reapproval、store 并发补强和 A-21 至 A-30。
420
+ 10. setup/sync Assist Bundle 聚合、changed path 映射和 A-46 至 A-55。
421
+ 11. capabilities、Action Plan/Review Bundle、只读 preflight、机器 schema 和 A-56 至 A-63。
367
422
 
368
423
  任何一步都不需要真实项目任务或 Provider。
369
424
 
@@ -426,3 +481,22 @@ contract、proposal、source lock、projection lock schema 仍为 1。projection
426
481
  - project 双 store 写入在提交前同时核对 contract、source lock 和 projection lock snapshot,并保持 lock-first 条件恢复。
427
482
 
428
483
  A-40 至 A-45 和全部既有回归已通过,当前共 49 项。package 仍为 `1.0.0`;公开发布配置不新增 Provider、框架识别、source kind、projection target、调度、Git 管理或自动批准能力。
484
+
485
+ ## 16. `1.1.0` Guided Onboarding 与 AI-assisted Reconciliation 实现结果
486
+
487
+ `1.1.0` 已按 [16-GUIDED-ONBOARDING-AND-AI-RECONCILIATION-DESIGN.md](./16-GUIDED-ONBOARDING-AND-AI-RECONCILIATION-DESIGN.md) 的冻结范围完成本地实现:
488
+
489
+ - 新增纯聚合 `assist.mjs`、公共 `setup` 与只读 `sync`;
490
+ - `setup` 复用原初始化和 discovery,写入仅限三个 store 与 create-only proposal;
491
+ - `sync` 复用 review、impact、checker 和 Scope Compiler,支持调用方显式 changed path;
492
+ - Assist Bundle schema 1 不进入 Contract,不保存来源正文或 AI 推理;
493
+ - 人类批准、baseline、projection ownership 和失败恢复继续由既有细粒度命令承担;
494
+ - Contract reader 1/2、proposal/source/projection lock schema 1、renderer 3 和 Dashboard View Model 3 均未变化。
495
+
496
+ A-46 至 A-55、两个新增 CLI 入口回归和全部既有测试已通过,当前共 61 项。验证只使用隔离临时 fixture,没有调用 Provider、网络、Git、child process、依赖安装或真实业务项目,也没有发布 `1.1.0`。
497
+
498
+ ## 17. `1.2.0` AI Exchange Boundary 实现结果
499
+
500
+ [17-AI-EXCHANGE-BOUNDARY-DESIGN.md](./17-AI-EXCHANGE-BOUNDARY-DESIGN.md) 冻结的双向桥接协议已完成本地实现:新增机器可发现 capabilities、短生命周期 Action Plan、只读 preflight/Review Bundle、structured invocation 与四份公开 schema;八类 action 继续复用现有安全原语。
501
+
502
+ A-56 至 A-63 和全部既有回归共 69/69 通过。实现未增加 store migration、`apply-plan`、Provider、Agent Runtime、业务代码执行、Git、网络、依赖安装、scheduler、daemon、自动批准或自动修复;未执行打包、registry、Git push 或发布。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 权威说明:本文记录核心引擎验收;完整 v1 完成定义以 [00-PRODUCT-CONSTITUTION.md](./00-PRODUCT-CONSTITUTION.md) 第 7 节为准。
4
4
 
5
- > 状态:`A-01 through A-45 plus B0-01/B0-02 and CLI passed locally; 49 tests total on 2026-09-08`
5
+ > 状态:`A-01 through A-63 plus B0-01/B0-02, CLI, machine schemas, and release artifacts passed locally; 69 tests total on 2026-09-09`
6
6
 
7
7
  ## 1. 验收原则
8
8
 
@@ -322,9 +322,9 @@
322
322
 
323
323
  ### A-39 发布候选边界
324
324
 
325
- - package name/version 固定为 `frontend-project-context@1.0.0`,bin 为 `project-context`,Node.js 下限为 18,第三方 runtime dependency 为零;
325
+ - package name 固定为 `frontend-project-context`,当前本地实现版本为 `1.2.0`、公共 npm 已核验最新版本为 `1.0.1`,bin 为 `project-context`,Node.js 下限为 18,第三方 runtime dependency 为零;
326
326
  - package metadata 声明 Apache-2.0,发布包包含官方 LICENSE 和 `Copyright 2026 Fushan` NOTICE;
327
- - `files` 白名单包含保持文档链接完整所需的 PROJECT_STATE/RTK 和许可证文件,但不包含测试、自托管 `.project-context/` 或本地生成物;
327
+ - `files` 白名单包含 bin、src、docs、examples、四份公开 machine schema、变更/升级说明和许可证文件,但不包含测试、PROJECT_STATERTK、自托管 `.project-context/` 或本地生成物;
328
328
  - `prepack` 必须运行全量检查,bin 保持可执行;
329
329
  - changelog、升级说明、最小 consumer 配置与只读 CI 模板同时存在,CI 不包含 `--write`、自动批准或发布命令;
330
330
  - 本地 `npm pack` 清单与白名单一致,解包后 CLI help、临时项目 init/check 和确定性输出可运行;
@@ -346,3 +346,35 @@ A-39 是发布工件一致性验证,不扩展 Project Contract、CLI、schema
346
346
  实现结果证明:missing active source 可经 register → revise/reapprove → deprecate-source → republish 恢复 clean;preview、source object baseline、署名、理由、引用阻断、schema 1 延迟迁移、deprecated provenance、checker/dashboard/context/publish 一致性和 lock-first 失败恢复均按冻结合同工作。测试只使用隔离临时 fixture,没有访问真实业务项目、Provider、网络、Git 或依赖安装,也没有修改业务源码。
347
347
 
348
348
  当前通过事实为 A-01 至 A-45、B0-01/B0-02 和 CLI 共 49 项;A-40 至 A-45 没有删除、跳过或弱化既有验收。
349
+
350
+ ## 13. `1.1.0` Guided Onboarding 与 AI-assisted Reconciliation 验收(已实现并通过)
351
+
352
+ [16-GUIDED-ONBOARDING-AND-AI-RECONCILIATION-DESIGN.md](./16-GUIDED-ONBOARDING-AND-AI-RECONCILIATION-DESIGN.md) 记录了最初以可选适配器形成、现已归入 AI Exchange Boundary 基础的 A-46 至 A-55:
353
+
354
+ - **A-46**:setup preview 确定性且零写入;显式写入只创建三个 store 与 create-only proposal;JSON 返回 proposal artifact receipt;
355
+ - **A-47**:setup 完全复用 discovery,支持同项目继续,拒绝项目不匹配、partial store 和 proposal 覆盖;
356
+ - **A-48**:sync 一次聚合全部变化来源、精确规则 ID 并集、原因、fallback 与 projection 影响;
357
+ - **A-49**:调用方 changed path 只经现有路径策略和 Scope Compiler 映射,目录型 file source 与 path source 都覆盖后代,不访问 Git、不自动登记来源;
358
+ - **A-50**:Assist Bundle 默认不含 source body、完整无关 Contract 或 Provider 请求,以 readTargets/workUnits 支持渐进读取;
359
+ - **A-51**:setup/sync 永不 accept、revise、deprecate、approve 或 publish,AI 候选继续受 schema、baseline、impact 和人工 exact-ID 批准约束;
360
+ - **A-52**:隔离 fixture 完成一次脚本化协议准备、一次人工集中批准、投影与 clean check 的首次接入闭环,不伪称真实 Host Agent Runtime 验收;
361
+ - **A-53**:多来源增量维护可在 baseline/并发失败后停止并重新 sync,不重放旧计划或覆盖并发状态;
362
+ - **A-54**:49 项既有测试全部不回归,schema/renderer/dashboard 版本不变,零 Provider、网络、Git、scheduler、daemon、dependency install、业务代码修改和真实项目访问。
363
+ - **A-55**:pending 与 projection-only 状态有完整内容、read target 和稳定工作单元。
364
+
365
+ 实现 Gate 已满足:A-46 至 A-55 对应 10 项编号验收,另有 2 项独立 CLI setup/sync 回归;A-01 至 A-45、B0-01/B0-02、CLI 和发布工件没有删除、跳过或弱化,`npm run check` 共 61/61 通过。测试只使用隔离临时 fixture,未访问 Provider、网络、Git、依赖安装、真实业务项目或外部系统。
366
+
367
+ ## 14. `1.2.0` AI Exchange Boundary 验收(已实现并通过)
368
+
369
+ [17-AI-EXCHANGE-BOUNDARY-DESIGN.md](./17-AI-EXCHANGE-BOUNDARY-DESIGN.md) 冻结的 A-56 至 A-63 已按本地实现逐项通过:
370
+
371
+ - **A-56 capability 可发现性**:未初始化与已初始化项目的 `capabilities` 确定性返回 package/exchange/schema/command/action/boundary;拒绝写入参数且不创建 store;
372
+ - **A-57 Action Plan schema**:合法计划稳定规范化并按 action ID 排序;未知字段/kind、重复 ID、越界路径、权限/Provider/shell 字段失败封闭;
373
+ - **A-58 原语复用**:八类 action 分别复用现有 register、propose、review/accept、revise、deprecate、approve、publish helper/preview,没有引入第二套 scope、source、item、impact 或 projection 解释器;
374
+ - **A-59 Review Bundle 完整性**:reviewable 与 blocked action 都保留 current/proposed、三个项目 snapshot、action baseline、item/source/path/projection 影响、blocker、稳定分组与 structured invocation;blocked action 不隐藏其他结果;
375
+ - **A-60 人工权限**:capabilities、Action Plan、preflight 和 Review Bundle 不改 store、proposal、projection 或业务文件,不产生 approval;invocation 不含 `--write` 或 `--by`;
376
+ - **A-61 baseline 与恢复**:contract/source/projection snapshot 和 item/source/proposal/projection 专属 baseline 变化均失败封闭;重新读取当前状态并 preflight 后可收敛,不重放旧计划;
377
+ - **A-62 机器 schema 一致性**:四份 JSON schema 覆盖实际 capabilities、Assist Bundle、Action Plan 与 Review Bundle fixture;npm 白名单包含 `schemas/` 且继续排除项目动态状态;
378
+ - **A-63 兼容与永久边界**:A-01 至 A-55、B0、CLI 和发布工件无回归;零 Provider、Agent Runtime、Git、network、child process、dependency install、scheduler、daemon、自动批准和业务代码修改。
379
+
380
+ 实现 Gate 已满足:A-56 至 A-63 共 8 项新增验收,连同全部既有测试为 `npm run check` 69/69。验证只使用隔离临时 fixture;没有访问真实业务项目、Provider、网络或 Git,没有安装依赖、打包或发布。
@@ -2,9 +2,9 @@
2
2
 
3
3
  > 权威说明:本文是支持性设计文档;当前唯一规范真源是 [00-PRODUCT-CONSTITUTION.md](./00-PRODUCT-CONSTITUTION.md)。
4
4
 
5
- 状态:`frontend-project-context@1.0.0` 公开 npm 发布已授权、完成配置并验证发布者 CLI 身份
5
+ 状态:`frontend-project-context@1.2.0` 已完成本地实现与 69 项验证;公共 npm 已核验最新版本仍为 `1.0.1`,`1.2.0` 发布未授权
6
6
  适用项目:`dtg-frontend-delivery-agent`
7
- 本文只确定产品如何交付、安装、共享、升级和验证,不授权实现。
7
+ 本文记录产品如何交付、安装、共享、升级和验证;它不自行授权打包、registry、Git 或发布操作。
8
8
 
9
9
  ## 1. 决策摘要
10
10
 
@@ -43,29 +43,29 @@ CI 安装项目锁定的依赖版本并执行只读检查。CI 不依赖机器
43
43
  面向 Node.js 前端项目,推荐支持包管理器的一次性运行方式,例如:
44
44
 
45
45
  ```bash
46
- npx frontend-project-context@1.0.0 init --project . --id PROJECT_ID --name "Project Name"
47
- pnpm dlx frontend-project-context@1.0.0 init --project . --id PROJECT_ID --name "Project Name"
48
- bunx frontend-project-context@1.0.0 init --project . --id PROJECT_ID --name "Project Name"
46
+ npx frontend-project-context@1.2.0 setup --project . --id PROJECT_ID --name "Project Name" --json
47
+ pnpm dlx frontend-project-context@1.2.0 setup --project . --id PROJECT_ID --name "Project Name" --json
48
+ bunx frontend-project-context@1.2.0 setup --project . --id PROJECT_ID --name "Project Name" --json
49
49
  ```
50
50
 
51
- 以上命令只在包实际发布后可用;当前未访问 registry。包名冻结为 `frontend-project-context`,可执行文件名为 `project-context`,CLI 合同以 [04-PROGRAM-DESIGN.md](./04-PROGRAM-DESIGN.md) 为准。
51
+ 以上 `1.2.0` 一次性命令只在该版本获得单独发布授权并实际发布后可用;当前公共 registry 最新已核验版本仍为 `1.0.1`。包名冻结为 `frontend-project-context`,可执行文件名为 `project-context`,CLI 合同以 [04-PROGRAM-DESIGN.md](./04-PROGRAM-DESIGN.md) 为准。
52
52
 
53
- 初始化入口只负责:
53
+ `setup` 初始化入口只负责:
54
54
 
55
- - 识别当前项目并建立 DTG 配置;
56
- - 选择需要生成的通用 Markdown、AGENTS Ruler 兼容出口;
57
- - 明确哪些文件由 DTG 管理、哪些文件由人维护;
58
- - 预览即将写入的文件;
59
- - 在用户明确确认后执行首次写入。
55
+ - 在内存中构造与 `init` 相同的空 store 并复用保守 discovery;
56
+ - 输出包含候选、`readTargets` `workUnits` Assist Bundle;
57
+ - preview 时保持项目字节不变;
58
+ - 只有本命令带 `--write` 时创建三个 store 和 create-only proposal;
59
+ - proposal 保持 proposed,后续由人审查明确 ID,再使用既有 approve/publish 命令。
60
60
 
61
- 初始化不得自动访问网络、安装额外依赖、批准规范候选或修改业务代码。
61
+ 初始化不得自动访问网络、安装额外依赖、批准规范候选、生成投影或修改业务代码。
62
62
 
63
63
  ### 3.2 正式安装:项目开发依赖
64
64
 
65
65
  初始化后,DTG 应作为项目开发依赖被锁定,例如:
66
66
 
67
67
  ```bash
68
- pnpm add -D frontend-project-context@1.0.0
68
+ pnpm add -D frontend-project-context@1.2.0
69
69
  ```
70
70
 
71
71
  选择项目内安装而不是全局安装,原因是:
@@ -102,7 +102,7 @@ CLI 是初始化、编译、检查和 CI 自动化的参考操作界面,不是
102
102
  - 解释某项规则的来源、作用域和最终生效原因;
103
103
  - 显式执行配置结构迁移。
104
104
 
105
- 具体命令、参数和退出码已经在 [04-PROGRAM-DESIGN.md](./04-PROGRAM-DESIGN.md)、[12-KNOWLEDGE-MAINTENANCE-CLOSURE-ROADMAP.md](./12-KNOWLEDGE-MAINTENANCE-CLOSURE-ROADMAP.md)、[13-READ-ONLY-GOVERNANCE-DASHBOARD-DESIGN.md](./13-READ-ONLY-GOVERNANCE-DASHBOARD-DESIGN.md)[15-SOURCE-LIFECYCLE-CLOSURE-DESIGN.md](./15-SOURCE-LIFECYCLE-CLOSURE-DESIGN.md) 冻结并实现。安装阶段不得通过 `postinstall` 静默修改项目文件。
105
+ 具体命令、参数和退出码已经在 [04-PROGRAM-DESIGN.md](./04-PROGRAM-DESIGN.md)、[12-KNOWLEDGE-MAINTENANCE-CLOSURE-ROADMAP.md](./12-KNOWLEDGE-MAINTENANCE-CLOSURE-ROADMAP.md)、[13-READ-ONLY-GOVERNANCE-DASHBOARD-DESIGN.md](./13-READ-ONLY-GOVERNANCE-DASHBOARD-DESIGN.md)[15-SOURCE-LIFECYCLE-CLOSURE-DESIGN.md](./15-SOURCE-LIFECYCLE-CLOSURE-DESIGN.md)、[16-GUIDED-ONBOARDING-AND-AI-RECONCILIATION-DESIGN.md](./16-GUIDED-ONBOARDING-AND-AI-RECONCILIATION-DESIGN.md) 与 [17-AI-EXCHANGE-BOUNDARY-DESIGN.md](./17-AI-EXCHANGE-BOUNDARY-DESIGN.md) 冻结并实现。安装阶段不得通过 `postinstall` 静默修改项目文件。
106
106
 
107
107
  无需启动服务即可生成一次性的本地治理看板:
108
108
 
@@ -187,13 +187,27 @@ IDE 插件可以在未来提供状态提示、冲突解释和可视化配置,
187
187
 
188
188
  ## 10. `1.0.0` 发布准备结论
189
189
 
190
- 本地 `1.0.0` 候选采用 `.project-context/`、`project-context` 可执行文件、Contract schema 1/2 reader、proposal/source lock/projection lock schema 1、renderer version 3、Dashboard View Model schema 3、受管 marker 和 04 所列退出码;authoring、knowledge maintenance、只读治理看板与 source lifecycle 均已闭合。发布层冻结如下:
190
+ 已发布的 `1.0.0` 采用 `.project-context/`、`project-context` 可执行文件、Contract schema 1/2 reader、proposal/source lock/projection lock schema 1、renderer version 3、Dashboard View Model schema 3、受管 marker 和 04 所列退出码;authoring、knowledge maintenance、只读治理看板与 source lifecycle 均已闭合。发布层冻结如下:
191
191
 
192
- - 包名/版本为 `frontend-project-context@1.0.0`;公共 npm 查询确认该名称当前不存在,发布目标固定为 `https://registry.npmjs.org/`、public access;
192
+ - 包名/版本为 `frontend-project-context@1.0.0`;已发布到 `https://registry.npmjs.org/`,保持 public access;
193
193
  - 开源许可证为 Apache-2.0,版权主体为 `Copyright 2026 Fushan`;LICENSE 与 NOTICE 必须随包分发;
194
194
  - `.project-context/contract.json`、两个 lock 和团队明确采用的受管投影应提交;proposal、dashboard HTML、tarball、node_modules 与临时 Context 不提交;
195
195
  - CI 模板只安装锁定依赖并运行项目脚本 `context:check`,不得写入、接受、批准或发布;
196
196
  - v1 不提供本地 MCP、IDE 插件、桌面应用或独立二进制;Node.js 18+ 是正式运行前提;
197
197
  - `0.9.0 → 1.0.0` 不预先迁移 store;Contract schema 1 只在首次成功 `deprecate-source --write` 时延迟升为 2,两个 lock 保持 1;renderer 1/2 仍可读并仅在显式 owned publish 时升级为 3。
198
198
 
199
- 详细工件、验证与发布步骤见 [14-FORMAL-RELEASE-READINESS.md](./14-FORMAL-RELEASE-READINESS.md)。用户已经授权 public npm、解除 private 安全闩、release commit/tag/push 和实际 publish;npmjs.org CLI 身份已经验证。
199
+ 详细工件、验证与发布记录见 [14-FORMAL-RELEASE-READINESS.md](./14-FORMAL-RELEASE-READINESS.md)public npmprivate 安全闩解除、release commit/tag/push 和实际 publish 均已完成;本次发布授权已经消耗。
200
+
201
+ `1.0.1` 是不改变运行逻辑的 patch:README 改为中英双语的用户向入口,包元数据移除 `bin` 规范化警告,并从发布白名单移除只属于源码仓库治理的 `PROJECT_STATE.json` 与 `RTK.md`。当前没有真实可公开访问的源码仓库,因此不伪造 `repository` 或 `bugs` URL。
202
+
203
+ ## 11. `1.1.0` 与 `1.2.0` 本地实现状态
204
+
205
+ `1.1.0` 增加 `setup`、永远只读的 `sync` 和短生命周期 Assist Bundle schema 1,现归入 AI Exchange Boundary 的模型无关聚合基础。新入口只聚合现有初始化、discovery、source review/impact、checker 和 Scope Compiler;宿主 Agent 触发仍是可选适配器,不增加 Provider、Agent Runtime、Git、网络、scheduler、daemon、自动批准或新 store。
206
+
207
+ 本地 A-01 至 A-55、B0-01/B0-02、CLI 与发布工件共 61 项通过。Contract reader 1/2、proposal/source/projection lock schema 1、renderer 3 与 Dashboard View Model 3 保持兼容,`1.0.1 → 1.1.0` 无数据迁移。
208
+
209
+ `1.2.0` 已完成 AI Exchange Boundary:新增未初始化/已初始化均可查询的只读 `capabilities`、Action Plan schema 1、只读 `preflight`、Review Bundle schema 1 和四份公开 machine schema。八类 action 只形成预检与 structured invocation,实际写入仍由人授权后复用既有细粒度命令;没有 `apply-plan`。
210
+
211
+ 本地 A-01 至 A-63、B0-01/B0-02、CLI、schema 与发布工件共 69/69 项通过。Contract reader 1/2、proposal/source/projection lock schema 1、renderer 3 与 Dashboard View Model 3 保持兼容,`1.1.0 → 1.2.0` 无 store migration。
212
+
213
+ 本次实现授权不包含 `npm pack` 发布候选核验、registry 访问、tag、push 或 `npm publish`。公共 npm 的 `latest` 仍以已核验的 `1.0.1` 为准,任何 `1.2.0` 发布操作必须获得新的明确授权。
@@ -1,6 +1,6 @@
1
1
  # 14 — `1.0.0` 正式发布准备
2
2
 
3
- > 状态:`public-npm-release-authorized-configured-authenticated-ready`
3
+ > 状态:`public-npm-published-verified`
4
4
 
5
5
  ## 1. 冻结候选
6
6
 
@@ -15,7 +15,7 @@
15
15
 
16
16
  ## 2. 包内容
17
17
 
18
- 发布白名单为 `bin/`、`src/`、`docs/`、`examples/`、README、CHANGELOG、UPGRADING、PROJECT_STATE、RTK、LICENSE、NOTICE 和 package metadataPROJECT_STATE 与 RTK 只用于保持包内文档链接完整,不成为消费项目的 Contract。测试、本仓库自托管 `.project-context/`、Git 文件、本地 dashboard、proposal 和 tarball 不进入包。
18
+ `1.0.0` 发布白名单为 `bin/`、`src/`、`docs/`、`examples/`、README、CHANGELOG、UPGRADING、PROJECT_STATE、RTK、LICENSE、NOTICE 和 package metadata。`1.0.1` 起移除只属于源码仓库动态治理的 PROJECT_STATE 与 RTK,避免把发布前状态固化到用户安装包;测试、本仓库自托管 `.project-context/`、Git 文件、本地 dashboard、proposal 和 tarball 仍不进入包。
19
19
 
20
20
  `prepack` 必须先运行 `npm run check`;bin 必须保持可执行。实际 pack 使用临时 cache 与输出目录验证,不修复用户全局 npm cache。
21
21
 
@@ -41,7 +41,7 @@ A-39 固定以下事实:package metadata 与文件白名单一致;Apache-2.0
41
41
  4. 使用解包后的 CLI 在临时项目完成 init 与 clean check;
42
42
  5. JSON、Markdown links 与 diff 校验。
43
43
 
44
- ## 6. 已授权的公开发布与当前阻断
44
+ ## 6. 已完成的公开发布
45
45
 
46
46
  用户已明确要求完成发布,本次按先前推荐选择 public npm:
47
47
 
@@ -50,7 +50,7 @@ A-39 固定以下事实:package metadata 与文件白名单一致;Apache-2.0
50
50
  3. `publishConfig.access` 固定 `public`;
51
51
  4. release commit/tag/push 与 `npm publish` 纳入本次发布工作流。
52
52
 
53
- 只读查询已确认 `frontend-project-context` 在公共 npm 返回 404,可作为首次发布名称;发布者随后在自己的终端完成认证,`npm whoami --registry=https://registry.npmjs.org/` 已验证为 `fushanyx1`。凭据、OTP token 未由本项目或自动化读取。
53
+ 发布者在自己的终端完成认证与第二因素验证,凭据、OTP 和 token 未由本项目或自动化读取。`frontend-project-context@1.0.0` `2026-09-08T11:02:04.396Z` `fushanyx1` 发布到官方公共 npm;registry 返回的 tarball SHA-1 为 `20142d17bff43d238231da684e2f11c62a82ce32`,与最终本地 pack 完全一致。远端 `v1.0.0` 标签指向发布提交 `94bd5d5b47c1356ef264a825120c0cfaf772b2c5`。
54
54
 
55
55
  ## 7. 后续审查产生的发布保持条件
56
56
 
@@ -58,4 +58,10 @@ A-39 固定以下事实:package metadata 与文件白名单一致;Apache-2.0
58
58
 
59
59
  Source Lifecycle Closure 发布保持条件已经本地关闭。2026-09-08 使用隔离临时 npm cache 重新执行第 5 节:prepack 49/49 通过,tarball 白名单为 47 个文件;解包后的 CLI help、临时项目 init 和 clean check 通过。最初一次 pack 仅因用户级 npm cache 中历史 root-owned 文件产生 `EPERM`,未修改全局权限,改用临时 cache 后成功,产品验收不受影响。
60
60
 
61
- registry/可见性决策和发布者认证已经完成。Apache-2.0 和包名不变;当前进入最终 A-39/pack、release commit、`v1.0.0` tag/pushpublic `npm publish`。
61
+ registry/可见性决策、发布者认证、A-39/pack、release commit、`v1.0.0` tag/pushpublic `npm publish` 和 registry 完整性复验均已完成。Apache-2.0、包名与冻结公共面不变;本次发布授权已经消耗。
62
+
63
+ ## 8. `1.0.1` README 与元数据修复
64
+
65
+ 首次发布后的 npm 页面审查确认,`1.0.0` README 把源码仓库治理记录放在安装入口之前,并保留 release-ready 候选状态;package metadata 还会触发 `bin[project-context]` 自动清理警告。用户已授权以 patch release 修复这些发布质量问题。
66
+
67
+ `1.0.1` 只重写中英双语用户向 README、规范化 `bin` 路径、补充真实 npm homepage/关键词、更新示例与验收,并从 tarball 移除仓库动态状态文件。当前唯一 Git remote 为非公开公司仓库,且未授权创建公共仓库,因此不设置虚假的 `repository` 或 `bugs`。产品运行逻辑、命令、schema、依赖和兼容面均不改变。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 权威说明:本文只冻结首次公开发布前的来源生命周期修补范围。产品身份、内核、永久边界和不变量仍以 [00-PRODUCT-CONSTITUTION.md](./00-PRODUCT-CONSTITUTION.md) 为准;当前事实与授权以 [PROJECT_STATE.json](../PROJECT_STATE.json) 为准。
4
4
  >
5
- > 状态:`implemented-local-verified; implementation-authority-consumed; public-publication-authorized-authenticated`
5
+ > 状态:`implemented-local-verified; implementation-authority-consumed; public-publication-complete`
6
6
  >
7
7
  > 审查基线:产品宪法 `1.1.1`、PROJECT_STATE schema `39`、package `1.0.0`、Contract schema 1、A-01 至 A-39 加 B0/CLI 共 43 项本地通过。实现后 PROJECT_STATE schema 为 41,Contract reader 支持 1/2,A-01 至 A-45 加 B0/CLI 共 49 项本地通过。
8
8