frontend-project-context 1.9.1 → 1.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/README.md +25 -6
- package/UPGRADING.md +14 -0
- package/docs/00-PRODUCT-CONSTITUTION.md +44 -12
- package/docs/08-INSTALLATION-AND-DISTRIBUTION.md +2 -2
- package/docs/32-PROJECT-TO-TASK-INTERACTION-PROPOSAL.md +173 -0
- package/docs/33-BOUNDED-TASK-HANDOFF-REDESIGN.md +207 -0
- package/docs/34-A0-CODEX-HOST-FEASIBILITY.md +61 -0
- package/docs/35-CONTEXT-FIRST-TASK-HANDOFF-DESIGN.md +248 -0
- package/docs/36-PRODUCT-VALUE-AND-USABILITY-REVIEW.md +158 -0
- package/docs/37-EVERYDAY-HANDOFF-FLOW-DESIGN.md +271 -0
- package/docs/38-EVERYDAY-HANDOFF-OPERATION.md +147 -0
- package/docs/39-SELF-HOST-RELEASE-ACCEPTANCE.md +39 -0
- package/docs/AI-PROJECT-INITIALIZATION.md +5 -1
- package/docs/README.md +13 -1
- package/docs/USER-AND-AI-OPERATION-MANUAL.md +9 -3
- package/examples/package.json +1 -1
- package/migration-manifest.json +14 -6
- package/package.json +2 -2
- package/schemas/capabilities.schema.json +17 -7
- package/schemas/evidence-bundle.schema.json +1 -1
- package/schemas/initialization-instruction.schema.json +1 -1
- package/schemas/migration-manifest.schema.json +1 -1
- package/schemas/migration-plan.schema.json +1 -1
- package/schemas/project-brief.schema.json +400 -0
- package/schemas/projection-lock.schema.json +1 -1
- package/schemas/task-context-record.schema.json +27 -0
- package/schemas/task-handoff-input.schema.json +23 -0
- package/schemas/task-handoff-result.schema.json +320 -0
- package/schemas/upgrade-assessment.schema.json +1 -1
- package/schemas/upgrade-result-bundle.schema.json +1 -1
- package/schemas/work-view.schema.json +541 -0
- package/src/project-context/adaptive-context.mjs +4 -6
- package/src/project-context/ai-entry.mjs +13 -10
- package/src/project-context/capabilities.mjs +9 -0
- package/src/project-context/cli.mjs +45 -1
- package/src/project-context/context-bundle.mjs +2 -1
- package/src/project-context/contract-schema.mjs +1 -1
- package/src/project-context/exchange-schema.mjs +3 -2
- package/src/project-context/migration-manifest.mjs +1 -1
- package/src/project-context/path-policy.mjs +13 -0
- package/src/project-context/task-context.mjs +4 -14
- package/src/project-context/task-handoff-schema.mjs +185 -0
- package/src/project-context/task-handoff.mjs +259 -0
- package/src/project-context/upgrade.mjs +1 -0
- package/src/project-context/work-view-schema.mjs +125 -0
- package/src/project-context/work-view.mjs +135 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# 自托管验收与前端验证交接
|
|
2
|
+
|
|
3
|
+
`2026-10-02`,用户要求先验收当前自研项目,再发布、更新前端项目,用真实任务验证后继续优化。本文件定义这次验收的证据和后续交接;实际包摘要、认证、发布及目标项目结果只记录在源码仓库的 `PROJECT_STATE.json.localReview.selfHostReleaseAcceptance`,避免将发布前动态状态固定进安装包。
|
|
4
|
+
|
|
5
|
+
## 当前仓库的实际消费
|
|
6
|
+
|
|
7
|
+
任务为 `.project-context-tasks/self-host-pre-release-acceptance.json`,基线提交 `6efbe30`,源码版本 `1.10.0`。开始时 status 为 clean / contract-ready,入口 renderer 7。当前 Host 使用工作视图取得同一份完整 Context,实际核对所需文件及当前用户原话、docs/37 设计,再提交绑定 taskId、requirementsDigest、contextBundleDigest 和 consumerRunId 的声明;调查与实施交接均从 hold 进入 proceed。
|
|
8
|
+
|
|
9
|
+
命中 29 个 item;30 个目标中 17 个 scoped、13 个 project-only。required 32 个,conditional 20 个;本次适用并读取 docs/11、16、17、22、32,其余未扩展的历史协议按当前任务判断不适用,provenance-only 不重读。完整 IDs、路径、摘要和消费声明保存在当前 Host 的临时验收结果中;不将这些短期输入放进长期 Contract。
|
|
10
|
+
|
|
11
|
+
本任务同时检查发布文档,修正旧的 248 项、capabilities 10、renderer 6 描述,保持 package、示例和安装 pin 均为 1.10.0。实际包检查发现 upgrade-check 将无需摘要 lock 的 human-decision 误报为 source-lock-missing;修复与 check 相同的来源分类规则,补 A-115 回归,先证实旧代码失败,再验证修复通过。本地来源缺失 lock 仍阻断,来源检查保持只读。修复时新增 checker 与 upgrade 测试两个读取目标,重新交接后 required 为 35 个。工作视图显式输出 schema 2,省略 view 仍输出 legacy schema 1。
|
|
12
|
+
|
|
13
|
+
这份证据证明当前 Host 在一个实际维护任务中使用了交接,不能证明新窗口已正确续接,更不能证明移动端或 PC 的业务收益。
|
|
14
|
+
|
|
15
|
+
## 实际发布包的固定检查
|
|
16
|
+
|
|
17
|
+
1. 执行实际 `npm pack`,由 prepack 运行完整检查;检查包版本、所有文件、bin 可执行位和公开 schema 的相对引用。
|
|
18
|
+
2. 排除源码仓库状态、RTK、AGENTS、Git、自托管 store、任务记录、测试、缓存和凭据。保留运行时、schema、文档、示例、迁移清单和许可证。
|
|
19
|
+
3. 在隔离临时目录离线安装这份 tarball,使用安装后的 CLI 验证 capabilities、instructions、status、project-brief、当前真实任务 handoff 与 legacy 兼容。
|
|
20
|
+
4. 用新 consumerRunId 验证未声明阅读时保持 hold、旧声明不能继承。这是机械协议检查,不标记为独立 Agent 验收。
|
|
21
|
+
5. 通过后只发布已检查的同一 tarball;核对 registry 的版本、latest、integrity、下载字节,再在新临时消费者中核对安装版本。
|
|
22
|
+
|
|
23
|
+
任何未完成的检查均保持待验收;npm 登录失败单列为发布环境问题。包版本尚未发布不等于可以省略上述检查。
|
|
24
|
+
|
|
25
|
+
## 无历史消费者
|
|
26
|
+
|
|
27
|
+
新窗口只接收当前仓库入口、准确 taskId、当前授权范围和验证目标。由它独立读取任务记录与工作视图、核对依据,提交自己的消费声明并报告已完成、剩余和下一步。不得把旧窗口的读取声明、ready 或本文的预期结论当成实际结果。
|
|
28
|
+
|
|
29
|
+
该消费者的实际报告应回答:是否定位到本任务、是否看见当前原话和设计、是否拒绝继承旧声明、是否准确恢复进度、是否区分发布与前端收益仍待验证。新窗口创建与目标选择按用户明确指示执行;本窗口不虚构该结果。
|
|
30
|
+
|
|
31
|
+
## 前端项目窗口的交接
|
|
32
|
+
|
|
33
|
+
发布确认后,每个所选目标在自己的窗口执行。先 `pwd -P` 固定 targetRoot,保留原工作区改动,只读取当前项目,不访问父目录或兄弟项目;本自研窗口只观察目标 Host 返回的证据。
|
|
34
|
+
|
|
35
|
+
目标 Host 核对当前版本和状态,使用项目原包管理器将依赖、lockfile 精确更新为 `frontend-project-context@1.10.0`。不得重新 setup 覆盖已有 store。用 upgrade-check / plan 核对现状,仅对仍拥有的旧入口显式 republish,按现有维护流程处理真实来源变化,并恢复 clean。运行与这次升级有关的验证,不凭包安装成功声称业务验收通过。
|
|
36
|
+
|
|
37
|
+
随后在自然发生的真实业务任务中使用日常链路,共收集两个任务及一次无历史续接。保持原始资料和验收要求可比较,记录准备/录入、阅读/定位、用户澄清、遗漏/返工、续接恢复、来源维护与知识候选审查的实际时间和范围。没有可比较基线时净收益标记未知,不推测节省百分比。
|
|
38
|
+
|
|
39
|
+
一次反馈先分类:产品漏报缺口或错误放行、项目资料缺失、Host 未遵循交接、外部环境。只有可复现的产品问题进入有界修复;收益不足先收窄长期知识和任务记录,避免为一次任务无限扩展内核。没有可靠知识候选时记录 0 条,不为了流程创建重复规则。
|
|
@@ -40,7 +40,7 @@ Prepare an exact whole-file before digest, human-owned-region diff, and expected
|
|
|
40
40
|
- Preserve valid project boundaries.
|
|
41
41
|
- Correct descriptions contradicted by current configuration or source.
|
|
42
42
|
- Downgrade or remove obsolete mandatory workflows and unconsumed plan/log/review requirements.
|
|
43
|
-
- Make the root entry route every real task through local
|
|
43
|
+
- Make the root entry route every real task through local work-view handoff (which checks status and compiles Context) before source development; read required evidence and resubmit the current-consumer declaration.
|
|
44
44
|
- Move durable facts and rules into the Project Contract instead of accumulating them in entry prose.
|
|
45
45
|
|
|
46
46
|
The product may write only its marker-delimited managed region. Any change to the human-owned region requires the user's approval of the exact diff.
|
|
@@ -88,3 +88,7 @@ Run all of the following inside `targetRoot`:
|
|
|
88
88
|
4. No setup proposal, initialization proposal, Action Plan, Review Bundle, log, or initialization cache remains in the repository.
|
|
89
89
|
|
|
90
90
|
These facts establish local onboarding readiness, not full product acceptance. A separately authorized, memoryless Host must later receive only the initialized target project and a real development request, discover Project Context from the entry, consume the applicable Contract, report actual IDs/scopes/sources, remain within `targetRoot`, and only then enter target source. Until that external gate passes, stop and report that real Host acceptance is pending.
|
|
91
|
+
|
|
92
|
+
After local onboarding, `project-brief --project PATH --view work --json` gives a read-only project and task overview. For a concrete task, create or select a minimal `.project-context-tasks/<taskId>.json` record outside this CLI, then use `task-handoff --project PATH --input FILE_OR_DASH --view work --json`. A first call lists required and conditional targets; the current Host reads them and resubmits a consumption declaration with path and SHA-256 for each required read. The result is an instructional context gate, not execution authority. A later Agent must submit its own consumerRunId and read declaration. No hook or vendor-specific configuration is required for this local entry protocol; actual compliance still needs real-Agent validation.
|
|
93
|
+
|
|
94
|
+
The work view delivers the complete Context compiled by the same existing selector alongside task evidence, decisions and Host-reported progress. Default legacy output remains schema 1; the explicit work view uses schema 2 and never grants authority. A withheld delivery requires finite narrowing, not repeated retries. See [Everyday Handoff Operation](./38-EVERYDAY-HANDOFF-OPERATION.md) for one end-to-end example and the bounded, optional knowledge suggestions after completion. Suggestions are not persistent approval; unregistered sources require separate registration and a fresh item-plan baseline.
|
package/docs/README.md
CHANGED
|
@@ -14,11 +14,23 @@
|
|
|
14
14
|
|
|
15
15
|
记录 `2026-09-14` 关于“让团队共同拥有同一份项目上下文”的产品意义、真实项目应用重点,以及 Stateful Agent、Persistent KV 和增量上下文的远期讨论方向。该文档仅供团队查看和继续讨论,不是冻结设计、路线或实现授权。
|
|
16
16
|
|
|
17
|
+
## 当前本地实施设计
|
|
18
|
+
|
|
19
|
+
[35-CONTEXT-FIRST-TASK-HANDOFF-DESIGN.md](./35-CONTEXT-FIRST-TASK-HANDOFF-DESIGN.md)
|
|
20
|
+
|
|
21
|
+
本地 L 阶段已按此文实施项目概览、跨消费者最小任务记录和指令式上下文门禁,并完成第 11 节治理采纳。用户选择先正式发布 `1.10.0`,再由真实项目窗口更新并提供实际观察证据;CF-14 跨 Agent 验收仍未完成。发布状态由当前 registry 与 `PROJECT_STATE.json` 确认。历史 A0 钩子结论不再阻断此主线。
|
|
22
|
+
|
|
23
|
+
## 已获批产品方向与历史阶段方案
|
|
24
|
+
|
|
25
|
+
[32-PROJECT-TO-TASK-INTERACTION-PROPOSAL.md](./32-PROJECT-TO-TASK-INTERACTION-PROPOSAL.md)
|
|
26
|
+
|
|
27
|
+
`2026-09-29` 用户批准面向开发人员的项目上下文交互和生命周期方向。该文的硬保护阶段方案已由 `docs/35` 的上下文优先 D/L/H 顺序取代;更广的提醒和环境流转不属于当前 L 范围。
|
|
28
|
+
|
|
17
29
|
## 当前实现基线
|
|
18
30
|
|
|
19
31
|
[31-TASK-CONTEXT-INTEGRITY-REPAIR-DESIGN.md](./31-TASK-CONTEXT-INTEGRITY-REPAIR-DESIGN.md)
|
|
20
32
|
|
|
21
|
-
已完成 `1.9.1 — Task Context Integrity Repair` 实现:修复 task target 与 registered source 同路径的重复 read target、同文件多 JSON Pointer 聚合丢失,以及 Context Bundle / Coverage Audit 的 coverage profile 双解析不一致。HC-01 至 HC-14、TC-01 至 TC-16 与全部回归共 237/237 通过,自托管 Contract 已采用 schema 3 consumption、`outside-owned-ai-entry` 和 coverage profile v2。两个隔离真实 Host
|
|
33
|
+
已完成 `1.9.1 — Task Context Integrity Repair` 实现:修复 task target 与 registered source 同路径的重复 read target、同文件多 JSON Pointer 聚合丢失,以及 Context Bundle / Coverage Audit 的 coverage profile 双解析不一致。HC-01 至 HC-14、TC-01 至 TC-16 与全部回归共 237/237 通过,自托管 Contract 已采用 schema 3 consumption、`outside-owned-ai-entry` 和 coverage profile v2。两个隔离真实 Host 使用同一冻结源码候选完成只读复验,当时未确认产品缺陷;后续真实开发任务确认了任务上下文交接缺陷,由 `docs/32` 接管新方向。公开 schema、Exchange Protocol 9 与 AI Entry renderer 5 在 `1.9.1` 中未升级;发布状态由动态项目状态记录,不由本索引授权。
|
|
22
34
|
|
|
23
35
|
## 已归档的前一本地实现基线
|
|
24
36
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Frontend Project Context 操作手册
|
|
2
2
|
|
|
3
|
-
> 适用版本:`frontend-project-context@1.
|
|
3
|
+
> 适用版本:`frontend-project-context@1.10.0`;真实项目 Agent 验收仍待后续观察,发布事实以 `PROJECT_STATE.json` 为准。
|
|
4
4
|
>
|
|
5
5
|
> 适用对象:项目维护者、开发者、使用 Codex / Claude / Cursor / 其他 Coding Agent 的团队,以及集成该 CLI 的 AI Host Agent。
|
|
6
6
|
>
|
|
@@ -101,7 +101,7 @@ AI 可以提取事实、整理文字、去重、建议 scope/override、生成 p
|
|
|
101
101
|
固定为项目开发依赖,使本地与 CI 使用同一版本:
|
|
102
102
|
|
|
103
103
|
```bash
|
|
104
|
-
npm install --save-dev frontend-project-context@1.
|
|
104
|
+
npm install --save-dev --save-exact frontend-project-context@1.10.0
|
|
105
105
|
```
|
|
106
106
|
|
|
107
107
|
建议在 `package.json` 中提供稳定入口:
|
|
@@ -130,7 +130,7 @@ npm exec --offline -- project-context status --project . --json
|
|
|
130
130
|
|
|
131
131
|
`instructions` 和 `capabilities` 在项目未初始化时也可用。初始化的唯一规范正文是 [AI-PROJECT-INITIALIZATION.md](./AI-PROJECT-INITIALIZATION.md);本手册只引用它,不另行定义执行顺序。
|
|
132
132
|
|
|
133
|
-
|
|
133
|
+
当前本地源码的 AI Entry renderer 7 固定离线项目本地 CLI 入口,并通过 `project-brief --view work` 和 `task-handoff --view work` 交付完整 Context、任务依据和进度:先确认当前任务及依据,再报告 item IDs、scopeCoverage、required/conditional read targets、gaps 和本次指令式门禁。既有 renderer 1/2/3/4/5/6 不会被静默覆盖,必须明确授权 republish。门禁就绪不等于用户授予业务写入权限。
|
|
134
134
|
|
|
135
135
|
### 4.3 全新初始化不是普通升级
|
|
136
136
|
|
|
@@ -842,3 +842,9 @@ Receipt 只记录阶段证据,不代表人已验收、合并或批准长期规
|
|
|
842
842
|
```bash
|
|
843
843
|
npm exec --offline -- project-context --help
|
|
844
844
|
```
|
|
845
|
+
|
|
846
|
+
## 日常链路工作视图
|
|
847
|
+
|
|
848
|
+
当前源码新增显式 `--view work`,详见 [完整日常示例](./38-EVERYDAY-HANDOFF-OPERATION.md):无任务看已批准知识与声明范围;有任务直接获取完整 Context、当前依据、进度与具体缺口,实际读取后提交本消费者声明;完成时保存进度并给出 0–3 条有来源与范围的知识建议。用户选择后才进入既有治理,不自动批准长期知识。
|
|
849
|
+
|
|
850
|
+
默认 legacy 输出不变,新视图不会增加 Host 权限;大于 1 MiB 的工作交付明确 withheld,收窄目标后重交接。本地行为验收与真实任务的净收益、维护成本分别记录。
|
package/examples/package.json
CHANGED
package/migration-manifest.json
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"consumerChanges": {
|
|
24
24
|
"actionPlan": {"reason": "Action Plan schema 1 and 2 readers remain compatible; writers remain schema 2.", "state": "preserve"},
|
|
25
25
|
"adaptiveContextBundle": {"reason": "Schema 1 Adaptive Context Bundles lack task lineage and strict withheld-delivery semantics; regenerate as schema 2.", "state": "regenerate"},
|
|
26
|
-
"capabilities": {"reason": "Consumers must branch on capabilities schema
|
|
26
|
+
"capabilities": {"reason": "Consumers must branch on capabilities schema 11 and exchange protocol 9; explicit work views use output schema 2 while defaults remain legacy.", "state": "regenerate"},
|
|
27
27
|
"contextBundle": {"reason": "Context Bundle schema 1 is short-lived and must be regenerated from the current Contract and exact task paths.", "state": "regenerate"},
|
|
28
28
|
"contextQuery": {"reason": "Context Query schema 1 is short-lived and must use current snapshots.", "state": "regenerate"},
|
|
29
29
|
"coverageAudit": {"reason": "Coverage Audit schema 2 is derived from the current Contract and declared coverage profile.", "state": "regenerate"},
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
,"truthReconciliationReviewBundle": {"reason": "Schema 1 reviews lack finding digests and machine-verifiable resolution outcomes; recompute as schema 2.", "state": "regenerate"}
|
|
44
44
|
},
|
|
45
45
|
"externalEffects": {"automaticUpgrade": false, "businessCode": false, "git": false, "network": false, "packageManager": false, "projectTests": false},
|
|
46
|
-
"manifestDigest": "sha256:
|
|
47
|
-
"package": {"name": "frontend-project-context", "version": "1.
|
|
46
|
+
"manifestDigest": "sha256:fd439d7a88064f7069b95cbdd5a8d2d33499c48c6522f7084a49d32f939834fd",
|
|
47
|
+
"package": {"name": "frontend-project-context", "version": "1.10.0"},
|
|
48
48
|
"paths": [
|
|
49
49
|
{
|
|
50
50
|
"acceptance": ["project-context-clean", "target-renderers-current"],
|
|
@@ -98,7 +98,15 @@
|
|
|
98
98
|
"acceptance": ["project-context-clean", "target-renderers-current"],
|
|
99
99
|
"classification": "package-only",
|
|
100
100
|
"fromVersion": "1.9.0",
|
|
101
|
-
"migrationIds": [],
|
|
101
|
+
"migrationIds": ["upgrade.republish-ai-entry.v1"],
|
|
102
|
+
"requiresHumanReview": false,
|
|
103
|
+
"rollbackClass": "package-only"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"acceptance": ["project-context-clean", "target-renderers-current"],
|
|
107
|
+
"classification": "package-only",
|
|
108
|
+
"fromVersion": "1.9.1",
|
|
109
|
+
"migrationIds": ["upgrade.republish-ai-entry.v1"],
|
|
102
110
|
"requiresHumanReview": false,
|
|
103
111
|
"rollbackClass": "package-only"
|
|
104
112
|
}
|
|
@@ -125,7 +133,7 @@
|
|
|
125
133
|
"truthReconciliationReviewBundle": {"readable": [2], "written": 2}
|
|
126
134
|
},
|
|
127
135
|
"renderers": {
|
|
128
|
-
"aiEntry": {"readable": [1, 2, 3, 4, 5], "written":
|
|
136
|
+
"aiEntry": {"readable": [1, 2, 3, 4, 5, 6, 7], "written": 7},
|
|
129
137
|
"projection": {"readable": [1, 2, 3], "written": 3}
|
|
130
138
|
},
|
|
131
139
|
"rollback": {"automatic": false, "defaultClass": "package-only", "externalRestoreRequired": true},
|
|
@@ -136,5 +144,5 @@
|
|
|
136
144
|
"proposal": {"readable": [1], "written": [1]},
|
|
137
145
|
"sourceLock": {"readable": [1], "written": [1]}
|
|
138
146
|
},
|
|
139
|
-
"upgradeFrom": ["1.3.1", "1.4.0", "1.5.0", "1.6.0", "1.7.0", "1.8.0", "1.9.0"]
|
|
147
|
+
"upgradeFrom": ["1.3.1", "1.4.0", "1.5.0", "1.6.0", "1.7.0", "1.8.0", "1.9.0", "1.9.1"]
|
|
140
148
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "frontend-project-context",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "Govern, compile, and verify project-local context for AI coding tools.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"publishConfig": {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
},
|
|
28
28
|
"scripts": {
|
|
29
29
|
"check": "node --check bin/project-context.mjs && npm test",
|
|
30
|
-
"test": "node --test test/project-context/acceptance.test.mjs test/project-context/adaptive-context.test.mjs test/project-context/adaptive-delivery-v2.test.mjs test/project-context/assist.test.mjs test/project-context/cli.test.mjs test/project-context/dashboard.test.mjs test/project-context/evidence.test.mjs test/project-context/exchange.test.mjs test/project-context/maintenance.test.mjs test/project-context/onboarding-closure.test.mjs test/project-context/source-lifecycle.test.mjs test/project-context/task-context.test.mjs test/project-context/task-context-consumption.test.mjs test/project-context/takeover.test.mjs test/project-context/truth-reconciliation.test.mjs test/project-context/upgrade.test.mjs test/release/acceptance.test.mjs",
|
|
30
|
+
"test": "node --test test/project-context/acceptance.test.mjs test/project-context/adaptive-context.test.mjs test/project-context/adaptive-delivery-v2.test.mjs test/project-context/assist.test.mjs test/project-context/cli.test.mjs test/project-context/context-first-handoff.test.mjs test/project-context/dashboard.test.mjs test/project-context/evidence.test.mjs test/project-context/exchange.test.mjs test/project-context/maintenance.test.mjs test/project-context/onboarding-closure.test.mjs test/project-context/source-lifecycle.test.mjs test/project-context/task-context.test.mjs test/project-context/task-context-consumption.test.mjs test/project-context/takeover.test.mjs test/project-context/truth-reconciliation.test.mjs test/project-context/upgrade.test.mjs test/release/acceptance.test.mjs",
|
|
31
31
|
"prepack": "npm run check"
|
|
32
32
|
},
|
|
33
33
|
"engines": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
-
"$id": "urn:frontend-project-context:schema:capabilities:
|
|
3
|
+
"$id": "urn:frontend-project-context:schema:capabilities:11",
|
|
4
4
|
"title": "Frontend Project Context Capabilities",
|
|
5
5
|
"type": "object",
|
|
6
6
|
"additionalProperties": false,
|
|
@@ -16,17 +16,19 @@
|
|
|
16
16
|
"initialization",
|
|
17
17
|
"initialized",
|
|
18
18
|
"project",
|
|
19
|
-
"boundaries"
|
|
19
|
+
"boundaries",
|
|
20
|
+
"views"
|
|
20
21
|
],
|
|
21
22
|
"properties": {
|
|
22
|
-
"schemaVersion": { "const":
|
|
23
|
+
"views": {"type": "object", "additionalProperties": false, "required": ["projectBrief", "taskHandoff"], "properties": {"projectBrief": {"type": "object", "additionalProperties": false, "required": ["default", "legacy", "work"], "properties": {"default": {"const": "legacy"}, "legacy": {"type": "object", "additionalProperties": false, "required": ["schemaVersion"], "properties": {"schemaVersion": {"const": 1}}}, "work": {"type": "object", "additionalProperties": false, "required": ["schemaVersion"], "properties": {"schemaVersion": {"const": 2}}}}}, "taskHandoff": {"type": "object", "additionalProperties": false, "required": ["default", "legacy", "work"], "properties": {"default": {"const": "legacy"}, "legacy": {"type": "object", "additionalProperties": false, "required": ["schemaVersion"], "properties": {"schemaVersion": {"const": 1}}}, "work": {"type": "object", "additionalProperties": false, "required": ["schemaVersion"], "properties": {"schemaVersion": {"const": 2}}}}}}},
|
|
24
|
+
"schemaVersion": { "const": 11 },
|
|
23
25
|
"package": {
|
|
24
26
|
"type": "object",
|
|
25
27
|
"additionalProperties": false,
|
|
26
28
|
"required": ["name", "version"],
|
|
27
29
|
"properties": {
|
|
28
30
|
"name": { "const": "frontend-project-context" },
|
|
29
|
-
"version": { "const": "1.
|
|
31
|
+
"version": { "const": "1.10.0" }
|
|
30
32
|
}
|
|
31
33
|
},
|
|
32
34
|
"exchangeProtocolVersion": { "const": 9 },
|
|
@@ -64,16 +66,20 @@
|
|
|
64
66
|
"stageContextBundle",
|
|
65
67
|
"stageReceipt",
|
|
66
68
|
"taskContextPlan",
|
|
69
|
+
"taskContextRecord",
|
|
70
|
+
"taskHandoffInput",
|
|
71
|
+
"taskHandoffResult",
|
|
67
72
|
"truthReconciliationInput",
|
|
68
73
|
"truthReconciliationReviewBundle",
|
|
69
74
|
"upgradeAssessment",
|
|
70
|
-
"upgradeResultBundle"
|
|
75
|
+
"upgradeResultBundle",
|
|
76
|
+
"projectBrief"
|
|
71
77
|
],
|
|
72
78
|
"properties": {
|
|
73
79
|
"actionPlan": { "const": 2 },
|
|
74
80
|
"adaptiveContextBundle": { "const": 2 },
|
|
75
81
|
"assistBundle": { "const": 1 },
|
|
76
|
-
"capabilities": { "const":
|
|
82
|
+
"capabilities": { "const": 11 },
|
|
77
83
|
"contract": { "const": 3 },
|
|
78
84
|
"contractReadable": { "const": [1, 2, 3] },
|
|
79
85
|
"contextBundle": { "const": 1 },
|
|
@@ -91,7 +97,7 @@
|
|
|
91
97
|
"projectionRenderer": { "type": "integer" },
|
|
92
98
|
"proposal": { "const": 1 },
|
|
93
99
|
"projectStatus": { "const": 2 },
|
|
94
|
-
"aiEntryRenderer": { "const":
|
|
100
|
+
"aiEntryRenderer": { "const": 7 },
|
|
95
101
|
"migrationManifest": { "const": 2 },
|
|
96
102
|
"migrationPlan": { "const": 1 },
|
|
97
103
|
"reviewBundle": { "const": 2 },
|
|
@@ -100,6 +106,10 @@
|
|
|
100
106
|
"stageContextBundle": { "const": 1 },
|
|
101
107
|
"stageReceipt": { "const": 1 },
|
|
102
108
|
"taskContextPlan": { "const": 1 },
|
|
109
|
+
"taskContextRecord": { "const": 1 },
|
|
110
|
+
"taskHandoffInput": { "const": 1 },
|
|
111
|
+
"projectBrief": { "const": 1 },
|
|
112
|
+
"taskHandoffResult": { "const": 1 },
|
|
103
113
|
"truthReconciliationInput": { "const": 2 },
|
|
104
114
|
"truthReconciliationReviewBundle": { "const": 2 },
|
|
105
115
|
"upgradeAssessment": { "const": 1 },
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"required": ["name", "version", "exchangeProtocolVersion"],
|
|
15
15
|
"properties": {
|
|
16
16
|
"name": { "const": "frontend-project-context" },
|
|
17
|
-
"version": { "const": "1.
|
|
17
|
+
"version": { "const": "1.10.0" },
|
|
18
18
|
"exchangeProtocolVersion": { "const": 6 }
|
|
19
19
|
}
|
|
20
20
|
},
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"required": ["schemaVersion", "package", "upgradeFrom", "stores", "renderers", "protocols", "paths", "builtInMigrations", "consumerChanges", "acceptanceCommands", "rollback", "externalEffects", "manifestDigest"],
|
|
8
8
|
"properties": {
|
|
9
9
|
"schemaVersion": {"const": 2},
|
|
10
|
-
"package": {"type": "object", "additionalProperties": false, "required": ["name", "version"], "properties": {"name": {"const": "frontend-project-context"}, "version": {"const": "1.
|
|
10
|
+
"package": {"type": "object", "additionalProperties": false, "required": ["name", "version"], "properties": {"name": {"const": "frontend-project-context"}, "version": {"const": "1.10.0"}}},
|
|
11
11
|
"upgradeFrom": {"const": ["1.3.1", "1.4.0", "1.5.0", "1.6.0", "1.7.0", "1.8.0"]},
|
|
12
12
|
"stores": {"type": "object", "additionalProperties": false, "required": ["contract", "projectionLock", "proposal", "sourceLock"], "properties": {"contract": {"$ref": "#/$defs/versionMatrix"}, "projectionLock": {"$ref": "#/$defs/versionMatrix"}, "proposal": {"$ref": "#/$defs/versionMatrix"}, "sourceLock": {"$ref": "#/$defs/versionMatrix"}}},
|
|
13
13
|
"renderers": {"type": "object", "additionalProperties": false, "required": ["aiEntry", "projection"], "properties": {"aiEntry": {"$ref": "#/$defs/versionTarget"}, "projection": {"$ref": "#/$defs/versionTarget"}}},
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"schemaVersion": {"const": 1},
|
|
10
10
|
"kind": {"const": "target-upgrade-plan"},
|
|
11
11
|
"fromVersion": {"enum": ["1.3.1", "1.4.0", "1.5.0", "1.6.0", "1.7.0"]},
|
|
12
|
-
"targetVersion": {"const": "1.
|
|
12
|
+
"targetVersion": {"const": "1.10.0"},
|
|
13
13
|
"manifestDigest": {"$ref": "#/$defs/digest"},
|
|
14
14
|
"assessmentDigest": {"$ref": "#/$defs/digest"},
|
|
15
15
|
"snapshots": {"anyOf": [{"type": "null"}, {"$ref": "#/$defs/snapshots"}]},
|