frontend-project-context 1.0.1 → 1.3.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.
Files changed (31) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +164 -8
  3. package/UPGRADING.md +44 -0
  4. package/docs/00-PRODUCT-CONSTITUTION.md +42 -10
  5. package/docs/04-PROGRAM-DESIGN.md +89 -2
  6. package/docs/05-ACCEPTANCE-CONTRACT.md +52 -3
  7. package/docs/08-INSTALLATION-AND-DISTRIBUTION.md +27 -15
  8. package/docs/14-FORMAL-RELEASE-READINESS.md +15 -0
  9. package/docs/16-GUIDED-ONBOARDING-AND-AI-RECONCILIATION-DESIGN.md +469 -0
  10. package/docs/17-AI-EXCHANGE-BOUNDARY-DESIGN.md +270 -0
  11. package/docs/18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md +348 -0
  12. package/docs/README.md +17 -5
  13. package/examples/README.md +15 -2
  14. package/examples/package.json +6 -2
  15. package/package.json +4 -3
  16. package/schemas/action-plan.schema.json +250 -0
  17. package/schemas/assist-bundle.schema.json +75 -0
  18. package/schemas/capabilities.schema.json +146 -0
  19. package/schemas/integration-review-bundle.schema.json +43 -0
  20. package/schemas/review-bundle.schema.json +109 -0
  21. package/schemas/stage-context-bundle.schema.json +56 -0
  22. package/schemas/stage-receipt.schema.json +55 -0
  23. package/schemas/task-context-plan.schema.json +85 -0
  24. package/src/project-context/assist.mjs +422 -0
  25. package/src/project-context/capabilities.mjs +74 -0
  26. package/src/project-context/cli.mjs +168 -13
  27. package/src/project-context/exchange-schema.mjs +528 -0
  28. package/src/project-context/exchange.mjs +565 -0
  29. package/src/project-context/project-store.mjs +22 -0
  30. package/src/project-context/task-context-schema.mjs +290 -0
  31. package/src/project-context/task-context.mjs +361 -0
@@ -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.3.0 Branch-aware Staged Context implemented locally; A-01 through A-73, B0 regressions, CLI, schemas, and package metadata verified; 79 tests total; pack and release not authorized`
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,9 @@ 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。
422
+ 12. Task Context Plan/Stage Receipt、字节预算 Stage Context Bundle、只读 integration review 和 A-64 至 A-73。
367
423
 
368
424
  任何一步都不需要真实项目任务或 Provider。
369
425
 
@@ -426,3 +482,34 @@ contract、proposal、source lock、projection lock schema 仍为 1。projection
426
482
  - project 双 store 写入在提交前同时核对 contract、source lock 和 projection lock snapshot,并保持 lock-first 条件恢复。
427
483
 
428
484
  A-40 至 A-45 和全部既有回归已通过,当前共 49 项。package 仍为 `1.0.0`;公开发布配置不新增 Provider、框架识别、source kind、projection target、调度、Git 管理或自动批准能力。
485
+
486
+ ## 16. `1.1.0` Guided Onboarding 与 AI-assisted Reconciliation 实现结果
487
+
488
+ `1.1.0` 已按 [16-GUIDED-ONBOARDING-AND-AI-RECONCILIATION-DESIGN.md](./16-GUIDED-ONBOARDING-AND-AI-RECONCILIATION-DESIGN.md) 的冻结范围完成本地实现:
489
+
490
+ - 新增纯聚合 `assist.mjs`、公共 `setup` 与只读 `sync`;
491
+ - `setup` 复用原初始化和 discovery,写入仅限三个 store 与 create-only proposal;
492
+ - `sync` 复用 review、impact、checker 和 Scope Compiler,支持调用方显式 changed path;
493
+ - Assist Bundle schema 1 不进入 Contract,不保存来源正文或 AI 推理;
494
+ - 人类批准、baseline、projection ownership 和失败恢复继续由既有细粒度命令承担;
495
+ - Contract reader 1/2、proposal/source/projection lock schema 1、renderer 3 和 Dashboard View Model 3 均未变化。
496
+
497
+ A-46 至 A-55、两个新增 CLI 入口回归和全部既有测试已通过,当前共 61 项。验证只使用隔离临时 fixture,没有调用 Provider、网络、Git、child process、依赖安装或真实业务项目,也没有发布 `1.1.0`。
498
+
499
+ ## 17. `1.2.0` AI Exchange Boundary 实现结果
500
+
501
+ [17-AI-EXCHANGE-BOUNDARY-DESIGN.md](./17-AI-EXCHANGE-BOUNDARY-DESIGN.md) 冻结的双向桥接协议已完成本地实现:新增机器可发现 capabilities、短生命周期 Action Plan、只读 preflight/Review Bundle、structured invocation 与四份公开 schema;八类 action 继续复用现有安全原语。
502
+
503
+ A-56 至 A-63 和全部既有回归共 69/69 通过。实现未增加 store migration、`apply-plan`、Provider、Agent Runtime、业务代码执行、Git、网络、依赖安装、scheduler、daemon、自动批准或自动修复;未执行打包、registry、Git push 或发布。
504
+
505
+ ## 18. `1.3.0` Branch-aware Staged Context & Handoff 实现结果
506
+
507
+ [18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md](./18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md) 冻结的可选协议已完成本地实现:
508
+
509
+ - `task-context-schema.mjs` 严格验证并稳定规范化 Task Context Plan 与 Stage Receipt;
510
+ - `task-context.mjs` 复用现有 checker 和 Scope Compiler,只读编译当前 Stage Context Bundle 与 Integration Review Bundle;
511
+ - `stage-context` 要求调用方显式选择 stage,核对 plan/receipt/snapshot,按规范 UTF-8 字节和 read-target 数失败封闭;
512
+ - `integration-review` 只消费宿主传入的 main/branch changed paths,报告 path/Contract overlap、stage 越界、生命周阻塞和 decision candidate;
513
+ - capabilities 公开两个新命令、四份 schema version 1 和 `canonical-utf8-bytes` 预算单位。
514
+
515
+ A-64 至 A-73 与全部旧回归共 79/79 通过。实现不读 Git 或源码正文,不执行任务/测试,不保存 task store,不自动批准、合并或晋升决定,不增加 Provider、Agent Runtime、Git、网络、依赖、scheduler 或 daemon。未执行 npm pack、registry、真实项目试用、Git commit/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-73 plus B0-01/B0-02, CLI, machine schemas, and release artifacts passed; 79 tests total. Public npm latest remains independently verified 1.2.0; 1.3.0 pack and release are not authorized.`
6
6
 
7
7
  ## 1. 验收原则
8
8
 
@@ -322,9 +322,9 @@
322
322
 
323
323
  ### A-39 发布候选边界
324
324
 
325
- - package name 固定为 `frontend-project-context`,当前 patch version `1.0.1`,bin 为 `project-context`,Node.js 下限为 18,第三方 runtime dependency 为零;
325
+ - package name 固定为 `frontend-project-context`,当前本地实现版本为 `1.3.0`,公共 npm 已核验 latest 仍为 `1.2.0`,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,52 @@ 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。随后 `1.2.0` 经单独发布授权完成公共 npm 发布和 registry 工件独立验证,发布事实见 [14-FORMAL-RELEASE-READINESS.md](./14-FORMAL-RELEASE-READINESS.md)。
381
+
382
+ ## 15. `1.3.0` Branch-aware Staged Context & Handoff 验收(已实现并通过)
383
+
384
+ [18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md](./18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md) 冻结以下 A-64 至 A-73。它们属于帮助现有 Coding Agent 更准确、分阶段完成目标功能的可选上下文协议,不改变 Project Contract 核心身份:
385
+
386
+ - **A-64 capability 与公开 schema**:capabilities 稳定公开 `stage-context`、`integration-review`、四份新 schema、UTF-8 byte 预算单位和永久边界;npm 白名单覆盖 schema;
387
+ - **A-65 Task Context Plan**:合法 plan 稳定规范化;未知/权限/执行字段、重复 ID、循环依赖、非法路径、缺失预算和无依赖重叠 stage 失败封闭;
388
+ - **A-66 Stage 选择与依赖**:只编译调用方显式选择的 stage;依赖缺失、blocked 或 stale 时 blocked,完整 completed receipts 才 ready,不自动前进;
389
+ - **A-67 Scope 与 changed paths**:复用现有 Scope Compiler 精确选择 Contract items,保持 sibling 隔离;changed paths 只作外部信号,不读 Git、不成为来源;
390
+ - **A-68 确定性预算**:相同输入字节等价;默认无 source/code/diff/chat body;必要内容超限显式 blocked,不静默截断;
391
+ - **A-69 Stage Receipt**:receipt 严格绑定 plan、bundle、stage 和 acceptance;completed/blocked 语义完整;不含 shell、权限或伪造 approval;
392
+ - **A-70 跨窗口恢复**:只使用 plan、当前 stage、有效 receipts 和 paths 可重建同一 Bundle,不依赖聊天历史或新 store;
393
+ - **A-71 Integration Review**:精确报告 main/branch path overlap、Contract item overlap、stage scope escape、incomplete receipt 和 decision candidate;
394
+ - **A-72 baseline 与恢复**:Contract/source/projection snapshot、plan 或 receipt baseline 失效立即 blocked;刷新显式输入后可确定性恢复;
395
+ - **A-73 生命周期、兼容与边界**:合并审查不执行 Git、测试或业务代码,不自动晋升决定或保存任务;A-01 至 A-63、B0、CLI 和发布工件全部继续通过。
396
+
397
+ 实现 Gate 已满足:A-64 至 A-73 新增 10 项编号验收,连同全部旧回归为 `npm run check` 79/79。验收只使用隔离临时 fixture,没有访问真实业务项目、Provider、网络或产品内 Git,没有安装依赖、执行任务/测试、产生新 store、自动晋升决定或发布。测试通过不等于团队试用或发布授权。
@@ -2,9 +2,9 @@
2
2
 
3
3
  > 权威说明:本文是支持性设计文档;当前唯一规范真源是 [00-PRODUCT-CONSTITUTION.md](./00-PRODUCT-CONSTITUTION.md)。
4
4
 
5
- 状态:`frontend-project-context@1.0.1` README/metadata patch 已完成本地验证并获得发布授权
5
+ 状态:`frontend-project-context@1.2.0` 已发布到官方公共 npm;69 项验收、候选包完整性和 registry 安装均已独立验证
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.1 init --project . --id PROJECT_ID --name "Project Name"
47
- pnpm dlx frontend-project-context@1.0.1 init --project . --id PROJECT_ID --name "Project Name"
48
- bunx frontend-project-context@1.0.1 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` 一次性命令现已可从官方公共 npm 使用,`latest` 已独立核验为 `1.2.0`。包名冻结为 `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.1
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
 
@@ -199,3 +199,15 @@ IDE 插件可以在未来提供状态提示、冲突解释和可视化配置,
199
199
  详细工件、验证与发布记录见 [14-FORMAL-RELEASE-READINESS.md](./14-FORMAL-RELEASE-READINESS.md)。public npm、private 安全闩解除、release commit/tag/push 和实际 publish 均已完成;本次发布授权已经消耗。
200
200
 
201
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
+ 用户于 2026-09-09 明确进入 `1.2.0` 发布流程。发布候选 prepack 69/69 通过,包含 54 个文件、解包大小 570621 bytes;本地 tarball 与官方 registry 返回的 tarball 逐字节一致,SHA-1 均为 `f70774673df16e2d4d1ceed84df663b5bf76260e`。`fushanyx1` 于 `2026-09-09T09:34:06.552Z` 完成 public 发布,`latest` 指向 `1.2.0`;从 registry 安装后的 help、capabilities、init 与 clean check 冒烟均通过。`v1.2.0` 指向冻结候选提交 `c991187c4dfd094d9cff5a4e15516fb25d74d803`。本次发布授权已经消耗,后续发布或扩大产品边界仍需新的明确授权。
@@ -65,3 +65,18 @@ registry/可见性决策、发布者认证、A-39/pack、release commit、`v1.0.
65
65
  首次发布后的 npm 页面审查确认,`1.0.0` README 把源码仓库治理记录放在安装入口之前,并保留 release-ready 候选状态;package metadata 还会触发 `bin[project-context]` 自动清理警告。用户已授权以 patch release 修复这些发布质量问题。
66
66
 
67
67
  `1.0.1` 只重写中英双语用户向 README、规范化 `bin` 路径、补充真实 npm homepage/关键词、更新示例与验收,并从 tarball 移除仓库动态状态文件。当前唯一 Git remote 为非公开公司仓库,且未授权创建公共仓库,因此不设置虚假的 `repository` 或 `bugs`。产品运行逻辑、命令、schema、依赖和兼容面均不改变。
68
+
69
+ ## 9. `1.2.0` AI Exchange Boundary 正式发布
70
+
71
+ 用户于 2026-09-09 明确进入 `1.2.0` 发布流程。冻结候选来自提交 `c991187c4dfd094d9cff5a4e15516fb25d74d803`,`v1.2.0` 精确指向该提交;发布后状态记录留在后续提交,避免改变标签对应的包源码。
72
+
73
+ 发布验证记录:
74
+
75
+ 1. prepack 重新执行全部 69/69 项验收并通过;
76
+ 2. tarball 包含 54 个文件,解包大小为 570621 bytes,不包含测试、Git、自托管 `.project-context/`、`PROJECT_STATE.json` 或 `RTK.md`;
77
+ 3. 候选 SHA-1 为 `f70774673df16e2d4d1ceed84df663b5bf76260e`,integrity 为 `sha512-VJg48A7lGKanGOgh2V8zPG+6xGMvzPzSIYDRsvFEgkVeClOLRp+2w57KTrY6lphRIB/WujZFlbm9ebiNySB0Vw==`;
78
+ 4. 本地 tarball 安装后的 help、capabilities、init、preflight 与 clean check 通过,preflight 前后 store SHA-256 保持不变;
79
+ 5. `fushanyx1` 于 `2026-09-09T09:34:06.552Z` 向官方 registry public 发布 `frontend-project-context@1.2.0`,`latest` 已指向该版本;
80
+ 6. 从 registry 重新下载的 tarball 与候选逐字节一致,随后直接从 registry 安装并再次通过 help、capabilities、init 与 clean check 冒烟。
81
+
82
+ 本次授权只完成既定 `1.2.0` 发布,不授权 Provider、Agent Runtime、`apply-plan`、自动批准、业务代码执行、Git 管理、网络能力、依赖安装、scheduler、daemon 或公共源码仓库创建。发布授权已经消耗。