Skip to content

Commit 6c5fade

Browse files
committed
fix: restore CI validate needles after visible-output edits
Repair precheck-status V13/V31 required strings, refresh skill portfolio for V92, and retarget control-content DP-012 extract hashes for the shared validation-summary fragment so prepack/npm pack no longer fail.
1 parent b474ae7 commit 6c5fade

6 files changed

Lines changed: 58 additions & 60 deletions

File tree

‎content/duplication-dispositions.json‎

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,14 @@
7979
},
8080
{
8181
"id": "DP-012",
82-
"candidateIds": ["exact-74b4a887d580"],
82+
"candidateIds": [
83+
"exact-67594848c341",
84+
"exact-a564c2ab2589",
85+
"exact-e4a19e4b12c9"
86+
],
8387
"decision": "extract",
8488
"fragment": "shared/compliance/validation-summary.md",
85-
"reason": "compliance instruction 与 Skill 共享同一验证摘要合同。"
89+
"reason": "compliance instruction 与 Skill 共享同一验证摘要合同(UserVisibleNoisePolicyV1 短证/全量)。"
8690
},
8791
{
8892
"id": "DP-013",

‎content/duplication-inventory.json‎

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
{
22
"schemaVersion": "ControlContentDuplicationInventoryV1",
3-
"sourceBundleDigest": "659f6d2cff943b6825d48c355d9587e30ae3474f6418cea74a613eb0d6f4211d",
3+
"sourceBundleDigest": "72853602cb110e69065c248c4f12410ca3e4f491c9828a121b82e562b64261a9",
44
"thresholds": {
55
"minParagraphChars": 100,
66
"sectionThreshold": 0.94,
77
"minSectionChars": 180,
88
"minSectionLengthRatio": 0.85
99
},
1010
"counts": {
11-
"exactParagraph": 26,
11+
"exactParagraph": 28,
1212
"nearSection": 4,
13-
"total": 30
13+
"total": 32
1414
},
1515
"candidates": [
1616
{
@@ -144,15 +144,15 @@
144144
"excerpt": "- 当用户询问“是否应该”“哪个更好”“有没有更好建议”“推荐方案/工具/产品/架构/技术选型”,或 AI 的回答会影响用户投入明显时间、金钱、迁移成本、公共契约、长期维护成本时,必须先执行 `QuestionEvidenceGate`,选择合适证据深度后再给推荐。\n- `ComparativeResearchGate` 只在推荐、选型、产品/项目路线、架构"
145145
},
146146
{
147-
"id": "exact-74b4a887d580",
147+
"id": "exact-67594848c341",
148148
"kind": "exact-paragraph",
149-
"digest": "74b4a887d580cc902a1db85ec1af1f83502b296cc11b073bef7ebb21569f4848",
149+
"digest": "67594848c341028cd71d97217aa68b78448086353a56d71012a0ac18b226ebd0",
150150
"similarity": 1,
151151
"files": [
152152
"instructions/17-compliance.instructions.md",
153153
"skills/compliance/SKILL.md"
154154
],
155-
"excerpt": "#### 验证摘要\n| 类型 | 命令 | exitCode | runId/计数 |\n|------|------|----------|------------|\n| 权威/实验/skipped | `command or N/A` | `0/N/A` | `runId 或关键计数` |\nWorkspaceSyncStatus:synced/skippe"
155+
"excerpt": "> **UserVisibleNoisePolicyV1**:未宣称「工作完成」时,用户面**默认不贴**本块。宣称完成且全绿 → **短证**;失败/缺口/用户要详情 → **全量**。完整 FC/SC/T 仍进报告,不默认刷对话。"
156156
},
157157
{
158158
"id": "exact-7800f1897e98",
@@ -201,6 +201,17 @@
201201
],
202202
"excerpt": "> 共享基模读取 `skills/report/report-schema.json`,治理分组读取 `skills/spec-governance/gate-registry.json`。本模板只记录实际触发结果,不复制 Gate 目录或 Owner 专属字段。"
203203
},
204+
{
205+
"id": "exact-a564c2ab2589",
206+
"kind": "exact-paragraph",
207+
"digest": "a564c2ab258912d819942f4a5e92441717858f7f69f76271b38b75d044a73f36",
208+
"similarity": 1,
209+
"files": [
210+
"instructions/17-compliance.instructions.md",
211+
"skills/compliance/SKILL.md"
212+
],
213+
"excerpt": "| 字段 | 填写 |\n|------|------|\n| 白话 | 1~3 句;禁止只写「全绿 / 已通过 / 详见报告」 |\n| 权威命令 + exitCode | `command` exitCode N(可多行) |\n| 关键计数 | 如 `3/3 checks passed` 或 runId / V 范围 |\n| WorkspaceSyncStat"
214+
},
204215
{
205216
"id": "exact-a6436187b327",
206217
"kind": "exact-paragraph",
@@ -269,6 +280,17 @@
269280
],
270281
"excerpt": "当 `<工作区根>/.devcodex/layout.json` 启用 `workspace-namespace` 时,MCP memory 工具从工作区根调用不得静默回退到 workspace 记忆。调用方必须二选一:\n- 传入 `project`,写入 `<工作区根>/.devcodex/<project>/.memory/...`\n- 显式传入 `sc"
271282
},
283+
{
284+
"id": "exact-e4a19e4b12c9",
285+
"kind": "exact-paragraph",
286+
"digest": "e4a19e4b12c95bd70c44f3437254dfadaedcdd19d5a5bf7463a13fbd1cc0cd2b",
287+
"similarity": 1,
288+
"files": [
289+
"instructions/17-compliance.instructions.md",
290+
"skills/compliance/SKILL.md"
291+
],
292+
"excerpt": "```markdown\n### FinalValidationSummaryV1\n**白话:** 一句结论(是否通过、是否改码/提交)。\n**证据:** `command` exitCode 0 · 关键计数 a/b\nWorkspaceSyncStatus: N/A 未触发 · dirty boundary: git status clean-tree · "
293+
},
272294
{
273295
"id": "exact-e5250d20569e",
274296
"kind": "exact-paragraph",

‎content/instructions/17-compliance.instructions.md‎

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -240,12 +240,7 @@ version: 1.15.3
240240
| 宣称完成且全绿 | **短 FVS**(白话 + 命令 exitCode + 边界);不默认 FC 全表 |
241241
| 宣称完成有缺口 / 用户要详情 | 展开完成检查失败项 + 全量 FVS + 相关产物 |
242242

243-
```text
244-
### FinalValidationSummaryV1
245-
**白话:** …
246-
**证据:** `command` exitCode 0 · 关键计数 a/b
247-
WorkspaceSyncStatus: … · dirty boundary: … · Release actions: …
248-
```
243+
<!-- devcodex:include shared/compliance/validation-summary.md -->
249244

250245
完整 FC/SC/RC/T 矩阵仍须在 **报告/记忆** 中可追溯;用户面不默认复读。
251246

‎content/prompts/precheck-status.prompt.md‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ applyTo: "**"
1616
| 项 | 内容(人话;禁止进度缩写) |
1717
|----|----------------------------|
1818
| PC0 | 上下文:项目 · 语言 · ContextReadPlan + 必要来源回执 |
19-
| PC1 | 意图:本轮要做什么 → 扩展后工作流 |
19+
| PC1 | 意图:语义初判 → 项目现实扩展后的最终路由/工作流 |
2020
| PC2 | 会话:轮次/Token · 待跟进 |
2121
| PC3 | 执行准备:唯一项目 · 连续性 · 产物落点(禁止「写报告 02」式施工日志) |
2222
| PC4 | 规范雷达:dev 完整;非 dev=`N/A` + skipReason |
23-
| PC5 | 宿主:名称 + Full/Partial · 部署/同步证据 |
23+
| PC5 | 宿主:名称 + Full/Partial · 部署/同步证据(legacy 诊断可覆盖 `.github/`、`.claude/`、根 `AGENTS.md`、`.agents/`、`.codex/`;GlobalOnly 以 doctor/receipt 为准) |
2424
| PC6 | 工作区:git dirty 范围 · 任务目录 |
2525
| PC7 | 续接:新会话/resume 有界检测 |
2626

@@ -38,17 +38,17 @@ applyTo: "**"
3838
- **时序(S07)**:本入口检查块必须作为**用户首次可见**内容先于实质正文;**禁止**先写报告/记忆/台账等产物 mutation,再在最终回复文首补 PC(文首补丁 ≠ 合规)
3939
- 项目:通过 `load-profile/SKILL.md` 确定,无法识别时写“未识别”
4040
- 输出语言:根据用户消息主要语言判断
41-
- 意图:先通过 `intent/SKILL.md` 做语义初判,再结合已加载 Profile、项目目录、当前需求上下文执行项目现实扩展;扩展后如需修正路由,应在 PC1 明示修正结果
41+
- 意图:先通过 `intent/SKILL.md` 做语义初判,再结合已加载 Profile、项目目录、当前需求上下文执行项目现实扩展;**项目现实扩展后**如需修正路由,应在 PC1 明示修正结果
4242
- 非 chat 工作流:在 CP1 / 问题确认前形成 Intent Expansion Card(semantic、project、continuity、action、domain、artifact-impact、risk、host-capability、validation-route、confidence、alternatives),用于 PC1/PC3 与压缩恢复复核;dev 模式默认向用户展示完整 Card
43-
- 意图扩展摘要:若扩展后路由变化、命中控制面/宿主差异、风险不为 normal、confidence 非 high 或跨会话 resume,且当前不是 dev 模式完整 Card 展示场景时,入口检查后、CP1/问题确认前追加 3~5 行用户可见摘要;只写语义初判、扩展后路由、关键风险、验证路线、备选路径
43+
- 意图扩展摘要:若**项目现实扩展后**路由变化、命中控制面/宿主差异、风险不为 normal、confidence 非 high 或跨会话 resume,且当前不是 dev 模式完整 Card 展示场景时,入口检查后、CP1/问题确认前追加 3~5 行用户可见摘要;只写语义初判、扩展后路由、关键风险、验证路线、备选路径
4444
- Context Rehydration Contract:压缩恢复、summary 恢复或用户要求按文件真相重建时,按“当前用户消息 → 已确认产物 → sessions → tasks → SUMMARY → 摘要 → AI 推断”的优先级重建上下文
4545
- ContextHandoffCard:跨会话、跨 Agent、多批次、summary/compact 前或用户要求“传递上下文”时,由交接方输出 source-of-truth / confirmed-decisions / open-risks / next-action / must-not-overwrite / validation-state / artifact-links;恢复方仍按 Context Rehydration Contract 核对文件真相源
4646
- 待跟进事项:来自记忆中的 `⚠️ 待跟进`
4747
- 产物落点:仅输出状态(已确定 / 无需产物 / 待确定),不要直接输出内部 filePath
4848
- PC0:与 `instructions.md` / `17-compliance.instructions.md` **同源**:写 ContextReadPlan + 必要来源回执,**禁止**再用「Profile ✅ 已加载」单字段冒充上下文完整
4949
- PC 表必须**分列 PC0~PC7**(表格或列表);禁止 `PC2–PC7` 折叠;单元格写人话,禁止施工进度缩写
5050
- PC5~PC7:与 `instructions/17-compliance.instructions.md` 保持一致;无法执行时必须标注 N/A 或 ⚠️ 原因,禁止省略
51-
- PC5 部署面:GlobalOnly 优先 doctor/receipt;legacy 父链仅作诊断;只检查某一宿主不得写「全部同步」;须写当前宿主 Full/Partial 诚实上限
51+
- PC5 部署面:GlobalOnly 优先 doctor/receipt;legacy 父链诊断须能覆盖 `.github/`、`.claude/`、根 `AGENTS.md`、`.agents/` 与 `.codex/`(只检查某一宿主副本不得写「全部同步」);须写当前宿主 Full/Partial 诚实上限
5252
- PC7 新会话首步 resume 强制检测:新任务、compact/summary 恢复或 `继续<任务名>任务` 首次响应必须重建 bounded continuation,并核对文件真相源后再继续
5353
- 五宿主(Copilot / Claude Code / Codex / Gemini / Grok)共用本模板;Grok 无 inject 时仍由模型输出本块
5454
- 先用 `user-visible-output-contract` 形成完整 Envelope,再渲染为 rich/portable/plain;状态词固定为 PASS/WARN/BLOCK/UNVERIFIED/N/A

‎content/skills/compliance/SKILL.md‎

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,7 @@ dev 模式 PC4 至少输出:
4343
| **宣称完成且全绿** | 贴 **短 FVS**(见 shared validation-summary);不默认 FC 全表 |
4444
| **失败/缺口/用户要详情** | 展开失败项 + 全量 FVS / 相关产物 |
4545

46-
```text
47-
### FinalValidationSummaryV1
48-
**白话:** …
49-
**证据:** `command` exitCode 0 · 关键计数 a/b
50-
WorkspaceSyncStatus: … · dirty boundary: … · Release actions: …
51-
```
46+
<!-- devcodex:include shared/compliance/validation-summary.md -->
5247

5348
> ⛔ 宣称完成却只有“全绿/详见报告” → `DevModeCompletionCheckDetailGate` 未通过。
5449
> ⛔ 未宣称完成时 **不得** 为过 Stop 而硬贴长完成检查(Stop 以 `workDoneClaimed` 为准)。

‎content/skills/portfolio.json‎

Lines changed: 17 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
"skillsPattern": "content/skills/*/SKILL.md",
77
"optionalSidecar": "content/skills/*/devcodex.skill.json",
88
"registry": "plugin.json",
9-
"sourceDigest": "610f2f84b6a9bcd628540256ec5fd5fae138e55861ff113ed209a8635cdae8dd",
9+
"sourceDigest": "8156f518f1fc788a191ac72e4536d1771b25b1c28163c5034ad7280567d82af8",
1010
"sidecarDigest": "774105d7947b340d15d17115fcb8e37b62ae545cf553f06126d529184fd74872",
1111
"pluginDigest": "705fe7c86c7225b67756749be5bb3b14a1ee3bffa386483a9ab61dc971f419ae",
1212
"portfolioEvidence": "content/skills/portfolio-evidence.json",
1313
"portfolioEvidenceDigest": "8364a73c66ed2ec9787cdb9300223278d128a45b689a2b8deda0d1f03189f42b",
1414
"consumerInventoryFileCount": 454,
1515
"consumerInventoryDigest": "2c4a1c119386da62a33c92b9c9141e3cfab88a3030af139ff2783fdee21b8504",
16-
"consumerProjectionDigest": "2d4430b8767d7d7f568f29e9edeaf81712e081f9aed2777e224d964007e2b0b1",
17-
"portfolioInputDigest": "48bb91f0135396079a90b0a00caf33818259c7354d18ad02452c1b4f2c5c012a"
16+
"consumerProjectionDigest": "c35460a60f21bf352ddac0144e8ee4db59581a7d39f4f548f3ce599ed6cc9a55",
17+
"portfolioInputDigest": "4b4d34eb222086fb14ffe92f1956eb9dade5304215293e00ea3d6d98b050687a"
1818
},
1919
"ordering": "skills.id asc; graph edges from/to asc",
2020
"summary": {
@@ -4417,8 +4417,8 @@
44174417
"content/skills/compliance/SKILL.md"
44184418
],
44194419
"source": "content/skills/compliance/SKILL.md",
4420-
"hash": "a5d970fe724c71292074e47c2eb7fd50b629f60c438da99e30b2e7f50003b943",
4421-
"sourceBytes": 22588,
4420+
"hash": "5cbea606761a52d3fe0958fb1ba07c0cd61c2913a2ea170599b6d8d3931dc274",
4421+
"sourceBytes": 23431,
44224422
"version": "1.15.3",
44234423
"lifecycleState": "active",
44244424
"dependencies": [
@@ -4549,14 +4549,6 @@
45494549
"path": "hooks/_runtime/workflow-root-registry.v1.json",
45504550
"role": "current"
45514551
},
4552-
{
4553-
"path": "host-projections/AGENTS.md",
4554-
"role": "current"
4555-
},
4556-
{
4557-
"path": "host-projections/copilot-instructions.md",
4558-
"role": "current"
4559-
},
45604552
{
45614553
"path": "plugin.json",
45624554
"role": "current"
@@ -4565,10 +4557,6 @@
45654557
"path": "scripts/generate-workflow-root-registry.js",
45664558
"role": "current"
45674559
},
4568-
{
4569-
"path": "scripts/host-instruction-projection.json",
4570-
"role": "current"
4571-
},
45724560
{
45734561
"path": "scripts/lib/host-parity-scorecard.js",
45744562
"role": "current"
@@ -10112,18 +10100,10 @@
1011210100
"path": "hooks/_runtime/workflow-root-registry.v1.json",
1011310101
"role": "current"
1011410102
},
10115-
{
10116-
"path": "host-projections/AGENTS.md",
10117-
"role": "current"
10118-
},
1011910103
{
1012010104
"path": "host-projections/AGENTS.workspace-bridge.md",
1012110105
"role": "current"
1012210106
},
10123-
{
10124-
"path": "host-projections/copilot-instructions.md",
10125-
"role": "current"
10126-
},
1012710107
{
1012810108
"path": "mcp/memory-server.js",
1012910109
"role": "current"
@@ -10168,10 +10148,6 @@
1016810148
"path": "scripts/generate-workflow-root-registry.js",
1016910149
"role": "current"
1017010150
},
10171-
{
10172-
"path": "scripts/host-instruction-projection.json",
10173-
"role": "current"
10174-
},
1017510151
{
1017610152
"path": "scripts/lib/always-on-governance.js",
1017710153
"role": "current"
@@ -10200,6 +10176,10 @@
1020010176
"path": "scripts/lib/intent-consistency.js",
1020110177
"role": "current"
1020210178
},
10179+
{
10180+
"path": "scripts/lib/npm-lifecycle-adapter.js",
10181+
"role": "current"
10182+
},
1020310183
{
1020410184
"path": "scripts/lib/skill-route-test-fixture.js",
1020510185
"role": "current"
@@ -15352,10 +15332,6 @@
1535215332
"path": "hooks/_runtime/lifecycle-bootstrap-state.cjs",
1535315333
"role": "current"
1535415334
},
15355-
{
15356-
"path": "hooks/_runtime/lifecycle-stop-gate.cjs",
15357-
"role": "current"
15358-
},
1535915335
{
1536015336
"path": "plugin.json",
1536115337
"role": "current"
@@ -17952,6 +17928,10 @@
1795217928
"path": "scripts/test-host-capability-routing.js",
1795317929
"role": "current"
1795417930
},
17931+
{
17932+
"path": "scripts/test-lifecycle-stop-gate.js",
17933+
"role": "current"
17934+
},
1795517935
{
1795617936
"path": "scripts/test-mcp-servers.js",
1795717937
"role": "current"
@@ -18019,6 +17999,7 @@
1801917999
"scripts/test-governance-status-summary.js",
1802018000
"scripts/test-hooks-runtime.js",
1802118001
"scripts/test-host-capability-routing.js",
18002+
"scripts/test-lifecycle-stop-gate.js",
1802218003
"scripts/test-mcp-servers.js",
1802318004
"scripts/test-memory-index.js",
1802418005
"scripts/test-migrate-layout.js",
@@ -18087,6 +18068,7 @@
1808718068
"scripts/test-governance-status-summary.js",
1808818069
"scripts/test-hooks-runtime.js",
1808918070
"scripts/test-host-capability-routing.js",
18071+
"scripts/test-lifecycle-stop-gate.js",
1809018072
"scripts/test-mcp-servers.js",
1809118073
"scripts/test-memory-index.js",
1809218074
"scripts/test-migrate-layout.js",
@@ -18845,8 +18827,8 @@
1884518827
"content/skills/user-visible-output-contract/SKILL.md"
1884618828
],
1884718829
"source": "content/skills/user-visible-output-contract/SKILL.md",
18848-
"hash": "ba4babcf45dae9064f0ec0e0427d0a6df4052644f52c8b4a4067451f532175ad",
18849-
"sourceBytes": 17936,
18830+
"hash": "c88f9f98e0a952b79bc874cc9b6c8563c7375e1203d3b0a24570b17001c01234",
18831+
"sourceBytes": 20344,
1885018832
"version": "1.15.3",
1885118833
"lifecycleState": "active",
1885218834
"dependencies": [],

0 commit comments

Comments
 (0)