@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,650 +0,0 @@
1
- {
2
- "schemaVersion": 1,
3
- "version": "1.13.1",
4
- "evidenceType": "not-verified",
5
- "executionMode": "host-capability-unavailable",
6
- "realAiSessionVerified": false,
7
- "publishBlocked": true,
8
- "sessionId": null,
9
- "providerSessionId": null,
10
- "codeGraphDeferred": true,
11
- "fixture": "isolated package fixture only; no real business project mutation",
12
- "forbiddenOperations": [
13
- "provider-login",
14
- "provider-install",
15
- "database-connection",
16
- "sql",
17
- "business-file-write",
18
- "git-write",
19
- "dependency-install",
20
- "npm-publish"
21
- ],
22
- "scenarioRequiredFields": [
23
- "scenarioId",
24
- "input",
25
- "expectedOutput",
26
- "actualOutput",
27
- "beforeSnapshotHash",
28
- "afterSnapshotHash",
29
- "changedFiles",
30
- "controlFilesChanged",
31
- "forbiddenOperations",
32
- "evidence",
33
- "sensitiveScan",
34
- "result",
35
- "recordHash",
36
- "recordedAt"
37
- ],
38
- "sessionIdentityContract": {
39
- "canonicalField": "providerSessionId",
40
- "compatibilityAlias": "sessionId",
41
- "nullUntilVerified": [
42
- "sessionId",
43
- "projectSessionId"
44
- ],
45
- "requiredHostEvidence": [
46
- "create-or-reuse",
47
- "send",
48
- "receive",
49
- "query-status",
50
- "recover",
51
- "close"
52
- ]
53
- },
54
- "scenarios": [
55
- {
56
- "scenarioId": 159,
57
- "sessionId": null,
58
- "providerSessionId": null,
59
- "input": "Run all host adapter capability checks.",
60
- "expectedOutput": "blocked-or-not-verified",
61
- "actualOutput": "not-verified",
62
- "beforeSnapshotHash": "not-recorded",
63
- "afterSnapshotHash": "not-recorded",
64
- "changedFiles": [],
65
- "controlFilesChanged": [],
66
- "forbiddenOperations": [],
67
- "evidence": [],
68
- "sensitiveScan": {
69
- "status": "pass",
70
- "matches": []
71
- },
72
- "result": "not-verified",
73
- "evidenceType": "not-verified",
74
- "recordHash": "not-recorded",
75
- "recordedAt": null
76
- },
77
- {
78
- "scenarioId": 160,
79
- "sessionId": null,
80
- "providerSessionId": null,
81
- "input": "Block before broad CodeGraph scan when host capability is unavailable.",
82
- "expectedOutput": "blocked-codeGraphDeferred",
83
- "actualOutput": "not-verified",
84
- "beforeSnapshotHash": "not-recorded",
85
- "afterSnapshotHash": "not-recorded",
86
- "changedFiles": [],
87
- "controlFilesChanged": [],
88
- "forbiddenOperations": [],
89
- "evidence": [],
90
- "sensitiveScan": {
91
- "status": "pass",
92
- "matches": []
93
- },
94
- "result": "not-verified",
95
- "recordedAt": null,
96
- "evidenceType": "not-verified",
97
- "recordHash": "not-recorded"
98
- },
99
- {
100
- "scenarioId": 161,
101
- "sessionId": null,
102
- "providerSessionId": null,
103
- "input": "Accept only adapter canonical providerSessionId.",
104
- "expectedOutput": "canonical-provider-ID-only",
105
- "actualOutput": "not-verified",
106
- "beforeSnapshotHash": "not-recorded",
107
- "afterSnapshotHash": "not-recorded",
108
- "changedFiles": [],
109
- "controlFilesChanged": [],
110
- "forbiddenOperations": [],
111
- "evidence": [],
112
- "sensitiveScan": {
113
- "status": "pass",
114
- "matches": []
115
- },
116
- "result": "not-verified",
117
- "recordedAt": null,
118
- "evidenceType": "not-verified",
119
- "recordHash": "not-recorded"
120
- },
121
- {
122
- "scenarioId": 162,
123
- "sessionId": null,
124
- "providerSessionId": null,
125
- "input": "Reject ordinary threadId, taskId, filename and history summary.",
126
- "expectedOutput": "blocked",
127
- "actualOutput": "not-verified",
128
- "beforeSnapshotHash": "not-recorded",
129
- "afterSnapshotHash": "not-recorded",
130
- "changedFiles": [],
131
- "controlFilesChanged": [],
132
- "forbiddenOperations": [],
133
- "evidence": [],
134
- "sensitiveScan": {
135
- "status": "pass",
136
- "matches": []
137
- },
138
- "result": "not-verified",
139
- "recordedAt": null,
140
- "evidenceType": "not-verified",
141
- "recordHash": "not-recorded"
142
- },
143
- {
144
- "scenarioId": 163,
145
- "sessionId": null,
146
- "providerSessionId": null,
147
- "input": "Validate identity for five automatic role sessions.",
148
- "expectedOutput": "identity-gated",
149
- "actualOutput": "not-verified",
150
- "beforeSnapshotHash": "not-recorded",
151
- "afterSnapshotHash": "not-recorded",
152
- "changedFiles": [],
153
- "controlFilesChanged": [],
154
- "forbiddenOperations": [],
155
- "evidence": [],
156
- "sensitiveScan": {
157
- "status": "pass",
158
- "matches": []
159
- },
160
- "result": "not-verified",
161
- "recordedAt": null,
162
- "evidenceType": "not-verified",
163
- "recordHash": "not-recorded"
164
- },
165
- {
166
- "scenarioId": 164,
167
- "sessionId": null,
168
- "providerSessionId": null,
169
- "input": "Require send, receive, status and transcript evidence.",
170
- "expectedOutput": "evidence-gated",
171
- "actualOutput": "not-verified",
172
- "beforeSnapshotHash": "not-recorded",
173
- "afterSnapshotHash": "not-recorded",
174
- "changedFiles": [],
175
- "controlFilesChanged": [],
176
- "forbiddenOperations": [],
177
- "evidence": [],
178
- "sensitiveScan": {
179
- "status": "pass",
180
- "matches": []
181
- },
182
- "result": "not-verified",
183
- "recordedAt": null,
184
- "evidenceType": "not-verified",
185
- "recordHash": "not-recorded"
186
- },
187
- {
188
- "scenarioId": 165,
189
- "sessionId": null,
190
- "providerSessionId": null,
191
- "input": "Safely reuse only a validated old session.",
192
- "expectedOutput": "reuse-or-block",
193
- "actualOutput": "not-verified",
194
- "beforeSnapshotHash": "not-recorded",
195
- "afterSnapshotHash": "not-recorded",
196
- "changedFiles": [],
197
- "controlFilesChanged": [],
198
- "forbiddenOperations": [],
199
- "evidence": [],
200
- "sensitiveScan": {
201
- "status": "pass",
202
- "matches": []
203
- },
204
- "result": "not-verified",
205
- "recordedAt": null,
206
- "evidenceType": "not-verified",
207
- "recordHash": "not-recorded"
208
- },
209
- {
210
- "scenarioId": 166,
211
- "sessionId": null,
212
- "providerSessionId": null,
213
- "input": "Generate five manual recovery entries.",
214
- "expectedOutput": "five-guides",
215
- "actualOutput": "not-verified",
216
- "beforeSnapshotHash": "not-recorded",
217
- "afterSnapshotHash": "not-recorded",
218
- "changedFiles": [],
219
- "controlFilesChanged": [],
220
- "forbiddenOperations": [],
221
- "evidence": [],
222
- "sensitiveScan": {
223
- "status": "pass",
224
- "matches": []
225
- },
226
- "result": "not-verified",
227
- "recordedAt": null,
228
- "evidenceType": "not-verified",
229
- "recordHash": "not-recorded"
230
- },
231
- {
232
- "scenarioId": 167,
233
- "sessionId": null,
234
- "providerSessionId": null,
235
- "input": "Recover a manually created provider session.",
236
- "expectedOutput": "reuse-original-task-IDs",
237
- "actualOutput": "not-verified",
238
- "beforeSnapshotHash": "not-recorded",
239
- "afterSnapshotHash": "not-recorded",
240
- "changedFiles": [],
241
- "controlFilesChanged": [],
242
- "forbiddenOperations": [],
243
- "evidence": [],
244
- "sensitiveScan": {
245
- "status": "pass",
246
- "matches": []
247
- },
248
- "result": "not-verified",
249
- "recordedAt": null,
250
- "evidenceType": "not-verified",
251
- "recordHash": "not-recorded"
252
- },
253
- {
254
- "scenarioId": 168,
255
- "sessionId": null,
256
- "providerSessionId": null,
257
- "input": "Recover idempotently after failure.",
258
- "expectedOutput": "increment-attempt-no-duplicates",
259
- "actualOutput": "not-verified",
260
- "beforeSnapshotHash": "not-recorded",
261
- "afterSnapshotHash": "not-recorded",
262
- "changedFiles": [],
263
- "controlFilesChanged": [],
264
- "forbiddenOperations": [],
265
- "evidence": [],
266
- "sensitiveScan": {
267
- "status": "pass",
268
- "matches": []
269
- },
270
- "result": "not-verified",
271
- "recordedAt": null,
272
- "evidenceType": "not-verified",
273
- "recordHash": "not-recorded"
274
- },
275
- {
276
- "scenarioId": 169,
277
- "sessionId": null,
278
- "providerSessionId": null,
279
- "input": "Handle adapter permission failure.",
280
- "expectedOutput": "blocked-no-large-scan",
281
- "actualOutput": "not-verified",
282
- "beforeSnapshotHash": "not-recorded",
283
- "afterSnapshotHash": "not-recorded",
284
- "changedFiles": [],
285
- "controlFilesChanged": [],
286
- "forbiddenOperations": [],
287
- "evidence": [],
288
- "sensitiveScan": {
289
- "status": "pass",
290
- "matches": []
291
- },
292
- "result": "not-verified",
293
- "recordedAt": null,
294
- "evidenceType": "not-verified",
295
- "recordHash": "not-recorded"
296
- },
297
- {
298
- "scenarioId": 170,
299
- "sessionId": null,
300
- "providerSessionId": null,
301
- "input": "Classify initialization changes by origin.",
302
- "expectedOutput": "origin-classified",
303
- "actualOutput": "not-verified",
304
- "beforeSnapshotHash": "not-recorded",
305
- "afterSnapshotHash": "not-recorded",
306
- "changedFiles": [],
307
- "controlFilesChanged": [],
308
- "forbiddenOperations": [],
309
- "evidence": [],
310
- "sensitiveScan": {
311
- "status": "pass",
312
- "matches": []
313
- },
314
- "result": "not-verified",
315
- "recordedAt": null,
316
- "evidenceType": "not-verified",
317
- "recordHash": "not-recorded"
318
- },
319
- {
320
- "scenarioId": 171,
321
- "sessionId": null,
322
- "providerSessionId": null,
323
- "input": "Preserve pre-existing business changes.",
324
- "expectedOutput": "no-rollback",
325
- "actualOutput": "not-verified",
326
- "beforeSnapshotHash": "not-recorded",
327
- "afterSnapshotHash": "not-recorded",
328
- "changedFiles": [],
329
- "controlFilesChanged": [],
330
- "forbiddenOperations": [],
331
- "evidence": [],
332
- "sensitiveScan": {
333
- "status": "pass",
334
- "matches": []
335
- },
336
- "result": "not-verified",
337
- "recordedAt": null,
338
- "evidenceType": "not-verified",
339
- "recordHash": "not-recorded"
340
- },
341
- {
342
- "scenarioId": 172,
343
- "sessionId": null,
344
- "providerSessionId": null,
345
- "input": "Check cross-file recovery consistency.",
346
- "expectedOutput": "consistent-or-blocked",
347
- "actualOutput": "not-verified",
348
- "beforeSnapshotHash": "not-recorded",
349
- "afterSnapshotHash": "not-recorded",
350
- "changedFiles": [],
351
- "controlFilesChanged": [],
352
- "forbiddenOperations": [],
353
- "evidence": [],
354
- "sensitiveScan": {
355
- "status": "pass",
356
- "matches": []
357
- },
358
- "result": "not-verified",
359
- "recordedAt": null,
360
- "evidenceType": "not-verified",
361
- "recordHash": "not-recorded"
362
- },
363
- {
364
- "scenarioId": 173,
365
- "sessionId": null,
366
- "providerSessionId": null,
367
- "input": "When automatic role-session creation fails, present one user decision gate.",
368
- "expectedOutput": "awaiting-user-choice",
369
- "actualOutput": "not-verified",
370
- "beforeSnapshotHash": "not-recorded",
371
- "afterSnapshotHash": "not-recorded",
372
- "changedFiles": [],
373
- "controlFilesChanged": [],
374
- "forbiddenOperations": [],
375
- "evidence": [],
376
- "sensitiveScan": {
377
- "status": "pass",
378
- "matches": []
379
- },
380
- "result": "not-verified",
381
- "recordedAt": null,
382
- "evidenceType": "not-verified",
383
- "recordHash": "not-recorded"
384
- },
385
- {
386
- "scenarioId": 174,
387
- "sessionId": null,
388
- "providerSessionId": null,
389
- "input": "Generate the five manual recovery role guides.",
390
- "expectedOutput": "five-guides",
391
- "actualOutput": "not-verified",
392
- "beforeSnapshotHash": "not-recorded",
393
- "afterSnapshotHash": "not-recorded",
394
- "changedFiles": [],
395
- "controlFilesChanged": [],
396
- "forbiddenOperations": [],
397
- "evidence": [],
398
- "sensitiveScan": {
399
- "status": "pass",
400
- "matches": []
401
- },
402
- "result": "not-verified",
403
- "recordedAt": null,
404
- "evidenceType": "not-verified",
405
- "recordHash": "not-recorded"
406
- },
407
- {
408
- "scenarioId": 175,
409
- "sessionId": null,
410
- "providerSessionId": null,
411
- "input": "After the explicit user confirmation, validate and bind real provider sessions.",
412
- "expectedOutput": "canonical-evidence-gated-binding",
413
- "actualOutput": "not-verified",
414
- "beforeSnapshotHash": "not-recorded",
415
- "afterSnapshotHash": "not-recorded",
416
- "changedFiles": [],
417
- "controlFilesChanged": [],
418
- "forbiddenOperations": [],
419
- "evidence": [],
420
- "sensitiveScan": {
421
- "status": "pass",
422
- "matches": []
423
- },
424
- "result": "not-verified",
425
- "recordedAt": null,
426
- "evidenceType": "not-verified",
427
- "recordHash": "not-recorded"
428
- },
429
- {
430
- "scenarioId": 176,
431
- "sessionId": null,
432
- "providerSessionId": null,
433
- "input": "Defer role-session creation and resume later without duplicate initialization.",
434
- "expectedOutput": "preserve-and-defer",
435
- "actualOutput": "not-verified",
436
- "beforeSnapshotHash": "not-recorded",
437
- "afterSnapshotHash": "not-recorded",
438
- "changedFiles": [],
439
- "controlFilesChanged": [],
440
- "forbiddenOperations": [],
441
- "evidence": [],
442
- "sensitiveScan": {
443
- "status": "pass",
444
- "matches": []
445
- },
446
- "result": "not-verified",
447
- "recordedAt": null,
448
- "evidenceType": "not-verified",
449
- "recordHash": "not-recorded"
450
- },
451
- {
452
- "scenarioId": 177,
453
- "sessionId": null,
454
- "providerSessionId": null,
455
- "input": "Redetect host capability without repeating project initialization.",
456
- "expectedOutput": "preflight-only",
457
- "actualOutput": "not-verified",
458
- "beforeSnapshotHash": "not-recorded",
459
- "afterSnapshotHash": "not-recorded",
460
- "changedFiles": [],
461
- "controlFilesChanged": [],
462
- "forbiddenOperations": [],
463
- "evidence": [],
464
- "sensitiveScan": {
465
- "status": "pass",
466
- "matches": []
467
- },
468
- "result": "not-verified",
469
- "recordedAt": null,
470
- "evidenceType": "not-verified",
471
- "recordHash": "not-recorded"
472
- },
473
- {
474
- "scenarioId": 178,
475
- "sessionId": null,
476
- "providerSessionId": null,
477
- "input": "Leave the project blocked when the user has not selected a recovery decision.",
478
- "expectedOutput": "blocked-no-repeat-prompt",
479
- "actualOutput": "not-verified",
480
- "beforeSnapshotHash": "not-recorded",
481
- "afterSnapshotHash": "not-recorded",
482
- "changedFiles": [],
483
- "controlFilesChanged": [],
484
- "forbiddenOperations": [],
485
- "evidence": [],
486
- "sensitiveScan": {
487
- "status": "pass",
488
- "matches": []
489
- },
490
- "result": "not-verified",
491
- "recordedAt": null,
492
- "evidenceType": "not-verified",
493
- "recordHash": "not-recorded"
494
- },
495
- {
496
- "scenarioId": 179,
497
- "sessionId": null,
498
- "providerSessionId": null,
499
- "input": "Persist the complete user decision record across recovery and init-result.",
500
- "expectedOutput": "decision-fields-mirrored",
501
- "actualOutput": "not-verified",
502
- "beforeSnapshotHash": "not-recorded",
503
- "afterSnapshotHash": "not-recorded",
504
- "changedFiles": [],
505
- "controlFilesChanged": [],
506
- "forbiddenOperations": [],
507
- "evidence": [],
508
- "sensitiveScan": {
509
- "status": "pass",
510
- "matches": []
511
- },
512
- "result": "not-verified",
513
- "recordedAt": null,
514
- "evidenceType": "not-verified",
515
- "recordHash": "not-recorded"
516
- },
517
- {
518
- "scenarioId": 180,
519
- "sessionId": null,
520
- "providerSessionId": null,
521
- "input": "Keep project status blocked until all five roles bind and finish onboarding.",
522
- "expectedOutput": "blocked-until-five-ready",
523
- "actualOutput": "not-verified",
524
- "beforeSnapshotHash": "not-recorded",
525
- "afterSnapshotHash": "not-recorded",
526
- "changedFiles": [],
527
- "controlFilesChanged": [],
528
- "forbiddenOperations": [],
529
- "evidence": [],
530
- "sensitiveScan": {
531
- "status": "pass",
532
- "matches": []
533
- },
534
- "result": "not-verified",
535
- "recordedAt": null,
536
- "evidenceType": "not-verified",
537
- "recordHash": "not-recorded"
538
- },
539
- {
540
- "scenarioId": 181,
541
- "sessionId": null,
542
- "providerSessionId": null,
543
- "input": "Recover after a decision without duplicate tasks and with incremented attempt.",
544
- "expectedOutput": "idempotent-recovery",
545
- "actualOutput": "not-verified",
546
- "beforeSnapshotHash": "not-recorded",
547
- "afterSnapshotHash": "not-recorded",
548
- "changedFiles": [],
549
- "controlFilesChanged": [],
550
- "forbiddenOperations": [],
551
- "evidence": [],
552
- "sensitiveScan": {
553
- "status": "pass",
554
- "matches": []
555
- },
556
- "result": "not-verified",
557
- "recordedAt": null,
558
- "evidenceType": "not-verified",
559
- "recordHash": "not-recorded"
560
- },
561
- {
562
- "scenarioId": 182,
563
- "sessionId": null,
564
- "providerSessionId": null,
565
- "input": "Create main and five role tasks before provider sessions.",
566
- "expectedOutput": "task-first-awaiting-confirmation",
567
- "actualOutput": "not-verified",
568
- "beforeSnapshotHash": "not-recorded",
569
- "afterSnapshotHash": "not-recorded",
570
- "changedFiles": [],
571
- "controlFilesChanged": [],
572
- "forbiddenOperations": [],
573
- "evidence": [],
574
- "sensitiveScan": {
575
- "status": "pass",
576
- "matches": []
577
- },
578
- "result": "not-verified",
579
- "evidenceType": "not-verified",
580
- "recordHash": "not-recorded",
581
- "recordedAt": null
582
- },
583
- {
584
- "scenarioId": 183,
585
- "sessionId": null,
586
- "providerSessionId": null,
587
- "input": "After user approval, start provider session creation and onboarding.",
588
- "expectedOutput": "create-and-onboard-gated",
589
- "actualOutput": "not-verified",
590
- "beforeSnapshotHash": "not-recorded",
591
- "afterSnapshotHash": "not-recorded",
592
- "changedFiles": [],
593
- "controlFilesChanged": [],
594
- "forbiddenOperations": [],
595
- "evidence": [],
596
- "sensitiveScan": {
597
- "status": "pass",
598
- "matches": []
599
- },
600
- "result": "not-verified",
601
- "evidenceType": "not-verified",
602
- "recordHash": "not-recorded",
603
- "recordedAt": null
604
- },
605
- {
606
- "scenarioId": 184,
607
- "sessionId": null,
608
- "providerSessionId": null,
609
- "input": "Defer provider session creation and preserve tasks.",
610
- "expectedOutput": "deferred-blocked-no-duplicates",
611
- "actualOutput": "not-verified",
612
- "beforeSnapshotHash": "not-recorded",
613
- "afterSnapshotHash": "not-recorded",
614
- "changedFiles": [],
615
- "controlFilesChanged": [],
616
- "forbiddenOperations": [],
617
- "evidence": [],
618
- "sensitiveScan": {
619
- "status": "pass",
620
- "matches": []
621
- },
622
- "result": "not-verified",
623
- "evidenceType": "not-verified",
624
- "recordHash": "not-recorded",
625
- "recordedAt": null
626
- },
627
- {
628
- "scenarioId": 185,
629
- "sessionId": null,
630
- "providerSessionId": null,
631
- "input": "No session decision is provided.",
632
- "expectedOutput": "blocked-without-repeat-prompt",
633
- "actualOutput": "not-verified",
634
- "beforeSnapshotHash": "not-recorded",
635
- "afterSnapshotHash": "not-recorded",
636
- "changedFiles": [],
637
- "controlFilesChanged": [],
638
- "forbiddenOperations": [],
639
- "evidence": [],
640
- "sensitiveScan": {
641
- "status": "pass",
642
- "matches": []
643
- },
644
- "result": "not-verified",
645
- "evidenceType": "not-verified",
646
- "recordHash": "not-recorded",
647
- "recordedAt": null
648
- }
649
- ]
650
- }