@pm_zhousl/xinyun-ai-init 2.0.0 → 3.0.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 (199) hide show
  1. package/README.md +29 -39
  2. package/bin/xinyun-ai-init.js +121 -175
  3. package/init/xinyun-ai-init/README.md +26 -144
  4. package/init/xinyun-ai-init/rules/v3-skill-runtime.md +45 -0
  5. package/init/xinyun-ai-init/runtime/migrate-v3.js +115 -0
  6. package/init/xinyun-ai-init/runtime/route-skill.js +69 -0
  7. package/init/xinyun-ai-init/runtime-manifest.json +26 -0
  8. package/init/xinyun-ai-init/skills/registry.json +112 -0
  9. package/init/xinyun-ai-init/templates/AGENTS.template.md +4 -27
  10. package/init/xinyun-ai-init/templates/README.template.md +3 -31
  11. package/init/xinyun-ai-init/templates/control-plane-index.template.json +5 -24
  12. package/init/xinyun-ai-init/templates/core-rules.template.md +9 -57
  13. package/init/xinyun-ai-init/templates/current-task.template.md +3 -19
  14. package/init/xinyun-ai-init/templates/manifest.template.json +13 -67
  15. package/init/xinyun-ai-init/templates/project-context.template.json +3 -11
  16. package/init/xinyun-ai-init/templates/project-index.template.json +5 -51
  17. package/init/xinyun-ai-init/templates/skill-run-record.template.json +4 -16
  18. package/init/xinyun-ai-init/templates/skill-runtime-route.template.json +3 -24
  19. package/init/xinyun-ai-init/templates/skills-assignments.template.json +3 -21
  20. package/init/xinyun-ai-init/templates/skills-registry.template.json +5 -29
  21. package/init/xinyun-ai-init/templates/task-graph.template.json +3 -5
  22. package/init/xinyun-ai-init/templates/task-index.template.json +3 -31
  23. package/init/xinyun-ai-init/version.json +8 -8
  24. package/package.json +8 -14
  25. package/scripts/run-v3-runtime-probe.js +8 -0
  26. package/scripts/verify-legacy-cleanup.js +24 -0
  27. package/scripts/verify-release-gate.js +10 -23
  28. package/scripts/verify-rules-tarball-security.js +1 -1
  29. package/scripts/verify-skill-runtime.js +33 -0
  30. package/scripts/verify-tarball.js +42 -0
  31. package/scripts/verify-v3-package.js +70 -0
  32. package/test-scenarios/v3.0.0-behavior-evidence.json +25 -0
  33. package/test-scenarios/v3.0.0-scenarios.md +41 -0
  34. package/init/xinyun-ai-init/prompt.md +0 -1
  35. package/init/xinyun-ai-init/rules/coordination.md +0 -43
  36. package/init/xinyun-ai-init/rules/directory-self-completion.md +0 -100
  37. package/init/xinyun-ai-init/rules/frameworks/README.md +0 -56
  38. package/init/xinyun-ai-init/rules/frameworks/backend/php/thinkphp.md +0 -42
  39. package/init/xinyun-ai-init/rules/frameworks/frontend/uni-app.md +0 -36
  40. package/init/xinyun-ai-init/rules/frameworks/frontend/wechat-miniprogram.md +0 -36
  41. package/init/xinyun-ai-init/rules/frontend-audit.md +0 -9
  42. package/init/xinyun-ai-init/rules/init-rules.md +0 -145
  43. package/init/xinyun-ai-init/rules/self-learning-rules.md +0 -16
  44. package/init/xinyun-ai-init/rules/session-workbench.md +0 -333
  45. package/init/xinyun-ai-init/rules/skills.md +0 -23
  46. package/init/xinyun-ai-init/rules/temporary-sessions.md +0 -13
  47. package/init/xinyun-ai-init/rules/upgrade-rules.md +0 -161
  48. package/init/xinyun-ai-init/rules/v1.10.2-contract.md +0 -30
  49. package/init/xinyun-ai-init/rules/v1.11.0-acceleration.md +0 -27
  50. package/init/xinyun-ai-init/rules/v1.12.0-recovery.md +0 -34
  51. package/init/xinyun-ai-init/rules/v1.12.1-provider-session-binding.md +0 -25
  52. package/init/xinyun-ai-init/rules/v1.13.0-host-adapter.md +0 -43
  53. package/init/xinyun-ai-init/rules/v1.14.0-agent-core.md +0 -35
  54. package/init/xinyun-ai-init/rules/v1.15.0-session-binding.md +0 -44
  55. package/init/xinyun-ai-init/rules/v1.16.0-capability-efficiency.md +0 -23
  56. package/init/xinyun-ai-init/rules/v2.0.0-shared-project-conversations.md +0 -68
  57. package/init/xinyun-ai-init/rules/v2.0.0-single-session-skills.md +0 -89
  58. package/init/xinyun-ai-init/scripts/README.md +0 -16
  59. package/init/xinyun-ai-init/templates/agent-capabilities.template.json +0 -27
  60. package/init/xinyun-ai-init/templates/agent-profile.template.json +0 -21
  61. package/init/xinyun-ai-init/templates/archive-transaction.template.json +0 -15
  62. package/init/xinyun-ai-init/templates/bootstrap-snapshot.template.json +0 -22
  63. package/init/xinyun-ai-init/templates/capabilities.template.json +0 -19
  64. package/init/xinyun-ai-init/templates/codegraph-incremental-record.template.json +0 -21
  65. package/init/xinyun-ai-init/templates/conversation-binding.template.json +0 -26
  66. package/init/xinyun-ai-init/templates/conversation-event.template.json +0 -24
  67. package/init/xinyun-ai-init/templates/conversation-registry.template.json +0 -15
  68. package/init/xinyun-ai-init/templates/conversation-stream-head.template.json +0 -14
  69. package/init/xinyun-ai-init/templates/conversation-sync-cursor.template.json +0 -13
  70. package/init/xinyun-ai-init/templates/coordination-change-ledger.template.json +0 -15
  71. package/init/xinyun-ai-init/templates/coordination-conflict-record.template.json +0 -18
  72. package/init/xinyun-ai-init/templates/coordination-contract-snapshot.template.json +0 -9
  73. package/init/xinyun-ai-init/templates/coordination-project-facts.template.json +0 -20
  74. package/init/xinyun-ai-init/templates/coordination-transaction.template.json +0 -16
  75. package/init/xinyun-ai-init/templates/database-authorization.template.json +0 -53
  76. package/init/xinyun-ai-init/templates/final-delivery.template.json +0 -22
  77. package/init/xinyun-ai-init/templates/fixed-materialization.template.json +0 -12
  78. package/init/xinyun-ai-init/templates/framework-profile.template.json +0 -48
  79. package/init/xinyun-ai-init/templates/framework-profile.template.md +0 -39
  80. package/init/xinyun-ai-init/templates/frontend-audit.template.json +0 -27
  81. package/init/xinyun-ai-init/templates/handoff.template.json +0 -27
  82. package/init/xinyun-ai-init/templates/host-capabilities.template.json +0 -37
  83. package/init/xinyun-ai-init/templates/host-preflight.template.json +0 -33
  84. package/init/xinyun-ai-init/templates/html-migration-asset-map.template.md +0 -6
  85. package/init/xinyun-ai-init/templates/html-migration-compatibility-matrix.template.md +0 -6
  86. package/init/xinyun-ai-init/templates/html-migration-open-issues.template.md +0 -12
  87. package/init/xinyun-ai-init/templates/html-migration-pilot-plan.template.md +0 -21
  88. package/init/xinyun-ai-init/templates/html-migration-record.template.json +0 -36
  89. package/init/xinyun-ai-init/templates/html-migration-route-map.template.md +0 -6
  90. package/init/xinyun-ai-init/templates/html-migration-scope.template.md +0 -28
  91. package/init/xinyun-ai-init/templates/init-result.template.json +0 -25
  92. package/init/xinyun-ai-init/templates/initialization-cache.template.json +0 -13
  93. package/init/xinyun-ai-init/templates/initialization-change-report.template.json +0 -14
  94. package/init/xinyun-ai-init/templates/initialization-recovery.template.json +0 -24
  95. package/init/xinyun-ai-init/templates/initialization-stages.template.json +0 -18
  96. package/init/xinyun-ai-init/templates/initialization-timing.template.json +0 -16
  97. package/init/xinyun-ai-init/templates/local-query-index.template.json +0 -15
  98. package/init/xinyun-ai-init/templates/managed-baseline.template.json +0 -17
  99. package/init/xinyun-ai-init/templates/manual-session-binding.template.json +0 -45
  100. package/init/xinyun-ai-init/templates/manual-session-recovery.template.json +0 -53
  101. package/init/xinyun-ai-init/templates/multi-conversation-migration.template.json +0 -24
  102. package/init/xinyun-ai-init/templates/onboarding-report.template.json +0 -30
  103. package/init/xinyun-ai-init/templates/orchestrator.template.json +0 -28
  104. package/init/xinyun-ai-init/templates/parallelism.template.json +0 -13
  105. package/init/xinyun-ai-init/templates/performance-metrics.template.json +0 -17
  106. package/init/xinyun-ai-init/templates/preflight-report.template.json +0 -25
  107. package/init/xinyun-ai-init/templates/project-check.template.md +0 -56
  108. package/init/xinyun-ai-init/templates/project-guide.template.md +0 -57
  109. package/init/xinyun-ai-init/templates/project-identity.template.json +0 -23
  110. package/init/xinyun-ai-init/templates/project-status.template.json +0 -28
  111. package/init/xinyun-ai-init/templates/provider-adapter.template.json +0 -25
  112. package/init/xinyun-ai-init/templates/provider-session-binding.template.json +0 -77
  113. package/init/xinyun-ai-init/templates/re-takeover-record.template.json +0 -37
  114. package/init/xinyun-ai-init/templates/requirement-packet.template.json +0 -23
  115. package/init/xinyun-ai-init/templates/role-execution.template.md +0 -72
  116. package/init/xinyun-ai-init/templates/role-session-binding.template.json +0 -105
  117. package/init/xinyun-ai-init/templates/role-subtask.template.md +0 -36
  118. package/init/xinyun-ai-init/templates/session-binding.template.json +0 -38
  119. package/init/xinyun-ai-init/templates/session-candidates.template.json +0 -19
  120. package/init/xinyun-ai-init/templates/shared-project-snapshot.template.json +0 -24
  121. package/init/xinyun-ai-init/templates/single-session-migration.template.json +0 -31
  122. package/init/xinyun-ai-init/templates/sync-check.template.json +0 -23
  123. package/init/xinyun-ai-init/templates/takeover-baseline.template.json +0 -17
  124. package/init/xinyun-ai-init/templates/takeover-gate.template.json +0 -22
  125. package/init/xinyun-ai-init/templates/task-history.template.md +0 -35
  126. package/init/xinyun-ai-init/templates/task-lease.template.json +0 -19
  127. package/init/xinyun-ai-init/templates/task-lock.template.json +0 -31
  128. package/init/xinyun-ai-init/templates/task-main.template.md +0 -38
  129. package/init/xinyun-ai-init/templates/task-result.template.json +0 -23
  130. package/init/xinyun-ai-init/templates/team/README.md +0 -51
  131. package/init/xinyun-ai-init/templates/team/assignments.json +0 -49
  132. package/init/xinyun-ai-init/templates/team/confirmations/chief-engineer.md +0 -24
  133. package/init/xinyun-ai-init/templates/team/confirmations/programmer.md +0 -24
  134. package/init/xinyun-ai-init/templates/team/confirmations/project-owner.md +0 -24
  135. package/init/xinyun-ai-init/templates/team/confirmations/project-product.md +0 -24
  136. package/init/xinyun-ai-init/templates/team/confirmations/test-reviewer.md +0 -24
  137. package/init/xinyun-ai-init/templates/team/file-ownership.json +0 -32
  138. package/init/xinyun-ai-init/templates/team/members.json +0 -61
  139. package/init/xinyun-ai-init/templates/team/responsibility-matrix.json +0 -81
  140. package/init/xinyun-ai-init/templates/team/roles.json +0 -71
  141. package/init/xinyun-ai-init/templates/team/understandings/chief-engineer.md +0 -23
  142. package/init/xinyun-ai-init/templates/team/understandings/programmer.md +0 -23
  143. package/init/xinyun-ai-init/templates/team/understandings/project-owner.md +0 -23
  144. package/init/xinyun-ai-init/templates/team/understandings/project-product.md +0 -23
  145. package/init/xinyun-ai-init/templates/team/understandings/test-reviewer.md +0 -23
  146. package/init/xinyun-ai-init/templates/technical-impact-packet.template.json +0 -31
  147. package/init/xinyun-ai-init/templates/technical-landscape.template.json +0 -41
  148. package/init/xinyun-ai-init/templates/temporary-session.template.json +0 -32
  149. package/init/xinyun-ai-init/templates/workstreams-readme.template.md +0 -36
  150. package/scripts/collect-v1.10-evidence.js +0 -159
  151. package/scripts/collect-v1.14-local-evidence.js +0 -66
  152. package/scripts/collect-v1.15-real-evidence.js +0 -114
  153. package/scripts/collect-v1.16-evidence.js +0 -48
  154. package/scripts/collect-v2-evidence.js +0 -35
  155. package/scripts/run-v1.16-runtime-probe.js +0 -91
  156. package/scripts/run-v2-runtime-probe.js +0 -110
  157. package/scripts/verify-init-package.js +0 -2297
  158. package/scripts/verify-multi-conversation-contract.js +0 -61
  159. package/scripts/verify-re-takeover-contract.js +0 -54
  160. package/scripts/verify-rules-package.js +0 -1287
  161. package/scripts/verify-v2-package.js +0 -210
  162. package/scripts/verify-v2-tarball.js +0 -73
  163. package/test-scenarios/README.md +0 -130
  164. package/test-scenarios/fixtures/v1.10.0-takeover-gate-fixture/README.md +0 -23
  165. package/test-scenarios/fixtures/v1.10.0-takeover-gate-fixture/after/project-status.json +0 -7
  166. package/test-scenarios/fixtures/v1.10.0-takeover-gate-fixture/before/project-status.json +0 -7
  167. package/test-scenarios/fixtures/v1.9.0-behavior-fixture/README.md +0 -9
  168. package/test-scenarios/multi-conversation-evidence.json +0 -26
  169. package/test-scenarios/multi-conversation-scenarios.md +0 -16
  170. package/test-scenarios/re-takeover-evidence.json +0 -20
  171. package/test-scenarios/re-takeover-scenarios.md +0 -33
  172. package/test-scenarios/review-template.md +0 -165
  173. package/test-scenarios/scenarios.md +0 -1273
  174. package/test-scenarios/v1.10.0-behavior-evidence.json +0 -31
  175. package/test-scenarios/v1.10.0-scenarios.md +0 -96
  176. package/test-scenarios/v1.10.2-scenarios.md +0 -38
  177. package/test-scenarios/v1.11.0-scenarios.md +0 -30
  178. package/test-scenarios/v1.12.0-behavior-evidence.json +0 -29
  179. package/test-scenarios/v1.12.0-scenarios.md +0 -51
  180. package/test-scenarios/v1.12.1-behavior-evidence.json +0 -27
  181. package/test-scenarios/v1.12.1-scenarios.md +0 -42
  182. package/test-scenarios/v1.13.0-behavior-evidence.json +0 -650
  183. package/test-scenarios/v1.13.0-scenarios.md +0 -94
  184. package/test-scenarios/v1.14.0-behavior-evidence.json +0 -780
  185. package/test-scenarios/v1.14.0-scenarios.md +0 -63
  186. package/test-scenarios/v1.15.0-behavior-evidence.json +0 -476
  187. package/test-scenarios/v1.15.0-scenarios.md +0 -57
  188. package/test-scenarios/v1.16.0-behavior-evidence.json +0 -46
  189. package/test-scenarios/v1.16.0-real-host-probe.json +0 -132
  190. package/test-scenarios/v1.16.0-scenarios.md +0 -19
  191. package/test-scenarios/v1.7.0-scenarios.md +0 -91
  192. package/test-scenarios/v1.7.1-scenarios.md +0 -130
  193. package/test-scenarios/v1.7.2-scenarios.md +0 -51
  194. package/test-scenarios/v1.7.3-scenarios.md +0 -79
  195. package/test-scenarios/v1.8.0-scenarios.md +0 -39
  196. package/test-scenarios/v1.9.0-behavior-evidence.json +0 -269
  197. package/test-scenarios/v1.9.0-scenarios.md +0 -55
  198. package/test-scenarios/v2.0.0-behavior-evidence.json +0 -40
  199. package/test-scenarios/v2.0.0-scenarios.md +0 -21
@@ -1,63 +0,0 @@
1
- # v1.14.0 Agent Core Scenarios
2
-
3
- Scenarios 186-205 are required. Each record must include `scenarioId`, `input`, `expectedOutput`, `actualOutput`, `beforeSnapshotHash`, `afterSnapshotHash`, `changedFiles`, `controlFilesChanged`, `forbiddenOperations`, `evidence`, `sensitiveScan`, `result`, `recordHash`, `recordedAt`, and `localSessionId`. `verify:release` accepts either a complete `real-session` report with canonical provider IDs and all seven host operation records, or a complete `local-degraded` report with a control-plane `localSessionId` and local control-file evidence. Local mode is publishable as a package test result but never makes the project `ready`.
4
-
5
- ## 186. Agent profile
6
- Verify identity, version, project identity, service goal, roles, stacks, tools, allowed/forbidden operations and ready prerequisites are recorded.
7
-
8
- ## 187. Capability aggregation
9
- Verify required capability evidence aggregates to `ready`, `partial`, `blocked`, or `manual-required`; unknown required capability never becomes ready.
10
-
11
- ## 188. Takeover gate completeness
12
- Verify control plane, named main task, five role tasks, responsibility records, CodeGraph, bindings, orchestrator, recovery, indexes, shared facts, conflicts and sensitive scan are all checked.
13
-
14
- ## 189. Missing takeover evidence
15
- Verify missing evidence produces `partial`, `blocked`, or `manual-required`, never `ready`.
16
-
17
- ## 190. Orchestrator registration
18
- Verify the main session has an independent orchestrator record and does not reuse a role session ID.
19
-
20
- ## 191. Task graph dependencies
21
- Verify task nodes and dependency edges are acyclic and a blocked dependency prevents execution.
22
-
23
- ## 192. Unified task status
24
- Verify v1.13 machine statuses remain valid and `statusCode/statusLabel` map to the eight Chinese workflow states.
25
-
26
- ## 193. Task completion gate
27
- Verify task creation does not mark completion; result, evidence, reviewer and write-back are required.
28
-
29
- ## 194. Shared-fact pre-read
30
- Verify a task reads the public snapshot, task index, recent changes, handoffs, contracts and occupancy before execution.
31
-
32
- ## 195. Shared-fact write-back
33
- Verify changed files, API/field/component/process impacts, unfinished work, confirmations and evidence are written after execution.
34
-
35
- ## 196. Conflict pause
36
- Verify same-file, API, field, component or business-flow conflicts produce `conflict-pending` or `blocked` and stop writes.
37
-
38
- ## 197. Handoff continuity
39
- Verify a handoff can locate task, role, session, snapshot revision, changes, unfinished work and next action without chat history.
40
-
41
- ## 198. Readable session naming
42
- Verify display names follow `项目名|角色|职责或工作流` and preserve the provider session identity.
43
-
44
- ## 199. Safe candidate reuse
45
- Verify reuse requires matching project identity, role, task scope, title, cwd, occupancy, idempotency key and canonical provider evidence.
46
-
47
- ## 200. Cross-project rejection
48
- Verify an identity mismatch is rejected and historical records are preserved.
49
-
50
- ## 201. Provider identity protection
51
- Verify thread ID, task ID, filename, title and history summary cannot become `providerSessionId`.
52
-
53
- ## 202. Final delivery completeness
54
- Verify final delivery lists completed, unfinished, blocked, changed files, business-code change status, tests, reviews, risks and next actions.
55
-
56
- ## 203. Final ready gate
57
- Verify any missing role binding, unresolved conflict, missing evidence or failed sensitive scan keeps the project blocked.
58
-
59
- ## 204. Compatibility regression
60
- Verify v1.13 provider binding, manual recovery, attempt increment and no-duplicate behavior remain unchanged.
61
-
62
- ## 205. Package boundary and safety
63
- Verify the tarball contains only the npm allowlist and no business-code, database, SQL, dependency, Git or host-login operation occurs.
@@ -1,476 +0,0 @@
1
- {
2
- "schemaVersion": 2,
3
- "version": "1.15.0",
4
- "evidenceType": "real-session",
5
- "executionMode": "real-host",
6
- "realAiSessionVerified": true,
7
- "realAiSessionVerifiedScope": "scenario-206-session-binding",
8
- "publishBlocked": false,
9
- "readyEligible": true,
10
- "sessionBindingContract": "adapter-neutral",
11
- "sessionId": "v115-session-019fb763-55c2-7212-a651-8cca031f3664",
12
- "sessionRefType": "host-thread",
13
- "sessionRef": "019fb763-55c2-7212-a651-8cca031f3664",
14
- "hostId": "local",
15
- "provider": "codex-app",
16
- "projectId": "local-7c78c56dcbe504a705c3e69f8fb613ef",
17
- "projectRootHash": "7c78c56dcbe504a705c3e69f8fb613ef676850e2d2fb83bd458f89a62818cdcd",
18
- "workspaceScope": "E:\\ai-fabu-xiangmu\\AI开发初始化脚本",
19
- "repositoryScope": "non-git-local-project",
20
- "workstream": "v1.15.0-session-evidence",
21
- "roleId": "test-evidence",
22
- "taskId": "V115-EVIDENCE-001",
23
- "title": "AI开发智能体|测试角色|v1.15七类证据",
24
- "cwd": "E:\\ai-fabu-xiangmu\\AI开发初始化脚本",
25
- "identityEvidence": [
26
- {
27
- "operation": "create-or-reuse",
28
- "source": "codex_app__create_thread",
29
- "threadId": "019fb763-55c2-7212-a651-8cca031f3664",
30
- "hostId": "local",
31
- "projectId": "local-7c78c56dcbe504a705c3e69f8fb613ef",
32
- "cwd": "E:\\ai-fabu-xiangmu\\AI开发初始化脚本",
33
- "title": "AI开发智能体|测试角色|v1.15七类证据",
34
- "roleId": "test-evidence",
35
- "taskId": "V115-EVIDENCE-001",
36
- "turnId": "019fb763-5853-7a10-85c1-da60b147471e",
37
- "summary": "宿主创建成功,首轮回复确认项目路径、角色和任务归属",
38
- "recordedAt": "2026-07-31T16:56:14+08:00"
39
- }
40
- ],
41
- "interactionEvidence": [
42
- {
43
- "operation": "create-or-reuse",
44
- "source": "codex_app__create_thread",
45
- "sessionRefType": "host-thread",
46
- "sessionRef": "019fb763-55c2-7212-a651-8cca031f3664",
47
- "turnId": "019fb763-5853-7a10-85c1-da60b147471e",
48
- "responseSummary": "TEST_SESSION_READY; cwd and role identity confirmed",
49
- "recordedAt": "2026-07-31T16:56:14+08:00"
50
- },
51
- {
52
- "operation": "send",
53
- "source": "codex_app__send_message_to_thread",
54
- "sessionRefType": "host-thread",
55
- "sessionRef": "019fb763-55c2-7212-a651-8cca031f3664",
56
- "turnId": "019fb763-9991-7450-97cf-88d43e366d6b",
57
- "requestEvidence": "challenge token XY-AI-115-SEND-20260731",
58
- "recordedAt": "2026-07-31T16:56:25+08:00"
59
- },
60
- {
61
- "operation": "receive",
62
- "source": "codex_app__wait_threads",
63
- "sessionRefType": "host-thread",
64
- "sessionRef": "019fb763-55c2-7212-a651-8cca031f3664",
65
- "turnId": "019fb763-9991-7450-97cf-88d43e366d6b",
66
- "messageId": "item-6",
67
- "responseSummary": "RECEIVE_OK XY-AI-115-SEND-20260731; cwd confirmed",
68
- "recordedAt": "2026-07-31T16:56:28+08:00"
69
- },
70
- {
71
- "operation": "query-status",
72
- "source": "codex_app__read_thread",
73
- "sessionRefType": "host-thread",
74
- "sessionRef": "019fb763-55c2-7212-a651-8cca031f3664",
75
- "observedStatus": "idle",
76
- "latestTurnStatus": "completed",
77
- "revision": 2,
78
- "recordedAt": "2026-07-31T16:56:31+08:00"
79
- },
80
- {
81
- "operation": "recover",
82
- "source": "codex_app__send_message_to_thread + codex_app__wait_threads",
83
- "sessionRefType": "host-thread",
84
- "sessionRef": "019fb763-55c2-7212-a651-8cca031f3664",
85
- "turnId": "019fb763-d5b5-7313-aca7-3ea827bf7e57",
86
- "responseSummary": "RECOVER_OK XY-AI-115-RECOVER-20260731",
87
- "recordedAt": "2026-07-31T16:56:43+08:00"
88
- },
89
- {
90
- "operation": "close",
91
- "source": "codex_app__set_thread_archived",
92
- "sessionRefType": "host-thread",
93
- "sessionRef": "019fb763-55c2-7212-a651-8cca031f3664",
94
- "archived": true,
95
- "postCloseStatus": "notLoaded",
96
- "recordedAt": "2026-07-31T16:57:02+08:00"
97
- },
98
- {
99
- "operation": "control-file-read-write",
100
- "source": "xinyun-ai/index/project-index.json",
101
- "path": "xinyun-ai/index/project-index.json",
102
- "beforeHash": "3d57e858f7b16c17725af6e483fb0022c7a5a6ff50d395da30c4efea7f074339",
103
- "afterHash": "3d57e858f7b16c17725af6e483fb0022c7a5a6ff50d395da30c4efea7f074339",
104
- "bytes": 1685,
105
- "semanticChange": false,
106
- "recordedAt": "2026-07-31T16:57:52+08:00"
107
- }
108
- ],
109
- "requiredHostEvidence": [
110
- "create-or-reuse",
111
- "send",
112
- "receive",
113
- "query-status",
114
- "recover",
115
- "close",
116
- "control-file-read-write"
117
- ],
118
- "scenarioRange": [
119
- 206,
120
- 223
121
- ],
122
- "scenarioRequiredFields": [
123
- "scenarioId",
124
- "input",
125
- "expectedOutput",
126
- "actualOutput",
127
- "evidence",
128
- "result",
129
- "recordedAt"
130
- ],
131
- "scenarios": [
132
- {
133
- "scenarioId": 206,
134
- "input": "host-thread positive",
135
- "expectedOutput": "bound",
136
- "actualOutput": "bound",
137
- "evidence": [
138
- "create-or-reuse",
139
- "send",
140
- "receive",
141
- "query-status",
142
- "recover",
143
- "close",
144
- "control-file-read-write"
145
- ],
146
- "result": "real-passed",
147
- "sessionId": "v115-session-019fb763-55c2-7212-a651-8cca031f3664",
148
- "sessionRefType": "host-thread",
149
- "sessionRef": "019fb763-55c2-7212-a651-8cca031f3664",
150
- "recordedAt": "2026-07-31T16:57:52+08:00"
151
- },
152
- {
153
- "scenarioId": 207,
154
- "input": "host-thread missing interaction",
155
- "expectedOutput": "blocked",
156
- "actualOutput": "blocked",
157
- "evidence": [
158
- {
159
- "operation": "create-or-reuse",
160
- "source": "codex_app__create_thread",
161
- "sessionRefType": "host-thread",
162
- "sessionRef": "019fb770-2c01-70b3-b2b5-ece70383d536",
163
- "hostId": "local",
164
- "recordedAt": "2026-07-31T17:10:09+08:00"
165
- },
166
- {
167
- "operation": "query-status",
168
- "source": "codex_app__read_thread",
169
- "sessionRef": "019fb770-2c01-70b3-b2b5-ece70383d536",
170
- "observedStatus": "idle",
171
- "taskInteraction": false,
172
- "recordedAt": "2026-07-31T17:10:16+08:00"
173
- },
174
- {
175
- "operation": "close",
176
- "source": "codex_app__set_thread_archived",
177
- "sessionRef": "019fb770-2c01-70b3-b2b5-ece70383d536",
178
- "archived": true,
179
- "recordedAt": "2026-07-31T17:10:22+08:00"
180
- }
181
- ],
182
- "result": "real-negative-passed",
183
- "recordedAt": "2026-07-31T09:16:40.911Z"
184
- },
185
- {
186
- "scenarioId": 208,
187
- "input": "provider-session compatibility",
188
- "expectedOutput": "mapped",
189
- "actualOutput": "contract-verified",
190
- "evidence": [
191
- {
192
- "operation": "contract-check",
193
- "source": "init/xinyun-ai-init/templates/session-binding.template.json",
194
- "beforeHash": "373ab49f6f027bd5e8ec5e3270dac1c2781b007fe6e36bb3f2d7410adf5a7bf5",
195
- "afterHash": "373ab49f6f027bd5e8ec5e3270dac1c2781b007fe6e36bb3f2d7410adf5a7bf5",
196
- "summary": "provider-session is compatibility-only and sessionRefType remains adapter-neutral"
197
- }
198
- ],
199
- "result": "contract-passed",
200
- "recordedAt": "2026-07-31T09:16:40.911Z"
201
- },
202
- {
203
- "scenarioId": 209,
204
- "input": "manual-reference",
205
- "expectedOutput": "manual-required",
206
- "actualOutput": "contract-verified",
207
- "evidence": [
208
- {
209
- "operation": "contract-check",
210
- "source": "init/xinyun-ai-init/templates/manual-session-binding.template.json",
211
- "beforeHash": "91c4193d49db1a187efb4ae0c5b1b9b00e1b6b1f8f183942dbd392da5023edfc",
212
- "afterHash": "91c4193d49db1a187efb4ae0c5b1b9b00e1b6b1f8f183942dbd392da5023edfc",
213
- "summary": "manual-reference stays pending/manual and requires seven evidence categories"
214
- }
215
- ],
216
- "result": "contract-passed",
217
- "recordedAt": "2026-07-31T09:16:40.911Z"
218
- },
219
- {
220
- "scenarioId": 210,
221
- "input": "local-session degradation",
222
- "expectedOutput": "non-ready",
223
- "actualOutput": "contract-verified",
224
- "evidence": [
225
- {
226
- "operation": "contract-check",
227
- "source": "test-scenarios/v1.14.0-behavior-evidence.json",
228
- "beforeHash": "acafa6c7921e2e1845803af7ecc9adc991c4e73fc91c0294460da1d30710b052",
229
- "afterHash": "acafa6c7921e2e1845803af7ecc9adc991c4e73fc91c0294460da1d30710b052",
230
- "summary": "local degraded evidence is non-ready"
231
- }
232
- ],
233
- "result": "contract-passed",
234
- "recordedAt": "2026-07-31T09:16:40.911Z"
235
- },
236
- {
237
- "scenarioId": 211,
238
- "input": "cross-project reuse",
239
- "expectedOutput": "rejected",
240
- "actualOutput": "contract-verified",
241
- "evidence": [
242
- {
243
- "operation": "contract-check",
244
- "source": "init/xinyun-ai-init/rules/v1.15.0-session-binding.md",
245
- "beforeHash": "3dbade49af9fe0a8b5938ace51fa46e561f97e675e30bc7e73be46705a47863e",
246
- "afterHash": "3dbade49af9fe0a8b5938ace51fa46e561f97e675e30bc7e73be46705a47863e",
247
- "summary": "cross-project reuse requires project identity match"
248
- }
249
- ],
250
- "result": "contract-passed",
251
- "recordedAt": "2026-07-31T09:16:40.911Z"
252
- },
253
- {
254
- "scenarioId": 212,
255
- "input": "reference impersonation",
256
- "expectedOutput": "rejected",
257
- "actualOutput": "contract-verified",
258
- "evidence": [
259
- {
260
- "operation": "contract-check",
261
- "source": "init/xinyun-ai-init/templates/session-binding.template.json",
262
- "beforeHash": "373ab49f6f027bd5e8ec5e3270dac1c2781b007fe6e36bb3f2d7410adf5a7bf5",
263
- "afterHash": "373ab49f6f027bd5e8ec5e3270dac1c2781b007fe6e36bb3f2d7410adf5a7bf5",
264
- "summary": "task/title/history cannot impersonate sessionRef"
265
- }
266
- ],
267
- "result": "contract-passed",
268
- "recordedAt": "2026-07-31T09:16:40.911Z"
269
- },
270
- {
271
- "scenarioId": 213,
272
- "input": "cross-file session mismatch",
273
- "expectedOutput": "conflict",
274
- "actualOutput": "contract-verified",
275
- "evidence": [
276
- {
277
- "operation": "contract-check",
278
- "source": "init/xinyun-ai-init/templates/project-index.template.json",
279
- "beforeHash": "fcc94638fd3abc6fa0f769a436270120a6ce72ed660dd4035400ed645ff70aa9",
280
- "afterHash": "fcc94638fd3abc6fa0f769a436270120a6ce72ed660dd4035400ed645ff70aa9",
281
- "summary": "cross-file session identity fields are registered"
282
- }
283
- ],
284
- "result": "contract-passed",
285
- "recordedAt": "2026-07-31T09:16:40.911Z"
286
- },
287
- {
288
- "scenarioId": 214,
289
- "input": "traceability matrix",
290
- "expectedOutput": "traceable",
291
- "actualOutput": "contract-verified",
292
- "evidence": [
293
- {
294
- "operation": "contract-check",
295
- "source": "init/xinyun-ai-init/templates/requirement-packet.template.json",
296
- "beforeHash": "aae1d0131e0bc8561ba5e22d25b3dc8b13ada7b5b20832a3c4de9b209ead34ed",
297
- "afterHash": "aae1d0131e0bc8561ba5e22d25b3dc8b13ada7b5b20832a3c4de9b209ead34ed",
298
- "summary": "requirement packet links requirement, task and evidence"
299
- }
300
- ],
301
- "result": "contract-passed",
302
- "recordedAt": "2026-07-31T09:16:40.911Z"
303
- },
304
- {
305
- "scenarioId": 215,
306
- "input": "role delivery protocol",
307
- "expectedOutput": "complete-record",
308
- "actualOutput": "contract-verified",
309
- "evidence": [
310
- {
311
- "operation": "contract-check",
312
- "source": "init/xinyun-ai-init/templates/final-delivery.template.json",
313
- "beforeHash": "f0edf9d9e9c4d1b7b41c7753497b33c08474b6b18e2d03c27a4368639cbc569d",
314
- "afterHash": "f0edf9d9e9c4d1b7b41c7753497b33c08474b6b18e2d03c27a4368639cbc569d",
315
- "summary": "delivery record has facts, risks, actions, results and evidence slots"
316
- }
317
- ],
318
- "result": "contract-passed",
319
- "recordedAt": "2026-07-31T09:16:40.911Z"
320
- },
321
- {
322
- "scenarioId": 216,
323
- "input": "authorization lifecycle",
324
- "expectedOutput": "gated",
325
- "actualOutput": "contract-verified",
326
- "evidence": [
327
- {
328
- "operation": "contract-check",
329
- "source": "init/xinyun-ai-init/templates/current-task.template.md",
330
- "beforeHash": "b31677810850d7e9abebf98de4f65df32adab8fc186ac294bc7644ec604f022b",
331
- "afterHash": "b31677810850d7e9abebf98de4f65df32adab8fc186ac294bc7644ec604f022b",
332
- "summary": "authorization confirmation gates execution eligibility"
333
- }
334
- ],
335
- "result": "contract-passed",
336
- "recordedAt": "2026-07-31T09:16:40.911Z"
337
- },
338
- {
339
- "scenarioId": 217,
340
- "input": "quality gate",
341
- "expectedOutput": "waiting-review",
342
- "actualOutput": "contract-verified",
343
- "evidence": [
344
- {
345
- "operation": "contract-check",
346
- "source": "init/xinyun-ai-init/templates/final-delivery.template.json",
347
- "beforeHash": "f0edf9d9e9c4d1b7b41c7753497b33c08474b6b18e2d03c27a4368639cbc569d",
348
- "afterHash": "f0edf9d9e9c4d1b7b41c7753497b33c08474b6b18e2d03c27a4368639cbc569d",
349
- "summary": "quality gate requires tests and review results"
350
- }
351
- ],
352
- "result": "contract-passed",
353
- "recordedAt": "2026-07-31T09:16:40.911Z"
354
- },
355
- {
356
- "scenarioId": 218,
357
- "input": "shared change ledger",
358
- "expectedOutput": "written-back",
359
- "actualOutput": "contract-verified",
360
- "evidence": [
361
- {
362
- "operation": "contract-check",
363
- "source": "init/xinyun-ai-init/templates/coordination-change-ledger.template.json",
364
- "beforeHash": "e1b78de99ba1fb19494c02d95b6718f22498be67a6b1a8a00bde8d5e80d668ef",
365
- "afterHash": "e1b78de99ba1fb19494c02d95b6718f22498be67a6b1a8a00bde8d5e80d668ef",
366
- "summary": "shared change ledger records conflict domains and status"
367
- }
368
- ],
369
- "result": "contract-passed",
370
- "recordedAt": "2026-07-31T09:16:40.911Z"
371
- },
372
- {
373
- "scenarioId": 219,
374
- "input": "conflict pause",
375
- "expectedOutput": "conflict-pending",
376
- "actualOutput": "contract-verified",
377
- "evidence": [
378
- {
379
- "operation": "contract-check",
380
- "source": "init/xinyun-ai-init/templates/coordination-conflict-record.template.json",
381
- "beforeHash": "53bfa7ccc444920b96760c0b036aaf2e6f1da72423ec688b85dd2495cfd58895",
382
- "afterHash": "53bfa7ccc444920b96760c0b036aaf2e6f1da72423ec688b85dd2495cfd58895",
383
- "summary": "conflict record pauses work pending coordination"
384
- }
385
- ],
386
- "result": "contract-passed",
387
- "recordedAt": "2026-07-31T09:16:40.911Z"
388
- },
389
- {
390
- "scenarioId": 220,
391
- "input": "pause cancel recover",
392
- "expectedOutput": "idempotent-recovery",
393
- "actualOutput": "contract-verified",
394
- "evidence": [
395
- {
396
- "operation": "contract-check",
397
- "source": "init/xinyun-ai-init/templates/initialization-recovery.template.json",
398
- "beforeHash": "66635ee6ce4e5742dc6331f5046c097126c1ca357bb234d6e57bcd6d69d781bc",
399
- "afterHash": "66635ee6ce4e5742dc6331f5046c097126c1ca357bb234d6e57bcd6d69d781bc",
400
- "summary": "recovery reuses task identity and increments attempt"
401
- }
402
- ],
403
- "result": "contract-passed",
404
- "recordedAt": "2026-07-31T09:16:40.911Z"
405
- },
406
- {
407
- "scenarioId": 221,
408
- "input": "requirement replanning",
409
- "expectedOutput": "new-revision",
410
- "actualOutput": "contract-verified",
411
- "evidence": [
412
- {
413
- "operation": "contract-check",
414
- "source": "init/xinyun-ai-init/templates/initialization-recovery.template.json",
415
- "beforeHash": "66635ee6ce4e5742dc6331f5046c097126c1ca357bb234d6e57bcd6d69d781bc",
416
- "afterHash": "66635ee6ce4e5742dc6331f5046c097126c1ca357bb234d6e57bcd6d69d781bc",
417
- "summary": "replanning preserves task identity and audit history"
418
- }
419
- ],
420
- "result": "contract-passed",
421
- "recordedAt": "2026-07-31T09:16:40.911Z"
422
- },
423
- {
424
- "scenarioId": 222,
425
- "input": "tool degradation route",
426
- "expectedOutput": "degraded-with-scope",
427
- "actualOutput": "contract-verified",
428
- "evidence": [
429
- {
430
- "operation": "contract-check",
431
- "source": "init/xinyun-ai-init/templates/host-capabilities.template.json",
432
- "beforeHash": "6fd332f716bdf0baf2b5279f13877b07125e569bf408a07fe920543c9011e19d",
433
- "afterHash": "6fd332f716bdf0baf2b5279f13877b07125e569bf408a07fe920543c9011e19d",
434
- "summary": "tool degradation records unavailable and fallback states"
435
- }
436
- ],
437
- "result": "contract-passed",
438
- "recordedAt": "2026-07-31T09:16:40.911Z"
439
- },
440
- {
441
- "scenarioId": 223,
442
- "input": "component impact audit",
443
- "expectedOutput": "audit-decision",
444
- "actualOutput": "contract-verified",
445
- "evidence": [
446
- {
447
- "operation": "contract-check",
448
- "source": "init/xinyun-ai-init/templates/frontend-audit.template.json",
449
- "beforeHash": "b6bd413296d3a6f521c916f2a777928a2cc018aef5c048b6a0c0e414a32721da",
450
- "afterHash": "b6bd413296d3a6f521c916f2a777928a2cc018aef5c048b6a0c0e414a32721da",
451
- "summary": "frontend audit records coupling and componentization decision"
452
- }
453
- ],
454
- "result": "contract-passed",
455
- "recordedAt": "2026-07-31T09:16:40.911Z"
456
- }
457
- ],
458
- "sensitiveScan": {
459
- "status": "pass",
460
- "matches": []
461
- },
462
- "forbiddenOperations": [
463
- "provider-login",
464
- "provider-install",
465
- "database-connection",
466
- "sql",
467
- "business-file-write",
468
- "git-write",
469
- "dependency-install",
470
- "npm-publish"
471
- ],
472
- "blockedReason": null,
473
- "publishPolicy": "v1.15.0 package scope verified; project readiness follows role onboarding and user release authorization",
474
- "recordedAt": "2026-07-31T09:16:40.911Z",
475
- "scenarioVerificationMode": "real-host-session-binding-plus-local-contract-tests"
476
- }
@@ -1,57 +0,0 @@
1
- # v1.15.0 协作闭环场景
2
-
3
- v1.15-A/B/C 必须分别审查。以下场景覆盖宿主无关会话绑定、需求追踪、交付协议、授权生命周期、质量门禁、共享账本、恢复和能力降级。缺失证据只能得到 `pending`、`blocked` 或 `manual-required`。
4
-
5
- ## 206. host-thread 正向绑定
6
- 可操作的 host-thread 具备项目、角色、任务归属和七类证据时允许绑定。
7
-
8
- ## 207. host-thread 缺少交互证据
9
- 只有 thread 引用而没有 send/receive/query-status 证据时必须阻塞。
10
-
11
- ## 208. provider-session 兼容映射
12
- 旧 providerSessionId 映射为 provider-session/sessionRef,历史字段保留且不承担新契约唯一门禁。
13
-
14
- ## 209. manual-reference 绑定
15
- 人工引用必须记录 actor、时间、身份和七类证据,否则保持 manual-required。
16
-
17
- ## 210. local-session 降级
18
- local-session 只能做控制面关联,不能触发真实宿主复用或 ready。
19
-
20
- ## 211. 跨项目复用拒绝
21
- projectRootHash、workspaceScope、repositoryScope 或 workstream 不一致时拒绝并保留历史。
22
-
23
- ## 212. 冒充引用拒绝
24
- taskId、文件名、标题、历史摘要和用户口述不能直接成为 sessionRef。
25
-
26
- ## 213. 跨文件 sessionId 不一致
27
- task、assignment、binding、task-index 和 init-result 不一致时暂停写入。
28
-
29
- ## 214. 需求追踪矩阵
30
- 每条用户需求可追溯到任务、角色、预计文件、实际改动、测试和验收。
31
-
32
- ## 215. 角色统一交付协议
33
- 角色输出事实、推断、待确认、风险、读取范围、证据、执行/未执行动作、结果和下一步。
34
-
35
- ## 216. 授权生命周期
36
- 缺少任一授权阶段时任务不得进入下一状态。
37
-
38
- ## 217. 任务质量门禁
39
- 程序员完成只进入待审查,测试/总工/产品/用户审查完成后才可最终完成。
40
-
41
- ## 218. 共享变更账本
42
- 文件、API、字段、组件、配置和流程变化必须写回并关联受影响任务。
43
-
44
- ## 219. 冲突暂停
45
- 同一文件、接口、字段、组件或业务流程冲突时停止写入并交由主会话协调。
46
-
47
- ## 220. 暂停取消恢复
48
- 暂停、取消、恢复、过期和失败重试保留历史,重试复用幂等键和原任务 ID。
49
-
50
- ## 221. 需求变更重规划
51
- 需求变更生成新修订和影响关系,不覆盖旧验收和交付记录。
52
-
53
- ## 222. 工具能力降级
54
- Python/Node/CLI/依赖不可用时选择替代工具或静态分析,并明确未验证范围。
55
-
56
- ## 223. 前端组件化影响审视
57
- 检查页面、组件、接口、字段渲染链和公共样式耦合,给出组件化依据而非强制重构。
@@ -1,46 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "version": "1.16.0",
4
- "evidenceType": "real-session",
5
- "executionMode": "real-host",
6
- "realAiSessionVerified": true,
7
- "realAiSessionVerifiedScope": "v1.16 runtime probe executed through the recorded host-thread session; only listed runtime observations are verified",
8
- "sessionRefType": "host-thread",
9
- "sessionRef": "019f64da-73e3-7b91-8c75-648fddb9adfa",
10
- "hostId": "local",
11
- "roleId": "project-product",
12
- "taskId": "V116-PROBE-001",
13
- "publishBlocked": false,
14
- "readyEligible": true,
15
- "scenarioRange": [301, 315],
16
- "requiredBatches": ["v1.16-A", "v1.16-B", "v1.16-C"],
17
- "batchStatus": {"v1.16-A": "contract-passed", "v1.16-B": "contract-passed", "v1.16-C": "contract-passed"},
18
- "requiredRealBehavior": ["skill-route", "codegraph-cache", "incremental-update", "query-index", "efficiency-metrics"],
19
- "realEvidenceSource": "test-scenarios/v1.16.0-real-host-probe.json",
20
- "verifiedRealBehavior": ["skill-route", "codegraph-cache", "incremental-update", "query-index", "efficiency-metrics"],
21
- "unverifiedScope": [
22
- "CodeGraph service and structural parse",
23
- "real specialized Skill execution",
24
- "host-dependent performance comparison"
25
- ],
26
- "regressionEvidence": {"source": "test-scenarios/v1.15.0-behavior-evidence.json", "sessionRefType": "host-thread", "sessionRef": "019fb763-55c2-7212-a651-8cca031f3664", "result": "v1.15-regression-passed"},
27
- "scenarioRequiredFields": ["scenarioId", "batch", "input", "expectedOutput", "actualOutput", "evidence", "unverifiedScope", "result", "recordedAt"],
28
- "scenarios": [
29
- {"scenarioId": 301, "batch": "v1.16-A", "input": "role and stack match", "expectedOutput": "selected Skill with route reason", "actualOutput": "real-passed", "evidence": ["test-scenarios/v1.16.0-real-host-probe.json", "skill-runtime-route.template.json"], "unverifiedScope": ["real specialized Skill execution"], "result": "real-passed", "sessionRef": "019f64da-73e3-7b91-8c75-648fddb9adfa", "recordedAt": "2026-07-31T09:54:19.190Z"},
30
- {"scenarioId": 302, "batch": "v1.16-A", "input": "multiple matching Skills", "expectedOutput": "stable selection order", "actualOutput": "contract-passed", "evidence": ["selectionOrder"], "unverifiedScope": ["real host Skill execution"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
31
- {"scenarioId": 303, "batch": "v1.16-A", "input": "unknown stack", "expectedOutput": "generic Skill and uncertainty", "actualOutput": "contract-passed", "evidence": ["generic-fallback"], "unverifiedScope": ["real host Skill execution"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
32
- {"scenarioId": 304, "batch": "v1.16-A", "input": "missing dependency", "expectedOutput": "fallback without install", "actualOutput": "contract-passed", "evidence": ["dependencyStatus"], "unverifiedScope": ["real host Skill execution"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
33
- {"scenarioId": 305, "batch": "v1.16-A", "input": "untrusted Skill", "expectedOutput": "blocked", "actualOutput": "contract-passed", "evidence": ["trustStatus", "permissionStatus"], "unverifiedScope": ["real host Skill execution"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
34
- {"scenarioId": 306, "batch": "v1.16-A", "input": "repeat same task", "expectedOutput": "same route fingerprint", "actualOutput": "contract-passed", "evidence": ["routeFingerprint"], "unverifiedScope": ["real host Skill execution"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
35
- {"scenarioId": 307, "batch": "v1.16-A", "input": "changed Skill version", "expectedOutput": "reroute", "actualOutput": "contract-passed", "evidence": ["registryDigest"], "unverifiedScope": ["real host Skill execution"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
36
- {"scenarioId": 308, "batch": "v1.16-A", "input": "API or field impact discovered", "expectedOutput": "shared fact and ledger write", "actualOutput": "contract-passed", "evidence": ["shared-facts", "change-ledger"], "unverifiedScope": ["real host Skill execution"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
37
- {"scenarioId": 309, "batch": "v1.16-B", "input": "healthy unchanged CodeGraph", "expectedOutput": "reuse", "actualOutput": "contract-passed", "evidence": ["unchanged-reused", "test-scenarios/v1.16.0-real-host-probe.json"], "unverifiedScope": ["real CodeGraph service"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
38
- {"scenarioId": 310, "batch": "v1.16-B", "input": "local file hash changed", "expectedOutput": "incremental update", "actualOutput": "contract-passed", "evidence": ["changedFiles", "test-scenarios/v1.16.0-real-host-probe.json"], "unverifiedScope": ["real CodeGraph service"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
39
- {"scenarioId": 311, "batch": "v1.16-B", "input": "increment parse failure", "expectedOutput": "preserve old healthy index", "actualOutput": "contract-passed", "evidence": ["oldHealthyIndexPreserved"], "unverifiedScope": ["real CodeGraph service"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
40
- {"scenarioId": 312, "batch": "v1.16-B", "input": "missing or mismatched index", "expectedOutput": "explicit degraded state", "actualOutput": "contract-passed", "evidence": ["statusEnum"], "unverifiedScope": ["real CodeGraph service"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
41
- {"scenarioId": 313, "batch": "v1.16-B", "input": "rebuild local query index", "expectedOutput": "derive from JSON/Markdown", "actualOutput": "real-passed", "evidence": ["test-scenarios/v1.16.0-real-host-probe.json", "factSourcePolicy"], "unverifiedScope": ["large-project query coverage"], "result": "real-passed", "sessionRef": "019f64da-73e3-7b91-8c75-648fddb9adfa", "recordedAt": "2026-07-31T09:54:19.190Z"},
42
- {"scenarioId": 314, "batch": "v1.16-B", "input": "query budget exceeded", "expectedOutput": "partial or unknown with evidence", "actualOutput": "contract-passed", "evidence": ["queryBudget"], "unverifiedScope": ["large-project query coverage"], "result": "contract-passed", "recordedAt": "2026-07-31T00:00:00.000Z"},
43
- {"scenarioId": 315, "batch": "v1.16-C", "input": "repeat initialization", "expectedOutput": "stage metrics compare to baseline", "actualOutput": "real-passed", "evidence": ["test-scenarios/v1.16.0-real-host-probe.json", "performance-metrics.template.json"], "unverifiedScope": ["host-dependent performance comparison"], "result": "real-passed", "sessionRef": "019f64da-73e3-7b91-8c75-648fddb9adfa", "recordedAt": "2026-07-31T09:54:19.190Z"}
44
- ],
45
- "sensitiveScan": {"status": "pass", "matches": []}
46
- }