@givolt/i3-composer-agent 2.3.7 → 3.1.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 (497) hide show
  1. package/.agents/plugins/marketplace.json +1 -1
  2. package/.claude/commands/i3-sop.md +19 -0
  3. package/.claude/commands/i3-ui-demo.md +21 -0
  4. package/.claude-plugin/marketplace.json +1 -1
  5. package/.claude-plugin/plugin.json +1 -1
  6. package/.codex-plugin/plugin.json +2 -2
  7. package/.gemini/commands/i3-sop.toml +19 -0
  8. package/.gemini/commands/i3-ui-demo.toml +21 -0
  9. package/README.md +42 -6
  10. package/bin/i3-composer-agent.cjs +38 -44
  11. package/bin/install.cjs +15 -3
  12. package/bin/native-layout.cjs +2 -1
  13. package/bin/native-migration.cjs +19 -2
  14. package/bin/retired-sop-fingerprints.json +213 -0
  15. package/bin/wizard.cjs +7 -18
  16. package/commands/i3-sop.toml +19 -0
  17. package/commands/i3-ui-demo.toml +21 -0
  18. package/docs/codebuddy-setup.md +20 -23
  19. package/docs/codex-setup.md +2 -2
  20. package/docs/comparison.md +131 -0
  21. package/docs/developer-onboarding.md +143 -0
  22. package/docs/opencode-setup.md +1 -1
  23. package/docs/other-hosts.md +2 -2
  24. package/docs/skill-anatomy.md +211 -0
  25. package/docs/upstream-repository/AGENTS.md +92 -0
  26. package/docs/upstream-repository/CLAUDE.md +60 -0
  27. package/docs/upstream-repository/CONTRIBUTING.md +137 -0
  28. package/docs/upstream-repository/README.md +8 -0
  29. package/docs/upstream-repository/gitattributes.txt +1 -0
  30. package/docs/upstream-repository/gitignore.txt +10 -0
  31. package/docs/upstream-repository/manifest.json +71 -0
  32. package/docs/upstream-repository/opencode-skills.link +1 -0
  33. package/docs/upstream-repository/skill-gap.yml +80 -0
  34. package/docs/upstream-repository/skills-contributing.md +15 -0
  35. package/docs/upstream-repository/test-plugin-install.yml +167 -0
  36. package/docs/workbuddy-setup.md +7 -10
  37. package/evals/cases/i3-enterprise-sop.json +64 -0
  38. package/evals/cases/i3-ui-demo.json +98 -0
  39. package/evals/fixtures/i3-enterprise-sop/brief.md +11 -0
  40. package/evals/fixtures/i3-ui-demo/asset-management.md +25 -0
  41. package/evals/zh-CN/cases/i3-enterprise-sop.json +61 -0
  42. package/evals/zh-CN/cases/i3-ui-demo.json +103 -0
  43. package/hooks/PROTOTYPE.md +16 -8
  44. package/hooks/i3-prototype.cjs +4 -10
  45. package/hooks/manage.cjs +30 -31
  46. package/package.json +48 -5
  47. package/plugin.json +1 -1
  48. package/scripts/ui-demo-dependencies-test.js +228 -0
  49. package/scripts/ui-demo-mcp-test.js +95 -0
  50. package/scripts/ui-demo-test.js +170 -0
  51. package/scripts/ui-prototype-execution-runtime-test.js +1 -1
  52. package/scripts/ui-prototype-native-test.js +25 -3
  53. package/skills/i3-enterprise-sop/SKILL.md +173 -0
  54. package/skills/i3-enterprise-sop/agents/openai.yaml +2 -0
  55. package/skills/i3-enterprise-sop/references/ad/assets-manifest.json +86 -0
  56. package/skills/i3-enterprise-sop/references/ad/prompts/01-generate.md +58 -0
  57. package/skills/i3-enterprise-sop/references/ad/prompts/02-review.md +54 -0
  58. package/skills/i3-enterprise-sop/references/ad/prompts/03-revise.md +54 -0
  59. package/skills/i3-enterprise-sop/references/ad/prompts/04-recheck.md +54 -0
  60. package/skills/i3-enterprise-sop/references/ad/readme.md +70 -0
  61. package/skills/i3-enterprise-sop/references/ad/templates/ad.md +337 -0
  62. package/skills/i3-enterprise-sop/references/assets-manifest.json +230 -0
  63. package/skills/i3-enterprise-sop/references/brd/assets-manifest.json +83 -0
  64. package/skills/i3-enterprise-sop/references/brd/prompts/01-generate.md +51 -0
  65. package/skills/i3-enterprise-sop/references/brd/prompts/02-review.md +47 -0
  66. package/skills/i3-enterprise-sop/references/brd/prompts/03-revise.md +47 -0
  67. package/skills/i3-enterprise-sop/references/brd/prompts/04-recheck.md +47 -0
  68. package/skills/i3-enterprise-sop/references/brd/readme.md +50 -0
  69. package/skills/i3-enterprise-sop/references/brd/templates/brd.md +169 -0
  70. package/skills/i3-enterprise-sop/references/codebuddy-project-guide.md +34 -0
  71. package/skills/i3-enterprise-sop/references/controlled-handoff.md +41 -0
  72. package/skills/i3-enterprise-sop/references/controlled_handoff.py +379 -0
  73. package/skills/i3-enterprise-sop/references/engineering-skeleton/adoption.md +200 -0
  74. package/skills/i3-enterprise-sop/references/engineering-skeleton/catalog.json +17 -0
  75. package/skills/i3-enterprise-sop/references/engineering-skeleton/directory-standard.md +119 -0
  76. package/skills/i3-enterprise-sop/references/engineering-skeleton/readme.md +52 -0
  77. package/skills/i3-enterprise-sop/references/handoff-contract.md +196 -0
  78. package/skills/i3-enterprise-sop/references/handoff.py +277 -0
  79. package/skills/i3-enterprise-sop/references/lifecycle-contract.md +91 -0
  80. package/skills/i3-enterprise-sop/references/plan-handoff.md +73 -0
  81. package/skills/i3-enterprise-sop/references/prd/assets-manifest.json +109 -0
  82. package/skills/i3-enterprise-sop/references/prd/prompts/01-generate.md +64 -0
  83. package/skills/i3-enterprise-sop/references/prd/prompts/02-review.md +49 -0
  84. package/skills/i3-enterprise-sop/references/prd/prompts/03-revise.md +48 -0
  85. package/skills/i3-enterprise-sop/references/prd/prompts/04-recheck.md +47 -0
  86. package/skills/i3-enterprise-sop/references/prd/readme.md +137 -0
  87. package/skills/i3-enterprise-sop/references/prd/template-contracts.md +39 -0
  88. package/skills/i3-enterprise-sop/references/prd/templates/ad.md +17 -0
  89. package/skills/i3-enterprise-sop/references/prd/templates/prd.md +257 -0
  90. package/skills/i3-enterprise-sop/references/readme.md +167 -0
  91. package/skills/i3-enterprise-sop/references/recovery-contract.md +65 -0
  92. package/skills/i3-enterprise-sop/references/review-handoff.md +105 -0
  93. package/skills/i3-enterprise-sop/references/selection-handoff.md +55 -0
  94. package/skills/i3-enterprise-sop/references/selection_handoff.py +225 -0
  95. package/skills/i3-enterprise-sop/references/stages.json +271 -0
  96. package/skills/i3-enterprise-sop/references/technical-baseline/assets-manifest.json +84 -0
  97. package/skills/i3-enterprise-sop/references/technical-baseline/baselines/enterprise-application-technical-baseline-v0-0-4.md +380 -0
  98. package/skills/i3-enterprise-sop/references/technical-baseline/readme.md +132 -0
  99. package/skills/i3-enterprise-sop/references/technical-baseline/templates/technical-baseline.md +133 -0
  100. package/skills/i3-enterprise-sop/references/template-contracts.md +142 -0
  101. package/skills/i3-enterprise-sop/references/testcase/assets-manifest.json +91 -0
  102. package/skills/i3-enterprise-sop/references/testcase/prompts/01-generate.md +53 -0
  103. package/skills/i3-enterprise-sop/references/testcase/prompts/02-review.md +51 -0
  104. package/skills/i3-enterprise-sop/references/testcase/prompts/03-revise.md +49 -0
  105. package/skills/i3-enterprise-sop/references/testcase/prompts/04-recheck.md +51 -0
  106. package/skills/i3-enterprise-sop/references/testcase/readme.md +61 -0
  107. package/skills/i3-enterprise-sop/references/testcase/templates/testcase.md +269 -0
  108. package/skills/i3-enterprise-sop/references/verification/check_execution.py +185 -0
  109. package/skills/i3-enterprise-sop/references/verification/check_native_execution.py +282 -0
  110. package/skills/i3-enterprise-sop/references/verification/check_reads.py +348 -0
  111. package/skills/i3-enterprise-sop/references/verification/readme.md +149 -0
  112. package/skills/i3-enterprise-sop/references/verification/review-output.schema.json +155 -0
  113. package/skills/i3-enterprise-sop/references/verification/review_handoff.py +329 -0
  114. package/skills/i3-ui-demo/SKILL.md +234 -0
  115. package/skills/i3-ui-demo/assets/antdv-build/package-lock.json +3363 -0
  116. package/skills/i3-ui-demo/assets/antdv-build/package.json +28 -0
  117. package/skills/i3-ui-demo/assets/design-source.json +11 -0
  118. package/skills/i3-ui-demo/assets/host-targets.json +739 -0
  119. package/skills/i3-ui-demo/assets/official-files.json +76 -0
  120. package/skills/i3-ui-demo/assets/starter/index.html +11 -0
  121. package/skills/i3-ui-demo/assets/starter/package-lock.json +2299 -0
  122. package/skills/i3-ui-demo/assets/starter/package.json +28 -0
  123. package/skills/i3-ui-demo/assets/starter/provenance.json +14 -0
  124. package/skills/i3-ui-demo/assets/starter/public/prototype-config.json +22 -0
  125. package/skills/i3-ui-demo/assets/starter/src/App.vue +64 -0
  126. package/skills/i3-ui-demo/assets/starter/src/PrototypeShell.vue +59 -0
  127. package/skills/i3-ui-demo/assets/starter/src/config.ts +23 -0
  128. package/skills/i3-ui-demo/assets/starter/src/domain/presentation.ts +30 -0
  129. package/skills/i3-ui-demo/assets/starter/src/domain/theme.ts +25 -0
  130. package/skills/i3-ui-demo/assets/starter/src/main.ts +18 -0
  131. package/skills/i3-ui-demo/assets/starter/src/style.css +26 -0
  132. package/skills/i3-ui-demo/assets/starter/tests/presentation.test.ts +23 -0
  133. package/skills/i3-ui-demo/assets/starter/tests/theme.test.ts +26 -0
  134. package/skills/i3-ui-demo/assets/starter/tsconfig.json +15 -0
  135. package/skills/i3-ui-demo/assets/starter/vite.config.ts +4 -0
  136. package/skills/i3-ui-demo/assets/templates/enterprise-admin/capability-definition.json +1395 -0
  137. package/skills/i3-ui-demo/assets/templates/enterprise-admin/component-inventory.json +707 -0
  138. package/skills/i3-ui-demo/assets/templates/enterprise-admin/design-system.md +26 -0
  139. package/skills/i3-ui-demo/assets/templates/enterprise-admin/generation.json +49 -0
  140. package/skills/i3-ui-demo/assets/templates/enterprise-admin/index.html +534 -0
  141. package/skills/i3-ui-demo/assets/templates/enterprise-admin/manifest.json +9 -0
  142. package/skills/i3-ui-demo/assets/templates/enterprise-admin/offline-build.json +265 -0
  143. package/skills/i3-ui-demo/assets/templates/enterprise-admin/offline.js +8888 -0
  144. package/skills/i3-ui-demo/assets/templates/enterprise-admin/origin.json +344 -0
  145. package/skills/i3-ui-demo/assets/templates/enterprise-admin/preset.json +928 -0
  146. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/app.js +22 -0
  147. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/assets/empty.svg +1 -0
  148. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/assets/reference-styles.json +1 -0
  149. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/assets/result-403.svg +1 -0
  150. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/assets/result-404.svg +1 -0
  151. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/assets-manifest.json +334 -0
  152. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/baseline.json +173 -0
  153. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/conversion.md +30 -0
  154. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/credits.md +17 -0
  155. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/design-tokens.json +881 -0
  156. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/index.html +28 -0
  157. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/licenses/@qin-ui-antdv-next-pro.txt +9 -0
  158. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/licenses/ant-design-icons.txt +22 -0
  159. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/licenses/antdv-next.txt +21 -0
  160. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/package.json +12 -0
  161. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/browser-routes.json +298 -0
  162. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/coverage.json +180 -0
  163. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/integrity.json +13 -0
  164. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/keyboard.json +11 -0
  165. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/responsive.json +125 -0
  166. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/review.md +51 -0
  167. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/rules.log +150 -0
  168. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-html.png +0 -0
  169. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-original.png +0 -0
  170. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-html.png +0 -0
  171. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-original.png +0 -0
  172. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/screenshots/models-html.png +0 -0
  173. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/screenshots/models-original.png +0 -0
  174. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-html.png +0 -0
  175. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-original.png +0 -0
  176. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/selection.json +9 -0
  177. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/qa/visual-comparison.json +342 -0
  178. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/readme.md +73 -0
  179. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/reference.md +59 -0
  180. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/routes.json +178 -0
  181. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/runtime/controls.js +99 -0
  182. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/runtime/dialogs.js +54 -0
  183. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/runtime/dom.js +264 -0
  184. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/runtime/forms.js +47 -0
  185. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/runtime/icons.js +41 -0
  186. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/runtime/layout.js +47 -0
  187. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/runtime/router.js +63 -0
  188. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/runtime/state.js +90 -0
  189. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/runtime/table.js +41 -0
  190. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/runtime/widgets.js +8 -0
  191. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.html +3 -0
  192. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.js +36 -0
  193. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.html +2 -0
  194. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.js +51 -0
  195. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.html +3 -0
  196. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.js +48 -0
  197. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/CheckResults.html +2 -0
  198. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/CheckResults.js +6 -0
  199. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.html +2 -0
  200. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.js +13 -0
  201. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/data.js +24 -0
  202. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/domain.js +32 -0
  203. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/registry.js +25 -0
  204. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/agents/store.js +85 -0
  205. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentClose.html +2 -0
  206. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentClose.js +17 -0
  207. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.html +2 -0
  208. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.js +66 -0
  209. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.html +3 -0
  210. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.js +38 -0
  211. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.html +2 -0
  212. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.js +66 -0
  213. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.html +2 -0
  214. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.js +5 -0
  215. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.html +2 -0
  216. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.js +12 -0
  217. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.html +2 -0
  218. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.js +11 -0
  219. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentList.html +2 -0
  220. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentList.js +116 -0
  221. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.html +2 -0
  222. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.js +32 -0
  223. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.html +2 -0
  224. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.js +49 -0
  225. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.html +2 -0
  226. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.js +10 -0
  227. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.html +2 -0
  228. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.js +77 -0
  229. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/data.js +60 -0
  230. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/domain.js +105 -0
  231. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/intents/store.js +212 -0
  232. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/AuditPanel.html +2 -0
  233. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/AuditPanel.js +18 -0
  234. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelDetail.html +2 -0
  235. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelDetail.js +23 -0
  236. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelEditor.html +2 -0
  237. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelEditor.js +78 -0
  238. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelGrant.html +2 -0
  239. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelGrant.js +55 -0
  240. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelReferences.html +2 -0
  241. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelReferences.js +26 -0
  242. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelRelease.html +2 -0
  243. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelRelease.js +38 -0
  244. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelStatus.html +2 -0
  245. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelStatus.js +7 -0
  246. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelTable.html +2 -0
  247. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelTable.js +72 -0
  248. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelTester.html +2 -0
  249. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelTester.js +46 -0
  250. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelsPage.html +2 -0
  251. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/ModelsPage.js +52 -0
  252. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/RowActions.html +2 -0
  253. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/RowActions.js +19 -0
  254. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/UsagePanel.html +2 -0
  255. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/UsagePanel.js +30 -0
  256. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/data.js +48 -0
  257. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/domain.js +39 -0
  258. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/models/store.js +129 -0
  259. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.html +4 -0
  260. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.js +21 -0
  261. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/IntentSource.html +2 -0
  262. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/IntentSource.js +8 -0
  263. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.html +2 -0
  264. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.js +37 -0
  265. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.html +2 -0
  266. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.js +10 -0
  267. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.html +2 -0
  268. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.js +37 -0
  269. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.html +2 -0
  270. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.js +49 -0
  271. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/RunDetail.html +4 -0
  272. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/RunDetail.js +22 -0
  273. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.html +2 -0
  274. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.js +9 -0
  275. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/commands.js +82 -0
  276. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/examples.js +47 -0
  277. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/model.js +61 -0
  278. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/repair.js +68 -0
  279. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/store.js +55 -0
  280. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/types.js +1 -0
  281. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/operations/workbench.js +18 -0
  282. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.html +3 -0
  283. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.js +28 -0
  284. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.html +2 -0
  285. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.js +18 -0
  286. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.html +2 -0
  287. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.js +31 -0
  288. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.html +2 -0
  289. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.js +27 -0
  290. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.html +2 -0
  291. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.js +16 -0
  292. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.html +2 -0
  293. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.js +43 -0
  294. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.html +4 -0
  295. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.js +34 -0
  296. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.html +2 -0
  297. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.js +30 -0
  298. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.html +3 -0
  299. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.js +67 -0
  300. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.html +2 -0
  301. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.js +41 -0
  302. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.html +2 -0
  303. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.js +31 -0
  304. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.html +2 -0
  305. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.js +26 -0
  306. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.html +2 -0
  307. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.js +70 -0
  308. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/data.js +8 -0
  309. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/domain.js +62 -0
  310. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/management.js +36 -0
  311. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/managementStore.js +49 -0
  312. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/pbc/store.js +132 -0
  313. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/AdminList.html +2 -0
  314. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/AdminList.js +38 -0
  315. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.html +2 -0
  316. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.js +11 -0
  317. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.html +2 -0
  318. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.js +45 -0
  319. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.html +2 -0
  320. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.js +54 -0
  321. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.html +3 -0
  322. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.js +27 -0
  323. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.html +2 -0
  324. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.js +12 -0
  325. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.html +2 -0
  326. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.js +45 -0
  327. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.html +3 -0
  328. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.js +38 -0
  329. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/domain.js +61 -0
  330. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/state.js +51 -0
  331. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/permissions/store.js +116 -0
  332. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.html +2 -0
  333. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.js +45 -0
  334. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.html +4 -0
  335. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.js +30 -0
  336. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.html +2 -0
  337. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.js +67 -0
  338. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.html +2 -0
  339. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.js +5 -0
  340. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.html +4 -0
  341. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.js +60 -0
  342. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/commands.js +157 -0
  343. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/model.js +136 -0
  344. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/releases/store.js +76 -0
  345. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.html +3 -0
  346. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.js +26 -0
  347. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.html +2 -0
  348. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.js +14 -0
  349. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.html +2 -0
  350. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.js +113 -0
  351. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.html +3 -0
  352. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.js +62 -0
  353. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/reviews/commands.js +97 -0
  354. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/reviews/model.js +147 -0
  355. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/reviews/store.js +13 -0
  356. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.html +2 -0
  357. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.js +9 -0
  358. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.html +2 -0
  359. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.js +8 -0
  360. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.html +2 -0
  361. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.js +37 -0
  362. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/ListMore.html +2 -0
  363. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/ListMore.js +8 -0
  364. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.html +2 -0
  365. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.js +17 -0
  366. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/columns.js +32 -0
  367. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/deliveryGuide.js +49 -0
  368. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/deliveryView.js +12 -0
  369. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/listBatch.js +15 -0
  370. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/listSelection.js +37 -0
  371. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/policy.js +68 -0
  372. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shared/session.js +44 -0
  373. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.html +2 -0
  374. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.js +25 -0
  375. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.html +2 -0
  376. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.js +53 -0
  377. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.html +10 -0
  378. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.js +30 -0
  379. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/ScopePage.html +2 -0
  380. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/ScopePage.js +10 -0
  381. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.html +2 -0
  382. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.js +9 -0
  383. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/confirmation.js +3 -0
  384. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/shell/navigation.js +19 -0
  385. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.html +2 -0
  386. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.js +8 -0
  387. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.html +2 -0
  388. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.js +32 -0
  389. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.html +2 -0
  390. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.js +15 -0
  391. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.html +2 -0
  392. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.js +11 -0
  393. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecReview.html +2 -0
  394. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecReview.js +57 -0
  395. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.html +2 -0
  396. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.js +37 -0
  397. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/data.js +20 -0
  398. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/domain.js +55 -0
  399. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/specs/store.js +151 -0
  400. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.html +3 -0
  401. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.js +18 -0
  402. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.html +2 -0
  403. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.js +40 -0
  404. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.html +2 -0
  405. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.js +51 -0
  406. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.html +2 -0
  407. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.js +9 -0
  408. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.html +5 -0
  409. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.js +48 -0
  410. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/domain.js +204 -0
  411. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/exampleSource.js +22 -0
  412. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/registry.js +135 -0
  413. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/tasks/store.js +137 -0
  414. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.html +3 -0
  415. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.js +36 -0
  416. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workbench/model.js +56 -0
  417. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workbench/store.js +15 -0
  418. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.html +2 -0
  419. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.js +27 -0
  420. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.html +4 -0
  421. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.js +31 -0
  422. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.html +2 -0
  423. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.js +68 -0
  424. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.html +5 -0
  425. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.js +55 -0
  426. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/data.js +16 -0
  427. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/domain.js +83 -0
  428. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/registry.js +18 -0
  429. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/src/workflows/store.js +61 -0
  430. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/admin.css +60 -0
  431. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/agents.css +46 -0
  432. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/antdv.css +295 -0
  433. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/app.css +102 -0
  434. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/delivery.css +4 -0
  435. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/intents.css +37 -0
  436. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/native.css +22 -0
  437. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/operations.css +2 -0
  438. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/pbc.css +3 -0
  439. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/permissions.css +22 -0
  440. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/pro.css +1 -0
  441. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/releases.css +4 -0
  442. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/reset.css +246 -0
  443. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/reviews.css +8 -0
  444. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/tasks.css +6 -0
  445. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/tokens.css +15 -0
  446. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/workbench.css +61 -0
  447. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/styles/workflows.css +1 -0
  448. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/admin-rules.test.js +96 -0
  449. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/agents.test.js +14 -0
  450. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/intent-state.test.js +37 -0
  451. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/list-batch.test.js +44 -0
  452. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/operation-fixtures.js +19 -0
  453. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/operation-repair.test.js +14 -0
  454. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/operations.test.js +25 -0
  455. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/pbc-management.test.js +17 -0
  456. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/pbc-state.test.js +24 -0
  457. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/permission-config.test.js +23 -0
  458. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/permissions.test.js +24 -0
  459. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/releases.test.js +50 -0
  460. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/reviews.test.js +36 -0
  461. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/runtime-forms-router.test.js +28 -0
  462. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/runtime-state.test.js +42 -0
  463. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/runtime-stores.test.js +16 -0
  464. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/spec-state.test.js +11 -0
  465. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/tasks.test.js +27 -0
  466. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/workbench.test.js +34 -0
  467. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tests/workflows.test.js +16 -0
  468. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tools/convert.mjs +168 -0
  469. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tools/serve.mjs +7 -0
  470. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tools/styles.mjs +11 -0
  471. package/skills/i3-ui-demo/assets/templates/enterprise-admin/reference/tools/verify.mjs +24 -0
  472. package/skills/i3-ui-demo/assets/templates/enterprise-admin/serve.cjs +16 -0
  473. package/skills/i3-ui-demo/assets/templates/enterprise-admin/template-inventory.json +28791 -0
  474. package/skills/i3-ui-demo/assets/templates/enterprise-admin/template.json +9 -0
  475. package/skills/i3-ui-demo/assets/templates/enterprise-admin/usability.css +44 -0
  476. package/skills/i3-ui-demo/assets/templates.json +10 -0
  477. package/skills/i3-ui-demo/assets/versions.json +20 -0
  478. package/skills/i3-ui-demo/readme.md +350 -0
  479. package/skills/i3-ui-demo/references/browser.md +71 -0
  480. package/skills/i3-ui-demo/references/dependencies.md +67 -0
  481. package/skills/i3-ui-demo/references/resources.md +142 -0
  482. package/skills/i3-ui-demo/scripts/dependencies.cjs +364 -0
  483. package/skills/i3-ui-demo/scripts/design-install.cjs +105 -0
  484. package/skills/i3-ui-demo/scripts/design-provider.cjs +57 -0
  485. package/skills/i3-ui-demo/scripts/locations.cjs +52 -0
  486. package/skills/i3-ui-demo/scripts/mcp.cjs +112 -0
  487. package/skills/i3-ui-demo/scripts/provider-discovery.cjs +131 -0
  488. package/skills/i3-ui-demo/scripts/resources.cjs +283 -0
  489. package/skills/i3-ui-prototype/SKILL.md +1 -1
  490. package/skills/i3-ui-prototype/references/execution-evidence.md +12 -56
  491. package/skills/i3-ui-prototype/scripts/codebuddy-registration.cjs +1 -1
  492. package/skills/i3-ui-prototype/scripts/execution-runtime.cjs +5 -2
  493. package/skills/i3-ui-prototype/scripts/hosts/codebuddy.cjs +3 -2
  494. package/skills/i3-ui-prototype/scripts/native-delivery.cjs +2 -2
  495. package/skills/i3-ui-prototype/scripts/prototype-hooks.cjs +23 -20
  496. package/docs/ui-prototype-native/MAIN-SESSION-REPORT.md +0 -66
  497. package/docs/ui-prototype-native/USAGE.md +0 -93
@@ -0,0 +1,170 @@
1
+ const test = require('node:test');
2
+ const assert = require('node:assert/strict');
3
+ const fs = require('node:fs');
4
+ const path = require('node:path');
5
+ const os = require('node:os');
6
+ const { spawn } = require('node:child_process');
7
+ const { runInNewContext } = require('node:vm');
8
+ const installation = path.join(__dirname, 'lib/installation.js');
9
+ const skills = fs.existsSync(installation) ? require(installation).loadInstallation().skillsDirectory : path.resolve(__dirname, '../skills');
10
+ const resources = require(path.join(skills, 'i3-ui-demo/scripts/resources.cjs'));
11
+
12
+ test('i3-ui-demo waits for a submitted template choice and accepts submitted empty as default', () => {
13
+ assert.equal(resources.selectTemplates({ submitted: false }).status, 'needs-selection');
14
+ assert.deepEqual(resources.selectTemplates({ submitted: true, values: [] }).selected, ['enterprise-admin']);
15
+ assert.deepEqual(resources.selectTemplates({ submitted: true, values: ['1', 'enterprise-admin'] }).selected, ['enterprise-admin']);
16
+ });
17
+
18
+ test('i3-ui-demo never substitutes unavailable templates or drops one from a multiple selection', () => {
19
+ for (const values of [['2'], ['3'], ['4'], ['1', '2'], ['unknown']]) {
20
+ assert.throws(() => resources.selectTemplates({ submitted: true, values }), /unavailable|Unknown/);
21
+ }
22
+ });
23
+
24
+ test('i3-ui-demo resolves its own enterprise template and design rules', () => {
25
+ const result = resources.resolveResources();
26
+ assert.equal(result.skillRoot, resources.root);
27
+ assert.equal(result.templateRoot, path.join(resources.root, 'assets/templates/enterprise-admin'));
28
+ assert.equal(result.template.id, 'enterprise-admin');
29
+ assert.ok(fs.statSync(result.generation).isFile());
30
+ assert.ok(fs.statSync(result.designRules).isFile());
31
+ assert.ok(fs.statSync(path.join(result.templateRoot, 'reference/src/shell/ConsoleShell.html')).isFile());
32
+ const generation = JSON.parse(fs.readFileSync(result.generation, 'utf8'));
33
+ assert.ok(generation.choices.layout.sidebar);
34
+ assert.ok(generation.choices.style.business);
35
+ assert.equal(result.versions.component.version, '1.6.0');
36
+ assert.equal(result.versions.design.version, '2.15.0');
37
+ });
38
+
39
+ test('i3-ui-demo template resolution works without another prototype skill and never falls back to its template', t => {
40
+ const temporary = fs.realpathSync(fs.mkdtempSync(path.join(os.tmpdir(), 'ui-demo-owned-template-')));
41
+ t.after(() => fs.rmSync(temporary, { recursive: true, force: true }));
42
+ const own = path.join(temporary, 'skills', path.basename(resources.root));
43
+ fs.cpSync(resources.root, own, { recursive: true });
44
+ const isolated = require(path.join(own, 'scripts/resources.cjs'));
45
+ assert.equal(isolated.resolveResources().templateRoot, path.join(own, 'assets/templates/enterprise-admin'));
46
+ const dependencies = require(path.join(own, 'scripts/dependencies.cjs'));
47
+ const detection = dependencies.check({ project: temporary, home: path.join(temporary, 'home'), host: 'codebuddy', env: {} });
48
+ assert.equal(detection.ready, false);
49
+ assert.equal(detection.design.availability, 'missing');
50
+ assert.equal(detection.official.availability, 'missing');
51
+ const ownGeneration = path.join(own, 'assets/templates/enterprise-admin/generation.json');
52
+ const foreign = path.join(temporary, 'skills', path.basename(resources.root).startsWith('i3-') ? 'i3-ui-prototype' : 'i3-ui-prototype', 'assets/templates/enterprise-admin');
53
+ fs.cpSync(path.dirname(ownGeneration), foreign, { recursive: true });
54
+ fs.unlinkSync(ownGeneration);
55
+ assert.throws(() => isolated.resolveResources(), /missing/i);
56
+ });
57
+
58
+ test('i3-ui-demo owns one complete capability contract including native mappings and lifecycle checks', () => {
59
+ const definition = JSON.parse(fs.readFileSync(path.join(resources.root, 'assets/templates/enterprise-admin/capability-definition.json'), 'utf8'));
60
+ assert.equal(definition.schemaVersion, 2);
61
+ assert.equal(Object.keys(definition.capabilities).length, 26);
62
+ assert.equal(Object.keys(definition.patterns).length, 10);
63
+ for (const capability of Object.values(definition.capabilities)) {
64
+ assert.ok(capability.implementation.components.length, capability.id);
65
+ assert.ok(capability.scenarios.every(scenario => scenario.expected && scenario.id), capability.id);
66
+ const native = capability.nativeChecks || [];
67
+ assert.equal(new Set(native.map(check => check.id)).size, native.length, capability.id);
68
+ }
69
+ assert.equal(definition.capabilities.pagination.defaults.mode, 'adjustable');
70
+ assert.ok(definition.capabilities.feedback.parameters.states.includesByMode['management-list'].includes('empty'));
71
+ assert.ok(definition.capabilities.dialog.nativeChecks.some(check => check.id === 'mask-blur'));
72
+ assert.ok(definition.capabilities.theme.scenarios.some(check => check.id === 'accessibility'));
73
+ });
74
+
75
+ test('default native presentation matches the owned template palette and dimensions', () => {
76
+ const source = file => fs.readFileSync(path.join(resources.root, 'assets/starter/src/domain', file), 'utf8');
77
+ const themes = source('theme.ts').match(/export const THEME_PRESETS = (\{[\s\S]*?\n\}) as const/);
78
+ const recipe = source('presentation.ts').match(/export function presentationTokens\(value: Presentation\) \{([\s\S]*?)\n\}/);
79
+ assert.ok(themes && recipe, 'The native theme and presentation definitions must be readable');
80
+ // Installer checks support Node 20; evaluate the actual JS expressions without importing TS.
81
+ const body = recipe[1].replace(" as 'small' | 'middle' | 'large'", '');
82
+ const actual = runInNewContext(`const presets = ${themes[1]}; function tokens(value) {${body}};
83
+ ({light:presets.light,presentation:tokens({layout:'sidebar',style:'business',density:'standard'})});`, {}, { timeout: 1000 });
84
+ const profile = resources.resolveResources().visual;
85
+ assert.equal(actual.light.primary, profile.nativeTokens.colorPrimary);
86
+ assert.equal(actual.light.bg, profile.nativeTokens.colorBgLayout);
87
+ assert.equal(actual.light.text, profile.nativeTokens.colorText);
88
+ assert.equal(actual.light.border, profile.nativeTokens.colorBorder);
89
+ assert.equal(actual.light.panelBorder, profile.nativeTokens.colorBorderSecondary);
90
+ assert.equal(actual.presentation.borderRadius, profile.nativeTokens.borderRadius);
91
+ assert.equal(actual.presentation.panelRadius, profile.panelRadius);
92
+ assert.equal(actual.presentation.spacing, profile.spacing);
93
+ });
94
+
95
+ test('reference mappings reject unrelated capabilities and create separate node scenarios', () => {
96
+ const scope = { pages: [{ id: 'assets', title: '资产', referencePage: 'models-page', regions: [{ id: 'list', pattern: 'management-list',
97
+ fields: [{ id: 'name', label: '名称', requirementId: 'R1', type: 'text' }],
98
+ actions: [{ id: 'query', label: '查询', requirementId: 'R1', target: 'page', outcome: '展示匹配资产' }] }] }],
99
+ requirements: [{ id: 'R1', text: '查询资产', pages: ['assets'], source: { type: 'user', reference: 'request', statement: '查询资产' } }] };
100
+ const element = resources.readPage('models-page').elements.find(item => item.component === 'ProTable');
101
+ const decision = { pageId: 'assets', nodeIds: [element.id], decision: 'mapped', reason: '对应资产列表', requirementId: 'R1', bindingIds: ['assets/list/collection'] };
102
+ const mapped = resources.plan({ ...scope, generation: { referenceDecisions: [decision] } });
103
+ assert.ok(mapped.scenarios.some(item => item.referenceNodeId === element.id));
104
+ assert.ok(!mapped.pendingReferenceElements.some(item => item.pageId === 'assets' && item.id === element.id));
105
+ assert.throws(() => resources.plan({ ...scope, generation: { referenceDecisions: [{ ...decision, bindingIds: ['app-shell/shell/theme'] }] } }), /capabilit|mapping/i);
106
+ assert.throws(() => resources.plan({ ...scope, generation: { decisions: [{ pageId: 'assets', capabilityId: 'pagination', decision: 'not-applicable', reason: '省略', requirementId: 'R1' }] } }), /Required/);
107
+ assert.equal(new Set(mapped.scenarios.map(item => item.id)).size, mapped.scenarios.length);
108
+ assert.throws(() => resources.plan({ ...scope, pages: [{ ...scope.pages[0], regions: [{ id: 'form', pattern: 'form-page', parameters: { edit: { presentation: 'drawer' } } }] }] }), /presentation/i);
109
+ });
110
+
111
+ test('i3-ui-demo reads selected page structure, behavior and styles without an installed prototype skill', t => {
112
+ const temporary = fs.realpathSync(fs.mkdtempSync(path.join(os.tmpdir(), 'ui-demo-page-')));
113
+ t.after(() => fs.rmSync(temporary, { recursive: true, force: true }));
114
+ const own = path.join(temporary, 'skills', path.basename(resources.root));
115
+ fs.cpSync(resources.root, own, { recursive: true, filter: file => path.basename(file) !== '.DS_Store' });
116
+ const isolated = require(path.join(own, 'scripts/resources.cjs'));
117
+ const page = isolated.readPage('models-page');
118
+ assert.ok(page.fragments.some(fragment => fragment.file.endsWith('ModelsPage.html')));
119
+ assert.ok(page.behaviorFiles.some(file => file.endsWith('ModelsPage.js')));
120
+ assert.ok(page.behaviorFiles.some(file => file.endsWith('/models/store.js')));
121
+ assert.ok(page.styleFiles.includes('reference/styles/tokens.css'));
122
+ assert.ok(page.elements.length > 0);
123
+ assert.ok(page.elements.some(element => element.events.length > 0));
124
+ assert.ok(!JSON.stringify(page).includes('i3-ui-prototype'));
125
+ assert.equal(isolated.readCapability('pagination').defaults.minimumTestPages, 3);
126
+ });
127
+
128
+ test('i3-ui-demo maps required page capabilities and keeps reference decisions pending until accounted for', () => {
129
+ const scope = { title: '资产管理', pages: [{ id: 'assets', title: '资产台账', referencePage: 'models-page',
130
+ regions: [{ id: 'list', pattern: 'management-list' }] }],
131
+ requirements: [{ id: 'ASSET-01', text: '资产查询、分页和批量处理', pages: ['assets'],
132
+ source: { type: 'user', reference: 'request', statement: '创建资产管理列表' } }] };
133
+ const plan = resources.plan(scope);
134
+ assert.equal(plan.status, 'pending-implementation');
135
+ assert.ok(plan.bindings.some(binding => binding.id === 'assets/list/columns'));
136
+ assert.ok(plan.bindings.some(binding => binding.id === 'app-shell/shell/theme'));
137
+ assert.ok(plan.pendingReferenceElements.length > 0);
138
+ assert.ok(plan.scenarios.some(scenario => scenario.bindingId === 'assets/list/pagination'));
139
+ assert.throws(() => resources.plan({ ...scope, pages: [{ ...scope.pages[0], referencePage: 'missing' }] }), /reference|page/i);
140
+ assert.throws(() => resources.plan({ ...scope, pages: [{ ...scope.pages[0], regions: [{ id: 'list', pattern: 'management-list',
141
+ parameters: { pagination: { mode: 'fixed' } } }] }] }), /fixedPageSize/);
142
+ });
143
+
144
+ test('i3-ui-demo rejects changed or missing owned capability and style resources', t => {
145
+ const temporary = fs.realpathSync(fs.mkdtempSync(path.join(os.tmpdir(), 'ui-demo-integrity-')));
146
+ t.after(() => fs.rmSync(temporary, { recursive: true, force: true }));
147
+ const own = path.join(temporary, 'skills', path.basename(resources.root));
148
+ fs.cpSync(resources.root, own, { recursive: true, filter: file => path.basename(file) !== '.DS_Store' });
149
+ const isolated = require(path.join(own, 'scripts/resources.cjs'));
150
+ const css = path.join(own, 'assets/templates/enterprise-admin/reference/styles/tokens.css');
151
+ fs.appendFileSync(css, '\n:root { --easel-primary: red; }\n');
152
+ assert.throws(() => isolated.resolveResources(), /integrity|changed|digest/i);
153
+ });
154
+
155
+ test('owned template preview serves its entry, offline runtime and styles without an instance app folder', { timeout: 10000 }, async t => {
156
+ const child = spawn(process.execPath, [path.join(resources.root, 'assets/templates/enterprise-admin/serve.cjs'), '0'], { stdio: ['ignore','pipe','pipe'] });
157
+ t.after(() => child.kill());
158
+ const url = await new Promise((resolve, reject) => {
159
+ child.on('error', reject);
160
+ child.on('exit', code => reject(new Error(`Preview exited: ${code}`)));
161
+ child.stdout.on('data', chunk => { const match = String(chunk).match(/http:\/\/127\.0\.0\.1:\d+\//); if (match) resolve(match[0]); });
162
+ });
163
+ const response = await fetch(url);
164
+ assert.equal(response.status, 200);
165
+ assert.match(await response.text(), /src="offline\.js"/);
166
+ for (const file of ['offline.js','reference/styles/tokens.css']) {
167
+ const asset = await fetch(new URL(file, url));
168
+ assert.equal(asset.status, 200, file);
169
+ }
170
+ });
@@ -10,7 +10,7 @@ test('new execution inputs freeze complete scenario expectations without changin
10
10
  const file=path.join(options.project,'assertions.json');fs.writeFileSync(file,JSON.stringify(assertions));
11
11
  const fresh=lib.createPrototype({...options,id:'strict',host:'codebuddy',executionPolicy:'codebuddy-ab-v1',executionAssertions:file});
12
12
  assert.equal(X.policy(fresh.directory).id,'codebuddy-ab-v1');assert.equal(lib.inspect(fresh.directory).status,'passed');
13
- assert.equal(X.check(fresh.directory,'delivery',lib).status,'failed');assert.throws(()=>X.requireStage(fresh.directory,'implementation',lib),/binding|execution-begin/);
13
+ assert.equal(X.check(fresh.directory,'delivery',lib).status,'failed');const stage=X.requireStage(fresh.directory,'implementation',lib);assert.equal(stage.status,'not-required');assert.equal(stage.auditHook,'retired');assert.equal(stage.invocationVerification,'unverified');
14
14
  assert.deepEqual(lib.manifest(legacy.directory),before);assert.deepEqual(fs.readdirSync(options.project).sort(),['assertions.json','prototypes','scope.json']);
15
15
  });
16
16
  test('missing or incomplete fixed facts cannot silently create a strict artifact or affect legacy state',t=>{
@@ -133,9 +133,16 @@ function write(directory, relative, value) {
133
133
  const file=path.join(directory,relative); fs.mkdirSync(path.dirname(file),{recursive:true});
134
134
  fs.writeFileSync(file,Buffer.isBuffer(value)||typeof value==='string'?value:JSON.stringify(value));
135
135
  }
136
- function candidate(t) {
136
+ function candidate(t,extra={}) {
137
137
  const root=project(t); const template=legacyFixture.prepareTemplate(require(path.join(skillsDirectory,'i3-ui-prototype/scripts/template-contract.cjs')), {project:root});
138
- return lib.createPrototype({project:root,id:'devices',templateRoot:template.directory,expertMode:'template'}).directory;
138
+ const options={project:root,id:'devices',templateRoot:template.directory,expertMode:'template',...extra};
139
+ if(options.executionPolicy){
140
+ write(root,'scope.json',{schemaVersion:1,requirements:[{id:'AUDIT-RETIREMENT-1',text:'Synthetic fixed business coverage',source:{type:'prd',reference:'unit-fixture',statement:'Synthetic contract fixture, not browser acceptance'}}],exemptions:[],openQuestions:[]});options.scope=path.join(root,'scope.json');
141
+ const A=require(path.join(skillsDirectory,'i3-ui-prototype/scripts/execution-assertions.cjs'));
142
+ const assertions=A.template(options);for(const scenario of assertions.scenarios)scenario.checks=[{method:'evaluate_script',pointer:'/observed',operator:'equals',expected:true}];
143
+ write(root,'assertions.json',assertions);options.executionAssertions=path.join(root,'assertions.json');options.host='codebuddy';
144
+ }
145
+ return lib.createPrototype(options).directory;
139
146
  }
140
147
  function syntheticBuild(directory,{embedded=true}={}) {
141
148
  const current=lib.manifest(directory);
@@ -166,6 +173,21 @@ function syntheticReport(directory,build=syntheticBuild(directory)) {
166
173
  return {id:'synthetic-guard-fixture',status:'passed',candidateDigest:build.current.digest,revision:build.current.revision,buildId:build.buildId,buildDigest:build.buildDigest,executor:'unit-fixture',tool:'unit-fixture',source:'synthetic-unit-fixture',startedAt:'2026-10-17T00:00:00.000Z',completedAt:'2026-10-17T00:00:01.000Z',consoleErrors:[],journeys:[...acceptance.requiredScenarios,...acceptance.frameworkScenarios].map(id=>({id,status:'passed'})),screenshots:['qa/fixtures/a.png','qa/fixtures/b.png'],trace:'qa/fixtures/trace.zip',viewports:[1440,768],previewBaseURL,observedResources:Object.entries(build.files).map(([name,sha256])=>({path:name,url:new URL(name==='index.html'?'':name,previewBaseURL).href,status:200,sha256,resourceType:name==='index.html'?'document':name.endsWith('.js')?'script':name.endsWith('.css')?'stylesheet':'fetch'}))};
167
174
  }
168
175
 
176
+ for(const executionPolicy of ['buddy-ab-v2','codebuddy-ab-v1'])test(`${executionPolicy}: normal browser record and finalize need no retired Hook binding`,t=>{
177
+ const directory=candidate(t,{executionPolicy});
178
+ assert.equal(fs.existsSync(path.join(directory,'qa/execution-context.json')),false);
179
+ assert.throws(()=>lib.finalize(directory),/acceptance|verified|验收/i,'Retiring audit must not accept missing business evidence');
180
+ const report=syntheticReport(directory);lib.recordRun(directory,report);
181
+ const delivery=lib.finalize(directory);
182
+ assert.equal(delivery.status,'complete');assert.equal(delivery.invocationVerification,'unverified');assert.equal(delivery.checks.execution,undefined);
183
+ assert.equal(delivery.checks.devtoolsReview,'current');assert.equal(lib.state(directory).delivery.status,'current');
184
+ assert.equal(fs.existsSync(path.join(directory,'qa/execution-context.json')),false);
185
+ assert.equal(fs.existsSync(path.join(directory,'qa/execution-evidence.json')),false);
186
+ assert.equal(lib.state(directory).execution.auditHook,'retired');
187
+ const evidence=path.join(directory,'qa/fixtures/devtools-dom.txt');fs.appendFileSync(evidence,'edited');
188
+ assert.throws(()=>lib.finalize(directory),/DevTools review required/,'Stale browser evidence still blocks finalization');
189
+ });
190
+
169
191
  test('new policy blocks finalization and human baseline when DevTools review is missing or stale',t=>{
170
192
  const directory=candidate(t),report=syntheticReport(directory);lib.recordRun(directory,report);
171
193
  const current=lib.manifest(directory),file=path.join(directory,'qa/devtools-review.json'),valid=fs.readFileSync(file);
@@ -358,7 +380,7 @@ test('ordinary revise can start repair of broken user code without accepting cha
358
380
  });
359
381
 
360
382
  test('a failing real npm test prevents the build command and fixed build publication', t => {
361
- const directory=candidate(t),app=path.join(directory,'app'),file=path.join(app,'package.json');
383
+ const directory=candidate(t,{executionPolicy:'buddy-ab-v2'}),app=path.join(directory,'app'),file=path.join(app,'package.json');
362
384
  const pkg=JSON.parse(fs.readFileSync(file));
363
385
  pkg.scripts={typecheck:'node -e "process.exit(0)"',test:'node -e "process.exit(3)"',build:'node build-test.cjs'};
364
386
  fs.writeFileSync(file,JSON.stringify(pkg));
@@ -0,0 +1,173 @@
1
+ ---
2
+ name: i3-enterprise-sop
3
+ description: "组织显式选择的企业 SOP 文档与规划交接。适用于明确调用 i3-enterprise-sop 起草 BRD、PRD、AD、TestCase、制定 Plan 或传递选定资料;短命令先澄清缺口,再复用原版方法。"
4
+ # i3-description-source: "description: Organizes explicitly requested enterprise SOP documents and planning handoffs. Use when the user explicitly selects enterprise-sop for BRD, PRD, AD, TestCase, plan or reference handoff; short actions clarify missing facts before using the original method."
5
+ ---
6
+
7
+ <!-- i3:zh-CN:start -->
8
+ ## 中文交互与输出
9
+
10
+ 默认使用简体中文回复,包括追问、选项说明、阶段进度、分析、规格、计划、验收、代码审查与发布报告。只有用户明确要求其他语言时才切换;输入中出现英文术语、代码或引用不构成切换语言的要求。
11
+ 下文的工程步骤、审批要求、退出条件和工具约束完整有效。英文示例中的人类可读标题、说明和占位内容在实际输出时应译为中文;保留原有信息与验证标准,不删减方法。
12
+ Skill/Command/Agent 标识、文件路径、命令参数、代码/API 名称、工具调用参数、JSON 键/类型/枚举、机器状态、测试期望字面量及引用原文保持原样。生成文档正文用中文,SPEC.md、tasks/plan.md、tasks/todo.md、CONSTRAINTS.md 等约定路径不改名。
13
+ 严重程度按原规则判断,面向用户可写“严重(Critical)”“必须修复(Required)”“小问题(Nit)”“可选(Optional)”“建议考虑(Consider)”“仅供参考(FYI)”;High/Medium/Low、APPROVE/REQUEST CHANGES 和 GO/NO-GO 保留其原始语义与机器值。不得因翻译降低门槛,角色不能互相委派。
14
+
15
+ 适用说明:组织显式选择的企业 SOP 文档与规划交接。适用于明确调用 i3-enterprise-sop 起草 BRD、PRD、AD、TestCase、制定 Plan 或传递选定资料;短命令先澄清缺口,再复用原版方法。
16
+ <!-- i3:zh-CN:end -->
17
+
18
+ # 企业 SOP 单阶段作业与路径交接
19
+
20
+ ## Overview
21
+
22
+ 把本次明确的企业任务、项目采用模板和原专业方法组织为一次作业。`/i3-sop` 与直接调用本 Skill 共用以下规则:四阶段文档生成/修订必须使用原 Spec;显式 `plan` 组织选定的等效规格并使用原规划能力,交审后停轮。后续由用户按获准计划调用原 Build。支持路径清单与纯手动传递,不接管原生命周期。
23
+
24
+ ## When to Use
25
+
26
+ 只用于用户显式选择本 Skill 或明确委托的企业 SOP 作业。安装、发现 PRD、已有清单或模型推荐均不切换流程。用户明确使用标准流程时,不读企业资源,不建清单,继续其指定的原方法。原 using、Skill、命令和停点不改。
27
+
28
+ ## Process
29
+
30
+ ### 1. 确定一次任务
31
+
32
+ 入口接受 `brd`、`prd`、`ad`、`testcase`、`plan`、`review`、`status`,自然语言任务可省略;四阶段明确新建时用 generate,明确修订才用 revise。无参数只读引导并结束,列出以上动作;未知操作列有效动作后结束。`auto` 留在 3.1.0,不转交原 Build auto。显式操作和正文冲突时先澄清;只有动作唯一且确实委托作业的自然语言才可整理为对应动作。
33
+
34
+ 短命令先只读定位当前项目、项目规则、已采用材料和现有目标,不要求用户填写内部路径或参数。对象/任务不明时先澄清,不为问问题预加载全部阶段模板与所有主题;明确对象后再完成§2的本次必要读取。材料与有效决定唯一且充分时直接复用,不重复请求确认。缺少的关键业务事实不由默认值、模型推荐或旧聊天记忆代答。业务未明可先问业务事实,不能未经实际安装元数据核对就声称资料未安装;Glob未匹配隐藏目录不证明目录或资源不存在。
35
+
36
+ | 动作 | 缺少时只澄清本次必要事项 |
37
+ | --- | --- |
38
+ | brd | 业务能力、目标、对象和边界;不要求先有JSON,不按菜单/部门代划PBC |
39
+ | prd | BRD或等效业务依据、PBC/主题,新增主题还是修改既有主题;各PRD独立版本 |
40
+ | ad | 准确PRD及配套、实际技术规约/契约/骨架选择的缺口;优先已有规范,原型按需并行 |
41
+ | testcase | 准确PRD/AD、测试边界和关键预期/环境未知项;配套不一致先报告,不执行测试 |
42
+ | plan | 清单或手动方式、本次主题/明确组合、必要规格缺口和未完计划冲突,详见[规划交接](references/plan-handoff.md) |
43
+
44
+ `plan` 的范围明确后,JSON与手动路径先经过同一个读取准备环节,不提前分流到原规划。先按项目采用记录或下文真实安装清单定位所选资料根,不能从skills目录猜资料路径。首批完整读取原 `/i3-plan` 命令正文及该根的README.md、stages.json、template-contracts.md、handoff-contract.md、plan-handoff.md;必读资源名以索引planHandoff.requiredResourceReads为同一清单,不只读专用plan说明就继续。手动方式仅省去JSON解析/辅助调用,不豁免共用说明、项目规则或必要业务依据;未知自改组合仍读实际选定原件。
45
+
46
+ SOP准备环节的文件/目录定位使用Read、Glob、Grep,不以ls、find、mkdir等shell命令探测目录或试验权限。需要解析JSON时按当前宿主已许可的接口调用handoff.py;不要因Bash工具名称可见就认为任意命令已获准。原规划方法继续履行本次实际允许范围内的工具义务,不扩大权限。
47
+
48
+ 进入原规划前,核上述共用全文回执、原命令全文回执及准确业务/工程依据;相关代码之外,按实际技术栈定位并完整读取真实依赖/构建配置(Node项目例如package.json),不能只从AD或规范复制命令就声称工程配置已核。缺读/部分读/失败先补齐,未齐不加载原规划、不写plan/todo。再核身份与直接上游,最后取得原规划Skill成功回执,才可生成原产物。最终说明列实际读过的共用资料、工程配置、原命令路径和真实失败;只提名称、脚本已读或自称已遵守不代替模型读取。
49
+
50
+ AD声明的能力/主题身份与本次PRD或所选范围冲突,或直接上游路径/声明版本与本次准确PRD矛盾时,必须先停:不调用原规划,不创建、修改plan/todo,也不另写候选计划。即使正文看起来一致、模型判断只是头部笔误,也只报告原文差异、影响和建议,等待人工处理后重新核对;不修改业务稿或JSON。“可独立规划部分”仅适用于身份与上游已核一致后的非阻断缺口。PRD与AD独立版本不必同号,核对的是AD准确引用的PRD版本。
51
+
52
+ 业务澄清阶段尚未读取命名合同,不凭印象提供所谓默认文件名或首版版本;先问缺少的业务事实,之后按已采用规则或共用合同给准确输出约定。BRD梳理的是EBC业务范围,PBC由其识别和划分,不将二者混称。
53
+
54
+ 目标已有稿件时先分清新建/新版本、明确修订、恢复或只读查看,不把裸阶段名解释成覆盖。写前确定唯一输出与版本,沿用项目已采用命名;未知事实保留Q和影响,不为凑章节虚构。
55
+
56
+ 宿主有实际可用的结构化提问工具时使用简短问题和选项,允许用户自己说明;没有该工具、当前模式不能交互或工具不可用时,用普通会话提问并停轮等待。取消、无答复、预选、时间经过或含糊答复均不代替必要决定;等待期零项目写入,不先建占位稿、清单或采用记录。前四阶段把已有答复交原Spec,继续其真正需要的内容澄清,不能再做重复访谈或跳过原停点。plan则承接原规划的澄清,不重跑Spec。
57
+
58
+ 明确当前项目根、阶段/动作、工作范围、准确输入和唯一输出。多个清单或主题并存时先确定对象,不取目录最大版本。目录、命名及新项目默认见[共用合同](references/template-contracts.md)§1;既有项目位置不自动迁移。
59
+
60
+ 纯路径登记或交接准备不生成/修订业务文档,不调用 Plan、Build 或测试。新稿起草、现稿修订、采用选择、业务认可和工程执行分别依据实际任务。
61
+
62
+ 任务说明本次输出目标已有稿件、该目标写入中断、登记失败、重复执行或人工修改时,先按[最小恢复规则](references/recovery-contract.md)核现状,不把阶段名直接解释成重新 generate。只有上游 PRD 等输入已存在、目标 AD 尚未创建时,仍按明确的新建任务处理,不误判为现稿恢复。恢复默认只读评估;明确采用某份文档且允许登记时才改本次清单,明确委托修稿才另按原 Spec 执行。部分稿不自动续写或选用,已有 Plan 不因恢复改变。
63
+
64
+ 现稿需受控交接时采用[单次受控入口](references/controlled-handoff.md):调用方从本次采用记录整理准确路径,先运行 CodeBuddy 只读预检;外层核成功回执并确认本次准确选用委托后,才登记 selected;旧候选登记授权不构成选用委托。被此入口调用的只读会话只用 Read/Glob/Grep/Skill,不自行调用 shell、登记、原 Spec 或其他工程方法。缺读可在本次只读会话内补齐;拒绝、失败或选择冲突须列原因、推荐和可选操作,不能用后续成功抹去。入口不自动挂载普通会话,不改变标准流程或原版停点。
65
+
66
+ 明确要求改变同主题既有选用组合时,按[改选与影响预览](references/selection-handoff.md)处理:先只读核当前/目标 PRD、AD、已有用例/原型的直接上游及规约、契约、骨架、Plan/任务;展示准确差异、缺口、原因、推荐与选项。未列配套沿用旧引用但必须核绑定,不能将旧 AD 静默配给新 PRD;显式解除仅移除引用、保留文件。预览后取得该组准确路径的明确选择,才可使用受控辅助更新本主题。来源变化或配套未知须重新预览,不能用模型推荐、候选登记或自动模式代替人作选择。原 Plan、任务及已完成记录不因改选自动改写。
67
+
68
+ 未采用的文档保留原位置,在会话中说明实际路径和未选用状态;不登记候选,也没有候选撤回操作。已选主题的撤销、业务需求取消、文件删除和功能退役仍是另有范围的任务,不因未选用某稿而自动执行。
69
+
70
+ ### 2. 读取适用来源
71
+
72
+ 本次动作为 `plan` 时先完成§1的统一共用读取,按所选资源根的[规划交接](references/plan-handoff.md)核读取准备、身份及上游停点,再进入原规划分支;不是只读本说明便跳过其他共用文件。JSON/手动两种输入遵守同一必读清单,不套四阶段模板/生成提示词,不生成新规格。标准原规划任务不进入本Skill,也不因清单存在而读取企业资料。
73
+
74
+ 本次动作是 review/recheck 时先按[统一审查约定](references/review-handoff.md)分流:调用者定位项目采用及准确业务对象,由外层辅助解析索引、清单和依赖;不要先套下面生成/状态作业的五项共用全文读取。独立审查者仍完整读项目规则与实际采用约束、本阶段README、完整模板、唯一动作和业务原文;未知/自改组合按选定原件完整读取,不静默回退。纯引导/status/交接/恢复及生成/修订保持原读取规则。
75
+
76
+ 资料定位:本轮明确来源 → 项目已采用自改副本 → 同宿主项目安装 → 同宿主可读全局。实际读取项目规则、根说明及明确引用的采用约定;已选来源失效就报告,不静默换模板或跨宿主兜底。历史、验证样例和备份不作默认候选。
77
+
78
+ 没有对应角色的明确项目采用根时,默认资料根是**本次实际加载的 SOP Skill 目录下 references/**,从其中 README 与 stages.json 进入;工程骨架也在同一根的 engineering-skeleton/,不另借共用资料。CodeBuddy先显式Glob `.codebuddy/.*composer*.json` 定位本包隐藏安装清单,核 name/version/scope、catalog.skills 与本 Skill 的 SKILL.md、references/readme.md 两项精确 assets;可先Grep找行号再Read必要范围,不全文加载assets列表。多个安装、正文身份不符、缺登记或资料缺失时先报告,不当作未安装。resources.references继续定位原版共用资料,不能用来推导SOP专属根。项目确实未安装时才查同宿主可读全局安装,并仍从实际Skill定位;有项目自改采用根时不先探读发行副本。其他宿主按其真实安装的Skill位置定位,不借CodeBuddy目录兜底。
79
+
80
+ 阶段所需模板/原方法确实不可用时报告准确缺口并停下,可提示选择已有可读资料或安装;不把“无企业模板裸跑继续”列作同一次SOP作业的选项。用户另行明确改走标准流程才按原标准方法处理,不能静默降级。
81
+
82
+ 安装清单用于定位资料根,只读取识别所需的 name/version/scope/resources 字段;可先定位键再读取相应范围,不全文注入 assets 文件列表。业务与模板必要正文仍实际读取,不能用这种元数据裁剪替代内容核对。
83
+
84
+ 先读取所选资源根的 [README](references/readme.md)、[索引](references/stages.json)、[共用合同](references/template-contracts.md)、[交接合同](references/handoff-contract.md)和[生命周期合同](references/lifecycle-contract.md)。实际起草/审查时,再读索引指定的本阶段 README、manifest,以及该 manifest 指定的完整模板和本次唯一动作提示词;不按默认路径猜模板,也不加载四阶段全部资料。
85
+
86
+ 明确企业 status、只读交接与恢复也须完成上述五项共用读取;它们不需要生成模板和 Spec,不等于可以跳过共用合同。安装清单实际用于定位时,逐项确认 name、version、scope、resources.references 的真实值;只搜索资产列表里的资源名称不算完成身份核对。列出实际路径及读取结果,缺项先补读或保留未通过,不以“已自动注入”代替回执,也不把后来补读追认为旧作业写前已读。
87
+
88
+ 写前列出本次适用路径/用途并核实际读取结果,必要来源未读/部分读/失败时先补齐或报告受影响范围,不能声称完成读取后写稿。项目自改内容保留,不按发行摘要还原。
89
+
90
+ 交接清单相对路径以实际项目根解析;资源索引相对路径以资源根解析。按准确角色读取真实正文,核主题身份、正文/文件版本、直接上游与缺口。路径存在和脚本读文件均不代替模型实际全文读取及语义核对。
91
+
92
+ ### 3. 按任务复用原能力
93
+
94
+ 起草或修订 BRD/PRD/AD/TestCase 时,必须先调用原 [i3-spec-driven-development](../i3-spec-driven-development/SKILL.md) Skill,再按本次明确的企业任务、模板和唯一输出执行;不是让 using 判断是否需要 Spec,也不调用会默认保存根 SPEC.md 的 `/i3-spec` 包装来替代它。原 Spec 支持外部规格格式与存储;内容要求、澄清、权限、认可及结束轮次完整保留,真实冲突先报告,不改原版或另造影子 SPEC。
95
+
96
+ `plan` 必须按[规划交接](references/plan-handoff.md)实际调用原 [i3-planning-and-task-breakdown](../i3-planning-and-task-breakdown/SKILL.md),读取并履行本宿主当前原 `/i3-plan` 命令合同。不是只输出提示词让用户再粘贴,不以提及名称或自行写计划代替成功加载;没有正式加载机制或调用失败时停止说明。Skill加载与命令转交分别记录,不声称等价执行另一个slash命令。此分支不调用Spec、不改业务稿/JSON、不进入Build。
97
+
98
+ 宿主提供 Skill 工具时须取得加载原 Spec 的成功回执,继续读取其本次适用正文;只在计划里写 Skill 名称、读取索引或自行声称已调用不算。原生没有该工具的宿主使用其正式技能加载机制并保留可核记录;方法不可用就说明缺口,不裸跑写稿。按任务另用适用专业方法,不造第二张全局路由表。纯引导、状态、只读审查和已有文件的路径登记不调用规格生成。
99
+
100
+ AD 的直接产品依据是选定 PRD。公共技术规约优先复用项目已有规范;没有时说明可选来源或候选,不静默决定技术栈/骨架。原型按需,可与 AD 并行。TestCase 是测试设计,不执行测试,也不是所有 Plan 的必需文件。
101
+
102
+ 写作成功后完整回读最终稿,展示实际路径并按原 Spec 停轮交审,不自动更新 JSON。只有本次任务已明确采用准确文档时,后续获准交接作业才登记 selected;已有明确委托可直接承接,不反复询问。失败/部分稿保留实际状态,不为填清单造未来路径或补批准。
103
+
104
+ ### 4. 最小路径交接
105
+
106
+ 使用所选发行资料根的 [handoff.py](references/handoff.py);项目采用副本只有明确包含兼容辅助工具时才改用该工具。Python 3.9+ 为此辅助的运行条件;没有可用解释器时保留手动路径方式,不安装依赖或改项目环境。
107
+
108
+ 先执行工具 `--help` 核接口。以下是工具操作,不是新增顶级命令;`<资料根>`与项目路径均须用实际位置替换。
109
+
110
+ ```text
111
+ python3 <资料根>/handoff.py init --project-root <项目根> --manifest <本次清单> --work <工作范围>
112
+ python3 <资料根>/handoff.py select --project-root <项目根> --manifest <本次清单> --role prd --path <用户明确选用的现有PRD> --capability-id <PBC> --prd-id <主题ID>
113
+ python3 <资料根>/handoff.py resolve --project-root <项目根> --manifest <本次清单> --capability-id <PBC> --prd-id <主题ID>
114
+ ```
115
+
116
+ - 仅在本次已明确采用文档并允许写清单时使用 init/select;不在安装、生成待审稿或只读任务中初始化。清单顶层只有 schemaVersion、scope、selected;原 Plan 产物不回写 JSON。
117
+ - select 直接登记明确选用的现有路径,无需先登记候选;初次或相同选择可复用,不代表业务批准或计划批准。不同既有路径仍拒绝直接替换,同主题改选沿用准确预览入口。旧候选操作不映射成选用,手动方式保留。
118
+ - 一份 PRD 主题按 capabilityId+prdId 区分。不同主题与 PRD/AD/TestCase 可独立版本,不补造缺失身份。工具不推断语义兼容,交接前仍核直接上游。
119
+ - 工具只改本次清单和同目录 history 旧稿,保留其他主题及 scope/selected 内人工内容。旧 JSON 可只读取得 selected,明确选用写入时才备份并移除旧 candidates/delivery;未知顶层扩展先说明用途再处理,不静默删除。没有强制文档 hash,写后回读差量和原始历史。
120
+ - 工具基础锁与写前比对不构成跨编辑器事务保证。登记失败保留文档和旧清单,只报告待补登记;不重复生成业务稿,不接管 Plan 或已完成任务。
121
+
122
+ ### 5. 手动与只读方式
123
+
124
+ 纯手动路径交接不创建 JSON、目录或采用记录;已有 JSON 的手动覆盖也仅限本次输入,不持久更改 selected。显式plan动作使用手动输入时,仍按规划合同允许原plan/todo产物,不能把“手动输入”误解成所有动作零写入。
125
+
126
+ ```text
127
+ python3 <资料根>/handoff.py resolve --project-root <项目根> --work <工作范围> --capability-id <PBC> --prd-id <主题ID> --manual prd=<实际PRD> --manual ad=<配套AD>
128
+ ```
129
+
130
+ 可完全不运行工具,直接读取明确路径并提供输入摘要与问题。两种方式都核身份、版本、直接上游和必要工程约束;缺 TestCase 如实记录验证依据,不强制建清单或重跑 BRD。
131
+
132
+ 引导、status、review、recheck 零项目写入。审查只给问题、原文位置、来源、影响和建议;作者会话不冒充独立审查,报告另存由获准调用者处理。
133
+
134
+ review/recheck共用外层解析/模型正文读取规则,按[独立只读审查衔接](references/review-handoff.md)执行。当前作者会话有获准且已验证的CLI隔离能力时,由外层调用者整理本次所选资料、准确目标和真实来源,使用该资料根的verification/review_handoff.py启动新的只读会话;辅助不在审查者内部执行,不调用原Spec、Plan或原代码review,不串行修稿。复查绑定旧稿、原报告及逐项人工回应,仍使用新上下文。没有隔离机制则给出可复制的新会话任务并结束;已在新会话也须如实说明实际权限证据,不能自称清除了上下文。证据检查通过仅接受本轮报告,业务问题及人工处理空间保留。
135
+
136
+ ### 6. 交原 Plan 与 Build
137
+
138
+ 用户显式调用 `/i3-sop plan` 或本Skill的plan动作时,本Skill读取所选清单/明确手动路径,按[规划交接](references/plan-handoff.md)组织原文输入并实际复用原规划。只生成原计划与唯一任务目标,完整回读并交人工审阅后停轮。四阶段文档作业仍不自动进入该动作;原 `/i3-plan` 加明确企业任务的手动方式保留。
139
+
140
+ Plan内的来源表逐项记录实际使用的PRD、AD、规范、契约、工程采用说明的完整项目相对路径(明确外部来源则绝对路径)及其文档版本,不只写AD_v…、契约简称或JSON位置。保存后将来源表与本次实际读取集合逐项对照,缺项先补齐Plan并再次全文回读,再交审;不修改来源业务稿或JSON。
141
+
142
+ 新项目默认将业务文档存于 `spec/{能力}/`。工程规划入口是本次选定 AD 及其明确引用的 PRD、已采用规范、共享契约、真实骨架与相关代码;在入口及已选集合内逐项回读 SPEC 六项。BRD、空链接、JSON、只有文件落在 spec/ 均不证明工程规格齐备。不复制第五份核心 SPEC,不改 JSON schema 或强制业务 hash。
143
+
144
+ 按[交接合同](references/handoff-contract.md)§10准备原 `/i3-plan` 的实际输入。有明确采用指引可据其读取唯一范围;没有指引就手动列准确路径。原 Plan 不天然读写 JSON,多个主题/版本没有选择时先问,不猜。计划保留实际来源、主题、FR/AC、共享依赖和验证依据,仍输出原 `tasks/plan.md` 与唯一任务目标,不覆盖其他工作未完计划。
145
+
146
+ 随后由用户审阅并明确批准计划,才调用原 `/i3-build` 或 `/i3-build auto`。原 Build auto 的有效规格、Git 干净基线、完整计划认可、逐任务测试/构建/提交和风险停点全保留;未提交的 `.i3/sop`、项目指引等可能触发原 Git 停点,不隐藏、不擅自提交业务文件规避。企业跨阶段 auto 与原 Build auto 是不同功能。
147
+
148
+ ### 7. 按主题加载与新会话恢复
149
+
150
+ 只加载本次主题的完整 PRD、配套 AD、适用共享条款/必要跨主题契约及相关代码,不全量读所有主题、候选、最高版本和历史。按需分段覆盖长文;摘要用于导航,分段本身不保证总上下文降低。规划必须覆盖本范围全部需求/AC/接口/数据与验证,不因节省上下文漏掉共用边界。
151
+
152
+ 跨主题工作先辨明依赖图再分组读取;一个默认 Plan 只有一个有效任务目标。新会话实际回读范围、规则、来源、Plan/todo和Git状态;沿用原 i3-context-engineering 的持久记录/任务边界恢复方法,不宣称自动 token 监测。Build 前同路径或选用内容变化须核任务影响,不能偷偷将旧任务套新设计;修订计划与开工认可仍按原方法。
153
+
154
+ ## Common Rationalizations
155
+
156
+ | 说法 | 实际约束 |
157
+ | --- | --- |
158
+ | 新稿生成了,后续就该用它 | 只有明确选用才更新 selected;选用不等于业务批准或计划批准 |
159
+ | 用户选了企业流程,后面可以自动做 | 本片只完成明确的一次作业,原方法停点及后续授权继续有效 |
160
+ | 路径相同,可以沿用旧结论 | 当前正文和配套仍须回读;不靠旧摘要判断业务就绪 |
161
+
162
+ ## Red Flags
163
+
164
+ - 标准任务读取企业模板,或只读任务新建清单。
165
+ - 用高版本、候选、历史记录或脚本成功替代明确选择和真实认可。
166
+ - 为完成登记修改业务稿、Plan、任务勾选或原 Skill/命令。
167
+
168
+ ## Verification
169
+
170
+ - 实际所读输入、模板/工具来源、主题与输出可定位;缺项和未核内容准确列出。
171
+ - 新稿只展示路径,明确选用才更新 selected;写后已回读清单,旧稿及人工修改保留。
172
+ - 纯手动路径交接及只读任务零项目变化;显式plan的手动输入只允许原规划产物,标准流程不误用企业资料。
173
+ - 按[共用交接合同§9](references/handoff-contract.md#9-真实调用与执行报告)报告真实尝试及回执;占位说明不用工具,拒绝/失败不漏报。需外层执行复核时附约定的最小报告块,不声称新命令、全流程、工程或发布已验收。
@@ -0,0 +1,2 @@
1
+ policy:
2
+ allow_implicit_invocation: false
@@ -0,0 +1,86 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "resourceId": "i3-enterprise-sop-ad",
4
+ "resourceVersion": "0.3.3",
5
+ "status": "local-resources-only-not-released",
6
+ "stage": "ad",
7
+ "documentType": "AD",
8
+ "source": {
9
+ "path": "skills/i3-enterprise-sop/references/ad/templates/ad.md",
10
+ "resourcePath": "templates/ad.md",
11
+ "templateVersion": "v0.0.4",
12
+ "sha256": "0e48c7149792aede3b5c7be70b65b7e4f9b312889760f2fb4105d184162abeae",
13
+ "role": "complete-document-template",
14
+ "distributionRendering": "Existing brand-reference mapping and standard Chinese guide; source and distribution digests are distinct."
15
+ },
16
+ "prompts": {
17
+ "generate": "prompts/01-generate.md",
18
+ "review": "prompts/02-review.md",
19
+ "revise": "prompts/03-revise.md",
20
+ "recheck": "prompts/04-recheck.md"
21
+ },
22
+ "dependencies": [
23
+ {
24
+ "path": "../template-contracts.md",
25
+ "role": "shared-contract",
26
+ "resolutionBoundary": "selected-enterprise-sop-root"
27
+ },
28
+ {
29
+ "path": "../handoff-contract.md",
30
+ "role": "shared-handoff-contract",
31
+ "resolutionBoundary": "selected-enterprise-sop-root"
32
+ },
33
+ {
34
+ "path": "../lifecycle-contract.md",
35
+ "role": "shared-lifecycle-contract",
36
+ "resolutionBoundary": "selected-enterprise-sop-root"
37
+ }
38
+ ],
39
+ "files": [
40
+ {
41
+ "path": "readme.md",
42
+ "sourceSha256": "70b8e0b39b3e8c2ee6f1123fd0f57a10d9848c697ab43240970414b7f79a0246",
43
+ "sha256": "0052fe43876055749d6988f9ad246c08bdfa3929985bcb53cc9d89e063ba0056",
44
+ "role": "stage-guidance"
45
+ },
46
+ {
47
+ "path": "prompts/01-generate.md",
48
+ "sourceSha256": "aa88dc58dd94e09092342381866a59752985cfb50decf1f80f183f3efeb909f2",
49
+ "sha256": "d222204b42288892211df9170036ee9d407dda2ccc22455ace36e1c7b970d33a",
50
+ "role": "stage-action-guidance"
51
+ },
52
+ {
53
+ "path": "prompts/02-review.md",
54
+ "sourceSha256": "35178174982907ee623fa89a8f69cb7fc20bfbcef98b0c33a14c861e7dffd5ad",
55
+ "sha256": "11a5b03a62ff7e78cff62881e3e22c2b14b5f65024264cb97c8893f8b47f228d",
56
+ "role": "stage-action-guidance"
57
+ },
58
+ {
59
+ "path": "prompts/03-revise.md",
60
+ "sourceSha256": "ae0b0b5f1ab422eea74ccae0d23da45f79a52f7da372f86312a9e907bad08645",
61
+ "sha256": "e3f886fed22cb62d1beafb259284d4856abb3f90bb823f0127f9cedaff974c22",
62
+ "role": "stage-action-guidance"
63
+ },
64
+ {
65
+ "path": "prompts/04-recheck.md",
66
+ "sourceSha256": "702e3c221a4b5e688eb13dccd9edc4bf8ccbe2f7b8b7aa2ca8c1af46434806e8",
67
+ "sha256": "239031036b1877a88deb221355c39dd0dd25894b464487be73a718ebe227cdd8",
68
+ "role": "stage-action-guidance"
69
+ },
70
+ {
71
+ "path": "templates/ad.md",
72
+ "sourceSha256": "0e48c7149792aede3b5c7be70b65b7e4f9b312889760f2fb4105d184162abeae",
73
+ "sha256": "37d3f77efe23b85ebaf50cfad09d92344227d4f778ea7e965c4fea70d89817bb",
74
+ "role": "complete-document-template"
75
+ }
76
+ ],
77
+ "projectDiscovery": {
78
+ "entryRelativeToReferences": "readme.md",
79
+ "stagesRelativeToEntry": "stages.json",
80
+ "ordinaryInstallEnablesEnterpriseWorkflow": false,
81
+ "resourceRoot": "actual-loaded-sop-skill/references"
82
+ },
83
+ "revision": "20261018-B02",
84
+ "revisionScope": "AD linkage content and four task prompts; no original skill/command or auto-registration change",
85
+ "validationBoundary": "distribution hashes are computed using existing pure reference mapping; no npm build, installation, new entry or engineering claim"
86
+ }
@@ -0,0 +1,58 @@
1
+ # AD 候选生成任务
2
+
3
+ <!-- i3:zh-guide:start -->
4
+ ## 中文使用说明
5
+
6
+ 按下文完整工程步骤、检查项与验证条件执行。根据任务选择适用步骤,保留证据、风险和退出条件;正文示例中的英文标签在面向用户输出时译为中文。
7
+
8
+ 默认使用简体中文解释、追问及生成报告;用户明确要求其他语言时可切换。原方法正文、引用、阈值和审批条件完整保留。代码标识、路径、命令、工具参数、JSON 键/枚举与原文引用保持原样。
9
+ <!-- i3:zh-guide:end -->
10
+
11
+ 原方法调用:本次起草必须先成功加载原 `i3-spec-driven-development` Skill;宿主支持Skill工具时取得成功回执,再按其外部格式/存储能力使用本模板和唯一目标。不是调用原/i3-spec包装后改写其根SPEC.md规则,也不让using把Spec变成可选。方法不可用或真实冲突时报告,不裸跑写稿;内容、认可、保存后停轮保留。
12
+
13
+ 目录与上下文:新项目无已采用输出约定时默认 `spec/{能力名称}/`,同PBC多主题PRD独立版本,AD/TestCase固定本次直接上游;已有位置不自动迁移。只读本主题完整来源及必要共享依赖,不全量载入候选/历史,摘要不替代正文。最后回读后原方法要求立即停轮时,报告候选实际路径和待登记事项,后续获准作业补JSON,不自动调用Plan/Build。
14
+
15
+
16
+
17
+ 仅在本轮明确企业作业或适用的真实项目选择下使用,标准流程优先保留。实际读项目规则、根README及引用的采用/输出约定,从本轮材料→项目采用副本→同宿主项目安装→可读全局安装定位。读取选定阶段清单、模板、作业提示词及共用合同,选定源失效不换新版/其他宿主。模型整理任务卡,用户不必逐项填路径;真实歧义、冲突或覆盖风险才问。
18
+
19
+ 内部任务卡包括实际项目根/宿主、阶段与动作、EBC或PBC/主题身份、精确业务来源/版本/条目、模板与提示词/本地修改、唯一展开目标/版本/现稿、允许写入及停点、假设/Q和影响范围。没有计算摘要如实写,不填假SHA,目录或作者摘要不证明已读。
20
+
21
+ ## 本阶段内容核对
22
+
23
+
24
+ - 固定本次PRD身份/版本、有效需求/AC和共享权威;只配套选定主题,不猜另一主题最新稿。产品预期由PRD维护,设计推导标候选。
25
+ - 必须有整体技术架构图、功能架构图、ER图和正文详设;核ER基数、主外键/即时约束、事务次序/锁、状态归属、并发/幂等、重试/结果未知/恢复。三图不证明代码已实现。
26
+ - 逐需求落实UI/字段/API/服务/数据库、错误/副作用、权限/数据范围、索引/迁移/回退;共享状态和契约单一权威,跨主题原子边界准确,外部服务未验证如实写。
27
+ - 原型按需,可与AD并行,无原型不统一阻断;已采用原型核版本/范围/必要认可,未定交互只限制依赖部分,不修改原型登记假装关联。
28
+ - SPEC六项保留完整命令/参数/cwd/环境、项目结构、真实代码风格示例、测试策略固定引用和Always/Ask first/Never。AD选骨架、原Plan排任务、获准Build才实际应用;目录图不冒充工程已生成。
29
+ - AD准备优先引用项目既有公共技术规约、CONSTRAINTS和ADR;实际读取选定资源根README/阶段索引/阶段清单及本次模板/提示词,再核规范路径、文内版本和条款。缺规范引导选择或形成候选,另写辅助文档须明确目标;本次只有AD权限时保留Q,不静默扩写。
30
+ - 核§0.3采用表与§2.3兼容组合:本主题准确PRD及必要相关AD、规范/契约版本、代码/环境事实和允许推进范围;不取最大版本,不强制同号或SHA256,同路径人工修改回读并核影响。
31
+ - 核§5.2提供/消费契约和§6.2.1共享责任:字段与行为各有唯一权威,最终校验/写入/事务责任清楚;只读快照、前端状态、Agent运行、jobs执行和正式业务结果分开。冲突只标注,不越界改共享来源或另一主题。
32
+ - 核调用类型、严格消费者、行为/权限/默认值/状态、迁移与并存/部署窗口。新增字段或枚举也可能不兼容;Schema或版本号不代真实语义,未验证不能填兼容通过。
33
+ - 核§9.6真实骨架/源码及选定范围,只有目录图就标工程资产未取得。AD选择、原Plan排任务、获准Build才应用;不生成锁、工程或运行报告,不把图与骨架存在当业务完成。
34
+ - 核§10.1变更对象及直接/必要传递影响,定位相关契约/实体、AD、AC、TestCase和实际任务;保留旧组合、已交付行为回归及不受影响范围,不自动重写或升版。原Plan任务留实际来源,Build按任务回读;本资源不实现JSON登记接点。
35
+
36
+ ## 执行与结束
37
+
38
+ 1. 实际读选定来源和模板,写前列假设/推导/建议、准确来源与影响,未知列Q;保留原方法澄清、内容、边界认可和实际停轮,不虚构业务事实。
39
+ 2. 只写展开后的唯一目标。目标已存在先读,明确修订/新版本及旧稿保留,不覆盖人工内容,不改上游/模板/提示词/其他主题。入口真冲突报告受阻范围,不写影子SPEC绕过。
40
+ 3. 按完整模板写本次有效范围,保留来源、稳定需求/AC及受阻项,不把图/示例/候选写成已批准或已实现。
41
+ 4. 跨位置核权限/状态/字段、拒绝/失败/未知和副作用;最终新增要求逐条回源,全文表格逐行核列数和列义。最后Edit/Write后分段完整Read最终目标及相关引用,再改则重新完整回读。
42
+ 5. 汇报唯一输出、身份版本、实际读取、假设/Q、自查和未执行事项,交人工审阅后结束本轮。不自动审查/修订、下阶段、Plan、Build、实际测试或发布。
43
+
44
+ ## B05 生命周期与必要读取
45
+
46
+ 按选定资源索引实际读lifecycleContract及共用模板/交接合同;先列本次必读路径和用途,实际核所选正文及必要依赖,未读/失败/部分读照实。只加载本次generate动作,不加载其他动作或低优先级源兜底。
47
+
48
+ 完整三图和详设继续保留;核所选PRD、公共规约、共享契约/数据owner、必要消费者、实际骨架、移除/兼容/迁移/恢复和工程任务影响。
49
+
50
+ 只写本次明确文档目标,先读现稿与人工修改并保留历史;最后编辑后实际回读。JSON、Plan、任务、代码和生产不是本次写入范围;生成文档后展示路径并交审,不自动登记JSON;用户明确选用后才登记selected,原方法停轮仍保持。
51
+
52
+ 当前目标、任务与已实现事实分开;已完成任务保留,未实施取消不记完成,进行中保留真实工作,已实现退役通过新任务。原Plan/Build实际消费须按本轮证据核验,JSON最小辅助已提供但不在本次文稿写入权限内,不自动下阶段、工程、提交或发布。
53
+
54
+ ## B05-r2 最后修改后的全文回读
55
+
56
+ 全部Write/Edit结束后,必须使用读取工具分段完整覆盖最终目标正文,超出工具截断就续读剩余段。已全文读过但之后又Edit时,须再次完整覆盖最终稿,不能只回读改动行并声称“末次修改后全文已核”。本次必要输入清单中仍有未读/失败/部分读时,先报告准确缺口,不写成已全部读取;补读不是过去已读。
57
+
58
+ 未完成收尾就保留实际稿和未核范围,不删除稿件、不补造通过,不登记为已完成回读的完整候选。收尾不改写业务决定,不自动进入下一阶段;只读review/recheck依然零项目写入。