frontend-project-context 1.2.0 → 1.3.1

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/CHANGELOG.md CHANGED
@@ -1,13 +1,32 @@
1
1
  # Changelog
2
2
 
3
- ## 1.2.0 — unreleased
3
+ ## 1.3.1 — unreleased
4
+
5
+ - `stage-context` 与 `integration-review` 新增可重复 `--receipt-bundle` 输入,按 Stage identity 将每份 receipt 与其输入 Stage Context Bundle 精确配对。
6
+ - 新增严格 Stage Context Bundle schema 1 运行时验证、自身 digest/规范 UTF-8 字节核对,并按 plan 依赖顺序用已验证前序 receipt 确定性重建 Bundle。
7
+ - 缺失、重复、多余、错配、篡改、过期 snapshot、completed receipt 绑定 blocked bundle,以及不完整或绕过的多级依赖链全部以稳定 finding 失败封闭。
8
+ - README 中英文安装 pin、`examples/package.json`、package version 与发布验收统一为 `1.3.1`。
9
+ - Task Context Plan、Stage Receipt、Stage Context Bundle、Integration Review Bundle 与所有 store schema 保持原版本;没有新增 Provider、Agent Runtime、Git/网络、任务执行或第三方依赖。
10
+ - A-74 至 A-76 与全部旧回归共 82/82 项本地通过;Git commit、tag、push、npm 认证与公开发布仍未授权。
11
+
12
+ ## 1.3.0 — 2026-09-10
13
+
14
+ - 新增严格的 Task Context Plan schema 1 与 Stage Receipt schema 1:宿主显式提供任务、stage 依赖、revision label、snapshot、路径和预算,未知、权限、执行、循环依赖、非法路径与无依赖范围重叠均失败封闭。
15
+ - 新增永远只读的 `stage-context`,复用 Scope Compiler 为显式指定阶段生成 Stage Context Bundle schema 1,并用调用方提供的规范 UTF-8 字节与 read-target 预算失败封闭。
16
+ - 新增永远只读的 `integration-review`,比较 plan/receipt/Contract baseline、宿主提供的 main/branch changed paths、Contract item 重叠、stage 越界、生命周期 finding 和待人判断的 decision candidate。
17
+ - 公开 Stage Context Bundle 和 Integration Review Bundle schema 1,capabilities 增加两个命令、四份 schema 和 `canonical-utf8-bytes` 预算语义。
18
+ - 不新增 store migration、Provider、Agent Runtime、Git 读写、源码正文读取、任务/测试执行、依赖、自动批准、合并或长期事实晋升。
19
+ - A-64 至 A-73 与全部旧回归共 79/79 项通过;候选包与官方 registry tarball 逐字节一致,并已完成独立安装冒烟验证。
20
+ - 发布后核验发现不可覆盖的 `1.3.0` tarball 中 README 安装命令与示例依赖仍固定为 `1.2.0`;运行时不受影响,仓库已修正为 `1.3.0`,后续修复版本需单独授权。
21
+
22
+ ## 1.2.0 — 2026-09-09
4
23
 
5
24
  - 新增未初始化和已初始化项目均可使用的只读 `capabilities`,公开 package、exchange protocol、schema、command、八类 action 和永久边界。
6
25
  - 新增 Action Plan schema 1 和只读 `preflight`,把 AI 建议规范化为带三个 snapshot、action 专属 baseline、精确 impact 与 blocker 的短生命周期输入。
7
26
  - 新增 Review Bundle schema 1,稳定分组 current/proposed、item/source/path/projection 影响与结构化 `{ command, args }` invocation;invocation 不含 `--write` 或 `--by`。
8
27
  - 发布 capabilities、Assist Bundle、Action Plan 与 Review Bundle 四份 JSON schema,并把 `schemas/` 加入 npm 白名单;动态项目状态继续排除。
9
28
  - 八类 action 均复用现有 register/propose/review/accept/revise/deprecate/approve/publish 预检语义;不新增 `apply-plan`、Provider、Agent Runtime、Git、网络、依赖安装、自动批准或业务代码执行。
10
- - A-56 至 A-63 与全部回归共 69/69 项本地验收通过;公共发布尚未授权。
29
+ - A-56 至 A-63 与全部回归共 69/69 项验收通过;已发布到公共 npm,并完成候选包与 registry tarball 的逐字节一致性及独立安装验证。
11
30
 
12
31
  ## 1.1.0 — unreleased
13
32
 
package/README.md CHANGED
@@ -32,12 +32,12 @@ It does **not** call an AI provider, edit business code, manage Git, install dep
32
32
  Pin it as a development dependency so local users and CI run the same version:
33
33
 
34
34
  ```bash
35
- npm install --save-dev frontend-project-context@1.2.0
35
+ npm install --save-dev frontend-project-context@1.3.1
36
36
  ```
37
37
 
38
38
  The package has zero runtime dependencies.
39
39
 
40
- `1.2.0` is the locally verified source version in this repository. The latest independently verified public npm version remains `1.0.1` until separate release authorization and publication.
40
+ `1.3.1` is the current local implementation version. Public npm `latest` remains the independently verified `1.3.0` until a separately authorized release.
41
41
 
42
42
  ### Quick start
43
43
 
@@ -128,7 +128,37 @@ npx project-context preflight \
128
128
 
129
129
  `preflight` validates the project ID, all three snapshot digests, action-specific baselines, exact impacts, blockers, and projection ownership. It returns structured `{ command, args }` invocations without `--write` or `--by`. The plan and Review Bundle grant no authority: after a human approves exact action IDs and paths, the host must add the required identity and write flags to the existing fine-grained command. Any intervening write invalidates the remaining review and requires a fresh `sync` and `preflight`.
130
130
 
131
- The package publishes `schemas/capabilities.schema.json`, `schemas/assist-bundle.schema.json`, `schemas/action-plan.schema.json`, and `schemas/review-bundle.schema.json`.
131
+ For multi-stage feature work, a host can provide a Task Context Plan, prior Stage Receipts, and explicit changed-path signals. Compile only the requested stage:
132
+
133
+ ```bash
134
+ npx project-context stage-context \
135
+ --project . \
136
+ --plan task-context-plan.json \
137
+ --stage stage-render \
138
+ --receipt stage-understand.receipt.json \
139
+ --receipt-bundle stage-understand.bundle.json \
140
+ --changed-path src/example.ts \
141
+ --json
142
+ ```
143
+
144
+ Before an external merge, compare host-provided main/branch path signals with the plan, receipts, current Contract snapshots, and checker findings:
145
+
146
+ ```bash
147
+ npx project-context integration-review \
148
+ --project . \
149
+ --plan task-context-plan.json \
150
+ --receipt stage-understand.receipt.json \
151
+ --receipt-bundle stage-understand.bundle.json \
152
+ --main-changed-path src/shared.ts \
153
+ --branch-changed-path src/example.ts \
154
+ --json
155
+ ```
156
+
157
+ Both commands are read-only. They do not inspect Git, read source bodies, execute the task or tests, save task state, promote decisions, or grant merge authority. Budget limits are caller-supplied canonical UTF-8 bytes and read-target counts, not model tokens.
158
+
159
+ Starting with local version `1.3.1`, every supplied Stage Receipt must have exactly one matching `--receipt-bundle`. Both commands strictly validate and deterministically rebuild the complete receipt/bundle dependency chain before accepting `inputBundleDigest`; missing, duplicate, mismatched, tampered, stale, or blocked inputs fail closed. Public release remains separately gated.
160
+
161
+ The package publishes eight machine schemas: capabilities, Assist Bundle, Action Plan, Review Bundle, Task Context Plan, Stage Receipt, Stage Context Bundle, and Integration Review Bundle.
132
162
 
133
163
  Generate the read-only governance dashboard:
134
164
 
@@ -185,6 +215,8 @@ All commands are read-only unless that command explicitly includes `--write`. So
185
215
  | `check` | Detect stale sources, contracts, and projections |
186
216
  | `sync` | Aggregate source drift, item impact, changed paths, and reconciliation work units |
187
217
  | `preflight` | Validate an Action Plan and return a read-only grouped Review Bundle |
218
+ | `stage-context` | Rebuild receipt/bundle inputs and compile the explicitly requested stage within caller-provided byte/read-target budgets |
219
+ | `integration-review` | Review paired receipts/bundles, host path signals, baselines, and context-layer conflicts without Git |
188
220
  | `dashboard` | Render the read-only governance dashboard |
189
221
  | `review-source` | Review a changed source and its exact impact set |
190
222
  | `accept-source-change` | Accept a pinned source digest and revoke affected approvals |
@@ -203,6 +235,8 @@ Run `npx project-context --help` for the complete command syntax.
203
235
  - [Read-only governance dashboard](./docs/13-READ-ONLY-GOVERNANCE-DASHBOARD-DESIGN.md)
204
236
  - [Source lifecycle](./docs/15-SOURCE-LIFECYCLE-CLOSURE-DESIGN.md)
205
237
  - [Guided onboarding and AI-assisted reconciliation](./docs/16-GUIDED-ONBOARDING-AND-AI-RECONCILIATION-DESIGN.md)
238
+ - [AI exchange boundary](./docs/17-AI-EXCHANGE-BOUNDARY-DESIGN.md)
239
+ - [Branch-aware staged context and handoff](./docs/18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md)
206
240
  - [AI Exchange Boundary design](./docs/17-AI-EXCHANGE-BOUNDARY-DESIGN.md)
207
241
  - [Upgrade notes](./UPGRADING.md)
208
242
 
@@ -232,12 +266,12 @@ AI 编程工具通常只读取仓库的一部分,而项目约定分散在文
232
266
  建议固定为开发依赖,让本地与 CI 使用同一版本:
233
267
 
234
268
  ```bash
235
- npm install --save-dev frontend-project-context@1.2.0
269
+ npm install --save-dev frontend-project-context@1.3.1
236
270
  ```
237
271
 
238
272
  本包没有运行时第三方依赖。
239
273
 
240
- `1.2.0` 是本仓库当前已经完成本地验收的源码版本。在获得单独发布授权并完成发布前,公共 npm 已独立核验的最新版本仍为 `1.0.1`。
274
+ `1.3.1` 是当前本地实现版本。公共 npm `latest` 在获得独立发布授权前仍是已经独立核验的 `1.3.0`。
241
275
 
242
276
  ### 快速开始
243
277
 
@@ -328,7 +362,37 @@ npx project-context preflight \
328
362
 
329
363
  `preflight` 会验证 project ID、三个 snapshot digest、action 专属 baseline、精确影响集、blocker 和投影所有权,并返回不含 `--write`、`--by` 的结构化 `{ command, args }` invocation。Action Plan 和 Review Bundle 都不授予权限;只有人批准明确 action ID 与路径后,宿主才能为既有细粒度命令补入身份和写入参数。期间任何写入都会使余下 review 失效,必须重新 `sync` 和 `preflight`。
330
364
 
331
- npm 包公开 `schemas/capabilities.schema.json`、`schemas/assist-bundle.schema.json`、`schemas/action-plan.schema.json``schemas/review-bundle.schema.json`。
365
+ 多阶段功能开发中,宿主可以显式提供 Task Context Plan、前序 Stage Receipt changed-path 信号,只编译当前指定阶段:
366
+
367
+ ```bash
368
+ npx project-context stage-context \
369
+ --project . \
370
+ --plan task-context-plan.json \
371
+ --stage stage-render \
372
+ --receipt stage-understand.receipt.json \
373
+ --receipt-bundle stage-understand.bundle.json \
374
+ --changed-path src/example.ts \
375
+ --json
376
+ ```
377
+
378
+ 外部合并前,可把宿主提供的 main/branch 路径信号与 plan、receipt、当前 Contract snapshot 和 checker finding 一起进行只读审查:
379
+
380
+ ```bash
381
+ npx project-context integration-review \
382
+ --project . \
383
+ --plan task-context-plan.json \
384
+ --receipt stage-understand.receipt.json \
385
+ --receipt-bundle stage-understand.bundle.json \
386
+ --main-changed-path src/shared.ts \
387
+ --branch-changed-path src/example.ts \
388
+ --json
389
+ ```
390
+
391
+ 两个命令都不会读取 Git 或源码正文、执行任务或测试、保存任务状态、晋升决定或授予合并权限。预算由调用方以规范 UTF-8 字节数和 read-target 数量显式提供,不等同于模型 token。
392
+
393
+ 从本地版本 `1.3.1` 起,每份 Stage Receipt 都必须恰好对应一份 `--receipt-bundle`。两个命令会严格验证并确定性重建完整 receipt/bundle 依赖链后再接受 `inputBundleDigest`;缺失、重复、错配、篡改、过期或 blocked 输入都会失败封闭。公开发布仍需单独授权。
394
+
395
+ npm 包公开八份机器 schema:capabilities、Assist Bundle、Action Plan、Review Bundle、Task Context Plan、Stage Receipt、Stage Context Bundle 和 Integration Review Bundle。
332
396
 
333
397
  生成只读治理看板:
334
398
 
@@ -385,6 +449,8 @@ npx project-context dashboard --project . > project-context-dashboard.html
385
449
  | `check` | 检测来源、合同和投影漂移 |
386
450
  | `sync` | 聚合来源漂移、item 影响、变化路径和维护工作单元 |
387
451
  | `preflight` | 验证 Action Plan 并返回只读分组 Review Bundle |
452
+ | `stage-context` | 重建 receipt/bundle 输入,并在调用方字节/read-target 预算内编译显式指定的当前阶段 |
453
+ | `integration-review` | 不读取 Git,只读审查成对 receipt/bundle、路径信号、baseline 与上下文冲突 |
388
454
  | `dashboard` | 生成只读治理看板 |
389
455
  | `review-source` | 查看来源变化及精确影响集 |
390
456
  | `accept-source-change` | 接受固定摘要并撤销受影响批准 |
@@ -403,6 +469,8 @@ npx project-context dashboard --project . > project-context-dashboard.html
403
469
  - [只读治理看板](./docs/13-READ-ONLY-GOVERNANCE-DASHBOARD-DESIGN.md)
404
470
  - [来源生命周期](./docs/15-SOURCE-LIFECYCLE-CLOSURE-DESIGN.md)
405
471
  - [引导式接入与 AI 辅助维护](./docs/16-GUIDED-ONBOARDING-AND-AI-RECONCILIATION-DESIGN.md)
472
+ - [AI 双向交换边界](./docs/17-AI-EXCHANGE-BOUNDARY-DESIGN.md)
473
+ - [分支感知的分阶段上下文与交接](./docs/18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md)
406
474
  - [AI 双向交换边界设计](./docs/17-AI-EXCHANGE-BOUNDARY-DESIGN.md)
407
475
  - [升级说明](./UPGRADING.md)
408
476
 
package/UPGRADING.md CHANGED
@@ -1,9 +1,37 @@
1
1
  # 升级说明
2
2
 
3
+ ## `1.3.0 → 1.3.1`
4
+
5
+ `1.3.1` 修复 `1.3.0` 正式调用链未把 Stage Receipt `inputBundleDigest` 绑定到实际 Stage Context Bundle 的协议缺陷,并统一 README、示例依赖、package 与发布验收的消费者版本 pin。
6
+
7
+ 采用分阶段协议的宿主必须同步升级调用:每个 `--receipt FILE` 都要提供同 stage 的 `--receipt-bundle FILE`。两类文件按内部 project/task/stage identity 配对,不依赖参数顺序。工具会严格验证 Bundle schema、自身 digest、规范 UTF-8 字节、plan 与三个 snapshot,并按依赖顺序用已验证前序 receipt 和 Bundle 自带的 `changedPaths` 重建规范 Bundle。缺失、重复、多余、错配、篡改、过期 baseline、completed receipt 绑定 blocked bundle 或传递依赖链不完整都会返回 blocked finding。
8
+
9
+ 不带 receipt 的首 stage 调用不变。旧的“只传 receipt”调用会从可能错误的 ready/reviewable 收紧为 blocked,这是恢复既有失败封闭合同。四份 task/bundle schema 仍为 1,所有持久 store、exchange protocol、renderer 和 Dashboard View Model 均不迁移。命令仍只读,不创建 task store、不读取 Git/网络/源码正文、不执行任务或测试,也不增加依赖。
10
+
11
+ 本地实现与 A-01 至 A-76、B0、CLI 和发布工件共 82 项验收已经完成;公开 npm `latest` 仍为 `1.3.0`,`1.3.1` 的打包、Git 与发布需另行授权。
12
+
13
+ ## `1.2.0 → 1.3.0`
14
+
15
+ `1.3.0` 增加可选 Branch-aware Staged Context & Handoff 协议:四份新的短生命周 schema、只读 `stage-context` 和只读 `integration-review`。Contract、proposal、source/projection lock、renderer、Dashboard View Model、Assist Bundle、Action Plan 和 Review Bundle schema 都不变,旧项目无需迁移 `.project-context/`。
16
+
17
+ 采用该可选协议时:
18
+
19
+ 1. 宿主根据 `schemas/task-context-plan.schema.json` 显式准备 task、stage DAG、workspace label、三个 snapshot 与 UTF-8 字节/read-target 预算。
20
+ 2. 运行 `project-context stage-context --project . --plan FILE --stage STAGE_ID --json`;只为当前 stage 提供有效前序 receipt、对应 receipt bundle 和 changed-path 信号。
21
+ 3. 外部 Coding Agent 执行任务后,由宿主按 `schemas/stage-receipt.schema.json` 记录结构化结果;receipt 不是人工验收或后续权限。
22
+ 4. 合并前运行 `project-context integration-review`,显式传入 main/branch changed paths;工具不自行读 Git。
23
+ 5. 合并、测试、业务正确性、任务工件存放/删除和长期事实晋升仍由外部工具与人决定。
24
+
25
+ 该版本已于 2026-09-10 发布到官方公共 npm,`latest` 指向 `1.3.0`;发布包与冻结候选逐字节一致,从 registry 独立安装后的 help、capabilities、init 与 clean check 均通过。
26
+
27
+ 已发布的不可覆盖 tarball 有两项已知问题:README 安装命令与 `examples/package.json` 仍固定为 `1.2.0`;同时正式 `stage-context`/`integration-review` 路径未将 receipt `inputBundleDigest` 与对应 Stage Context Bundle 工件重建结果核对。这两项缺陷已在本地 `1.3.1` 实现中修复;公开发布仍需单独授权。
28
+
3
29
  ## `1.1.0 → 1.2.0`
4
30
 
5
31
  `1.2.0` 完成模型无关双向 AI Exchange Boundary:新增只读 `capabilities`、Action Plan schema 1、只读 `preflight`、Review Bundle schema 1 和四份公开机器 schema。Contract、proposal、source lock、projection lock、renderer 与 Dashboard View Model 均未升级,旧项目无需迁移 `.project-context/`。
6
32
 
33
+ 该版本已于 2026-09-09 发布到官方公共 npm,`latest` 指向 `1.2.0`;发布包与冻结候选逐字节一致。
34
+
7
35
  升级后建议:
8
36
 
9
37
  1. 运行 `project-context capabilities --project . --json`,由宿主读取版本、schema、action kind、初始化状态和永久边界。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 权威说明:本文记录当前实现设计;如与 [00-PRODUCT-CONSTITUTION.md](./00-PRODUCT-CONSTITUTION.md) 冲突,以产品宪法为准。
4
4
 
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`
5
+ > 状态:`1.3.1 Receipt/Bundle binding and consumer pins repair implemented locally; A-01 through A-76 pass 82/82; release not authorized`
6
6
  >
7
7
  > 前置真源:[03-FINAL-SOLUTION.md](./03-FINAL-SOLUTION.md)。本文不得重新引入 Agent Runtime、任务执行、Git 生命周期或完整多工具适配矩阵。
8
8
 
@@ -419,6 +419,7 @@ Action Plan 的新增稳定错误为:schema/project mismatch 退出 2;projec
419
419
  9. 来源 review/accept、同 ID revise、deprecate、pending reapproval、store 并发补强和 A-21 至 A-30。
420
420
  10. setup/sync Assist Bundle 聚合、changed path 映射和 A-46 至 A-55。
421
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。
422
423
 
423
424
  任何一步都不需要真实项目任务或 Provider。
424
425
 
@@ -500,3 +501,21 @@ A-46 至 A-55、两个新增 CLI 入口回归和全部既有测试已通过,
500
501
  [17-AI-EXCHANGE-BOUNDARY-DESIGN.md](./17-AI-EXCHANGE-BOUNDARY-DESIGN.md) 冻结的双向桥接协议已完成本地实现:新增机器可发现 capabilities、短生命周期 Action Plan、只读 preflight/Review Bundle、structured invocation 与四份公开 schema;八类 action 继续复用现有安全原语。
501
502
 
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 项测试仍全部通过。实现不读 Git 或源码正文,不执行任务/测试,不保存 task store,不自动批准、合并或晋升决定,不增加 Provider、Agent Runtime、Git、网络、依赖、scheduler 或 daemon。`frontend-project-context@1.3.0` 已公开发布,候选包、标签、运行时与 registry 工件已独立核验。发布后审查确认正式调用链未核对 receipt `inputBundleDigest` 与实际 Bundle,以及已发布 tarball 的 README/example 仍固定 `1.2.0`;两项缺陷已经合并为 `1.3.1` 修复。
516
+
517
+ ## 19. `1.3.1` Receipt Binding 与 Consumer Pins 修复结果
518
+
519
+ [18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md](./18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md) 第 18 节冻结的补丁已完成本地实现:`stage-context` 与 `integration-review` 接受可重复 `--receipt-bundle`,严格验证 Stage Context Bundle schema 1、项目内路径、预算、自身 digest 与规范字节数;随后按 plan 依赖顺序,以 bundle 的 `changedPaths` 和已经验证的前序 receipt 重建每个输入 Bundle。只有 project/task/stage、plan、三个 snapshot、规范内容和 `inputBundleDigest` 全部匹配,且 completed receipt 未绑定 blocked bundle,receipt 才能解锁后续 stage 或进入可审查集成结果。
520
+
521
+ 缺失、重复、多余、错配、篡改、过期 baseline、blocked bundle、缺失中间 bundle 和绕过传递依赖均返回冻结的稳定 finding 并 blocked。A-74 至 A-76 与 A-01 至 A-73、B0、CLI、machine schema 和发布工件共 82/82 通过。package 与消费者 pin 为 `1.3.1`;四份 task/bundle schema 和所有 store 版本不变,仍为零第三方依赖、只读、无 Provider/Agent Runtime/Git/网络/任务执行。Git 与公开发布未授权。
@@ -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-63 plus B0-01/B0-02, CLI, machine schemas, and release artifacts passed locally; 69 tests total on 2026-09-09`
5
+ > 状态:`A-01 through A-76 plus B0-01/B0-02, CLI, machine schemas, and release artifacts passed locally; 82 tests total. Local version is 1.3.1; public npm latest remains 1.3.0 pending separate release authority.`
6
6
 
7
7
  ## 1. 验收原则
8
8
 
@@ -322,7 +322,7 @@
322
322
 
323
323
  ### A-39 发布候选边界
324
324
 
325
- - package name 固定为 `frontend-project-context`,当前本地实现版本为 `1.2.0`、公共 npm 已核验最新版本为 `1.0.1`,bin 为 `project-context`,Node.js 下限为 18,第三方 runtime dependency 为零;
325
+ - package name 固定为 `frontend-project-context`,当前本地实现版本为 `1.3.0`,公共 npm 已核验 latest 为 `1.3.0`,bin 为 `project-context`,Node.js 下限为 18,第三方 runtime dependency 为零;
326
326
  - package metadata 声明 Apache-2.0,发布包包含官方 LICENSE 和 `Copyright 2026 Fushan` NOTICE;
327
327
  - `files` 白名单包含 bin、src、docs、examples、四份公开 machine schema、变更/升级说明和许可证文件,但不包含测试、PROJECT_STATE、RTK、自托管 `.project-context/` 或本地生成物;
328
328
  - `prepack` 必须运行全量检查,bin 保持可执行;
@@ -377,4 +377,33 @@ A-39 是发布工件一致性验证,不扩展 Project Contract、CLI、schema
377
377
  - **A-62 机器 schema 一致性**:四份 JSON schema 覆盖实际 capabilities、Assist Bundle、Action Plan 与 Review Bundle fixture;npm 白名单包含 `schemas/` 且继续排除项目动态状态;
378
378
  - **A-63 兼容与永久边界**:A-01 至 A-55、B0、CLI 和发布工件无回归;零 Provider、Agent Runtime、Git、network、child process、dependency install、scheduler、daemon、自动批准和业务代码修改。
379
379
 
380
- 实现 Gate 已满足:A-56 至 A-63 共 8 项新增验收,连同全部既有测试为 `npm run check` 69/69。验证只使用隔离临时 fixture;没有访问真实业务项目、Provider、网络或 Git,没有安装依赖、打包或发布。
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 或自动晋升决定。独立发布流程随后完成候选打包、公开 npm 发布、registry 安装与工件一致性复验;发布后发现 tarball 中 README/示例仍固定 `1.2.0`,运行时不受影响,仓库已修正为 `1.3.0`,补丁发布与团队试用均未授权。
398
+
399
+ ## 16. `1.3.1` Receipt Binding 与 Consumer Pins 合并修复验收(已冻结)
400
+
401
+ `1.3.0` 的 79 项现有测试仍全绿,但发布后审查证明,正式 `stage-context`/`integration-review` 路径未将 receipt `inputBundleDigest` 与对应 Stage Context Bundle 重建结果核对;伪造 digest 可以在无 finding 时解锁下一 stage。因此 A-69/A-72 的原测试不足以证明正式调用链满足冻结语义。
402
+
403
+ `1.3.1` 必须在同一版本中完成:
404
+
405
+ - **A-74**:正式 CLI 通过 receipt + receipt bundle 成对输入核对 `inputBundleDigest`;缺失、错配或错误 digest 均 blocked;
406
+ - **A-75**:篡改 bundle 字段、自身 digest、identity、stage、plan/snapshot baseline、bundle status 或多级依赖链均失败封闭,完整成对链可确定性恢复;
407
+ - **A-76**:`--receipt-bundle` 保持只读且不创建 task store,四份 schema/store 版本不变,package/README/example/release test 统一到 `1.3.1`,不弱化 A-01 至 A-73。
408
+
409
+ 完整 Gate 已满足:A-01 至 A-76、B0-01/B0-02、CLI 与发布工件共 `82/82`。正式 CLI 路径已覆盖 receipt/bundle 精确配对、严格工件验证、自身 digest、确定性重建、篡改与过期 baseline,以及完整/不完整多级依赖链;只读与 schema/store 兼容性继续成立。详细协议以 [18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md](./18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md) 第 18 节为准。实现授权已消耗,Git 与公开发布未授权。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 权威说明:本文是支持性设计文档;当前唯一规范真源是 [00-PRODUCT-CONSTITUTION.md](./00-PRODUCT-CONSTITUTION.md)。
4
4
 
5
- 状态:`frontend-project-context@1.2.0` 已完成本地实现与 69 项验证;公共 npm 已核验最新版本仍为 `1.0.1`,`1.2.0` 发布未授权
5
+ 状态:`frontend-project-context@1.3.0` 已发布到官方公共 npm;本地 `1.3.1` Receipt/Bundle 与 consumer pin 修复 82/82 通过,发布未授权
6
6
  适用项目:`dtg-frontend-delivery-agent`
7
7
  本文记录产品如何交付、安装、共享、升级和验证;它不自行授权打包、registry、Git 或发布操作。
8
8
 
@@ -43,12 +43,12 @@ CI 安装项目锁定的依赖版本并执行只读检查。CI 不依赖机器
43
43
  面向 Node.js 前端项目,推荐支持包管理器的一次性运行方式,例如:
44
44
 
45
45
  ```bash
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
46
+ npx frontend-project-context@1.3.0 setup --project . --id PROJECT_ID --name "Project Name" --json
47
+ pnpm dlx frontend-project-context@1.3.0 setup --project . --id PROJECT_ID --name "Project Name" --json
48
+ bunx frontend-project-context@1.3.0 setup --project . --id PROJECT_ID --name "Project Name" --json
49
49
  ```
50
50
 
51
- 以上 `1.2.0` 一次性命令只在该版本获得单独发布授权并实际发布后可用;当前公共 registry 最新已核验版本仍为 `1.0.1`。包名冻结为 `frontend-project-context`,可执行文件名为 `project-context`,CLI 合同以 [04-PROGRAM-DESIGN.md](./04-PROGRAM-DESIGN.md) 为准。
51
+ 以上 `1.3.0` 一次性命令现已可从官方公共 npm 使用,`latest` 已独立核验为 `1.3.0`。包名冻结为 `frontend-project-context`,可执行文件名为 `project-context`,CLI 合同以 [04-PROGRAM-DESIGN.md](./04-PROGRAM-DESIGN.md) 为准。
52
52
 
53
53
  `setup` 初始化入口只负责:
54
54
 
@@ -65,7 +65,7 @@ bunx frontend-project-context@1.2.0 setup --project . --id PROJECT_ID --name "Pr
65
65
  初始化后,DTG 应作为项目开发依赖被锁定,例如:
66
66
 
67
67
  ```bash
68
- pnpm add -D frontend-project-context@1.2.0
68
+ pnpm add -D frontend-project-context@1.3.0
69
69
  ```
70
70
 
71
71
  选择项目内安装而不是全局安装,原因是:
@@ -200,7 +200,7 @@ IDE 插件可以在未来提供状态提示、冲突解释和可视化配置,
200
200
 
201
201
  `1.0.1` 是不改变运行逻辑的 patch:README 改为中英双语的用户向入口,包元数据移除 `bin` 规范化警告,并从发布白名单移除只属于源码仓库治理的 `PROJECT_STATE.json` 与 `RTK.md`。当前没有真实可公开访问的源码仓库,因此不伪造 `repository` 或 `bugs` URL。
202
202
 
203
- ## 11. `1.1.0` `1.2.0` 本地实现状态
203
+ ## 11. `1.1.0` 实现与 `1.2.0` 正式发布状态
204
204
 
205
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
206
 
@@ -210,4 +210,12 @@ IDE 插件可以在未来提供状态提示、冲突解释和可视化配置,
210
210
 
211
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
212
 
213
- 本次实现授权不包含 `npm pack` 发布候选核验、registry 访问、tag、push `npm publish`。公共 npm `latest` 仍以已核验的 `1.0.1` 为准,任何 `1.2.0` 发布操作必须获得新的明确授权。
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`。本次发布授权已经消耗,后续发布或扩大产品边界仍需新的明确授权。
214
+
215
+ ## 12. `1.3.0` Branch-aware Staged Context 正式发布状态
216
+
217
+ `1.3.0` 新增可选 Task Context Plan、Stage Receipt、只读 `stage-context`、只读 `integration-review` 与四份公开 schema,不改变 Project Contract、既有 store 或永久权限边界。发布候选 prepack 79/79 通过,包含 62 个文件、解包大小 653373 bytes;本地候选与官方 registry tarball 逐字节一致,SHA-1 均为 `b33d3c3616b556096e85168b8da79cc7abfccd21`。`fushanyx1` 于 `2026-09-10T04:41:48.107Z` 完成 public 发布,`latest` 指向 `1.3.0`;从 registry 安装后的 help、capabilities、init 与 clean check 冒烟均通过。`v1.3.0` 指向冻结候选提交 `5591d70eb0ccca1daa9cdb3a5eaa9cbcbd50d560`。
218
+
219
+ 发布后复核确认,不可覆盖的 `1.3.0` tarball 中 README 安装命令和 `examples/package.json` 仍固定 `1.2.0`。这不影响包版本、运行时命令或 schema,但属于消费端发布质量缺陷;仓库已修正为 `1.3.0`。
220
+
221
+ 正式调用链审查还确认 `1.3.0` 对 receipt `inputBundleDigest` 的校验没有接入 `stage-context` 与 `integration-review`,错误 digest 可错误地解锁依赖 stage。该协议正确性缺陷与 consumer pins 缺陷已经在本地 `1.3.1` 中完成合并修复,82 项验收通过;Git 写入、候选包和发布仍需独立授权。
@@ -65,3 +65,39 @@ 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 或公共源码仓库创建。发布授权已经消耗。
83
+
84
+ ## 10. `1.3.0` Branch-aware Staged Context 正式发布
85
+
86
+ 用户于 2026-09-10 以 `authorize-1.3.0-release-candidate-and-public-npm-release` 明确授权发布。冻结候选来自提交 `5591d70eb0ccca1daa9cdb3a5eaa9cbcbd50d560`,远端 `v1.3.0` 精确指向该提交;发布后状态记录留在后续提交,避免改变标签对应的包源码。
87
+
88
+ 发布验证记录:
89
+
90
+ 1. prepack 重新执行全部 79/79 项验收并通过;
91
+ 2. tarball 包含 62 个文件,压缩大小 184468 bytes、解包大小 653373 bytes,不包含测试、Git、自托管 `.project-context/`、`PROJECT_STATE.json` 或 `RTK.md`;
92
+ 3. 候选 SHA-1 为 `b33d3c3616b556096e85168b8da79cc7abfccd21`,integrity 为 `sha512-AnWyXpRj16YcPH69LOdjr5miNohGlgRRheDk3FTUjq3kgptLnJPKBUkK+vHGpD1OGDEmiJdSwJbOy594vZeN+A==`;
93
+ 4. 候选解包后的 help、init 与 clean check 通过;
94
+ 5. `fushanyx1` 于 `2026-09-10T04:41:48.107Z` 向官方 registry public 发布 `frontend-project-context@1.3.0`,`latest` 已指向该版本;
95
+ 6. 从 registry 重新下载的 tarball 与候选逐字节一致,随后直接从 registry 安装并再次通过 help、capabilities、init 与 clean check 冒烟。
96
+
97
+ 本次授权只完成既定 `1.3.0` 发布,不授权 Provider、Agent Runtime、任务执行、自动批准、产品内 Git/网络能力、真实业务项目试用、团队验收、公共源码仓库创建或后续发布。发布授权已经消耗。
98
+
99
+ 发布后源仓库状态同步触发 A-39 时进一步确认:不可覆盖的 `1.3.0` tarball 中 README 安装命令与 `examples/package.json` 仍固定为 `1.2.0`。包的版本、入口、新命令、四份新 schema 和 registry 安装冒烟均正确;仓库消费端 pin 已修正为 `1.3.0`。
100
+
101
+ 随后的正式调用链审查又确认,`1.3.0` 对 receipt `inputBundleDigest` 的校验只存在于可选 validator 参数,`stage-context` 与 `integration-review` 未将它与实际 Stage Context Bundle 重建结果绑定;结构合法但内容错误的 digest 可在无 finding 时解锁下一 stage。用户决定把该协议正确性修复与 consumer pins 修复合并到 `1.3.1`;冻结设计和 A-74 至 A-76 见 [18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md](./18-BRANCH-AWARE-STAGED-CONTEXT-DESIGN.md) 第 18 节。
102
+
103
+ `1.3.1` 已完成本地实现与 82/82 验收,但本次授权明确不包含 Git commit/tag/push、npm 登录、候选打包或公开发布。公共 npm `latest` 仍为 `1.3.0`;不得把本地实现状态写成已发布事实。
@@ -2,7 +2,7 @@
2
2
 
3
3
  > 权威说明:本文定义项目与现有 AI 编程工具之间的模型无关双向交换边界;如与 [00-PRODUCT-CONSTITUTION.md](./00-PRODUCT-CONSTITUTION.md) 冲突,以产品宪法为准。
4
4
  >
5
- > 状态:`implemented-local; A-56-through-A-63-and-full-69-test-suite-passed; release-not-authorized`
5
+ > 状态:`published-public-npm-verified; A-56-through-A-63-and-full-69-test-suite-passed`
6
6
  >
7
7
  > 设计基线:`frontend-project-context@1.1.0` 本地完整性修正、Assist Bundle schema 1、A-01 至 A-55、B0-01/B0-02、CLI 与发布工件共 61 项通过。
8
8
 
@@ -265,4 +265,6 @@ Contract、proposal、source lock、projection lock、renderer 和 Dashboard sch
265
265
  - `schemas/` 发布 capabilities、Assist Bundle、Action Plan 与 Review Bundle 四份机器合同,npm 白名单继续排除动态项目状态和自托管 store;
266
266
  - A-56 至 A-63 和全部旧验收共 69/69 通过,store schema、renderer、Dashboard 与旧 CLI 无迁移和无回归。
267
267
 
268
- 实现和自托管同步完成后本阶段停止。当前仍不授权 Provider、Agent Runtime、`apply-plan`、自动批准/修复、业务代码执行、Git 管理、网络、依赖安装、scheduler、daemon、真实项目访问、`npm pack`、registry、push 或发布。构建与测试成功不等于发布授权。
268
+ 用户于 2026-09-09 单独授权进入 `1.2.0` 发布流程。冻结候选 prepack 69/69 通过,官方 registry public 发布成功,`latest` 指向 `1.2.0`;registry tarball 与候选逐字节一致,直接安装后的 helpcapabilities、init 与 clean check 冒烟通过。`v1.2.0` 精确指向冻结候选提交 `c991187c4dfd094d9cff5a4e15516fb25d74d803`。
269
+
270
+ 本阶段至此停止,发布授权已经消耗。Provider、Agent Runtime、`apply-plan`、自动批准/修复、业务代码执行、Git 管理、网络能力、依赖安装、scheduler、daemon、真实项目访问和后续发布仍未授权;构建、测试或本次发布成功不会扩大这些永久边界。