@givolt/i3-composer-agent 3.2.1 → 4.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 (611) hide show
  1. package/.agents/plugins/marketplace.json +1 -1
  2. package/.claude/commands/i3-build.md +1 -0
  3. package/.claude/commands/i3-code-simplify.md +1 -0
  4. package/.claude/commands/i3-constraints.md +1 -0
  5. package/.claude/commands/i3-plan.md +1 -0
  6. package/.claude/commands/i3-review.md +1 -0
  7. package/.claude/commands/i3-ship.md +1 -0
  8. package/.claude/commands/i3-spec.md +1 -0
  9. package/.claude/commands/i3-test.md +1 -0
  10. package/.claude/commands/i3-webperf.md +1 -0
  11. package/.claude-plugin/marketplace.json +1 -1
  12. package/.claude-plugin/plugin.json +1 -1
  13. package/.codex-plugin/plugin.json +2 -2
  14. package/README.md +31 -25
  15. package/bin/i3-composer-agent.cjs +4 -59
  16. package/bin/install.cjs +6 -14
  17. package/bin/native-layout.cjs +11 -2
  18. package/bin/native-migration.cjs +68 -28
  19. package/bin/retired-custom-fingerprints.json +1597 -0
  20. package/bin/wizard.cjs +2 -13
  21. package/docs/antigravity-setup.md +3 -1
  22. package/docs/codebuddy-setup.md +19 -76
  23. package/docs/codex-setup.md +10 -4
  24. package/docs/comparison.md +1 -1
  25. package/docs/copilot-cli-setup.md +4 -4
  26. package/docs/cursor-setup.md +1 -1
  27. package/docs/gemini-cli-setup.md +1 -1
  28. package/docs/other-hosts.md +2 -2
  29. package/docs/windsurf-setup.md +2 -2
  30. package/docs/workbuddy-setup.md +9 -16
  31. package/evals/README.md +10 -0
  32. package/evals/cases/i3-code-simplification.json +8 -0
  33. package/evals/cases/i3-documentation-and-adrs.json +4 -0
  34. package/evals/cases/i3-enterprise-sop.json +1 -1
  35. package/evals/cases/i3-frontend-ui-engineering.json +1 -1
  36. package/evals/cases/i3-security-and-hardening.json +4 -0
  37. package/evals/cases/i3-ui-demo.json +2 -2
  38. package/evals/cases/i3-using-agent-skills.json +5 -5
  39. package/evals/plugin/simplify-fires-on-pasted-function/graders/behavior-kept-and-explained.md +7 -0
  40. package/evals/plugin/simplify-fires-on-pasted-function/graders/skill-fired.md +5 -0
  41. package/evals/plugin/simplify-fires-on-pasted-function/prompt.md +30 -0
  42. package/evals/plugin/simplify-stays-quiet-on-make-it-fast/graders/not-fired.md +8 -0
  43. package/evals/plugin/simplify-stays-quiet-on-make-it-fast/prompt.md +20 -0
  44. package/evals/zh-CN/cases/i3-code-simplification.json +8 -0
  45. package/evals/zh-CN/cases/i3-documentation-and-adrs.json +4 -0
  46. package/evals/zh-CN/cases/i3-enterprise-sop.json +1 -1
  47. package/evals/zh-CN/cases/i3-frontend-ui-engineering.json +2 -2
  48. package/evals/zh-CN/cases/i3-security-and-hardening.json +4 -0
  49. package/evals/zh-CN/cases/i3-ui-demo.json +2 -2
  50. package/evals/zh-CN/cases/i3-using-agent-skills.json +6 -6
  51. package/hooks/SDD-CACHE.md +1 -1
  52. package/package.json +13 -80
  53. package/plugin.json +15 -2
  54. package/references/accessibility-checklist.md +4 -4
  55. package/references/performance-checklist.md +5 -4
  56. package/references/testing-patterns.md +2 -1
  57. package/scripts/floor-guard-reference-test.js +32 -0
  58. package/scripts/lib/execution-status.js +44 -0
  59. package/scripts/run-evals-test.js +157 -7
  60. package/scripts/run-evals.js +59 -12
  61. package/scripts/ui-demo-test.js +2 -2
  62. package/scripts/validate-artifact-paths-test.js +14 -0
  63. package/scripts/validate-artifact-paths.js +4 -2
  64. package/skills/i3-api-and-interface-design/SKILL.md +3 -1
  65. package/skills/i3-ci-cd-and-automation/SKILL.md +7 -4
  66. package/skills/i3-code-simplification/SKILL.md +3 -3
  67. package/skills/i3-constraint-driven-development/SKILL.md +4 -4
  68. package/skills/i3-constraint-driven-development/references/floor-guard.md +2 -2
  69. package/skills/i3-context-engineering/SKILL.md +1 -1
  70. package/skills/i3-debugging-and-error-recovery/SKILL.md +1 -1
  71. package/skills/i3-deprecation-and-migration/SKILL.md +6 -1
  72. package/skills/i3-documentation-and-adrs/SKILL.md +3 -2
  73. package/skills/i3-enterprise-sop/SKILL.md +37 -70
  74. package/skills/i3-enterprise-sop/references/engineering-skeleton/directory-standard.md +7 -7
  75. package/skills/i3-enterprise-sop/references/handoff.py +149 -120
  76. package/skills/i3-enterprise-sop/references/technical-baseline/baselines/enterprise-application-technical-baseline-v0-0-4.md +24 -24
  77. package/skills/i3-enterprise-sop/references/technical-baseline/templates/technical-baseline.md +8 -8
  78. package/skills/i3-enterprise-sop/references/templates/ad.md +31 -31
  79. package/skills/i3-enterprise-sop/references/templates/brd.md +6 -6
  80. package/skills/i3-enterprise-sop/references/templates/prd.md +37 -37
  81. package/skills/i3-enterprise-sop/references/templates/testcase.md +25 -25
  82. package/skills/i3-frontend-ui-engineering/SKILL.md +6 -10
  83. package/skills/i3-idea-refine/SKILL.md +4 -2
  84. package/skills/i3-incremental-implementation/SKILL.md +0 -4
  85. package/skills/i3-performance-optimization/SKILL.md +2 -2
  86. package/skills/i3-security-and-hardening/references/hardening-patterns.md +5 -0
  87. package/skills/i3-source-driven-development/SKILL.md +3 -2
  88. package/skills/i3-spec-driven-development/SKILL.md +1 -1
  89. package/skills/i3-ui-demo/SKILL.md +3 -1
  90. package/skills/i3-ui-demo/references/dependencies.md +1 -1
  91. package/skills/i3-ui-demo/references/resources.md +1 -1
  92. package/skills/i3-ui-demo/scripts/dependencies.cjs +0 -3
  93. package/skills/i3-using-agent-skills/SKILL.md +2 -2
  94. package/.claude/commands/i3-prototype.md +0 -23
  95. package/.gemini/commands/i3-prototype.toml +0 -23
  96. package/commands/i3-prototype.toml +0 -23
  97. package/evals/cases/i3-ui-prototype.json +0 -158
  98. package/evals/fixtures/i3-ui-prototype/admin-list/assets/reference.css +0 -3
  99. package/evals/fixtures/i3-ui-prototype/admin-list/assets/reference.js +0 -8
  100. package/evals/fixtures/i3-ui-prototype/admin-list/capability-definition.json +0 -67
  101. package/evals/fixtures/i3-ui-prototype/admin-list/index.html +0 -89
  102. package/evals/fixtures/i3-ui-prototype/admin-list/readme.md +0 -52
  103. package/evals/fixtures/i3-ui-prototype/admin-list/template.json +0 -8
  104. package/evals/fixtures/i3-ui-prototype/business-brief.md +0 -7
  105. package/evals/zh-CN/cases/i3-ui-prototype.json +0 -165
  106. package/hooks/PROTOTYPE.md +0 -31
  107. package/hooks/codebuddy-upstream.cjs +0 -93
  108. package/hooks/i3-prototype.cjs +0 -7
  109. package/hooks/manage.cjs +0 -169
  110. package/scripts/design-provider-discovery-test.js +0 -190
  111. package/scripts/design-provider-test.js +0 -75
  112. package/scripts/enterprise-template-test.js +0 -205
  113. package/scripts/lib/prototype-fixture.cjs +0 -17
  114. package/scripts/prototype-cache-test.js +0 -55
  115. package/scripts/prototype-generation-entry-test.js +0 -6
  116. package/scripts/prototype-generation-evidence-test.js +0 -10
  117. package/scripts/prototype-generation-native-test.js +0 -78
  118. package/scripts/prototype-generation-test.js +0 -99
  119. package/scripts/prototype-inventory-test.js +0 -43
  120. package/scripts/prototype-locations-test.js +0 -79
  121. package/scripts/prototype-project-test.js +0 -183
  122. package/scripts/template-adapter-test.js +0 -155
  123. package/scripts/ui-prototype-binding-recovery-test.js +0 -84
  124. package/scripts/ui-prototype-buddy-lifecycle-test.js +0 -102
  125. package/scripts/ui-prototype-codebuddy-hook-test.js +0 -112
  126. package/scripts/ui-prototype-content-test.js +0 -123
  127. package/scripts/ui-prototype-dependencies-test.js +0 -226
  128. package/scripts/ui-prototype-devtools-test.js +0 -53
  129. package/scripts/ui-prototype-execution-evidence-test.js +0 -62
  130. package/scripts/ui-prototype-execution-gates-test.js +0 -91
  131. package/scripts/ui-prototype-execution-policy-test.js +0 -53
  132. package/scripts/ui-prototype-execution-runtime-test.js +0 -27
  133. package/scripts/ui-prototype-ide-source-test.js +0 -73
  134. package/scripts/ui-prototype-native-test.js +0 -526
  135. package/scripts/ui-prototype-recovery-test.js +0 -81
  136. package/scripts/ui-prototype-registration-test.js +0 -53
  137. package/scripts/ui-prototype-template-test.js +0 -261
  138. package/scripts/ui-prototype-test.js +0 -124
  139. package/scripts/ui-prototype-transcript-auto-test.js +0 -67
  140. package/skills/i3-ui-prototype/SKILL.md +0 -256
  141. package/skills/i3-ui-prototype/assets/capabilities/generation.json +0 -833
  142. package/skills/i3-ui-prototype/assets/capabilities/management.json +0 -294
  143. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/acceptance.json +0 -51
  144. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/component-map.json +0 -13
  145. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/generation-component-map.json +0 -300
  146. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/index.html +0 -11
  147. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/package-lock.json +0 -2298
  148. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/package.json +0 -22
  149. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/public/prototype-config.json +0 -6
  150. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/App.vue +0 -136
  151. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/components/DeviceEditor.vue +0 -111
  152. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/config.ts +0 -19
  153. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/content.ts +0 -28
  154. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/domain/devices.ts +0 -50
  155. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/domain/theme.ts +0 -25
  156. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/main.ts +0 -18
  157. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/style.css +0 -50
  158. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/src/useDevices.ts +0 -66
  159. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/tests/devices.test.ts +0 -44
  160. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/tests/theme.test.ts +0 -26
  161. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/tsconfig.json +0 -15
  162. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/legacy-starter/vite.config.ts +0 -4
  163. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/profile.json +0 -174
  164. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/readme.md +0 -61
  165. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/index.html +0 -11
  166. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/package-lock.json +0 -2298
  167. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/package.json +0 -22
  168. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/public/prototype-config.json +0 -21
  169. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/App.vue +0 -62
  170. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/PrototypeShell.vue +0 -59
  171. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/config.ts +0 -23
  172. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/domain/presentation.ts +0 -29
  173. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/domain/theme.ts +0 -25
  174. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/main.ts +0 -18
  175. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/src/style.css +0 -26
  176. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/tests/presentation.test.ts +0 -23
  177. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/tests/theme.test.ts +0 -26
  178. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/tsconfig.json +0 -15
  179. package/skills/i3-ui-prototype/assets/frameworks/vue-antdv-next/starter/vite.config.ts +0 -4
  180. package/skills/i3-ui-prototype/assets/hosts/codebuddy/profile.json +0 -17
  181. package/skills/i3-ui-prototype/assets/optional-skills/host-targets.json +0 -739
  182. package/skills/i3-ui-prototype/assets/optional-skills/sources.json +0 -27
  183. package/skills/i3-ui-prototype/assets/templates/catalog.js +0 -149
  184. package/skills/i3-ui-prototype/assets/templates/catalog.json +0 -149
  185. package/skills/i3-ui-prototype/assets/templates/classic-admin/manifest.json +0 -9
  186. package/skills/i3-ui-prototype/assets/templates/classic-admin/preset.json +0 -6
  187. package/skills/i3-ui-prototype/assets/templates/common/app/app.mjs +0 -89
  188. package/skills/i3-ui-prototype/assets/templates/common/app/config.json +0 -1
  189. package/skills/i3-ui-prototype/assets/templates/common/app/domain.mjs +0 -20
  190. package/skills/i3-ui-prototype/assets/templates/common/app/index.html +0 -17
  191. package/skills/i3-ui-prototype/assets/templates/common/app/serve.cjs +0 -16
  192. package/skills/i3-ui-prototype/assets/templates/common/app/styles.css +0 -670
  193. package/skills/i3-ui-prototype/assets/templates/common/app/tokens.css +0 -19
  194. package/skills/i3-ui-prototype/assets/templates/common/design-system/master.md +0 -20
  195. package/skills/i3-ui-prototype/assets/templates/common/gallery.html +0 -2
  196. package/skills/i3-ui-prototype/assets/templates/common/mocks/applications.json +0 -5
  197. package/skills/i3-ui-prototype/assets/templates/common/requirements-map.json +0 -8
  198. package/skills/i3-ui-prototype/assets/templates/common/serve-gallery.cjs +0 -16
  199. package/skills/i3-ui-prototype/assets/templates/credits.md +0 -17
  200. package/skills/i3-ui-prototype/assets/templates/data-operations/manifest.json +0 -9
  201. package/skills/i3-ui-prototype/assets/templates/data-operations/preset.json +0 -6
  202. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/capability-definition.json +0 -294
  203. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/component-inventory.json +0 -707
  204. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/design-system.md +0 -32
  205. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/generation.json +0 -49
  206. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/index.html +0 -534
  207. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/manifest.json +0 -9
  208. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/offline-build.json +0 -265
  209. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/offline.js +0 -8888
  210. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/origin.json +0 -344
  211. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/preset.json +0 -928
  212. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/app.js +0 -22
  213. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/empty.svg +0 -1
  214. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/reference-styles.json +0 -1
  215. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/result-403.svg +0 -1
  216. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/result-404.svg +0 -1
  217. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets-manifest.json +0 -334
  218. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/baseline.json +0 -173
  219. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/conversion.md +0 -30
  220. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/credits.md +0 -17
  221. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/design-tokens.json +0 -881
  222. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/index.html +0 -28
  223. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/@qin-ui-antdv-next-pro.txt +0 -9
  224. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/ant-design-icons.txt +0 -22
  225. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/antdv-next.txt +0 -21
  226. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/package.json +0 -12
  227. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/browser-routes.json +0 -298
  228. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/coverage.json +0 -180
  229. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/integrity.json +0 -13
  230. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/keyboard.json +0 -11
  231. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/responsive.json +0 -125
  232. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/review.md +0 -51
  233. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/rules.log +0 -150
  234. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-html.png +0 -0
  235. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-original.png +0 -0
  236. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-html.png +0 -0
  237. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-original.png +0 -0
  238. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/models-html.png +0 -0
  239. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/models-original.png +0 -0
  240. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-html.png +0 -0
  241. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-original.png +0 -0
  242. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/selection.json +0 -9
  243. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/visual-comparison.json +0 -342
  244. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/readme.md +0 -73
  245. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/reference.md +0 -59
  246. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/routes.json +0 -178
  247. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/controls.js +0 -99
  248. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/dialogs.js +0 -54
  249. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/dom.js +0 -264
  250. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/forms.js +0 -47
  251. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/icons.js +0 -41
  252. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/layout.js +0 -47
  253. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/router.js +0 -63
  254. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/state.js +0 -90
  255. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/table.js +0 -41
  256. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/widgets.js +0 -8
  257. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.html +0 -3
  258. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.js +0 -36
  259. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.html +0 -2
  260. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.js +0 -51
  261. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.html +0 -3
  262. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.js +0 -48
  263. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/CheckResults.html +0 -2
  264. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/CheckResults.js +0 -6
  265. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.html +0 -2
  266. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.js +0 -13
  267. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/data.js +0 -24
  268. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/domain.js +0 -32
  269. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/registry.js +0 -25
  270. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/store.js +0 -85
  271. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentClose.html +0 -2
  272. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentClose.js +0 -17
  273. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.html +0 -2
  274. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.js +0 -66
  275. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.html +0 -3
  276. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.js +0 -38
  277. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.html +0 -2
  278. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.js +0 -66
  279. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.html +0 -2
  280. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.js +0 -5
  281. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.html +0 -2
  282. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.js +0 -12
  283. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.html +0 -2
  284. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.js +0 -11
  285. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentList.html +0 -2
  286. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentList.js +0 -116
  287. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.html +0 -2
  288. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.js +0 -32
  289. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.html +0 -2
  290. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.js +0 -49
  291. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.html +0 -2
  292. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.js +0 -10
  293. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.html +0 -2
  294. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.js +0 -77
  295. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/data.js +0 -60
  296. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/domain.js +0 -105
  297. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/store.js +0 -212
  298. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/AuditPanel.html +0 -2
  299. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/AuditPanel.js +0 -18
  300. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelDetail.html +0 -2
  301. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelDetail.js +0 -23
  302. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelEditor.html +0 -2
  303. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelEditor.js +0 -78
  304. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelGrant.html +0 -2
  305. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelGrant.js +0 -55
  306. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelReferences.html +0 -2
  307. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelReferences.js +0 -26
  308. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelRelease.html +0 -2
  309. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelRelease.js +0 -38
  310. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelStatus.html +0 -2
  311. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelStatus.js +0 -7
  312. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTable.html +0 -2
  313. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTable.js +0 -72
  314. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTester.html +0 -2
  315. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTester.js +0 -46
  316. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelsPage.html +0 -2
  317. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelsPage.js +0 -52
  318. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/RowActions.html +0 -2
  319. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/RowActions.js +0 -19
  320. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/UsagePanel.html +0 -2
  321. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/UsagePanel.js +0 -30
  322. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/data.js +0 -48
  323. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/domain.js +0 -39
  324. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/store.js +0 -129
  325. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.html +0 -4
  326. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.js +0 -21
  327. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IntentSource.html +0 -2
  328. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IntentSource.js +0 -8
  329. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.html +0 -2
  330. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.js +0 -37
  331. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.html +0 -2
  332. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.js +0 -10
  333. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.html +0 -2
  334. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.js +0 -37
  335. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.html +0 -2
  336. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.js +0 -49
  337. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RunDetail.html +0 -4
  338. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RunDetail.js +0 -22
  339. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.html +0 -2
  340. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.js +0 -9
  341. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/commands.js +0 -82
  342. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/examples.js +0 -47
  343. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/model.js +0 -61
  344. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/repair.js +0 -68
  345. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/store.js +0 -55
  346. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/types.js +0 -1
  347. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/workbench.js +0 -18
  348. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.html +0 -3
  349. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.js +0 -28
  350. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.html +0 -2
  351. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.js +0 -18
  352. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.html +0 -2
  353. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.js +0 -31
  354. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.html +0 -2
  355. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.js +0 -27
  356. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.html +0 -2
  357. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.js +0 -16
  358. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.html +0 -2
  359. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.js +0 -43
  360. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.html +0 -4
  361. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.js +0 -34
  362. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.html +0 -2
  363. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.js +0 -30
  364. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.html +0 -3
  365. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.js +0 -67
  366. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.html +0 -2
  367. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.js +0 -41
  368. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.html +0 -2
  369. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.js +0 -31
  370. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.html +0 -2
  371. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.js +0 -26
  372. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.html +0 -2
  373. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.js +0 -70
  374. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/data.js +0 -8
  375. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/domain.js +0 -62
  376. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/management.js +0 -36
  377. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/managementStore.js +0 -49
  378. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/store.js +0 -132
  379. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/AdminList.html +0 -2
  380. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/AdminList.js +0 -38
  381. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.html +0 -2
  382. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.js +0 -11
  383. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.html +0 -2
  384. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.js +0 -45
  385. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.html +0 -2
  386. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.js +0 -54
  387. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.html +0 -3
  388. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.js +0 -27
  389. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.html +0 -2
  390. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.js +0 -12
  391. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.html +0 -2
  392. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.js +0 -45
  393. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.html +0 -3
  394. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.js +0 -38
  395. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/domain.js +0 -61
  396. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/state.js +0 -51
  397. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/store.js +0 -116
  398. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.html +0 -2
  399. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.js +0 -45
  400. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.html +0 -4
  401. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.js +0 -30
  402. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.html +0 -2
  403. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.js +0 -67
  404. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.html +0 -2
  405. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.js +0 -5
  406. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.html +0 -4
  407. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.js +0 -60
  408. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/commands.js +0 -157
  409. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/model.js +0 -136
  410. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/store.js +0 -76
  411. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.html +0 -3
  412. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.js +0 -26
  413. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.html +0 -2
  414. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.js +0 -14
  415. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.html +0 -2
  416. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.js +0 -113
  417. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.html +0 -3
  418. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.js +0 -62
  419. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/commands.js +0 -97
  420. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/model.js +0 -147
  421. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/store.js +0 -13
  422. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.html +0 -2
  423. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.js +0 -9
  424. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.html +0 -2
  425. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.js +0 -8
  426. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.html +0 -2
  427. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.js +0 -37
  428. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListMore.html +0 -2
  429. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListMore.js +0 -8
  430. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.html +0 -2
  431. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.js +0 -17
  432. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/columns.js +0 -32
  433. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/deliveryGuide.js +0 -49
  434. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/deliveryView.js +0 -12
  435. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/listBatch.js +0 -15
  436. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/listSelection.js +0 -37
  437. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/policy.js +0 -68
  438. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/session.js +0 -44
  439. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.html +0 -2
  440. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.js +0 -25
  441. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.html +0 -2
  442. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.js +0 -53
  443. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.html +0 -10
  444. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.js +0 -30
  445. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ScopePage.html +0 -2
  446. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ScopePage.js +0 -10
  447. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.html +0 -2
  448. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.js +0 -9
  449. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/confirmation.js +0 -3
  450. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/navigation.js +0 -19
  451. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.html +0 -2
  452. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.js +0 -8
  453. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.html +0 -2
  454. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.js +0 -32
  455. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.html +0 -2
  456. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.js +0 -15
  457. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.html +0 -2
  458. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.js +0 -11
  459. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecReview.html +0 -2
  460. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecReview.js +0 -57
  461. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.html +0 -2
  462. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.js +0 -37
  463. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/data.js +0 -20
  464. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/domain.js +0 -55
  465. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/store.js +0 -151
  466. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.html +0 -3
  467. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.js +0 -18
  468. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.html +0 -2
  469. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.js +0 -40
  470. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.html +0 -2
  471. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.js +0 -51
  472. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.html +0 -2
  473. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.js +0 -9
  474. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.html +0 -5
  475. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.js +0 -48
  476. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/domain.js +0 -204
  477. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/exampleSource.js +0 -22
  478. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/registry.js +0 -135
  479. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/store.js +0 -137
  480. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.html +0 -3
  481. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.js +0 -36
  482. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/model.js +0 -56
  483. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/store.js +0 -15
  484. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.html +0 -2
  485. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.js +0 -27
  486. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.html +0 -4
  487. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.js +0 -31
  488. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.html +0 -2
  489. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.js +0 -68
  490. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.html +0 -5
  491. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.js +0 -55
  492. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/data.js +0 -16
  493. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/domain.js +0 -83
  494. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/registry.js +0 -18
  495. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/store.js +0 -61
  496. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/admin.css +0 -60
  497. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/agents.css +0 -46
  498. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/antdv.css +0 -295
  499. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/app.css +0 -102
  500. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/delivery.css +0 -4
  501. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/intents.css +0 -37
  502. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/native.css +0 -22
  503. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/operations.css +0 -2
  504. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/pbc.css +0 -3
  505. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/permissions.css +0 -22
  506. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/pro.css +0 -1
  507. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/releases.css +0 -4
  508. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/reset.css +0 -246
  509. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/reviews.css +0 -8
  510. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/tasks.css +0 -6
  511. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/tokens.css +0 -15
  512. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/workbench.css +0 -61
  513. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/workflows.css +0 -1
  514. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/admin-rules.test.js +0 -96
  515. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/agents.test.js +0 -14
  516. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/intent-state.test.js +0 -37
  517. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/list-batch.test.js +0 -44
  518. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operation-fixtures.js +0 -19
  519. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operation-repair.test.js +0 -14
  520. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operations.test.js +0 -25
  521. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/pbc-management.test.js +0 -17
  522. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/pbc-state.test.js +0 -24
  523. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/permission-config.test.js +0 -23
  524. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/permissions.test.js +0 -24
  525. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/releases.test.js +0 -50
  526. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/reviews.test.js +0 -36
  527. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-forms-router.test.js +0 -28
  528. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-state.test.js +0 -42
  529. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-stores.test.js +0 -16
  530. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/spec-state.test.js +0 -11
  531. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/tasks.test.js +0 -27
  532. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/workbench.test.js +0 -34
  533. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/workflows.test.js +0 -16
  534. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/convert.mjs +0 -168
  535. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/serve.mjs +0 -7
  536. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/styles.mjs +0 -11
  537. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/verify.mjs +0 -24
  538. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/serve.cjs +0 -16
  539. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/template-inventory.json +0 -28791
  540. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/template.json +0 -9
  541. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/usability.css +0 -44
  542. package/skills/i3-ui-prototype/assets/templates/gallery/index.html +0 -40
  543. package/skills/i3-ui-prototype/assets/templates/generation-options.js +0 -42
  544. package/skills/i3-ui-prototype/assets/templates/index.html +0 -3
  545. package/skills/i3-ui-prototype/assets/templates/modern-workspace/manifest.json +0 -9
  546. package/skills/i3-ui-prototype/assets/templates/modern-workspace/preset.json +0 -6
  547. package/skills/i3-ui-prototype/assets/templates/presentation.html +0 -17
  548. package/skills/i3-ui-prototype/assets/templates/serve-gallery.cjs +0 -23
  549. package/skills/i3-ui-prototype/references/artifact-contract.md +0 -66
  550. package/skills/i3-ui-prototype/references/content-template.md +0 -81
  551. package/skills/i3-ui-prototype/references/enterprise-admin.md +0 -44
  552. package/skills/i3-ui-prototype/references/entry-contract.md +0 -71
  553. package/skills/i3-ui-prototype/references/execution-evidence.md +0 -51
  554. package/skills/i3-ui-prototype/references/expert-adapter.md +0 -76
  555. package/skills/i3-ui-prototype/references/framework-contract.md +0 -76
  556. package/skills/i3-ui-prototype/references/generation-contract.md +0 -122
  557. package/skills/i3-ui-prototype/references/interaction-acceptance.md +0 -169
  558. package/skills/i3-ui-prototype/references/legacy-native.md +0 -58
  559. package/skills/i3-ui-prototype/references/optional-skills.md +0 -63
  560. package/skills/i3-ui-prototype/references/project-layout.md +0 -92
  561. package/skills/i3-ui-prototype/references/template-adapters.md +0 -63
  562. package/skills/i3-ui-prototype/references/workflow-contract.md +0 -77
  563. package/skills/i3-ui-prototype/scripts/adapters/easel-html.cjs +0 -30
  564. package/skills/i3-ui-prototype/scripts/adapters/legacy-html.cjs +0 -28
  565. package/skills/i3-ui-prototype/scripts/browser-workspace.cjs +0 -72
  566. package/skills/i3-ui-prototype/scripts/buddy-host.cjs +0 -40
  567. package/skills/i3-ui-prototype/scripts/check-design-provider.cjs +0 -9
  568. package/skills/i3-ui-prototype/scripts/check-prototype.cjs +0 -14
  569. package/skills/i3-ui-prototype/scripts/codebuddy-context.cjs +0 -92
  570. package/skills/i3-ui-prototype/scripts/codebuddy-hook.cjs +0 -298
  571. package/skills/i3-ui-prototype/scripts/codebuddy-ide-source.cjs +0 -69
  572. package/skills/i3-ui-prototype/scripts/codebuddy-registration.cjs +0 -125
  573. package/skills/i3-ui-prototype/scripts/content-template.cjs +0 -98
  574. package/skills/i3-ui-prototype/scripts/design-provider-discovery.cjs +0 -128
  575. package/skills/i3-ui-prototype/scripts/enterprise-template.cjs +0 -104
  576. package/skills/i3-ui-prototype/scripts/execution-assertions.cjs +0 -43
  577. package/skills/i3-ui-prototype/scripts/execution-diagnostics.cjs +0 -91
  578. package/skills/i3-ui-prototype/scripts/execution-evidence.cjs +0 -177
  579. package/skills/i3-ui-prototype/scripts/execution-gates.cjs +0 -216
  580. package/skills/i3-ui-prototype/scripts/execution-policy.cjs +0 -62
  581. package/skills/i3-ui-prototype/scripts/execution-recovery.cjs +0 -58
  582. package/skills/i3-ui-prototype/scripts/execution-runtime.cjs +0 -69
  583. package/skills/i3-ui-prototype/scripts/generation-assets.cjs +0 -18
  584. package/skills/i3-ui-prototype/scripts/generation-contract.cjs +0 -214
  585. package/skills/i3-ui-prototype/scripts/generation-evidence.cjs +0 -50
  586. package/skills/i3-ui-prototype/scripts/generation-replan.cjs +0 -34
  587. package/skills/i3-ui-prototype/scripts/hosts/codebuddy.cjs +0 -21
  588. package/skills/i3-ui-prototype/scripts/init-prototype.cjs +0 -8
  589. package/skills/i3-ui-prototype/scripts/manage-baseline.cjs +0 -11
  590. package/skills/i3-ui-prototype/scripts/native-browser.cjs +0 -785
  591. package/skills/i3-ui-prototype/scripts/native-build.cjs +0 -91
  592. package/skills/i3-ui-prototype/scripts/native-command.cjs +0 -35
  593. package/skills/i3-ui-prototype/scripts/native-delivery.cjs +0 -104
  594. package/skills/i3-ui-prototype/scripts/native-devtools.cjs +0 -92
  595. package/skills/i3-ui-prototype/scripts/native-files.cjs +0 -44
  596. package/skills/i3-ui-prototype/scripts/native-pilot-lib.cjs +0 -290
  597. package/skills/i3-ui-prototype/scripts/native-pilot.cjs +0 -59
  598. package/skills/i3-ui-prototype/scripts/native-tool-name.cjs +0 -5
  599. package/skills/i3-ui-prototype/scripts/native-tool-result.cjs +0 -14
  600. package/skills/i3-ui-prototype/scripts/optional-skill-install.cjs +0 -203
  601. package/skills/i3-ui-prototype/scripts/project-registry.cjs +0 -126
  602. package/skills/i3-ui-prototype/scripts/prototype-dependencies.cjs +0 -103
  603. package/skills/i3-ui-prototype/scripts/prototype-hooks.cjs +0 -94
  604. package/skills/i3-ui-prototype/scripts/prototype-lib.cjs +0 -277
  605. package/skills/i3-ui-prototype/scripts/prototype-locations.cjs +0 -69
  606. package/skills/i3-ui-prototype/scripts/ptc-callbacks.cjs +0 -131
  607. package/skills/i3-ui-prototype/scripts/sync-template.cjs +0 -19
  608. package/skills/i3-ui-prototype/scripts/template-adapters.cjs +0 -89
  609. package/skills/i3-ui-prototype/scripts/template-contract.cjs +0 -407
  610. package/skills/i3-ui-prototype/scripts/template-inventory.cjs +0 -78
  611. package/skills/i3-ui-prototype/scripts/validate-result.cjs +0 -117
@@ -12,11 +12,11 @@ from pathlib import Path
12
12
  import tempfile
13
13
  import uuid
14
14
 
15
- VERSION = '0.4.0'
15
+ VERSION = '0.5.0'
16
16
  GLOBAL_ROLES = {'brd'}
17
- TOPIC_ROLES = {'prd', 'ad', 'testCase'}
18
- DOCUMENT_ROLES = GLOBAL_ROLES | TOPIC_ROLES
19
- TOPIC_IDENTITY = ('pbcId', 'pbcName', 'prdId')
17
+ PBC_ROLES = {'prd', 'ad', 'testCase'}
18
+ DOCUMENT_ROLES = GLOBAL_ROLES | PBC_ROLES
19
+ PBC_IDENTITY = ('pbcId', 'pbcName')
20
20
 
21
21
 
22
22
  def _unique(pairs):
@@ -49,41 +49,40 @@ def _only_fields(value, allowed, label):
49
49
 
50
50
  def _validate(value):
51
51
  if not isinstance(value, dict) or type(value.get('schemaVersion')) is not int:
52
- raise ValueError('unsupported handoff schemaVersion; expected integer 2')
53
- if value['schemaVersion'] == 1:
54
- raise ValueError('legacy handoff schemaVersion 1; preserve the original, verify EBC/PBC identities '
55
- 'and document references before an explicitly requested update; no automatic migration')
56
- if value['schemaVersion'] != 2:
57
- raise ValueError('unsupported handoff schemaVersion; expected 2; no automatic migration')
52
+ raise ValueError('unsupported handoff schemaVersion; expected integer 3')
53
+ if value['schemaVersion'] in (1, 2):
54
+ raise ValueError('legacy handoff schemaVersion; preserve the original and review each PBC document set; '
55
+ 'no automatic migration or merging of partial PRDs')
56
+ if value['schemaVersion'] != 3:
57
+ raise ValueError('unsupported handoff schemaVersion; expected 3; no automatic migration')
58
58
  _only_fields(value, {'schemaVersion', 'scope', 'selected'}, 'handoff')
59
59
  scope = value.get('scope')
60
60
  _only_fields(scope, {'ebcId', 'ebcName'}, 'scope')
61
61
  for key in ('ebcId', 'ebcName'):
62
62
  _required_text(scope.get(key), 'scope.' + key)
63
63
  selected = value.get('selected')
64
- _only_fields(selected, GLOBAL_ROLES | {'topics'}, 'selected')
64
+ _only_fields(selected, GLOBAL_ROLES | {'pbcs'}, 'selected')
65
65
  for role in GLOBAL_ROLES & set(selected):
66
66
  _required_text(selected[role], 'selected.' + role)
67
- topics = selected.get('topics')
68
- if not isinstance(topics, list):
69
- raise ValueError('selected.topics must be an array')
70
- seen = set()
71
- names = {}
72
- for topic in topics:
73
- _only_fields(topic, set(TOPIC_IDENTITY) | TOPIC_ROLES, 'topic')
74
- for key in TOPIC_IDENTITY:
75
- _required_text(topic.get(key), 'topic.' + key)
76
- identity = (topic['pbcId'], topic['prdId'])
77
- if identity in seen:
78
- raise ValueError('ambiguous duplicate topic selection')
79
- seen.add(identity)
80
- if names.setdefault(topic['pbcId'], topic['pbcName']) != topic['pbcName']:
81
- raise ValueError('conflicting pbcName for pbcId: ' + topic['pbcId'])
82
- roles = TOPIC_ROLES & set(topic)
67
+ pbcs = selected.get('pbcs')
68
+ if not isinstance(pbcs, list):
69
+ raise ValueError('selected.pbcs must be an array')
70
+ identities, names = set(), set()
71
+ for pbc in pbcs:
72
+ _only_fields(pbc, set(PBC_IDENTITY) | PBC_ROLES, 'pbc')
73
+ for key in PBC_IDENTITY:
74
+ _required_text(pbc.get(key), 'pbc.' + key)
75
+ if pbc['pbcId'] in identities:
76
+ raise ValueError('duplicate pbcId; one current document set per PBC')
77
+ if pbc['pbcName'] in names:
78
+ raise ValueError('different PBC identities cannot share a name and default directory')
79
+ identities.add(pbc['pbcId'])
80
+ names.add(pbc['pbcName'])
81
+ roles = PBC_ROLES & set(pbc)
83
82
  if not roles:
84
- raise ValueError('topic must contain at least one selected PRD, AD or TestCase path')
83
+ raise ValueError('PBC must contain at least one selected PRD, AD or TestCase path')
85
84
  for role in roles:
86
- _required_text(topic[role], 'topic.' + role)
85
+ _required_text(pbc[role], 'pbc.' + role)
87
86
  return value
88
87
 
89
88
 
@@ -92,7 +91,7 @@ def _load(raw):
92
91
 
93
92
 
94
93
  def _selected_only(value):
95
- """Validate the complete v2 record before any canonical write; never discard fields."""
94
+ """Validate the complete v3 record before writing; never discard unknown fields."""
96
95
  _validate(value)
97
96
  return {key: copy.deepcopy(value[key]) for key in ('schemaVersion', 'scope', 'selected')}
98
97
 
@@ -104,18 +103,18 @@ def _check_scope(value, ebc_id, ebc_name):
104
103
  raise ValueError('ebcName conflicts with the selected EBC; verify the document identity before updating')
105
104
 
106
105
 
107
- def _topic_name(selected, pbc_id, prd_id, pbc_name):
106
+ def _pbc_name(selected, pbc_id, pbc_name):
108
107
  _required_text(pbc_id, 'pbcId')
109
- _required_text(prd_id, 'prdId')
110
- topics = selected['topics']
111
- matches = [x for x in topics if x['pbcId'] == pbc_id and x['prdId'] == prd_id]
108
+ matches = [x for x in selected['pbcs'] if x['pbcId'] == pbc_id]
112
109
  if pbc_name is None:
113
110
  if not matches:
114
- raise ValueError('new topic requires an explicit pbcName')
115
- pbc_name = matches[0]['pbcName']
111
+ raise ValueError('a new PBC requires an explicit pbcName')
112
+ return matches[0]['pbcName']
116
113
  _required_text(pbc_name, 'pbcName')
117
- if any(x['pbcId'] == pbc_id and x['pbcName'] != pbc_name for x in topics):
114
+ if matches and matches[0]['pbcName'] != pbc_name:
118
115
  raise ValueError('pbcName conflicts with the selected PBC; verify the document identity before updating')
116
+ if any(x['pbcId'] != pbc_id and x['pbcName'] == pbc_name for x in selected['pbcs']):
117
+ raise ValueError('pbcName already belongs to a different PBC; default paths would collide')
119
118
  return pbc_name
120
119
 
121
120
 
@@ -136,11 +135,10 @@ def _manifest_path(root, raw):
136
135
  return path
137
136
 
138
137
 
139
- def _reference(root, role, raw, pbc_id=None, prd_id=None, pbc_name=None):
138
+ def _reference(root, role, raw, pbc_id=None, pbc_name=None):
140
139
  if role not in DOCUMENT_ROLES:
141
140
  raise ValueError('unknown reference role')
142
- if not isinstance(raw, str) or not raw.strip():
143
- raise ValueError('reference path must be explicit')
141
+ _required_text(raw, 'reference path')
144
142
  path = Path(raw)
145
143
  resolved = (path if path.is_absolute() else root / path).resolve()
146
144
  if not path.is_absolute() and not resolved.is_relative_to(root):
@@ -151,26 +149,22 @@ def _reference(root, role, raw, pbc_id=None, prd_id=None, pbc_name=None):
151
149
  raise ValueError('empty document is not a complete handoff reference')
152
150
  result = {'role': role,
153
151
  'path': resolved.relative_to(root).as_posix() if resolved.is_relative_to(root) else str(resolved)}
154
- if role in TOPIC_ROLES:
155
- for key, item in [('pbcId', pbc_id), ('pbcName', pbc_name), ('prdId', prd_id)]:
156
- result[key] = _required_text(item, key)
152
+ if role in PBC_ROLES:
153
+ result.update(pbcId=_required_text(pbc_id, 'pbcId'), pbcName=_required_text(pbc_name, 'pbcName'))
157
154
  return result
158
155
 
159
156
 
160
157
  def _assign(selected, reference, *, transient=False, replace_document=False):
161
158
  role, path = reference['role'], reference['path']
162
159
  target = selected
163
- if role in TOPIC_ROLES:
164
- topics = selected['topics']
165
- _topic_name(selected, reference['pbcId'], reference['prdId'], reference['pbcName'])
166
- matches = [x for x in topics if x['pbcId'] == reference['pbcId'] and x['prdId'] == reference['prdId']]
167
- if len(matches) > 1:
168
- raise ValueError('ambiguous duplicate topic selection')
160
+ if role in PBC_ROLES:
161
+ _pbc_name(selected, reference['pbcId'], reference['pbcName'])
162
+ matches = [x for x in selected['pbcs'] if x['pbcId'] == reference['pbcId']]
169
163
  if matches:
170
164
  target = matches[0]
171
165
  else:
172
- target = {k: reference[k] for k in TOPIC_IDENTITY}
173
- topics.append(target)
166
+ target = {k: reference[k] for k in PBC_IDENTITY}
167
+ selected['pbcs'].append(target)
174
168
  previous_path = target.get(role)
175
169
  if not transient and previous_path is not None and previous_path != path and not replace_document:
176
170
  raise ValueError('updating a selected document requires --ebc-id matching scope.ebcId')
@@ -178,42 +172,30 @@ def _assign(selected, reference, *, transient=False, replace_document=False):
178
172
  return previous_path
179
173
 
180
174
 
181
- def _resolve(root, value, pbc_id, prd_id, pbc_name, manual):
175
+ def _resolve(root, value, pbc_id, pbc_name, manual):
182
176
  selected = copy.deepcopy(value['selected'])
183
- topics = selected['topics']
184
- if (pbc_id is None) != (prd_id is None):
185
- raise ValueError('provide both pbcId and prdId')
186
- if pbc_id is not None:
187
- _required_text(pbc_id, 'pbcId')
188
- _required_text(prd_id, 'prdId')
189
- elif len(topics) == 1:
190
- pbc_id, prd_id = topics[0]['pbcId'], topics[0]['prdId']
177
+ if pbc_id is None and len(selected['pbcs']) == 1:
178
+ pbc_id = selected['pbcs'][0]['pbcId']
191
179
  if pbc_name is not None:
192
- _topic_name(selected, pbc_id, prd_id, pbc_name)
180
+ _pbc_name(selected, pbc_id, pbc_name)
193
181
  manual_roles = set()
194
182
  for item in manual:
195
183
  role, separator, path = item.partition('=')
196
184
  if not separator or role in manual_roles:
197
185
  raise ValueError('manual references require one unambiguous ROLE=PATH per role')
198
186
  manual_roles.add(role)
199
- name = _topic_name(selected, pbc_id, prd_id, pbc_name) if role in TOPIC_ROLES else None
200
- reference = _reference(root, role, path, pbc_id, prd_id, name)
201
- _assign(selected, reference, transient=True)
202
- topics = selected['topics']
203
- if pbc_id is None and len(topics) > 1:
204
- raise ValueError('multiple topics; explicitly choose pbcId and prdId')
205
- references = []
206
- for role in sorted(GLOBAL_ROLES):
207
- if role in selected:
208
- references.append(_reference(root, role, selected[role]))
209
- matches = [x for x in topics if x['pbcId'] == pbc_id and x['prdId'] == prd_id]
187
+ name = _pbc_name(selected, pbc_id, pbc_name) if role in PBC_ROLES else None
188
+ _assign(selected, _reference(root, role, path, pbc_id, name), transient=True)
189
+ if pbc_id is None and len(selected['pbcs']) > 1:
190
+ raise ValueError('multiple PBCs; explicitly choose pbcId')
191
+ references = [_reference(root, role, selected[role]) for role in sorted(GLOBAL_ROLES) if role in selected]
192
+ matches = [x for x in selected['pbcs'] if x['pbcId'] == pbc_id]
210
193
  if pbc_id is not None and not matches:
211
- raise ValueError('requested topic is not selected; no highest-version fallback')
212
- for topic in matches:
213
- for role in sorted(TOPIC_ROLES):
214
- if role not in topic:
215
- continue
216
- references.append(_reference(root, role, topic[role], pbc_id, prd_id, topic['pbcName']))
194
+ raise ValueError('requested PBC is not selected; no highest-version fallback')
195
+ for pbc in matches:
196
+ for role in sorted(PBC_ROLES):
197
+ if role in pbc:
198
+ references.append(_reference(root, role, pbc[role], pbc_id, pbc['pbcName']))
217
199
  for reference in references:
218
200
  path = Path(reference['path'])
219
201
  reference['resolvedPath'] = str(path if path.is_absolute() else root / path)
@@ -222,7 +204,56 @@ def _resolve(root, value, pbc_id, prd_id, pbc_name, manual):
222
204
  'proof': 'document paths read now; caller must verify document identities, versions, upstream '
223
205
  'and adopted attachments against the declared EBC/PBC scope and actual human decisions'}
224
206
  if matches:
225
- result['topic'] = {key: matches[0][key] for key in TOPIC_IDENTITY}
207
+ result['pbc'] = {key: matches[0][key] for key in PBC_IDENTITY}
208
+ return result
209
+
210
+
211
+ def _component(value, label):
212
+ _required_text(value, label)
213
+ if value != value.strip() or value in {'.', '..'} or any(c in value for c in '/\\<>:"|?*') or any(ord(c) < 32 for c in value):
214
+ raise ValueError(label + ' is not a safe name for a new path; ask for the intended name, do not rename silently')
215
+ return value
216
+
217
+
218
+ def _prepare(root, value, role, pbc_id, pbc_name, path, version):
219
+ if role not in DOCUMENT_ROLES | {'spec'}:
220
+ raise ValueError('prepare requires a document role or spec')
221
+ selected = value['selected']
222
+ target = selected
223
+ if role == 'brd' and (pbc_id is not None or pbc_name is not None):
224
+ raise ValueError('BRD belongs to the EBC, not a PBC')
225
+ if role != 'brd':
226
+ if pbc_id is None and len(selected['pbcs']) == 1:
227
+ pbc_id = selected['pbcs'][0]['pbcId']
228
+ pbc_name = _pbc_name(selected, pbc_id, pbc_name)
229
+ target = next((x for x in selected['pbcs'] if x['pbcId'] == pbc_id), {})
230
+ chosen = path or target.get(role)
231
+ source = 'explicit' if path else 'selected' if chosen else 'default'
232
+ if not chosen:
233
+ name = _component(value['scope']['ebcName'] if role == 'brd' else pbc_name, 'ebcName' if role == 'brd' else 'pbcName')
234
+ if role == 'spec':
235
+ chosen = 'spec/SPEC-' + name + '.md'
236
+ else:
237
+ tag = _component(_required_text(version, 'business version').removeprefix('v'), 'business version')
238
+ suffix = {'brd': 'BRD', 'prd': 'PRD', 'ad': 'AD', 'testCase': 'TestCase'}[role]
239
+ filename = name + '-' + suffix + '_v' + tag + '.md'
240
+ chosen = 'spec/' + ('' if role == 'brd' else name + '/') + filename
241
+ raw = Path(chosen)
242
+ actual = raw if raw.is_absolute() else root / raw
243
+ if actual.exists():
244
+ if not actual.is_file() or not actual.read_text(encoding='utf-8').strip():
245
+ raise ValueError('target is not a readable nonempty document; inspect before writing')
246
+ if not raw.is_absolute() and not actual.resolve().is_relative_to(root):
247
+ raise ValueError('relative target escapes project root')
248
+ else:
249
+ _manifest_path(root, chosen)
250
+ resolved = actual.resolve()
251
+ result = {'ok': True, 'changed': False, 'scope': copy.deepcopy(value['scope']), 'role': role,
252
+ 'source': source, 'path': resolved.relative_to(root).as_posix() if resolved.is_relative_to(root) else str(resolved),
253
+ 'resolvedPath': str(resolved), 'exists': actual.exists(),
254
+ 'proof': 'names and target checked; no directory or document written; existing files require authorized revision'}
255
+ if role != 'brd':
256
+ result['pbc'] = {'pbcId': pbc_id, 'pbcName': pbc_name}
226
257
  return result
227
258
 
228
259
 
@@ -270,73 +301,71 @@ def _store(root, path, old, value):
270
301
 
271
302
 
272
303
  def execute(project_root, manifest, action, *, ebc_id=None, ebc_name=None, role=None, path=None,
273
- pbc_id=None, pbc_name=None, prd_id=None, manual=()):
304
+ pbc_id=None, pbc_name=None, version=None, manual=()):
274
305
  root = Path(project_root).resolve()
275
306
  if not root.is_dir():
276
307
  raise ValueError('explicit project root must already exist')
277
308
  _required_text(ebc_id, 'ebcId')
278
- if action not in {'init', 'select', 'resolve'}:
309
+ if action not in {'init', 'select', 'resolve', 'prepare'}:
279
310
  raise ValueError('unknown handoff action')
280
311
  if action != 'resolve' and manual:
281
312
  raise ValueError('manual overrides are read-only resolve inputs')
282
- if action == 'resolve':
283
- if manifest:
284
- target = _manifest_path(root, manifest)
285
- if not target.is_file():
286
- raise ValueError('manifest missing; no automatic creation in read-only resolve')
287
- value = _load(target.read_bytes())
313
+ target = _manifest_path(root, manifest) if manifest else None
314
+ old = target.read_bytes() if target and target.is_file() else None
315
+ if action in {'resolve', 'prepare'}:
316
+ if old is not None:
317
+ value = _load(old)
288
318
  _check_scope(value, ebc_id, ebc_name)
289
- elif manual:
290
- value = {'schemaVersion': 2,
319
+ elif action == 'prepare' or (manual and not manifest):
320
+ value = {'schemaVersion': 3,
291
321
  'scope': {'ebcId': ebc_id, 'ebcName': _required_text(ebc_name, 'ebcName')},
292
- 'selected': {'topics': []}}
322
+ 'selected': {'pbcs': []}}
293
323
  else:
294
- raise ValueError('resolve requires an explicit manifest or manual references with EBC identity')
295
- return _resolve(root, value, pbc_id, prd_id, pbc_name, manual)
296
- target = _manifest_path(root, manifest)
297
- old = target.read_bytes() if target.is_file() else None
324
+ raise ValueError('manifest missing; use explicit manual resolve or return to T1; no automatic creation')
325
+ if action == 'prepare':
326
+ return _prepare(root, value, role, pbc_id, pbc_name, path, version)
327
+ return _resolve(root, value, pbc_id, pbc_name, manual)
328
+ if target is None:
329
+ raise ValueError('an explicit manifest path is required for this operation')
298
330
  if action == 'init':
299
331
  _required_text(ebc_name, 'ebcName')
300
332
  value = _load(old) if old is not None else {
301
- 'schemaVersion': 2, 'scope': {'ebcId': ebc_id, 'ebcName': ebc_name}, 'selected': {'topics': []}}
333
+ 'schemaVersion': 3, 'scope': {'ebcId': ebc_id, 'ebcName': ebc_name}, 'selected': {'pbcs': []}}
302
334
  _check_scope(value, ebc_id, ebc_name)
303
335
  return _store(root, target, old, value)
304
- if action == 'select':
305
- if old is None:
306
- raise ValueError('manifest missing; initialize the explicit EBC first or use manual resolve')
307
- value = _load(old)
308
- _check_scope(value, ebc_id, ebc_name)
309
- if role in GLOBAL_ROLES and any(item is not None for item in (pbc_id, pbc_name, prd_id)):
310
- raise ValueError('BRD selection belongs to the EBC and does not take PBC or PRD identity')
311
- name = _topic_name(value['selected'], pbc_id, prd_id, pbc_name) if role in TOPIC_ROLES else None
312
- reference = _reference(root, role, path, pbc_id, prd_id, name)
313
- previous_path = _assign(value['selected'], reference, replace_document=True)
314
- result = _store(root, target, old, value)
315
- if previous_path is not None and previous_path != reference['path']:
316
- result['updatedSelection'] = dict(reference, previousPath=previous_path)
317
- return result
336
+ if old is None:
337
+ raise ValueError('manifest missing; initialize the explicit EBC first or use manual resolve')
338
+ value = _load(old)
339
+ _check_scope(value, ebc_id, ebc_name)
340
+ if role in GLOBAL_ROLES and (pbc_id is not None or pbc_name is not None):
341
+ raise ValueError('BRD selection belongs to the EBC and does not take PBC identity')
342
+ name = _pbc_name(value['selected'], pbc_id, pbc_name) if role in PBC_ROLES else None
343
+ reference = _reference(root, role, path, pbc_id, name)
344
+ previous_path = _assign(value['selected'], reference, replace_document=True)
345
+ result = _store(root, target, old, value)
346
+ if previous_path is not None and previous_path != reference['path']:
347
+ result['updatedSelection'] = dict(reference, previousPath=previous_path)
348
+ return result
318
349
 
319
350
 
320
351
  def main():
321
352
  parser = argparse.ArgumentParser(description=__doc__)
322
- parser.add_argument('action', choices=['init', 'select', 'resolve'])
353
+ parser.add_argument('action', choices=['init', 'select', 'resolve', 'prepare'])
323
354
  parser.add_argument('--project-root', required=True, help='Explicit business project root; one EBC per project')
324
- parser.add_argument('--manifest', help='Explicit manifest path; new projects use spec/handoff.json; '
325
- 'omit only for resolve with manual inputs')
355
+ parser.add_argument('--manifest', help='Explicit manifest path; new projects use spec/handoff.json')
326
356
  parser.add_argument('--ebc-id', required=True, help='Expected EBC identity; checked on every operation')
327
- parser.add_argument('--ebc-name', help='Required for init and manual resolve without a manifest')
328
- parser.add_argument('--role', choices=sorted(DOCUMENT_ROLES))
329
- parser.add_argument('--path', help='Explicit saved document path; new BRD: spec/<EBC-name>-BRD_v<version>.md; '
330
- 'new PRD/AD/TestCase: spec/<PBC-name>/...; relative to the business project root')
331
- parser.add_argument('--pbc-id')
332
- parser.add_argument('--pbc-name', help='Required when creating a topic; existing names must match')
333
- parser.add_argument('--prd-id')
357
+ parser.add_argument('--ebc-name', help='Required for init and when no manifest exists')
358
+ parser.add_argument('--role', choices=sorted(DOCUMENT_ROLES | {'spec'}))
359
+ parser.add_argument('--path', help='Explicit adopted document or authorized new target; relative to the project root')
360
+ parser.add_argument('--pbc-id', help='PBC identity; no separate PRD theme identity')
361
+ parser.add_argument('--pbc-name', help='Required for a new PBC; existing names must match')
362
+ parser.add_argument('--version', help='Business document version for prepare when no path is selected; optional for spec')
334
363
  parser.add_argument('--manual', action='append', default=[], metavar='ROLE=PATH')
335
364
  args = parser.parse_args()
336
365
  try:
337
366
  result = execute(args.project_root, args.manifest, args.action, ebc_id=args.ebc_id,
338
367
  ebc_name=args.ebc_name, role=args.role, path=args.path,
339
- pbc_id=args.pbc_id, pbc_name=args.pbc_name, prd_id=args.prd_id, manual=args.manual)
368
+ pbc_id=args.pbc_id, pbc_name=args.pbc_name, version=args.version, manual=args.manual)
340
369
  except (OSError, ValueError, UnicodeError) as error:
341
370
  print(json.dumps({'ok': False, 'error': str(error)}, ensure_ascii=False))
342
371
  return 1
@@ -31,30 +31,30 @@
31
31
  | 来源 | 本次使用内容 | 整理后的维护位置 |
32
32
  | --- | --- | --- |
33
33
  | 软件架构设计 Specification 模板 v0.6,第 3—4 章 | 架构边界、已明确技术方向、按需选型、版本与兼容要求 | 本文件第 1—2 节 |
34
- | 同一来源,第 6—11 章 | 数据、接口、前端、Agent、集成、权限及恢复的共用约束 | 本文件第 1、3—5 节;主题接口、实体和流程由各 AD 详设 |
34
+ | 同一来源,第 6—11 章 | 数据、接口、前端、Agent、集成、权限及恢复的共用约束 | 本文件第 1、3—5 节;各PBC的接口、实体和流程由各 AD 详设 |
35
35
  | 同一来源,第 12—17 章及附录 | 工程质量、环境、流水线、实施交接、验证与未决事项 | 本文件第 6—9 节 |
36
36
  | 使用者本轮逐项确认(2026-10-20) | 共用基线定位、Java/Spring Boot、前端工具链、MaxKey/OIDC、接口惯例、目录采用、部署分工及按项目落实的规则 | 对应第2—9节;不扩展为版本兼容、业务批准或实际环境就绪 |
37
37
  | 2026-10-21官方资料核对、本机只读检查与使用者确认 | 固定首套版本选择、保留K8s 1.28及现有GitLab;记录兼容范围与真实验证边界 | 本文件§2.3—§2.6及Q02—Q06、Q09;不自动执行升级或替项目采用 |
38
- | [公共技术规约资料](../readme.md) | 已有规范优先、公共规则与主题设计分工、候选与真实采用分开 | 本文件的范围、采用和版本规则 |
39
- | [当前 AD 模板](../../templates/ad.md) §0.3、§2.2、§9.6 | 基线引用、技术落实和真实骨架来源 | 各主题 AD 的对应条款 |
38
+ | [公共技术规约资料](../readme.md) | 已有规范优先、公共规则与PBC设计分工、候选与真实采用分开 | 本文件的范围、采用和版本规则 |
39
+ | [当前 AD 模板](../../templates/ad.md) §0.3、§2.2、§9.6 | 基线引用、技术落实和真实骨架来源 | 各PBC的 AD 的对应条款 |
40
40
  | [本 Skill 工程交接说明](../../../SKILL.md) 中的 T2/T3 | 选定 AD及必要配套形成工程 SPEC,再交原 Plan及获准 Build;原命令等效规格方式保留 | 本文件第9节及本 Skill T2/T3;具体技术规则未改 |
41
41
  | [目录规范1.0.0](../../engineering-skeleton/directory-standard.md) | 工程目录与职责、AD映射、原Plan任务路径、获准Build的实际文件落点 | 本文件第1、6—9节;目录规范可先采用,不要求预先取得代码框架模板 |
42
42
  | 原Ship命令及原Spec的内容要求(通过实际宿主发现;[调用边界](../../../SKILL.md)) | 发布前检查/决策/回滚,及原SPEC六项的工程命令和项目依据 | 本文件第6—7、9节;原命令与Skill未改 |
43
43
 
44
- 源材料沿用总体 `design.md` 和旧 MVP 产物组织。本文件只提取其中适用的技术内容,并按当前已确认的“公共规约+多主题 PRD/AD”组织;不恢复旧 MVP 流程,不改动源文件,不要求把公共规则复制到每份 AD。原文要求明确写出规则的目的继续保留:AD 必须指出准确规则、适用范围和落实位置,不能只写“沿用旧规范”。
44
+ 源材料沿用总体 `design.md` 和旧 MVP 产物组织。本文件只提取其中适用的技术内容,并按当前已确认的“公共规约+各PBC的一套PRD/AD”组织;不恢复旧 MVP 流程,不改动源文件,不要求把公共规则复制到每份 AD。原文要求明确写出规则的目的继续保留:AD 必须指出准确规则、适用范围和落实位置,不能只写“沿用旧规范”。
45
45
 
46
46
  本规约保留已确认技术条款及其来源说明,仅分发当前版本;工程组织统一采用同一SOP Skill内的1.0.0目录规范,采用信息由AD现有表格记录。来源材料或发行资源后续修改,不自动改变项目已经采用的版本。
47
47
 
48
48
  ## 1. 共用架构与工程边界
49
49
 
50
- | 条款 | 共用规则 | 主题 AD 的落实责任 |
50
+ | 条款 | 共用规则 | PBC的 AD 落实责任 |
51
51
  | --- | --- | --- |
52
- | ARC-01 | 根据真实业务目标确定逻辑模块、工程、运行应用和部署单元;一个 PBC 不自动等于一个微服务、仓库或数据库 | 明确本主题组件职责、依赖、运行单元和部署关系,以及采用或拆分理由 |
52
+ | ARC-01 | 根据真实业务目标确定逻辑模块、工程、运行应用和部署单元;一个 PBC 不自动等于一个微服务、仓库或数据库 | 明确本PBC的组件职责、依赖、运行单元和部署关系,以及采用或拆分理由 |
53
53
  | ARC-02 | 前端负责交互与呈现;业务服务负责正式业务规则、最终授权、状态及数据;Agent 负责其获准的分析或工具执行;任务工程负责实际选择的触发、执行与恢复职责 | 给出三图和详设,绑定实际组件及数据维护责任;按需采用工程类型,不为凑目录新增服务 |
54
54
  | ARC-03 | 前端临时状态、Agent 会话或执行结果、工作流历史、任务状态与正式业务状态分别维护 | 写清各类状态的存储、可信来源、标识映射及最终业务完成条件 |
55
55
  | ARC-04 | Dapr 的运行支撑能力与项目业务授权、数据责任及人工决定分开设计 | 明确所用能力、组件、调用方向、业务校验和失败责任;服务能够互通不代表用户获准操作 |
56
56
  | ARC-05 | 缓存、向量检索、消息、GIS、三维、多 Agent 等按实际需求选择 | 给出需求来源、用途和选型;不使用时说明理由,未知时列为待确认 |
57
- | ARC-06 | 消费外部能力应依据正式契约,不复制提供方内部实现作为本主题权威 | 固定提供/消费关系和版本;分别记录已可用、待核实、待接入及真实联调条件 |
57
+ | ARC-06 | 消费外部能力应依据正式契约,不复制提供方内部实现作为本PBC权威 | 固定提供/消费关系和版本;分别记录已可用、待核实、待接入及真实联调条件 |
58
58
 
59
59
  来源:软件技术说明第3、5、8—11章;现有工程骨架目录方案及目录规范1.0.0的职责分工。
60
60
 
@@ -209,7 +209,7 @@ PostgreSQL已定位的是Homebrew libpq 18.3工具。在已查常见路径、进
209
209
 
210
210
  ### 4.1 已确认的接口与数据惯例
211
211
 
212
- | 范围 | 共用约定 | 项目及主题AD补充内容 |
212
+ | 范围 | 共用约定 | 项目及PBC的AD补充内容 |
213
213
  | --- | --- | --- |
214
214
  | API字段命名 | 本项目自有API字段使用camelCase | 外部契约或既有系统沿用其真实定义,适配处写明映射与例外 |
215
215
  | 数据库字段命名 | 本项目新建数据库字段使用snake_case | 保留存量字段,具体表名、约束、索引及schema按工程实际明确 |
@@ -234,9 +234,9 @@ PostgreSQL已定位的是Homebrew libpq 18.3工具。在已查常见路径、进
234
234
  | AGT-03 | 模型、Prompt、工具描述与流程版本分别追踪;不能暗中替换模型。知识检索、记忆和多 Agent 按需设计,资料与工具返回不能修改系统权限 |
235
235
  | AGT-04 | 定义模型/工具调用、Token、时长、并发和循环预算,以及超限、取消和人工处理行为;具体数值依据业务和工程事实,不能由模板填造 |
236
236
 
237
- 来源:软件技术说明第 7、9、10 章。具体业务接口、事件、工具和模型尚未提供;它们属于对应主题 AD 及正式契约的后续设计内容。
237
+ 来源:软件技术说明第 7、9、10 章。具体业务接口、事件、工具和模型尚未提供;它们属于对应PBC的 AD 及正式契约的后续设计内容。
238
238
 
239
- ## 5. 数据、状态与跨主题责任
239
+ ## 5. 数据、状态与跨PBC责任
240
240
 
241
241
  - DATA-01:每项正式业务实体、共享字段、状态及共享文件明确唯一逻辑维护责任与受控读写边界。共用数据库实例不代表允许跨模块任意读写。
242
242
  - DATA-02:业务数据、执行历史、Agent 会话、缓存和检索索引分别说明权威来源、保存范围、过期语义、恢复及清理责任;临时或派生数据不能冒充正式结果。
@@ -245,7 +245,7 @@ PostgreSQL已定位的是Homebrew libpq 18.3工具。在已查常见路径、进
245
245
  - DATA-05:状态迁移、终态、撤销、重开、删除和保留要求来自 PRD 及实际项目决定;不能用技术规约新增权限、删除能力或保留期限。
246
246
  - DATA-06:索引根据真实查询和数据特征设计,并核写入及维护成本;迁移、初始化、回填、备份、应用回滚和数据恢复分别说明。
247
247
 
248
- 命名、跨端大整数标识、时间点和错误关联的共用惯例按§4.1执行。主键生成、审计字段、实际时区/格式、删除方式和保留期按项目与业务依据落实,见Q07、Q10;具体实体及提供/消费责任从选定PRD和主题AD形成,见Q12,不要求提前填入通用规约。来源:软件技术说明第6—7、9、11、13章、当前AD模板及使用者确认。
248
+ 命名、跨端大整数标识、时间点和错误关联的共用惯例按§4.1执行。主键生成、审计字段、实际时区/格式、删除方式和保留期按项目与业务依据落实,见Q07、Q10;具体实体及提供/消费责任从选定PRD和PBC的AD形成,见Q12,不要求提前填入通用规约。来源:软件技术说明第6—7、9、11、13章、当前AD模板及使用者确认。
249
249
 
250
250
  ## 6. 工程组织、质量与原方法衔接
251
251
 
@@ -254,7 +254,7 @@ PostgreSQL已定位的是Homebrew libpq 18.3工具。在已查常见路径、进
254
254
  - ENG-01:工程骨架沿用现有[目录规范1.0.0](../../engineering-skeleton/directory-standard.md)。`pbc-composite`与`agent-standalone`是组织方式,frontend、backend、agents、jobs及配套契约、共享代码、测试和交付位置按需采用;内部遵循实际语言/框架惯例。
255
255
  - ENG-02:目录规范是实际可读的设计输入,可以在工程创建前采用。AD记录规范来源/版本、业务项目根、已有/拟建工程和模块映射;未采用代码框架模板时如实说明,不要求预先取得企业代码模板或冻结首套完整技术栈。
256
256
  - ENG-03:AD §9.2明确源码、模块、配置、测试、契约及装配位置,§9.6说明已有工程与拟建内容;原Plan把预计新增/修改文件路径、依赖和验证写入任务;获准的Build在这些位置生成实际内容,核对文件落点并执行原有测试/构建。
257
- - ENG-04:共享底座、契约和文件只有一处维护责任及实际任务来源,其他主题引用依赖;新增 PRD 不自动复制底座。再次生成或更新时保留人工修改、历史及已完成任务,冲突先核范围。
257
+ - ENG-04:共享底座、契约和文件只有一处维护责任及实际任务来源,其他PBC引用依赖;新增 PRD 不自动复制底座。再次生成或更新时保留人工修改、历史及已完成任务,冲突先核范围。
258
258
  - ENG-05:目录规范不要求另建project.yaml、templates.lock、contracts.lock、生成记录库或代码模板三方升级流程。已有项目或工具确有这些文件时按其实际用途保留;项目另行要求复用特定代码模板时,才取得该模板及所需版本、应用和验证依据。
259
259
 
260
260
  可以在现有AD的骨架栏目写明“目录规范已采用;工程拟建;未采用代码框架模板”,不能据此声称“可运行代码模板已取得”或“代码已生成”。实际目录来源为本资源附带的1.0.0定版资料;资源目录和i3维护工作区均不是业务工程输出根。
@@ -289,7 +289,7 @@ PostgreSQL已定位的是Homebrew libpq 18.3工具。在已查常见路径、进
289
289
 
290
290
  ## 7. 版本兼容、交付与恢复
291
291
 
292
- - DEL-01:文档、正式契约、代码提交、依赖、制品、配置和运行环境分别定位版本;不强制所有主题 PRD/AD 同号,也不机械升级无关主题。
292
+ - DEL-01:文档、正式契约、代码提交、依赖、制品、配置和运行环境分别定位版本;不强制所有PBC的 PRD/AD 同号,也不机械升级无关PBC。
293
293
  - DEL-02:GitLab 实例、仓库、保护规则、MR、Runner、CI 模板、镜像库、变量及环境权限按实际资源填写。设计方案、资源存在、配置完成和真实验证分开记录;企业 GitLab 方向不改动 i3 工具仓库自身的 GitHub 工作流。
294
294
  - DEL-03:流水线按项目实际组合变更检查、测试/评测、构建、迁移/部署、部署后验证及放行。每项明确触发、身份、输入、通过条件、失败处理和证据;本文件不宣称这些流水线已经存在。
295
295
  - DEL-04:K8s/Dapr 配置基于所选版本和实际需求确定工作负载、入口、运行身份、组件作用域、资源、探针、优雅退出、网络及密钥引用。端口、实例数和部署工具未定时不得猜测。
@@ -318,12 +318,12 @@ PostgreSQL已定位的是Homebrew libpq 18.3工具。在已查常见路径、进
318
318
  | Q04 | Dapr/Agent按实际需要的能力建立组合版本和验证安排 | 按§2.3固定所用版本;在保留的K8s 1.28上验证实际安装、必要业务链、中断恢复、重复与授权失效,离线渲染不替代运行证据 | 依赖相关能力的设计/工程阶段分别核实 |
319
319
  | Q05 | PostgreSQL优先兼容企业已有受支持版本,逻辑责任与恢复分别设计 | 先定位已有服务端;17.11仅是无既有约束的新建候选,驱动42.7.14已定,扩展/实例/迁移/DDL/恢复仍须真实证据 | 数据工程设计、迁移及运行前 |
320
320
  | Q06 | 统一身份采用MaxKey,通过OIDC接入;业务服务执行最终授权 | 4.1.12为首轮接入基线,投产前核4.2.0安全更新;取得实际实例/类型、应用注册、映射、退出撤权及配置引用,不虚构claims或可用能力 | 身份相关契约和实现前 |
321
- | Q07 | API camelCase、数据库snake_case、跨端大整数ID字符串、明确时间点时区、稳定业务码与关联标识 | 正式契约补精确字段、分页上限、格式/精度、主键生成、审计及存量映射,避免擅改已有契约 | 相关公共契约及主题AD定稿前 |
321
+ | Q07 | API camelCase、数据库snake_case、跨端大整数ID字符串、明确时间点时区、稳定业务码与关联标识 | 正式契约补精确字段、分页上限、格式/精度、主键生成、审计及存量映射,避免擅改已有契约 | 相关公共契约及PBC的AD定稿前 |
322
322
  | Q08 | 引用现有目录规范1.0.0,沿用原AD→Plan→Build的目录映射链 | 明确业务根及真实/拟建路径;目录规范可先采用,实际代码由获准Build生成验证;只有另行要求特定代码模板才须取得该模板 | AD映射、Plan任务文件路径、Build实际落点依次核对 |
323
323
  | Q09 | AD规定部署要求,Plan安排任务,Build形成配置,Ship核验汇总部署准备 | K8s 1.28和GitLab 19.2.4为使用者提供的环境;补完整集群信息、Runner及实际资源/权限/配置,部署资料不冒充平台已就绪 | 构建、联调、部署和发布按需落实 |
324
324
  | Q10 | 保留已有质量下限,新增指标从PRD或真实工程决定取得 | 质量、容量、恢复、预算、保留、告警与适用要求的具体值和测量方法属于项目;不得填造通用数字 | 对应测试设计、处理数据或放行前 |
325
325
  | Q11 | 根据实际情况填写各工程命令、cwd、前提、成功依据和风格 | 已有工程读取真实配置;新工程按任务创建并验证,未验证保持实际状态;不要求用户预先写假命令 | 本次规划与任务执行按依赖补足 |
326
- | Q12 | 具体业务主题及数据/契约责任从选定PRD和各主题AD形成 | 绑定实际接口、事件、工具、实体和提供/消费方;不把它们作为通用规约必须提前填完的内容 | 每个主题AD与必要关联契约设计时 |
326
+ | Q12 | 具体PBC及数据/契约责任从选定PRD和各PBC的AD形成 | 绑定实际接口、事件、工具、实体和提供/消费方;不把它们作为通用规约必须提前填完的内容 | 每个PBC的AD与必要关联契约设计时 |
327
327
 
328
328
  上述共用规则及处理方式不再保持“全部待确认”。项目采用、具体版本、配置和运行结果仍需各自真实依据,不能因使用者同意规则就自动关闭。缺项只限制依赖它的范围,不无差别阻断AD起草或不相关的准备任务;也不能因文档生成完成而填造工程结果。
329
329
 
@@ -334,7 +334,7 @@ PostgreSQL已定位的是Homebrew libpq 18.3工具。在已查常见路径、进
334
334
  ### 9.1 进入 AD
335
335
 
336
336
  1. 使用 i3-enterprise-sop生成AD时,项目未另有明确规约就默认读取本规约和目录规范,在AD记录路径、版本及范围;已有明确规约优先,冲突先说明。
337
- 2. 选定准确 PRD 主题和版本。起草/修订 AD 必须按企业入口加载原 Spec Skill,使用完整 AD 模板;本公共规约本身不替代主题规格。
337
+ 2. 选定PBC的准确PRD和版本。起草/修订 AD 必须按企业入口加载原 Spec Skill,使用完整 AD 模板;本公共规约本身不替代PBC规格。
338
338
  3. AD §0.3登记本规约及目录规范的来源和版本,§2.2落实技术选择,§9.2映射工程及模块位置,§9.6区分现有工程和拟建内容;目录规范可在代码生成前采用,保留三图和全部详设责任。
339
339
  4. 原型按需,可与 AD 并行。记录假设和受影响未决;候选生成、完整回读和人工认可分别处理,保存后遵守原 Spec 停轮。
340
340
 
@@ -343,25 +343,25 @@ PostgreSQL已定位的是Homebrew libpq 18.3工具。在已查常见路径、进
343
343
  ```text
344
344
  使用 i3-enterprise-sop 的 ad 动作。
345
345
  将自带《企业应用公共技术规约 v0.0.4》和目录规范作为默认输入;项目已有明确规约时优先沿用。
346
- 先确定当前业务项目、我已选定的 PRD 主题和准确版本;存在歧义先问。
347
- 实际读取这份规约、其引用的工程目录规范1.0.0及本次必要来源,列出适用条款、已有规范冲突和影响本主题的项目缺口。
348
- 按原 Spec Skill 和完整 AD 模板生成本主题设计,保留三图、工程细节和 SPEC 六项。
346
+ 先确定当前业务项目、我已选定PBC的PRD和准确版本;存在歧义先问。
347
+ 实际读取这份规约、其引用的工程目录规范1.0.0及本次必要来源,列出适用条款、已有规范冲突和影响本PBC的项目缺口。
348
+ 按原 Spec Skill 和完整 AD 模板生成本PBC设计,保留三图、工程细节和 SPEC 六项。
349
349
  沿用§2.3已确认的版本矩阵,保留既有K8s 1.28与GitLab 19.2.4;逐项区分目标与实装,未验证的兼容性、具体字段和工程映射按实际来源补足。
350
- 按现有目录规范明确本主题源码、模块、配置、测试和契约的已有/拟建位置,不要求预先提供一套代码框架模板,也不宣称工程已生成。
350
+ 按现有目录规范明确本PBC源码、模块、配置、测试和契约的已有/拟建位置,不要求预先提供一套代码框架模板,也不宣称工程已生成。
351
351
  保留已有人工修改,回读最终稿,交我审阅后停轮,不进入 Plan 或 Build。
352
352
  ```
353
353
 
354
354
  ### 9.2 交原 Plan
355
355
 
356
- 以选定AD为入口,读取其准确PRD、本规约适用条款、共享契约、目录规范及AD工程映射和已有代码;尚无代码时如实记录拟建,不虚构工程根。按主题加载完整必要内容,核本范围SPEC六项和FR/AC;Plan任务保留真实/拟建文件路径及验证依据,不全量注入无关AD和历史。
356
+ 以选定AD为入口,读取其准确PRD、本规约适用条款、共享契约、目录规范及AD工程映射和已有代码;尚无代码时如实记录拟建,不虚构工程根。按PBC加载完整必要内容,核本范围SPEC六项和FR/AC;Plan任务保留真实/拟建文件路径及验证依据,不全量注入无关AD和历史。
357
357
 
358
- 本规约的来源标识、准确路径或URL、文内版本或固定提交、适用条款、采用范围与例外、实际读取及缺口,统一记录在AD §0.3;工程映射与实际模板/骨架来源由AD §9.6承接。后续工程SPEC/Plan沿AD引用读取准确原件,不再将规约路径或采用信息写入 `handoff.json`,也不另建采用说明。`handoff.json`仅记录EBC/PBC身份及已选BRD/PRD/AD/TestCase文档路径,主题AD仍按相应文档角色登记。可以手动给出准确路径,不强制创建清单;引用或登记不证明已读,也不表示文档获批。
358
+ 本规约的来源标识、准确路径或URL、文内版本或固定提交、适用条款、采用范围与例外、实际读取及缺口,统一记录在AD §0.3;工程映射与实际模板/骨架来源由AD §9.6承接。后续工程SPEC/Plan沿AD引用读取准确原件,不再将规约路径或采用信息写入 `handoff.json`,也不另建采用说明。`handoff.json`仅记录EBC/PBC身份及已选BRD/PRD/AD/TestCase文档路径,PBC的AD仍按相应文档角色登记。可以手动给出准确路径,不强制创建清单;引用或登记不证明已读,也不表示文档获批。
359
359
 
360
360
  ```text
361
361
  /i3-plan
362
362
  以我本轮明确选定的AD为规划入口,实际读取它引用的PRD、公共技术规约适用条款、共享契约、工程目录规范及已有代码。
363
363
  公共技术规约按AD §0.3采用记录中的准确路径、文内版本及适用条款回读,不以AD引用或清单存在代替正文读取;规约采用信息不写入handoff.json。
364
- 核对本主题需求、验收条件、SPEC 六项、共享依赖和未决影响;TestCase 按需引用。
364
+ 核对本PBC需求、验收条件、SPEC 六项、共享依赖和未决影响;TestCase 按需引用。
365
365
  按AD的工程/模块映射,将每项任务预计新增或修改的文件路径、真实来源、初始化或增量内容及验证依据保留在原计划和唯一任务目标中,交我审阅,暂不实施。
366
366
  ```
367
367
 
@@ -375,6 +375,6 @@ PostgreSQL已定位的是Homebrew libpq 18.3工具。在已查常见路径、进
375
375
 
376
376
  本版保留2026-10-20/21确认的共用规则、技术版本矩阵、本机及既有平台事实、官方依据与V01—V06验证安排,并按2026-10-22确认采用工程目录规范1.0.0,本副本的采用信息直接由AD记录。Q02—Q06、Q09区分已选择版本与仍待取得的环境/运行证据;其他已确认规则保留。K8s 1.28继续保留,三组Dapr离线渲染不作为真实集群通过证明。
377
377
 
378
- 本文件可供人工审阅,并可在明确选用后作为 AD 的公共输入。它不证明某项目的整体技术设计已经批准,也不证明所有主题可交 Plan、可直接 Build 或已通过运行验收。
378
+ 本文件可供人工审阅,并可在明确选用后作为 AD 的公共输入。它不证明某项目的整体技术设计已经批准,也不证明所有PBC可交 Plan、可直接 Build 或已通过运行验收。
379
379
 
380
380
  版本记录:v0.0.4(2026-10-22)统一SOP Skill内的工程目录来源1.0.0及资源引用,技术选型、版本矩阵和验证边界保留。通用模板、AD模板、原版Skill/命令、已有UI原型能力与业务稿未改。未执行技术栈安装、升级、部署或npm发布,i3发行版本未调整。