Skip to content

Commit de0e54e

Browse files
committed
feat: add foundation readiness evidence bundle
1 parent b4dc1f9 commit de0e54e

9 files changed

Lines changed: 567 additions & 4 deletions

docs/brainstorms/2026-04-19-mainline-progress-reconciliation-and-post-m7-direction-requirements.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,17 +155,32 @@ This document re-baselines current mainline truth on 2026-04-19, records what ch
155155
- Mainline verification gates used by the dashboards remain runnable:
156156
- `npm run docs:diataxis:check`
157157
- `npm run docs:site:build`
158+
- `npm run verify:foundation:readiness`
158159
- `npm run test:agent-workspace:contracts`
159160
- `npm run verify:agent-workspace:runtime`
160161
- `npm test -- src/learning/KnowledgeLearningPlatform.test.ts --runInBand`
161162
- `npm test -- src/learning/KnowledgeLearningPlatform.persistence.test.ts --runInBand`
162163
- The current working branch remains a reference source for future lanes, not a justification for direct wide merge.
163164

165+
## Execution Note (2026-04-20 M8.1)
166+
167+
- The smallest executed post-M7 slice is now an evidence bundle, not an adapter claim:
168+
- `npm run verify:foundation:readiness`
169+
- The bundle writes machine-readable baseline reports:
170+
- `build/foundation-readiness/foundation-readiness-latest.json`
171+
- `build/foundation-readiness/foundation-readiness-latest.md`
172+
- Current expected outcome on `main` remains:
173+
- status `in_progress`
174+
- decision `no-go`
175+
- reason: mainline still lacks dedicated graph/vector adapter modules.
176+
- This closes the earlier planning question about the smallest executable readiness slice:
177+
- answer: make the anti-overclaim baseline inspectable first, then decide adapter-boundary code with fresher evidence.
178+
164179
## Outstanding Questions
165180

166181
### Deferred to Planning
167182
- [Resolved in execution][Technical] `M7.29` kept the route bounded and accepted combined `status + appliedMode` filtering on the existing history surface, so no separate planning branch is needed for that question.
168-
- [Affects R12][Needs research] What is the smallest executable `M8 foundation re-entry readiness` slice that increases evidence quality without prematurely introducing graphdb/vector abstractions?
183+
- [Resolved in execution][Technical] The smallest executable `M8 foundation re-entry readiness` slice was an evidence bundle (`verify:foundation:readiness`) that reports current mainline baseline and preserves `no-go` honesty while adapter modules remain absent.
169184
- [Affects R11][Needs research] Does markdown-reader governance now have a stronger near-term product case than foundation re-entry once the post-M7 checkpoint happens?
170185

171186
## Next Steps

docs/diataxis/en/explanation/development-progress-dashboard.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -639,6 +639,21 @@ Execution anchor:
639639
- `npm run docs:diataxis:check`
640640
- `npm run docs:site:build`
641641

642+
## Latest Mainline Increment (2026-04-20 M8.1 Foundation Readiness Evidence Bundle)
643+
644+
- Added a dedicated readiness verifier for the post-M7 foundation lane:
645+
- `npm run verify:foundation:readiness`
646+
- Kept the scope evidence-first instead of inventing unfinished adapter claims:
647+
- current result is expected to stay `in_progress` / `no-go` on `main`,
648+
- file-backed persistence remains the verified baseline,
649+
- dedicated `queryBackend` and `vectorAccelerationAdapter` modules are still absent on `main`.
650+
- Added machine-readable readiness outputs for operator review:
651+
- `build/foundation-readiness/foundation-readiness-latest.json`
652+
- `build/foundation-readiness/foundation-readiness-latest.md`
653+
- Added migration-contract coverage for the new verifier:
654+
- `src/foundation.readiness.contract.test.ts`
655+
- Updated the checklist page so the bundle is explicit about what it does and does not prove.
656+
642657
## Mainline vs Working-Branch Snapshot (2026-04-19)
643658

644659
| Capability Slice | Working Branch (`feat/learning-multi-tutor-adapter`) | Mainline (`origin/main`) | Integration Status |
@@ -696,6 +711,7 @@ This dashboard aligns against the following requirement chain:
696711
```bash
697712
npm run docs:diataxis:check
698713
npm run docs:site:build
714+
npm run verify:foundation:readiness
699715
```
700716

701717
## Contract and API gates
@@ -725,7 +741,7 @@ Note: do not list foundation-lane gates as baseline until the corresponding modu
725741
## Next Direction (Current Priority)
726742

727743
1. Treat notification-threshold governance as closed after `M7.29`; do not plan `M7.30+` unless a materially new operator requirement appears.
728-
2. Switch the primary lane to `M8 foundation re-entry readiness execution` rather than another notification-threshold subdivision.
744+
2. Keep `M8 foundation re-entry readiness execution` on the current path: first evidence bundle and anti-overclaim guardrails, then adapter-boundary code only after those reports stay honest.
729745
3. Preserve CI and contract fail-fast guarantees for every lane change by keeping docs, agent-workspace, and learning-core gates green.
730746
4. Re-baseline progress docs before every major lane switch so stale branch-gap language does not leak into mainline status claims.
731747
5. Keep markdown reader governance bounded and secondary until the post-M7 lane switch is explicitly planned.

docs/diataxis/en/explanation/foundation-reentry-readiness-checklist.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,18 @@ All gates below must pass before calling foundation lane "active on mainline".
3838
| Interaction non-regression gate | L4 interaction lane remains stable after foundation code touches | `npm run test:agent-workspace:contracts` |
3939
| CI gate | Migration matrix remains green on mainline after merge | `.github/workflows/migration-gates.yml` run status on `main` |
4040
| Documentation gate | EN/ZH progress dashboard and this checklist updated with exact status language | `npm run docs:diataxis:check && npm run docs:site:build` |
41+
| Readiness bundle | Current mainline baseline is captured in a machine-readable report before adapter claims advance | `npm run verify:foundation:readiness` |
42+
43+
Bundle note:
44+
45+
- `verify:foundation:readiness` does **not** replace the mandatory gates above.
46+
- It packages current mainline truth into:
47+
- `build/foundation-readiness/foundation-readiness-latest.json`
48+
- `build/foundation-readiness/foundation-readiness-latest.md`
49+
- Current expected result on `main` is:
50+
- status `In Progress`
51+
- decision `No-Go`
52+
- rationale: file-backed baseline exists, but dedicated graph/vector adapter modules are still absent.
4153

4254
## Non-overclaim Policy
4355

docs/diataxis/zh/explanation/development-progress-dashboard.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,21 @@
642642
- `npm run docs:diataxis:check`
643643
- `npm run docs:site:build`
644644

645+
## 主线最新增量(2026-04-20 M8.1 Foundation Readiness 证据打包)
646+
647+
- 已为 post-M7 foundation lane 增加独立就绪性验证命令:
648+
- `npm run verify:foundation:readiness`
649+
- 当前实现坚持 evidence-first,而不是虚构尚未落地的 adapter 结论:
650+
- 主线当前预期结果保持 `in_progress` / `no-go`
651+
- file-backed persistence 仍是已验证基线,
652+
- 主线仍不存在独立 `queryBackend``vectorAccelerationAdapter` 模块。
653+
- 已为运维/文档核对补齐机器可读产物:
654+
- `build/foundation-readiness/foundation-readiness-latest.json`
655+
- `build/foundation-readiness/foundation-readiness-latest.md`
656+
- 已补 migration contract 覆盖:
657+
- `src/foundation.readiness.contract.test.ts`
658+
- 已更新 checklist 页面,明确该打包命令能证明什么、不能证明什么。
659+
645660
## 主线 vs 工作分支快照(2026-04-19)
646661

647662
| 能力切片 | 工作分支(`feat/learning-multi-tutor-adapter`| 主线(`origin/main`| 集成状态 |
@@ -699,6 +714,7 @@
699714
```bash
700715
npm run docs:diataxis:check
701716
npm run docs:site:build
717+
npm run verify:foundation:readiness
702718
```
703719

704720
## 契约与 API 门禁
@@ -728,7 +744,7 @@ npm test -- src/learning/KnowledgeLearningPlatform.persistence.test.ts --runInBa
728744
## 后续方向(当前优先级)
729745

730746
1. 将 notification-threshold 治理链路视为在 `M7.29` 后已收口;没有新的强运维需求前,不再规划 `M7.30+`
731-
2. 主线立即切到 `M8 foundation re-entry readiness execution`,而不是继续细分 notification-threshold 路由
747+
2. 继续按 `M8 foundation re-entry readiness execution` 推进:先固化证据打包与防超前宣称护栏,再推进 adapter-boundary 代码,不要反过来
732748
3. 每次 lane 切换都保持 docs、agent-workspace 与 learning-core 门禁为绿色,确保事实与门禁同步。
733749
4. 每次主线方向切换前先重算文档事实,避免过时 branch-gap 语言继续污染状态结论。
734750
5. Markdown 阅读器治理继续保持受限且次优先级,直到 post-M7 主线切换被明确规划。

docs/diataxis/zh/explanation/foundation-reentry-readiness-checklist.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,18 @@
3838
| 交互无回归门禁 | foundation 触点变更后 L4 交互链路仍稳定 | `npm run test:agent-workspace:contracts` |
3939
| CI 门禁 | 合并后主线 migration 矩阵全绿 | `.github/workflows/migration-gates.yml``main` 的运行结果 |
4040
| 文档门禁 | EN/ZH 进度看板与本清单同步更新,状态语言一致 | `npm run docs:diataxis:check && npm run docs:site:build` |
41+
| 就绪性打包门禁 | 在推进 adapter 声称前,先用机器可读报告固化当前主线基线事实 | `npm run verify:foundation:readiness` |
42+
43+
打包说明:
44+
45+
- `verify:foundation:readiness` **不会**替代上面的强制门禁。
46+
- 它会把当前主线事实写入:
47+
- `build/foundation-readiness/foundation-readiness-latest.json`
48+
- `build/foundation-readiness/foundation-readiness-latest.md`
49+
- 当前主线的预期结果是:
50+
- 状态 `In Progress`
51+
- 决策 `No-Go`
52+
- 原因:file-backed 基线已存在,但 dedicated graph/vector adapter 模块仍未进入主线。
4153

4254
## 防超前宣称策略
4355

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@
6161
"verify:lfs:policy": "node scripts/verify-lfs-asset-policy.js",
6262
"verify:lfs:policy:strict": "node scripts/verify-lfs-asset-policy.js --strict",
6363
"verify:sidecar:supply": "node scripts/verify-sidecar-supply-readiness.js",
64+
"verify:foundation:readiness": "node scripts/verify-foundation-readiness.js",
6465
"verify:agent-workspace:runtime": "node scripts/verify-agent-workspace-runtime.js",
6566
"verify:agent-workspace:browser": "node scripts/verify-agent-workspace-browser.js",
6667
"verify:agent-workspace:tauri": "node scripts/verify-agent-workspace-tauri.js",
@@ -85,7 +86,7 @@
8586
"ops:fixrisk:close": "node scripts/run-fixrisk-ops-closure.js",
8687
"ops:fixrisk:close:dry": "node scripts/run-fixrisk-ops-closure.js --dry-run",
8788
"test:mobile:contracts": "jest src/mobile.pipeline.test.ts src/runtime.capabilities.test.ts src/source_manager.loadflow.test.ts src/capacitor.runtime.contract.test.ts src/android.pathmode.contract.test.ts src/android.pathmode.smoke.contract.test.ts src/graph.accessibility.contract.test.ts src/detox.pipeline.contract.test.ts src/privacy.manifest.contract.test.ts --runInBand && npm run verify:detox:pipeline && npm run verify:privacy:manifest",
88-
"test:migration": "jest src/core/Graph.test.ts src/core/PathEngine.test.ts src/core/TreeLayout.test.ts src/backend/algorithms/CycleDetection.test.ts src/backend/algorithms/TopologicalSort.test.ts src/backend/algorithms/WasmParityHistory.test.ts src/utils/RuntimePaths.test.ts src/server.migration.test.ts src/pkg.sidecar.contract.test.ts src/pkg.snapshot.safety.contract.test.ts src/godot.sidecar.bootstrap.contract.test.ts src/release.godot.mirror.contract.test.ts src/sidecar.replacement.boundary.contract.test.ts src/sidecar.supply.readiness.contract.test.ts src/lfs.asset.policy.contract.test.ts src/tauri.frontend.build.contract.test.ts src/mobile.pipeline.test.ts src/capacitor.device.utils.contract.test.ts src/capacitor.evidence.contract.test.ts src/runtime.capabilities.test.ts src/runtime.heap.policy.contract.test.ts src/runtime.spool.policy.contract.test.ts src/runtime.transport.adapter.contract.test.ts src/storage.provider.contract.test.ts src/storage.provider.capacitor.content.contract.test.ts src/storage.provider.capacitor.worker.contract.test.ts src/wasm.parity.runtime.contract.test.ts src/wasm.parity.runtime.functional.test.ts src/wasm.parity.output.equivalence.contract.test.ts src/wasm.parity.benchmark.contract.test.ts src/wasm.parity.benchmark.guards.contract.test.ts src/wasm.parity.history.gate.contract.test.ts src/wasm.parity.artifact.probe.contract.test.ts src/wasm.parity.artifact.provisioning.contract.test.ts src/source_manager.loadflow.test.ts src/capacitor.runtime.contract.test.ts src/welcome.loadflow.test.ts src/pathmode.history.contract.test.ts src/android.pathmode.contract.test.ts src/android.pathmode.smoke.contract.test.ts src/pathbridge.handshake.contract.test.ts src/pathbridge.strict.policy.contract.test.ts src/graph.accessibility.contract.test.ts src/detox.pipeline.contract.test.ts src/privacy.manifest.contract.test.ts src/server.port.fallback.contract.test.ts src/sidecar.signature.contract.test.ts src/sbom.policy.contract.test.ts src/sbom.attestation.policy.contract.test.ts src/sidecar.relaunch.contract.test.ts src/tauri.test.runner.contract.test.ts --runInBand",
89+
"test:migration": "jest src/core/Graph.test.ts src/core/PathEngine.test.ts src/core/TreeLayout.test.ts src/backend/algorithms/CycleDetection.test.ts src/backend/algorithms/TopologicalSort.test.ts src/backend/algorithms/WasmParityHistory.test.ts src/utils/RuntimePaths.test.ts src/server.migration.test.ts src/pkg.sidecar.contract.test.ts src/pkg.snapshot.safety.contract.test.ts src/godot.sidecar.bootstrap.contract.test.ts src/release.godot.mirror.contract.test.ts src/sidecar.replacement.boundary.contract.test.ts src/sidecar.supply.readiness.contract.test.ts src/foundation.readiness.contract.test.ts src/lfs.asset.policy.contract.test.ts src/tauri.frontend.build.contract.test.ts src/mobile.pipeline.test.ts src/capacitor.device.utils.contract.test.ts src/capacitor.evidence.contract.test.ts src/runtime.capabilities.test.ts src/runtime.heap.policy.contract.test.ts src/runtime.spool.policy.contract.test.ts src/runtime.transport.adapter.contract.test.ts src/storage.provider.contract.test.ts src/storage.provider.capacitor.content.contract.test.ts src/storage.provider.capacitor.worker.contract.test.ts src/wasm.parity.runtime.contract.test.ts src/wasm.parity.runtime.functional.test.ts src/wasm.parity.output.equivalence.contract.test.ts src/wasm.parity.benchmark.contract.test.ts src/wasm.parity.benchmark.guards.contract.test.ts src/wasm.parity.history.gate.contract.test.ts src/wasm.parity.artifact.probe.contract.test.ts src/wasm.parity.artifact.provisioning.contract.test.ts src/source_manager.loadflow.test.ts src/capacitor.runtime.contract.test.ts src/welcome.loadflow.test.ts src/pathmode.history.contract.test.ts src/android.pathmode.contract.test.ts src/android.pathmode.smoke.contract.test.ts src/pathbridge.handshake.contract.test.ts src/pathbridge.strict.policy.contract.test.ts src/graph.accessibility.contract.test.ts src/detox.pipeline.contract.test.ts src/privacy.manifest.contract.test.ts src/server.port.fallback.contract.test.ts src/sidecar.signature.contract.test.ts src/sbom.policy.contract.test.ts src/sbom.attestation.policy.contract.test.ts src/sidecar.relaunch.contract.test.ts src/tauri.test.runner.contract.test.ts --runInBand",
8990
"test:tauri": "node scripts/run-tauri-tests.js",
9091
"test:agent-workspace:contracts": "jest src/agent_workspace.contract.parity.test.ts src/agent_workspace.frontend.test.ts src/agent_workspace.runtime.integration.test.ts src/agent_workspace.runtime.behavior.test.ts src/agent_workspace.verification.contract.test.ts src/knowledge.api.contract.test.ts --runInBand",
9192
"test:license:contract": "jest src/license.policy.contract.test.ts --runInBand",

0 commit comments

Comments
 (0)