@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,27 +1,8 @@
1
1
  {
2
- "schemaVersion": 2,
3
- "executionModel": "shared-project-multi-conversation-runtime",
4
- "projectIdentity": "xinyun-ai/project-identity.json",
5
- "projectContext": "xinyun-ai/project-context.json",
6
- "manifest": "xinyun-ai/manifest.json",
7
- "projectIndex": "xinyun-ai/index/project-index.json",
8
- "bootstrapSnapshot": "xinyun-ai/index/bootstrap-snapshot.json",
9
- "reTakeoverRecord": "xinyun-ai/index/re-takeover-record.json",
10
- "currentTask": "xinyun-ai/current-task.md",
11
- "taskIndex": "xinyun-ai/tasks/task-index.json",
12
- "taskGraph": "xinyun-ai/tasks/task-graph.json",
13
- "conversationRegistry": "xinyun-ai/conversations/registry.json",
14
- "conversationBindings": "xinyun-ai/conversations/bindings/",
15
- "conversationStreams": "xinyun-ai/coordination/streams/",
16
- "conversationCursors": "xinyun-ai/coordination/cursors/",
17
- "syncChecks": "xinyun-ai/coordination/sync-checks/",
18
- "taskLeases": "xinyun-ai/coordination/leases/",
19
- "skillRegistry": "xinyun-ai/skills/registry.json",
20
- "skillAssignments": "xinyun-ai/skills/assignments.json",
21
- "changeLedger": "xinyun-ai/coordination/change-ledger.json",
22
- "legacyInventory": "xinyun-ai/migrations/shared-project-conversations/legacy-inventory.json",
23
- "entries": [],
2
+ "schemaVersion": 3,
3
+ "executionModel": "bundled-skill-runtime",
24
4
  "authoritativeBootstrapOrder": [
5
+ "AGENTS.md",
25
6
  "xinyun-ai/README.md",
26
7
  "xinyun-ai/manifest.json",
27
8
  "xinyun-ai/project-context.json",
@@ -29,9 +10,9 @@
29
10
  "xinyun-ai/rules/core-rules.md",
30
11
  "xinyun-ai/index/project-index.json",
31
12
  "xinyun-ai/index/bootstrap-snapshot.json",
32
- "xinyun-ai/index/re-takeover-record.json",
33
13
  "xinyun-ai/conversations/registry.json"
34
14
  ],
35
- "sourceHash": null,
15
+ "skillRuntime": "xinyun-ai-init/runtime/route-skill.js",
16
+ "legacyRuntime": "removed",
36
17
  "updatedAt": null
37
18
  }
@@ -1,59 +1,11 @@
1
1
  # xinyun-ai 核心规则
2
2
 
3
- ## 当前模型
4
-
5
- - 当前执行模型为 `shared-project-multi-conversation-runtime`。
6
- - 每个项目维护一个共享 `projectContextId`,允许一个或多个对话通过独立 `conversationBindingId` 接入。
7
- - 不创建固定角色、角色成员、角色任务、角色理解/确认记录或角色专属会话。
8
- - v1 角色材料只作为 `legacy/read-only` 历史,不参与新任务路由、权限或 ready 判断。
9
-
10
- ## 新对话重新接管
11
-
12
- - 新对话默认执行“重新接管同一个项目”,不依赖历史聊天上下文。
13
- - 先确认项目根目录,再按 `control-plane-index.json` 的 `authoritativeBootstrapOrder` 读取控制面文件。
14
- - 读取 `bootstrap-snapshot.json` 和 `re-takeover-record.json`,按源文件哈希决定全量理解或增量理解。
15
- - 接管报告必须区分 `contextStatus` 和 `executionEligible`;前者通过不代表后者通过。
16
- - 快照、项目身份、任务索引或任务图冲突时,先记录冲突并进入 `partial` 或 `blocked`,不得继续修改业务文件。
17
- - 新对话可以只读恢复项目上下文,并注册或复用自己的对话绑定。
18
- - 每次收到用户消息、计划前、写入前、验证前和交付前都比较各对话流 head 与本对话游标。
19
- - 没有新增事件时静默继续;发现新增事件时只读取增量事件及受影响任务、事实和文件。
20
-
21
- ## 多对话共享与并发
22
-
23
- - 每个对话只能写自己的 `coordination/streams/<conversationBindingId>/`,事件不可变,流 head 原子替换。
24
- - 有长期价值的任务、事实、决策、改动、Skill、验证、授权、冲突和交接结果自动写回;临时推理和闲聊不共享。
25
- - 写入前必须取得任务租约并核对目标基线哈希;重叠租约或基线变化进入冲突状态,不自动覆盖。
26
- - 最终交付前必须再次同步,确认没有未消费的相关事件或活动冲突。
27
-
28
- ## 任务和写回
29
-
30
- - 普通咨询可以不创建任务;需要持续跟踪、修改、确认或恢复的工作必须先登记正式任务。
31
- - 任务文件、任务索引、任务图和 `current-task.md` 必须事务化原子更新。
32
- - 所有动态事实写入当前项目自己的 `xinyun-ai/`,不得写入 `xinyun-ai-init/`。
33
- - 任务开始前读取项目身份、任务图、共享事实、变更台账和近期交接;结束后写回实际改动、影响、证据、测试和下一动作。
34
-
35
- ## Skill
36
-
37
- - Skill 按任务类型、技术栈、端、语言、运行时、平台、框架、风险、依赖和权限选择。
38
- - Skill 路由不使用固定角色身份。
39
- - 缺少 Skill、依赖、权限或可信来源时降级、阻断或请求用户处理;不自动安装,不伪造执行。
40
- - 同一对话的测试结果只能标记为 `self-check`;另一个未参与改动的对话只有取得独立证据后才能标记为 `external-review`。
41
-
42
- ## 确认和授权
43
-
44
- - 修改代码、配置、数据库、依赖、构建脚本、测试逻辑、API、UI 或业务流程前,先输出计划并等待用户明确确认。
45
- - 数据库连接、SQL、Git 写入和 npm 发布使用独立授权。
46
- - 创建任务或选择 Skill 不构成修改授权。
47
- - 用户必须单独授权 npm 发布。
48
-
49
- ## 对话身份
50
-
51
- - `projectContextId` 是项目共享上下文标识,`conversationBindingId` 是对话绑定标识,`sessionRefType/sessionRef` 是宿主引用。
52
- - 普通线程 ID 不能当作 `providerSessionId`。
53
- - ready 前必须验证对话绑定、跨对话增量同步、create/reuse、send、receive、query-status、recover、close 和控制文件读写,以及项目归属和范围一致性。
54
-
55
- ## 迁移
56
-
57
- - 旧角色任务转换为普通任务,原角色只保存为 `legacyRoleId`。
58
- - 旧 `team/`、角色任务和角色会话材料只读保留,不自动删除。
59
- - 迁移必须有事务、前后 hash、幂等和中断恢复。
3
+ - 使用 `bundled-skill-runtime`,不创建固定角色、team 或角色会话。
4
+ - 正式任务先登记,再调用 Skill。
5
+ - 路由输入只能是任务事实、技术栈、框架、风险、依赖和权限。
6
+ - 修改前必须先出计划并等待确认。
7
+ - 每次交互、计划、写入、验证和交付前执行增量同步。
8
+ - 写入前取得任务租约并校验基线哈希。
9
+ - Skill 运行记录输入、输出、工具、证据和未验证范围。
10
+ - 不得记录 token、密码、私钥、连接串或未经脱敏的项目内容。
11
+ - npm 发布固定使用 `npm run publish:token`,且需要单独授权。
@@ -1,26 +1,10 @@
1
1
  # 当前任务
2
2
 
3
- - executionModel:shared-project-multi-conversation-runtime
3
+ - executionModel:bundled-skill-runtime
4
4
  - taskId:null
5
- - parentTaskId:null
6
- - taskType:null
7
- - title:暂无待执行任务
8
5
  - status:idle
9
- - projectContextId:null
10
- - conversationBindingId:null
11
- - syncCheckId:null
12
- - taskLeaseId:null
13
6
  - requiredSkills:[]
14
7
  - selectedSkills:[]
15
- - skillRunIds:[]
16
- - dependencies:[]
17
- - permissionScope:[]
18
- - confirmationStatus:not-requested
19
- - expectedFiles:[]
20
- - actualFiles:[]
8
+ - confirmationStatus:not-required
21
9
  - evidence:[]
22
- - result:null
23
- - nextAction:等待用户需求
24
- - updatedAt:null
25
-
26
- 任务文件、`task-index.json`、`task-graph.json` 和本文件必须在同一事务中保持一致。不一致时状态改为 `blocked`,不得执行 Skill 或修改业务文件。
10
+ - nextAction:按用户需求登记任务或直接回答咨询
@@ -1,94 +1,40 @@
1
1
  {
2
- "schemaVersion": 2,
3
- "xinyunAiVersion": "2.0.0",
4
- "executionModel": "shared-project-multi-conversation-runtime",
2
+ "schemaVersion": 3,
3
+ "xinyunAiVersion": "3.0.0",
4
+ "executionModel": "bundled-skill-runtime",
5
5
  "projectName": null,
6
- "projectIdentityPath": "xinyun-ai/project-identity.json",
7
- "currentTaskPath": "xinyun-ai/current-task.md",
6
+ "projectContextPath": "xinyun-ai/project-context.json",
8
7
  "rulesEntry": "xinyun-ai/rules/core-rules.md",
9
8
  "projectIndexPath": "xinyun-ai/index/project-index.json",
10
9
  "controlPlaneIndexPath": "xinyun-ai/index/control-plane-index.json",
11
- "projectContextPath": "xinyun-ai/project-context.json",
12
- "reTakeover": {
13
- "recordPath": "xinyun-ai/index/re-takeover-record.json",
14
- "snapshotPath": "xinyun-ai/index/bootstrap-snapshot.json",
15
- "mode": "read-project-then-validate-execution",
16
- "contextStatusEnum": ["unknown", "assessing", "context-ready", "partial", "stale", "blocked"],
17
- "understandingStatusEnum": ["unknown", "quick", "expanded", "verified", "stale"],
18
- "incrementalBySourceHash": true,
19
- "executionRequiresConversationBindingEvidence": true,
20
- "threadIdPolicy": "host-thread-candidate-only"
21
- },
22
- "tasking": {
23
- "tasksDirectory": "xinyun-ai/tasks/",
24
- "taskIndex": "xinyun-ai/tasks/task-index.json",
25
- "taskGraph": "xinyun-ai/tasks/task-graph.json",
26
- "transactionsDirectory": "xinyun-ai/tasks/.transactions/",
27
- "idempotencyDirectory": "xinyun-ai/tasks/.idempotency/",
28
- "currentTask": "xinyun-ai/current-task.md",
29
- "atomicWriteRequired": true,
30
- "consistencyFailureStatus": "blocked"
31
- },
32
- "conversations": {
33
- "projectContext": "xinyun-ai/project-context.json",
34
- "registry": "xinyun-ai/conversations/registry.json",
35
- "bindingsDirectory": "xinyun-ai/conversations/bindings/",
36
- "activeConversationLimit": null,
37
- "bindingTemplate": "xinyun-ai-init/templates/conversation-binding.template.json",
38
- "requiredEvidenceCategories": [
39
- "create-or-reuse",
40
- "send",
41
- "receive",
42
- "query-status",
43
- "recover",
44
- "close",
45
- "control-file-read-write"
46
- ],
47
- "legacyProviderSessionPolicy": "compatibility-only",
48
- "threadIdPolicy": "host-thread-reference-only"
49
- },
10
+ "currentTaskPath": "xinyun-ai/current-task.md",
50
11
  "skills": {
51
12
  "registry": "xinyun-ai/skills/registry.json",
52
13
  "assignments": "xinyun-ai/skills/assignments.json",
53
14
  "routesDirectory": "xinyun-ai/skills/routes/",
54
15
  "usageRecordsDirectory": "xinyun-ai/skills/usage-records/",
55
- "routeTemplate": "xinyun-ai-init/templates/skill-runtime-route.template.json",
56
- "runTemplate": "xinyun-ai-init/templates/skill-run-record.template.json",
16
+ "runtime": "xinyun-ai-init/runtime/route-skill.js",
57
17
  "routeByTaskFacts": true,
58
- "fixedRoleRouting": false
18
+ "fixedRoleRouting": false,
19
+ "bundled": true
59
20
  },
60
21
  "coordination": {
61
- "projectFacts": "xinyun-ai/coordination/project-facts.json",
62
- "changeLedger": "xinyun-ai/coordination/change-ledger.json",
63
- "conflictsDirectory": "xinyun-ai/coordination/conflict-records/",
64
- "handoffsDirectory": "xinyun-ai/handoffs/",
65
22
  "streamsDirectory": "xinyun-ai/coordination/streams/",
66
23
  "cursorsDirectory": "xinyun-ai/coordination/cursors/",
67
24
  "syncChecksDirectory": "xinyun-ai/coordination/sync-checks/",
68
25
  "leasesDirectory": "xinyun-ai/coordination/leases/",
69
- "syncTriggers": ["user-message-received", "before-plan", "before-write", "before-verification", "before-delivery"],
70
- "silentWhenNoChanges": true,
71
- "eventWriteMode": "per-conversation-single-writer"
26
+ "silentWhenNoChanges": true
72
27
  },
73
28
  "migration": {
74
- "directory": "xinyun-ai/migrations/shared-project-conversations/",
75
- "template": "xinyun-ai-init/templates/multi-conversation-migration.template.json",
76
- "legacyDirectories": ["xinyun-ai/team/", "xinyun-ai/tasks/role-execution/", "xinyun-ai/sessions/roles/"],
77
- "legacyMode": "read-only",
78
- "deleteLegacyMaterials": false
29
+ "runtime": "xinyun-ai-init/runtime/migrate-v3.js",
30
+ "legacyMode": "removed",
31
+ "deleteLegacyMaterials": true,
32
+ "knownLegacyDirectories": ["xinyun-ai/team/", "xinyun-ai/tasks/role-execution/", "xinyun-ai/sessions/roles/", "xinyun-ai/sessions/provider-session-bindings.json"]
79
33
  },
80
34
  "authorization": {
81
35
  "changePlanConfirmationRequired": true,
82
- "databaseAuthorizationSeparate": true,
83
- "gitWriteAuthorizationSeparate": true,
84
36
  "npmPublishAuthorizationSeparate": true
85
37
  },
86
- "codeGraph": {
87
- "requiredForStructuralTasks": true,
88
- "status": "unknown",
89
- "evidence": [],
90
- "unverifiedScope": []
91
- },
92
38
  "projectStatus": "not-started",
93
39
  "executionEligible": false,
94
40
  "lastUpdatedAt": null
@@ -1,20 +1,12 @@
1
1
  {
2
- "schemaVersion": 1,
3
- "executionModel": "shared-project-multi-conversation-runtime",
2
+ "schemaVersion": 3,
3
+ "executionModel": "bundled-skill-runtime",
4
4
  "projectContextId": null,
5
5
  "projectRootHash": null,
6
- "workspaceScope": {"scopeType": "project-root", "scopePathHashes": [], "scopeRevision": null},
7
- "repositoryScope": [],
8
6
  "contextRevision": 0,
9
7
  "publicSnapshotHash": null,
10
- "conversationRegistryPath": "xinyun-ai/conversations/registry.json",
11
- "streamHeadsDirectory": "xinyun-ai/coordination/streams/",
12
- "cursorDirectory": "xinyun-ai/coordination/cursors/",
13
- "syncChecksDirectory": "xinyun-ai/coordination/sync-checks/",
14
8
  "activeConversationCount": 0,
15
- "status": "pending",
16
- "statusEnum": ["pending", "validating", "ready", "partial", "blocked", "recovery-required"],
9
+ "status": "partial",
17
10
  "evidence": [],
18
- "createdAt": null,
19
11
  "updatedAt": null
20
12
  }
@@ -1,63 +1,17 @@
1
1
  {
2
- "schemaVersion": 2,
3
- "executionModel": "shared-project-multi-conversation-runtime",
2
+ "schemaVersion": 3,
3
+ "executionModel": "bundled-skill-runtime",
4
4
  "projectSummary": null,
5
- "reTakeover": {
6
- "recordPath": "xinyun-ai/index/re-takeover-record.json",
7
- "snapshotPath": "xinyun-ai/index/bootstrap-snapshot.json",
8
- "contextStatus": "unknown",
9
- "understandingStatus": "unknown",
10
- "lastVerifiedAt": null,
11
- "sourceRevision": null,
12
- "unverifiedScope": []
13
- },
14
- "architecture": {
15
- "entrypoints": [],
16
- "workstreams": [],
17
- "modules": [],
18
- "commands": [],
19
- "dependencies": [],
20
- "riskAreas": []
21
- },
22
- "projectIdentityPath": "xinyun-ai/project-identity.json",
23
5
  "projectContextPath": "xinyun-ai/project-context.json",
24
- "controlPlaneIndexPath": "xinyun-ai/index/control-plane-index.json",
25
6
  "currentTaskPath": "xinyun-ai/current-task.md",
26
- "conversationRegistryPath": "xinyun-ai/conversations/registry.json",
27
- "tasking": {
28
- "tasksDirectory": "xinyun-ai/tasks/",
29
- "taskIndex": "xinyun-ai/tasks/task-index.json",
30
- "taskGraph": "xinyun-ai/tasks/task-graph.json",
31
- "transactionsDirectory": "xinyun-ai/tasks/.transactions/"
32
- },
7
+ "controlPlaneIndexPath": "xinyun-ai/index/control-plane-index.json",
33
8
  "skills": {
34
9
  "registry": "xinyun-ai/skills/registry.json",
35
10
  "assignments": "xinyun-ai/skills/assignments.json",
36
11
  "routesDirectory": "xinyun-ai/skills/routes/",
37
12
  "usageRecordsDirectory": "xinyun-ai/skills/usage-records/"
38
13
  },
39
- "coordination": {
40
- "projectFacts": "xinyun-ai/coordination/project-facts.json",
41
- "changeLedger": "xinyun-ai/coordination/change-ledger.json",
42
- "handoffsDirectory": "xinyun-ai/handoffs/",
43
- "streamsDirectory": "xinyun-ai/coordination/streams/",
44
- "cursorsDirectory": "xinyun-ai/coordination/cursors/",
45
- "syncChecksDirectory": "xinyun-ai/coordination/sync-checks/",
46
- "leasesDirectory": "xinyun-ai/coordination/leases/"
47
- },
48
- "legacy": {
49
- "mode": "read-only",
50
- "inventoryPath": "xinyun-ai/migrations/shared-project-conversations/legacy-inventory.json",
51
- "activeRuntime": false
52
- },
53
- "understanding": {
54
- "overall": "unknown",
55
- "workstreams": {}
56
- },
57
- "codeGraph": {
58
- "status": "unknown",
59
- "evidence": [],
60
- "unverifiedScope": []
61
- },
14
+ "legacy": {"mode": "removed", "activeRuntime": false},
15
+ "understanding": {"overall": "unknown", "workstreams": {}},
62
16
  "updatedAt": null
63
17
  }
@@ -1,28 +1,16 @@
1
1
  {
2
- "schemaVersion": 2,
3
- "executionModel": "shared-project-multi-conversation-runtime",
4
- "skillRunId": "skill-run-template",
2
+ "schemaVersion": 3,
3
+ "skillRunId": null,
5
4
  "skillId": null,
6
5
  "taskId": null,
7
- "projectContextId": null,
8
- "conversationBindingId": null,
9
- "syncCheckIdBeforeRun": null,
10
6
  "phase": null,
11
- "status": "pending",
12
- "statusEnum": ["pending", "selected", "running", "completed", "failed", "fallback", "blocked", "skipped"],
13
7
  "reviewMode": "self-check",
14
- "reviewModeEnum": ["self-check", "external-review", "user-acceptance"],
15
8
  "usedTools": [],
16
9
  "inputEvidence": [],
17
10
  "outputEvidence": [],
18
11
  "fallbackReason": null,
19
12
  "unverifiedScope": [],
13
+ "status": "pending",
20
14
  "startedAt": null,
21
- "finishedAt": null,
22
- "skillSource": null,
23
- "skillVersion": null,
24
- "skillDigest": null,
25
- "trustStatus": "unknown",
26
- "dependencyStatus": "unknown",
27
- "permissionStatus": "unknown"
15
+ "finishedAt": null
28
16
  }
@@ -1,33 +1,12 @@
1
1
  {
2
- "schemaVersion": 2,
3
- "executionModel": "shared-project-multi-conversation-runtime",
2
+ "schemaVersion": 3,
4
3
  "routeId": "skill-route-template",
5
- "taskId": null,
6
- "projectContextId": null,
7
- "conversationBindingId": null,
8
- "syncCheckId": null,
9
- "taskFacts": {
10
- "taskType": null,
11
- "workstream": null,
12
- "language": null,
13
- "runtime": null,
14
- "platform": null,
15
- "framework": null,
16
- "riskTerms": [],
17
- "dependencies": [],
18
- "permissionScope": []
19
- },
4
+ "taskFacts": {},
20
5
  "routeFingerprint": null,
21
- "routeReason": [],
22
6
  "candidateSkills": [],
23
7
  "selected": [],
24
8
  "rejected": [],
25
9
  "fallback": [],
26
10
  "blocked": [],
27
- "selectionOrder": ["project-binding", "framework-specific", "generic", "fallback"],
28
- "registrySource": "xinyun-ai/skills/registry.json",
29
- "registryDigest": null,
30
- "status": "pending",
31
- "createdAt": null,
32
- "updatedAt": null
11
+ "status": "pending"
33
12
  }
@@ -1,24 +1,6 @@
1
1
  {
2
- "schemaVersion": 2,
3
- "executionModel": "shared-project-multi-conversation-runtime",
2
+ "schemaVersion": 3,
3
+ "executionModel": "bundled-skill-runtime",
4
4
  "assignments": [],
5
- "recordContract": {
6
- "requiredFields": [
7
- "assignmentId",
8
- "skillId",
9
- "taskId",
10
- "projectContextId",
11
- "conversationBindingId",
12
- "syncCheckId",
13
- "phase",
14
- "matchReason",
15
- "permittedPaths",
16
- "assignmentStatus",
17
- "skillRunId",
18
- "createdAt",
19
- "updatedAt"
20
- ],
21
- "assignmentStatusEnum": ["pending", "selected", "running", "completed", "fallback", "blocked", "cancelled"],
22
- "legacyAssignmentPolicy": "legacyRoleId may be preserved for history but cannot participate in selection"
23
- }
5
+ "recordContract": {"requiredFields": ["assignmentId", "skillId", "taskId", "phase", "matchReason", "assignmentStatus", "skillRunId"], "assignmentStatusEnum": ["pending", "selected", "running", "completed", "fallback", "blocked", "cancelled"]}
24
6
  }
@@ -1,32 +1,8 @@
1
1
  {
2
- "schemaVersion": 2,
3
- "executionModel": "shared-project-multi-conversation-runtime",
2
+ "schemaVersion": 3,
3
+ "executionModel": "bundled-skill-runtime",
4
+ "source": "xinyun-ai-init/skills/registry.json",
4
5
  "skills": [],
5
- "recordContract": {
6
- "requiredFields": [
7
- "skillId",
8
- "name",
9
- "version",
10
- "source",
11
- "digest",
12
- "description",
13
- "priority",
14
- "availabilityStatus",
15
- "trustStatus",
16
- "reviewedAt",
17
- "supportedTaskTypes",
18
- "stacks",
19
- "frameworks",
20
- "platforms",
21
- "dependencies",
22
- "permissions",
23
- "evidence",
24
- "fallbackPlan",
25
- "createdAt",
26
- "updatedAt"
27
- ],
28
- "availabilityStatusEnum": ["available", "unavailable", "disabled", "unknown"],
29
- "trustStatusEnum": ["unreviewed", "reviewed", "blocked", "expired"]
30
- },
31
- "selectionOrder": ["project-binding", "framework-specific", "generic", "fallback"]
6
+ "routeVersion": "3.0.0",
7
+ "updatedAt": null
32
8
  }
@@ -1,12 +1,10 @@
1
1
  {
2
- "schemaVersion": 2,
3
- "executionModel": "shared-project-multi-conversation-runtime",
4
- "graphId": "task-graph-template",
2
+ "schemaVersion": 3,
3
+ "executionModel": "bundled-skill-runtime",
4
+ "graphId": "main-project-task-graph",
5
5
  "nodes": [],
6
6
  "edges": [],
7
- "edgeTypeEnum": ["parent-of", "depends-on", "blocks", "produces", "validated-by"],
8
7
  "acyclic": true,
9
8
  "orphanTasksAllowed": false,
10
- "projectContextId": null,
11
9
  "updatedAt": null
12
10
  }
@@ -1,39 +1,11 @@
1
1
  {
2
- "schemaVersion": 2,
3
- "executionModel": "shared-project-multi-conversation-runtime",
2
+ "schemaVersion": 3,
3
+ "executionModel": "bundled-skill-runtime",
4
4
  "activeTaskIds": [],
5
5
  "executableTaskIds": [],
6
6
  "archivedTaskIds": [],
7
7
  "currentTaskId": null,
8
- "taskGraphPath": "xinyun-ai/tasks/task-graph.json",
9
- "projectContextId": null,
10
- "taskLeaseDirectory": "xinyun-ai/coordination/leases/",
11
- "taskStatusEnum": [
12
- "captured",
13
- "pending",
14
- "awaiting-confirmation",
15
- "executing",
16
- "waiting-review",
17
- "blocked",
18
- "recovery-required",
19
- "completed",
20
- "cancelled"
21
- ],
22
- "idempotency": {
23
- "keyFields": ["projectRootHash", "requestFingerprint", "parentTaskId", "taskType"],
24
- "algorithm": "RFC8785-JCS-SHA-256",
25
- "duplicatePolicy": "reuse"
26
- },
27
- "consistency": {
28
- "requiredFiles": [
29
- "xinyun-ai/tasks/<taskId>.md",
30
- "xinyun-ai/tasks/task-index.json",
31
- "xinyun-ai/tasks/task-graph.json",
32
- "xinyun-ai/current-task.md"
33
- ],
34
- "writeMode": "transactional-atomic-replace",
35
- "mismatchStatus": "blocked"
36
- },
37
8
  "tasks": [],
9
+ "consistency": {"writeMode": "transactional-atomic-replace", "requiredFiles": ["task.md", "task-index.json", "task-graph.json", "current-task.md"]},
38
10
  "updatedAt": null
39
11
  }
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "packageName": "xinyun-ai-init",
3
- "displayName": "欣芸技术开发 Agent 流初始化包",
4
- "version": "2.0.0",
5
- "scriptVersion": "2026.08.19",
6
- "schemaVersion": "2",
7
- "executionModel": "shared-project-multi-conversation-runtime",
8
- "defaultMode": "fast-init",
3
+ "displayName": "欣芸技术开发 Skill Runtime",
4
+ "version": "3.0.0",
5
+ "scriptVersion": "2026.10.13",
6
+ "schemaVersion": "3",
7
+ "executionModel": "bundled-skill-runtime",
8
+ "defaultMode": "fast-skill-init",
9
9
  "targetWorkspace": "xinyun-ai",
10
- "encoding": "UTF-8 with BOM"
11
- }
10
+ "legacyRuntime": "removed"
11
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pm_zhousl/xinyun-ai-init",
3
- "version": "2.0.0",
4
- "description": "欣芸技术开发 Agent 流初始化包",
3
+ "version": "3.0.0",
4
+ "description": "欣芸技术开发 Skill Runtime 初始化包",
5
5
  "bin": {
6
6
  "xinyun-ai-init": "bin/xinyun-ai-init.js"
7
7
  },
@@ -13,20 +13,14 @@
13
13
  "README.md"
14
14
  ],
15
15
  "scripts": {
16
- "verify:init": "node ./scripts/verify-v2-package.js --scope init",
17
- "verify:rules": "node ./scripts/verify-v2-package.js --scope rules",
16
+ "verify:init": "node ./scripts/verify-v3-package.js --scope init",
17
+ "verify:rules": "node ./scripts/verify-v3-package.js --scope rules",
18
18
  "verify:rules:security": "node ./scripts/verify-rules-tarball-security.js",
19
- "verify:re-takeover": "node ./scripts/verify-re-takeover-contract.js",
20
- "verify:multi-conversation": "node ./scripts/verify-multi-conversation-contract.js",
19
+ "verify:runtime": "node ./scripts/verify-skill-runtime.js",
20
+ "verify:cleanup": "node ./scripts/verify-legacy-cleanup.js",
21
+ "verify:v3": "node ./scripts/verify-v3-package.js",
21
22
  "verify:release": "node ./scripts/verify-release-gate.js",
22
- "verify:v2": "node ./scripts/verify-v2-package.js",
23
- "evidence:v1.10": "node ./scripts/collect-v1.10-evidence.js",
24
- "evidence:v1.14:local": "node ./scripts/collect-v1.14-local-evidence.js",
25
- "evidence:v1.15:real": "node ./scripts/collect-v1.15-real-evidence.js",
26
- "evidence:v1.16": "node ./scripts/collect-v1.16-evidence.js",
27
- "evidence:v2": "node ./scripts/collect-v2-evidence.js",
28
- "probe:v1.16": "node ./scripts/run-v1.16-runtime-probe.js",
29
- "probe:v2": "node ./scripts/run-v2-runtime-probe.js",
23
+ "probe:v3": "node ./scripts/run-v3-runtime-probe.js",
30
24
  "publish:token": "powershell -ExecutionPolicy Bypass -File ./scripts/publish-with-token.ps1",
31
25
  "publish:token:dry": "powershell -ExecutionPolicy Bypass -File ./scripts/publish-with-token.ps1 -DryRun"
32
26
  },
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { spawnSync } = require("child_process");
4
+ const path = require("path");
5
+
6
+ const script = path.resolve(__dirname, "verify-skill-runtime.js");
7
+ const result = spawnSync(process.execPath, [script], { stdio: "inherit" });
8
+ process.exitCode = result.status || 0;
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require("fs");
4
+ const path = require("path");
5
+
6
+ const root = path.resolve(__dirname, "..");
7
+ const initRoot = path.join(root, "init", "xinyun-ai-init");
8
+ const forbidden = [
9
+ "team",
10
+ "templates/role-execution.template.md",
11
+ "templates/role-session-binding.template.json",
12
+ "templates/provider-session-binding.template.json",
13
+ "rules/v1.10.2-contract.md",
14
+ "rules/v1.11.0-acceleration.md",
15
+ "rules/v1.12.0-recovery.md",
16
+ "rules/v1.13.0-host-adapter.md",
17
+ "rules/v1.14.0-agent-core.md",
18
+ "rules/v1.15.0-session-binding.md",
19
+ "rules/v1.16.0-capability-efficiency.md",
20
+ "rules/v2.0.0-single-session-skills.md"
21
+ ];
22
+ const found = forbidden.filter((relative) => fs.existsSync(path.join(initRoot, relative)));
23
+ console.log(`[${found.length ? "FAIL" : "PASS"}] legacy-package-cleanup${found.length ? `: ${found.join(",")}` : ""}`);
24
+ if (found.length) process.exitCode = 1;