@givolt/i3-composer-agent 2.2.3 → 2.3.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 (436) hide show
  1. package/.agents/plugins/marketplace.json +1 -1
  2. package/.claude/commands/i3-prototype.md +23 -0
  3. package/.claude/commands/i3-review.md +1 -1
  4. package/.claude/commands/i3-ship.md +1 -1
  5. package/.claude-plugin/marketplace.json +1 -1
  6. package/.claude-plugin/plugin.json +1 -1
  7. package/.codex-plugin/plugin.json +2 -2
  8. package/.gemini/commands/i3-prototype.toml +23 -0
  9. package/.gemini/commands/i3-review.toml +1 -1
  10. package/.gemini/commands/i3-ship.toml +1 -1
  11. package/README.md +15 -5
  12. package/agents/code-reviewer.md +1 -1
  13. package/agents/test-engineer.md +1 -1
  14. package/bin/native-layout.cjs +2 -0
  15. package/commands/i3-prototype.toml +23 -0
  16. package/commands/i3-review.toml +1 -1
  17. package/commands/i3-ship.toml +1 -1
  18. package/docs/agents.md +2 -2
  19. package/docs/codebuddy-setup.md +2 -2
  20. package/docs/codex-setup.md +1 -1
  21. package/docs/copilot-setup.md +4 -0
  22. package/docs/cursor-setup.md +3 -0
  23. package/docs/other-hosts.md +44 -9
  24. package/docs/workbuddy-setup.md +2 -2
  25. package/evals/README.md +2 -0
  26. package/evals/cases/i3-documentation-and-adrs.json +18 -0
  27. package/evals/cases/i3-test-driven-development.json +8 -0
  28. package/evals/cases/i3-ui-prototype.json +49 -0
  29. package/evals/fixtures/i3-documentation-and-adrs/prose-review/README.md +19 -0
  30. package/evals/fixtures/i3-documentation-and-adrs/prose-review/queue.js +32 -0
  31. package/evals/fixtures/i3-ui-prototype/business-brief.md +7 -0
  32. package/evals/plugin/tdd-fires-on-pasted-bug/graders/failing-test-first.md +7 -0
  33. package/evals/plugin/tdd-fires-on-pasted-bug/graders/skill-fired.md +5 -0
  34. package/evals/plugin/tdd-fires-on-pasted-bug/prompt.md +15 -0
  35. package/evals/plugin/tdd-stays-quiet-on-debug/graders/not-fired.md +8 -0
  36. package/evals/plugin/tdd-stays-quiet-on-debug/prompt.md +25 -0
  37. package/evals/zh-CN/cases/i3-documentation-and-adrs.json +19 -0
  38. package/evals/zh-CN/cases/i3-test-driven-development.json +4 -0
  39. package/evals/zh-CN/cases/i3-ui-prototype.json +50 -0
  40. package/hooks/SIMPLIFY-IGNORE.md +3 -2
  41. package/hooks/simplify-ignore-test.sh +93 -1
  42. package/hooks/simplify-ignore.sh +94 -11
  43. package/package.json +27 -1
  44. package/plugin.json +1 -1
  45. package/references/performance-checklist.md +4 -2
  46. package/scripts/enterprise-template-test.js +139 -0
  47. package/scripts/lib/skill-lint-test.js +113 -1
  48. package/scripts/lib/skill-lint.js +62 -8
  49. package/scripts/run-evals-test.js +207 -0
  50. package/scripts/run-evals.js +47 -9
  51. package/scripts/template-adapter-test.js +155 -0
  52. package/scripts/ui-prototype-test.js +114 -0
  53. package/scripts/validate-commands-test.js +30 -0
  54. package/scripts/validate-commands.js +6 -16
  55. package/scripts/validate-reference-links-test.js +18 -0
  56. package/scripts/validate-reference-links.js +4 -2
  57. package/scripts/validate-skills.js +26 -3
  58. package/skills/i3-documentation-and-adrs/SKILL.md +9 -0
  59. package/skills/i3-frontend-ui-engineering/SKILL.md +5 -1
  60. package/skills/i3-idea-refine/SKILL.md +20 -5
  61. package/skills/i3-incremental-implementation/SKILL.md +4 -0
  62. package/skills/i3-performance-optimization/SKILL.md +10 -10
  63. package/skills/i3-security-and-hardening/references/hardening-patterns.md +1 -1
  64. package/skills/i3-shipping-and-launch/SKILL.md +6 -0
  65. package/skills/i3-test-driven-development/SKILL.md +3 -3
  66. package/skills/i3-ui-prototype/SKILL.md +119 -0
  67. package/skills/i3-ui-prototype/assets/templates/catalog.json +147 -0
  68. package/skills/i3-ui-prototype/assets/templates/classic-admin/manifest.json +9 -0
  69. package/skills/i3-ui-prototype/assets/templates/classic-admin/preset.json +6 -0
  70. package/skills/i3-ui-prototype/assets/templates/common/app/app.mjs +89 -0
  71. package/skills/i3-ui-prototype/assets/templates/common/app/config.json +1 -0
  72. package/skills/i3-ui-prototype/assets/templates/common/app/domain.mjs +20 -0
  73. package/skills/i3-ui-prototype/assets/templates/common/app/index.html +17 -0
  74. package/skills/i3-ui-prototype/assets/templates/common/app/serve.cjs +16 -0
  75. package/skills/i3-ui-prototype/assets/templates/common/app/styles.css +670 -0
  76. package/skills/i3-ui-prototype/assets/templates/common/app/tokens.css +19 -0
  77. package/skills/i3-ui-prototype/assets/templates/common/design-system/master.md +20 -0
  78. package/skills/i3-ui-prototype/assets/templates/common/gallery.html +2 -0
  79. package/skills/i3-ui-prototype/assets/templates/common/mocks/applications.json +5 -0
  80. package/skills/i3-ui-prototype/assets/templates/common/requirements-map.json +8 -0
  81. package/skills/i3-ui-prototype/assets/templates/common/serve-gallery.cjs +16 -0
  82. package/skills/i3-ui-prototype/assets/templates/credits.md +17 -0
  83. package/skills/i3-ui-prototype/assets/templates/data-operations/manifest.json +9 -0
  84. package/skills/i3-ui-prototype/assets/templates/data-operations/preset.json +6 -0
  85. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/design-system.md +32 -0
  86. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/index.html +29 -0
  87. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/manifest.json +9 -0
  88. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/origin.json +344 -0
  89. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/preset.json +928 -0
  90. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/app.js +22 -0
  91. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/empty.svg +1 -0
  92. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/reference-styles.json +1 -0
  93. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/result-403.svg +1 -0
  94. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets/result-404.svg +1 -0
  95. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/assets-manifest.json +334 -0
  96. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/baseline.json +173 -0
  97. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/conversion.md +30 -0
  98. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/credits.md +17 -0
  99. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/design-tokens.json +881 -0
  100. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/index.html +28 -0
  101. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/@qin-ui-antdv-next-pro.txt +9 -0
  102. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/ant-design-icons.txt +22 -0
  103. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/licenses/antdv-next.txt +21 -0
  104. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/package.json +12 -0
  105. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/browser-routes.json +298 -0
  106. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/coverage.json +180 -0
  107. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/integrity.json +13 -0
  108. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/keyboard.json +11 -0
  109. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/responsive.json +125 -0
  110. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/review.md +51 -0
  111. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/rules.log +150 -0
  112. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-html.png +0 -0
  113. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/flow-editor-original.png +0 -0
  114. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-html.png +0 -0
  115. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/intent-create-original.png +0 -0
  116. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/models-html.png +0 -0
  117. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/models-original.png +0 -0
  118. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-html.png +0 -0
  119. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/screenshots/workbench-original.png +0 -0
  120. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/selection.json +9 -0
  121. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/qa/visual-comparison.json +342 -0
  122. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/readme.md +73 -0
  123. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/reference.md +59 -0
  124. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/routes.json +178 -0
  125. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/controls.js +99 -0
  126. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/dialogs.js +54 -0
  127. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/dom.js +264 -0
  128. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/forms.js +47 -0
  129. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/icons.js +41 -0
  130. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/layout.js +47 -0
  131. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/router.js +63 -0
  132. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/state.js +90 -0
  133. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/table.js +41 -0
  134. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/runtime/widgets.js +8 -0
  135. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.html +3 -0
  136. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentDetail.js +36 -0
  137. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.html +2 -0
  138. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentEditor.js +51 -0
  139. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.html +3 -0
  140. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/AgentsPage.js +48 -0
  141. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/CheckResults.html +2 -0
  142. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/CheckResults.js +6 -0
  143. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.html +2 -0
  144. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/ResourcePicker.js +13 -0
  145. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/data.js +24 -0
  146. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/domain.js +32 -0
  147. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/registry.js +25 -0
  148. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/agents/store.js +85 -0
  149. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentClose.html +2 -0
  150. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentClose.js +17 -0
  151. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.html +2 -0
  152. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentCreate.js +66 -0
  153. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.html +3 -0
  154. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDecisions.js +38 -0
  155. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.html +2 -0
  156. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDetail.js +66 -0
  157. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.html +2 -0
  158. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentDocument.js +5 -0
  159. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.html +2 -0
  160. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHeader.js +12 -0
  161. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.html +2 -0
  162. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentHistory.js +11 -0
  163. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentList.html +2 -0
  164. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentList.js +116 -0
  165. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.html +2 -0
  166. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentReplan.js +32 -0
  167. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.html +2 -0
  168. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentRevision.js +49 -0
  169. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.html +2 -0
  170. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentSummary.js +10 -0
  171. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.html +2 -0
  172. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/IntentWorkspace.js +77 -0
  173. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/data.js +60 -0
  174. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/domain.js +105 -0
  175. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/intents/store.js +212 -0
  176. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/AuditPanel.html +2 -0
  177. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/AuditPanel.js +18 -0
  178. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelDetail.html +2 -0
  179. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelDetail.js +23 -0
  180. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelEditor.html +2 -0
  181. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelEditor.js +78 -0
  182. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelGrant.html +2 -0
  183. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelGrant.js +55 -0
  184. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelReferences.html +2 -0
  185. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelReferences.js +26 -0
  186. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelRelease.html +2 -0
  187. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelRelease.js +38 -0
  188. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelStatus.html +2 -0
  189. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelStatus.js +7 -0
  190. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTable.html +2 -0
  191. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTable.js +72 -0
  192. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTester.html +2 -0
  193. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelTester.js +46 -0
  194. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelsPage.html +2 -0
  195. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/ModelsPage.js +52 -0
  196. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/RowActions.html +2 -0
  197. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/RowActions.js +19 -0
  198. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/UsagePanel.html +2 -0
  199. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/UsagePanel.js +30 -0
  200. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/data.js +48 -0
  201. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/domain.js +39 -0
  202. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/models/store.js +129 -0
  203. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.html +4 -0
  204. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IncidentDetail.js +21 -0
  205. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IntentSource.html +2 -0
  206. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/IntentSource.js +8 -0
  207. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.html +2 -0
  208. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationActionDialog.js +37 -0
  209. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.html +2 -0
  210. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationEntry.js +10 -0
  211. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.html +2 -0
  212. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/OperationsPage.js +37 -0
  213. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.html +2 -0
  214. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RepairTrack.js +49 -0
  215. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RunDetail.html +4 -0
  216. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/RunDetail.js +22 -0
  217. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.html +2 -0
  218. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/SourceSummary.js +9 -0
  219. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/commands.js +82 -0
  220. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/examples.js +47 -0
  221. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/model.js +61 -0
  222. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/repair.js +68 -0
  223. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/store.js +55 -0
  224. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/types.js +1 -0
  225. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/operations/workbench.js +18 -0
  226. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.html +3 -0
  227. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ManagementTable.js +28 -0
  228. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.html +2 -0
  229. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcCreateEntry.js +18 -0
  230. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.html +2 -0
  231. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcDetail.js +31 -0
  232. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.html +2 -0
  233. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcEditor.js +27 -0
  234. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.html +2 -0
  235. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcLifecycle.js +16 -0
  236. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.html +2 -0
  237. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPage.js +43 -0
  238. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.html +4 -0
  239. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcPicker.js +34 -0
  240. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.html +2 -0
  241. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcProgress.js +30 -0
  242. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.html +3 -0
  243. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWizard.js +67 -0
  244. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.html +2 -0
  245. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcWorkspace.js +41 -0
  246. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.html +2 -0
  247. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/PbcsPage.js +31 -0
  248. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.html +2 -0
  249. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceEditor.js +26 -0
  250. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.html +2 -0
  251. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/ServiceList.js +70 -0
  252. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/data.js +8 -0
  253. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/domain.js +62 -0
  254. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/management.js +36 -0
  255. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/managementStore.js +49 -0
  256. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/pbc/store.js +132 -0
  257. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/AdminList.html +2 -0
  258. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/AdminList.js +38 -0
  259. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.html +2 -0
  260. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/EffectiveGrants.js +11 -0
  261. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.html +2 -0
  262. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/GrantEditor.js +45 -0
  263. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.html +2 -0
  264. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MemberEditor.js +54 -0
  265. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.html +3 -0
  266. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/MembersPage.js +27 -0
  267. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.html +2 -0
  268. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RecordsPage.js +12 -0
  269. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.html +2 -0
  270. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RoleEditor.js +45 -0
  271. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.html +3 -0
  272. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/RolesPage.js +38 -0
  273. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/domain.js +61 -0
  274. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/state.js +51 -0
  275. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/permissions/store.js +116 -0
  276. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.html +2 -0
  277. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseActionDialog.js +45 -0
  278. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.html +4 -0
  279. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseDetail.js +30 -0
  280. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.html +2 -0
  281. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseEditor.js +67 -0
  282. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.html +2 -0
  283. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleaseExecution.js +5 -0
  284. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.html +4 -0
  285. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/ReleasesPage.js +60 -0
  286. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/commands.js +157 -0
  287. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/model.js +136 -0
  288. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/releases/store.js +76 -0
  289. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.html +3 -0
  290. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewDetail.js +26 -0
  291. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.html +2 -0
  292. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewEvidence.js +14 -0
  293. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.html +2 -0
  294. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewProcess.js +113 -0
  295. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.html +3 -0
  296. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/ReviewsPage.js +62 -0
  297. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/commands.js +97 -0
  298. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/model.js +147 -0
  299. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/reviews/store.js +13 -0
  300. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.html +2 -0
  301. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ColumnSettings.js +9 -0
  302. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.html +2 -0
  303. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListBatchBar.js +8 -0
  304. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.html +2 -0
  305. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListDeleteDialog.js +37 -0
  306. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListMore.html +2 -0
  307. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/ListMore.js +8 -0
  308. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.html +2 -0
  309. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/RecordMetadata.js +17 -0
  310. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/columns.js +32 -0
  311. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/deliveryGuide.js +49 -0
  312. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/deliveryView.js +12 -0
  313. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/listBatch.js +15 -0
  314. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/listSelection.js +37 -0
  315. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/policy.js +68 -0
  316. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shared/session.js +44 -0
  317. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.html +2 -0
  318. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConfirmationDialog.js +25 -0
  319. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.html +2 -0
  320. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ConsoleShell.js +53 -0
  321. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.html +10 -0
  322. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/PrototypeGuide.js +30 -0
  323. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ScopePage.html +2 -0
  324. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/ScopePage.js +10 -0
  325. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.html +2 -0
  326. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/SessionDialog.js +9 -0
  327. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/confirmation.js +3 -0
  328. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/shell/navigation.js +19 -0
  329. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.html +2 -0
  330. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecDocument.js +8 -0
  331. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.html +2 -0
  332. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecEdit.js +32 -0
  333. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.html +2 -0
  334. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHeader.js +15 -0
  335. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.html +2 -0
  336. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecHistory.js +11 -0
  337. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecReview.html +2 -0
  338. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecReview.js +57 -0
  339. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.html +2 -0
  340. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/SpecWorkspace.js +37 -0
  341. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/data.js +20 -0
  342. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/domain.js +55 -0
  343. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/specs/store.js +151 -0
  344. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.html +3 -0
  345. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/ArtifactDetail.js +18 -0
  346. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.html +2 -0
  347. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskCreate.js +40 -0
  348. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.html +2 -0
  349. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskDetail.js +51 -0
  350. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.html +2 -0
  351. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TaskLaunch.js +9 -0
  352. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.html +5 -0
  353. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/TasksPage.js +48 -0
  354. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/domain.js +204 -0
  355. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/exampleSource.js +22 -0
  356. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/registry.js +135 -0
  357. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/tasks/store.js +137 -0
  358. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.html +3 -0
  359. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/WorkbenchPage.js +36 -0
  360. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/model.js +56 -0
  361. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workbench/store.js +15 -0
  362. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.html +2 -0
  363. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowCanvas.js +27 -0
  364. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.html +4 -0
  365. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowDetail.js +31 -0
  366. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.html +2 -0
  367. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/FlowEditor.js +68 -0
  368. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.html +5 -0
  369. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/WorkflowsPage.js +55 -0
  370. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/data.js +16 -0
  371. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/domain.js +83 -0
  372. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/registry.js +18 -0
  373. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/src/workflows/store.js +61 -0
  374. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/admin.css +60 -0
  375. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/agents.css +46 -0
  376. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/antdv.css +295 -0
  377. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/app.css +102 -0
  378. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/delivery.css +4 -0
  379. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/intents.css +37 -0
  380. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/native.css +22 -0
  381. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/operations.css +2 -0
  382. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/pbc.css +3 -0
  383. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/permissions.css +22 -0
  384. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/pro.css +1 -0
  385. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/releases.css +4 -0
  386. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/reset.css +246 -0
  387. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/reviews.css +8 -0
  388. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/tasks.css +6 -0
  389. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/tokens.css +15 -0
  390. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/workbench.css +61 -0
  391. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/styles/workflows.css +1 -0
  392. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/admin-rules.test.js +96 -0
  393. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/agents.test.js +14 -0
  394. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/intent-state.test.js +37 -0
  395. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/list-batch.test.js +44 -0
  396. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operation-fixtures.js +19 -0
  397. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operation-repair.test.js +14 -0
  398. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/operations.test.js +25 -0
  399. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/pbc-management.test.js +17 -0
  400. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/pbc-state.test.js +24 -0
  401. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/permission-config.test.js +23 -0
  402. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/permissions.test.js +24 -0
  403. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/releases.test.js +50 -0
  404. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/reviews.test.js +36 -0
  405. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-forms-router.test.js +28 -0
  406. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-state.test.js +42 -0
  407. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/runtime-stores.test.js +16 -0
  408. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/spec-state.test.js +11 -0
  409. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/tasks.test.js +27 -0
  410. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/workbench.test.js +34 -0
  411. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tests/workflows.test.js +16 -0
  412. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/convert.mjs +168 -0
  413. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/serve.mjs +7 -0
  414. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/styles.mjs +11 -0
  415. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/reference/tools/verify.mjs +24 -0
  416. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/serve.cjs +16 -0
  417. package/skills/i3-ui-prototype/assets/templates/enterprise-admin/usability.css +44 -0
  418. package/skills/i3-ui-prototype/assets/templates/gallery/index.html +40 -0
  419. package/skills/i3-ui-prototype/assets/templates/modern-workspace/manifest.json +9 -0
  420. package/skills/i3-ui-prototype/assets/templates/modern-workspace/preset.json +6 -0
  421. package/skills/i3-ui-prototype/assets/templates/serve-gallery.cjs +16 -0
  422. package/skills/i3-ui-prototype/references/artifact-contract.md +41 -0
  423. package/skills/i3-ui-prototype/references/enterprise-admin.md +38 -0
  424. package/skills/i3-ui-prototype/references/expert-adapter.md +42 -0
  425. package/skills/i3-ui-prototype/references/template-adapters.md +57 -0
  426. package/skills/i3-ui-prototype/references/workflow-contract.md +19 -0
  427. package/skills/i3-ui-prototype/scripts/adapters/easel-html.cjs +30 -0
  428. package/skills/i3-ui-prototype/scripts/adapters/legacy-html.cjs +28 -0
  429. package/skills/i3-ui-prototype/scripts/check-design-provider.cjs +9 -0
  430. package/skills/i3-ui-prototype/scripts/check-prototype.cjs +14 -0
  431. package/skills/i3-ui-prototype/scripts/enterprise-template.cjs +88 -0
  432. package/skills/i3-ui-prototype/scripts/init-prototype.cjs +8 -0
  433. package/skills/i3-ui-prototype/scripts/manage-baseline.cjs +11 -0
  434. package/skills/i3-ui-prototype/scripts/prototype-lib.cjs +255 -0
  435. package/skills/i3-ui-prototype/scripts/template-adapters.cjs +89 -0
  436. package/skills/i3-using-agent-skills/SKILL.md +5 -0
@@ -0,0 +1,8 @@
1
+ ---
2
+ type: tool_used
3
+ tool: Skill
4
+ input_match: '"skill"\s*:\s*"(?:[\w-]+:)?(i3-test-driven-development|test)"'
5
+ min: 0
6
+ max: 0
7
+ arm: both
8
+ ---
@@ -0,0 +1,25 @@
1
+ ---
2
+ description: A pasted diff with a "what broke" question that belongs to i3-debugging-and-error-recovery. Guards the "fix a bug in it" clause of the i3-test-driven-development description, since a bug mentioned in a diagnosis request must not make the TDD skill fire.
3
+ expected_outcome: A diagnosis of the off-by-one; i3-test-driven-development is never invoked.
4
+ max_turns: 12
5
+ allowed_tools: [Read, Glob, Grep, Skill]
6
+ ---
7
+
8
+ The orders page test started failing right after this change: it expects 20 rows and gets 19. Here is the diff. What broke?
9
+
10
+ ```diff
11
+ diff --git a/src/orders.js b/src/orders.js
12
+ --- a/src/orders.js
13
+ +++ b/src/orders.js
14
+ @@ -12,3 +12,9 @@ function listOrders(db) {
15
+ return db.query('SELECT * FROM orders ORDER BY created_at DESC');
16
+ }
17
+ -module.exports = { listOrders };
18
+ +function pageOrders(db, page, size) {
19
+ + const rows = db.query('SELECT * FROM orders ORDER BY created_at DESC');
20
+ + const start = (page - 1) * size;
21
+ + return rows.slice(start, start + size - 1);
22
+ +}
23
+ +
24
+ +module.exports = { listOrders, pageOrders };
25
+ ```
@@ -40,6 +40,25 @@
40
40
  "The ADR records a status from the skill's lifecycle (Proposed, Accepted, Superseded or Deprecated) and a date",
41
41
  "人类可读的追问、说明、进度、报告与生成文档使用简体中文;保留代码、路径、工具参数、JSON 协议及机器状态的原始格式。"
42
42
  ]
43
+ },
44
+ {
45
+ "id": 1004,
46
+ "kind": "execution",
47
+ "prompt": "面向首次接手此批处理队列的运维人员审阅 README.md。让说明更清楚,对照 queue.js 核实内容,准确保留操作细节与限制条件。不要修改实现。",
48
+ "expected_output": "A concise operational README grounded in the inspected implementation, with unsupported assurances removed or flagged, limits and caveats preserved, and the unverified command identified",
49
+ "files": [
50
+ "i3-documentation-and-adrs/prose-review"
51
+ ],
52
+ "expectations": [
53
+ "The final README identifies queuectl submit jobs.json --max-batch-size 50 as an unverified documented example because the fixture contains neither the CLI nor jobs.json; it does not invent, silently certify, or replace that interface",
54
+ "The final README preserves the 50-job batch limit, 72-hour retention period, and at most three retries, distinguishing those units correctly",
55
+ "The final README preserves the operational caveat that failed jobs require operator review and queue state is not durable across a process restart",
56
+ "The unsupported claims of guaranteed zero job loss and no need for monitoring are removed or explicitly marked as unsubstantiated rather than restated as facts",
57
+ "The promotional opening is replaced with a concrete description of the queue without invented users, benchmarks, certifications, or capabilities",
58
+ "The execution trace shows the agent inspecting queue.js and comparing the README with its batch, retention, retry, and in-memory-state implementation before editing",
59
+ "queue.js remains unchanged, and the agent does not install a tool or send the fixture to a hosted service",
60
+ "人类可读的追问、说明、进度、报告与生成文档使用简体中文;保留代码、路径、工具参数、JSON 协议及机器状态的原始格式。"
61
+ ]
43
62
  }
44
63
  ]
45
64
  }
@@ -13,6 +13,10 @@
13
13
  {
14
14
  "prompt": "先复现报错并编写回归测试,按 Prove-It 模式修复。",
15
15
  "top_k": 1
16
+ },
17
+ {
18
+ "prompt": "这段直接粘贴的函数处理负数有缺陷,请修复代码并证明修复有效。",
19
+ "top_k": 1
16
20
  }
17
21
  ],
18
22
  "negative": [
@@ -0,0 +1,50 @@
1
+ {
2
+ "skill_name": "i3-ui-prototype",
3
+ "trigger": {
4
+ "positive": [
5
+ {
6
+ "prompt": "选择 UI 原型模板,制作一个可操作的申请审批交互原型供评审。",
7
+ "top_k": 1
8
+ },
9
+ {
10
+ "prompt": "根据业务需求生成可审查的交互原型,记录原型模板选择。",
11
+ "top_k": 1
12
+ },
13
+ {
14
+ "prompt": "检查原型一致性,与已确认的原型基线比较。",
15
+ "top_k": 1
16
+ },
17
+ {
18
+ "prompt": "根据评审反馈迭代交互原型,保留已确认的原型基线。",
19
+ "top_k": 1
20
+ }
21
+ ],
22
+ "negative": [
23
+ {
24
+ "prompt": "开发一个响应式前端页面,做好组件布局和无障碍交互。",
25
+ "owner": "i3-frontend-ui-engineering"
26
+ },
27
+ {
28
+ "prompt": "产品页面有一千条数据渲染很慢,请定位性能瓶颈并优化。",
29
+ "owner": "i3-performance-optimization"
30
+ }
31
+ ]
32
+ },
33
+ "evals": [
34
+ {
35
+ "id": 1001,
36
+ "prompt": "根据提供的业务说明制作申请审批交互原型。明确使用模板模式,比较模板并生成待评审候选。不要自行批准原型。",
37
+ "expected_output": "A runnable business-specific prototype with traceability and pending-review status",
38
+ "files": [
39
+ "i3-ui-prototype"
40
+ ],
41
+ "expectations": [
42
+ "Selected template and template mode are recorded without claiming UI/UX Pro Max was used",
43
+ "Business fields, role visibility, status transitions and review scenarios follow the supplied brief",
44
+ "A runnable prototype and verification evidence are produced; absent browser evidence is marked pending",
45
+ "The prototype remains pending human review and no approved baseline is invented",
46
+ "人类可读的追问、说明、进度、报告与生成文档使用简体中文;保留代码、路径、工具参数、JSON 协议及机器状态的原始格式。"
47
+ ]
48
+ }
49
+ ]
50
+ }
@@ -62,7 +62,7 @@ One script, three hook events:
62
62
  |---|---|
63
63
  | `PreToolUse Read` | Backs up file, replaces blocks with `BLOCK_<hash>` placeholders in-place |
64
64
  | `PostToolUse Edit\|Write` | Expands placeholders back to real code, saves model's changes, re-filters |
65
- | `Stop` | Expands the placeholders left in each file on disk, so changes made outside `Edit`/`Write` survive; falls back to the backup only if no placeholder is left |
65
+ | `Stop` | Expands the placeholders left in each file on disk, so changes made outside `Edit`/`Write` survive; keeps a file that was put back whole (a `git checkout`/`stash` revert, an undo) instead of the stale backup; falls back to the backup only if no placeholder is left |
66
66
 
67
67
  Each block is content-hashed (8 hex chars via `shasum`/`sha1sum`) so the round-trip is unambiguous even if the model duplicates or reorders placeholders. Cache is project-scoped to prevent cross-session interference.
68
68
 
@@ -85,13 +85,14 @@ echo '{}' | bash hooks/simplify-ignore.sh
85
85
  ```
86
86
 
87
87
  Backups are stored in `.claude/.simplify-ignore-cache/` within your project directory.
88
+ If a change is reverted while the hook is active, the superseded session backup is retained there as `<id>.superseded.<pid>`; review it and remove it when it is no longer needed.
88
89
 
89
90
  ## Known limitations
90
91
 
91
92
  - **Single-line blocks hide the entire line.** If `simplify-ignore-start` and `simplify-ignore-end` appear on the same line as other code, the whole line is hidden from the model, not just the annotated portion. Use dedicated lines for annotations.
92
93
  - **Comment suffix detection covers `*/` and `-->` only.** Template engines with non-standard comment closers (ERB `%>`, Blade `--}}`) may produce unbalanced placeholders. Use `#` or `//` style comments instead.
93
94
  - **Fallback expansion is progressive, not exact.** If the model alters a placeholder's formatting (e.g. changes the reason text), the hook tries progressively simpler matches: full placeholder → prefix+hash+suffix → hash-only. The hash-only fallback may leave cosmetic debris (e.g. stray `:` or reason text). A warning is printed to stderr when this happens.
94
- - **A wholesale rewrite falls back to the backup.** If something replaces a filtered file's entire contents and removes every `BLOCK_<hash>` placeholder, the hook can no longer tell where the protected block belongs. At `Stop` it restores the backup and prints a warning; the rewrite is not lost but is kept in the cache as `.claude/.simplify-ignore-cache/<id>.recovered`, whose path the warning prints, and you merge it back by hand. Changes that leave the placeholders in place — a `Bash` edit, a formatter, an external editor — are kept in the file itself.
95
+ - **A removed placeholder falls back to the backup.** If an edit deletes a `BLOCK_<hash>` line, or something replaces the whole file, the hook can no longer tell where that protected block belongs. An `Edit` or `Write` that does this is reported back to the model (exit 2) with the placeholder to restore, and the backup is not updated. If the placeholder is still missing at `Stop`, the hook restores the backup and prints a warning; the changed file is not lost but is kept in the cache as `.claude/.simplify-ignore-cache/<id>.recovered`, whose path the warning prints, and you merge it back by hand. Changes that leave the placeholders in place — a `Bash` edit, a formatter, an external editor — are kept in the file itself.
95
96
  - **File renaming leaves placeholders.** If the model renames or moves a file via a shell command, the new file will retain `BLOCK_<hash>` placeholders. The original code is saved as `<old-filename>.recovered` when the session stops. You must manually restore the recovered code into the new file.
96
97
 
97
98
  ## Requirements
@@ -466,8 +466,100 @@ else
466
466
  assert_eq "Stop restores original + edit byte-identically" "identical" "differs"
467
467
  fi
468
468
 
469
+ # ── Test 17: a removed placeholder never takes its protected block with it ─
470
+ printf '\nTest 17: Removing a placeholder line does not lose the protected block\n'
471
+ PROJ="$TMPDIR/rt17"; mkdir -p "$PROJ"
472
+ RT="$PROJ/dropped.js"
473
+ cat > "$RT" <<'EOF'
474
+ const a = 1;
475
+ // simplify-ignore-start: first
476
+ const keepOne = 42;
477
+ // simplify-ignore-end
478
+ const b = 2;
479
+ // simplify-ignore-start: second
480
+ const keepTwo = 43;
481
+ // simplify-ignore-end
482
+ EOF
483
+ cp "$RT" "$PROJ/dropped.orig"
484
+
485
+ rt_hook_event "$PROJ" "Read" "$RT"
486
+ # The model deletes the first placeholder line (it looks like a stray comment)
487
+ # and edits another line in the same Edit.
488
+ awk 'f||!/BLOCK_/{print;next}{f=1}' "$RT" | sed 's/const a = 1;/const a = 9;/' > "$PROJ/t"
489
+ cat "$PROJ/t" > "$RT"
490
+ edit_rc=0
491
+ edit_out=$(rt_hook_event "$PROJ" "Edit" "$RT" 2>&1) || edit_rc=$?
492
+ BAK=$(ls "$PROJ/.claude/.simplify-ignore-cache"/*.bak 2>/dev/null | head -1) || true
493
+ assert_eq "Edit that drops a placeholder exits 2 (stderr goes to the model)" "2" "$edit_rc"
494
+ assert_eq "message names the dropped placeholder" "1" "$(printf '%s' "$edit_out" | grep -c 'BLOCK_.*: first' || true)"
495
+ assert_eq "backup still holds the protected block" "1" "$(grep -c 'const keepOne = 42' "${BAK:-/dev/null}" || true)"
496
+
497
+ stop_out=$(rt_hook_event "$PROJ" "" "" 2>&1) || true
498
+ RECOVERED=$(ls "$PROJ/.claude/.simplify-ignore-cache"/*.recovered 2>/dev/null | head -1) || true
499
+ assert_eq "Stop puts the protected block back" "1" "$(grep -c 'const keepOne = 42' "$RT" || true)"
500
+ if cmp -s "$RT" "$PROJ/dropped.orig"; then
501
+ assert_eq "Stop restores the last good backup" "identical" "identical"
502
+ else
503
+ assert_eq "Stop restores the last good backup" "identical" "differs"
504
+ fi
505
+ assert_eq "the edit is kept as .recovered" "1" "$(grep -c 'const a = 9;' "${RECOVERED:-/dev/null}" || true)"
506
+ assert_eq ".recovered has the surviving block expanded" "1" "$(grep -c 'const keepTwo = 43' "${RECOVERED:-/dev/null}" || true)"
507
+ assert_eq "Stop warns about the missing placeholder" "1" "$(printf '%s' "$stop_out" | grep -c 'placeholder is missing' || true)"
508
+
509
+ # Same loss through a route that fires no Edit event (Bash, a formatter).
510
+ PROJ="$TMPDIR/rt17b"; mkdir -p "$PROJ"
511
+ RT="$PROJ/dropped.js"
512
+ cp "$TMPDIR/rt17/dropped.orig" "$RT"
513
+ rt_hook_event "$PROJ" "Read" "$RT"
514
+ awk 'f||!/BLOCK_/{print;next}{f=1}' "$RT" > "$PROJ/t"
515
+ cat "$PROJ/t" > "$RT"
516
+ rt_hook_event "$PROJ" "" "" 2>/dev/null || true
517
+ assert_eq "no-event removal: Stop puts the protected block back" "1" "$(grep -c 'const keepOne = 42' "$RT" || true)"
518
+
519
+ # ── Test 18: a change reverted with git stays reverted and the block hidden ──
520
+ printf '\nTest 18: Reverting a change with git during the session\n'
521
+ if command -v git >/dev/null 2>&1; then
522
+ for variant in read-then-stop stop; do
523
+ PROJ="$TMPDIR/rt18-$variant"; mkdir -p "$PROJ"
524
+ RT="$PROJ/reverted.js"
525
+ cat > "$RT" <<'EOF'
526
+ const a = 1;
527
+ // simplify-ignore-start
528
+ const secret = 42;
529
+ // simplify-ignore-end
530
+ const b = 2;
531
+ EOF
532
+ cp "$RT" "$PROJ/reverted.orig"
533
+ git -C "$PROJ" init -q
534
+ git -C "$PROJ" config core.autocrlf false
535
+ git -C "$PROJ" add reverted.js
536
+ git -C "$PROJ" -c user.name=t -c user.email=t@t -c commit.gpgsign=false commit -qm base
537
+
538
+ rt_hook_event "$PROJ" "Read" "$RT"
539
+ printf '%s\n' "const broken = true;" >> "$RT"
540
+ rt_hook_event "$PROJ" "Edit" "$RT"
541
+ git -C "$PROJ" checkout -q -- reverted.js
542
+ if [ "$variant" = read-then-stop ]; then
543
+ rt_hook_event "$PROJ" "Read" "$RT" 2>/dev/null
544
+ assert_eq "$variant: Read after the revert hides the block" "0" "$(grep -c 'secret' "$RT")"
545
+ assert_eq "$variant: Read after the revert shows a placeholder" "1" "$(grep -c 'BLOCK_' "$RT")"
546
+ fi
547
+ rt_hook_event "$PROJ" "" "" 2>/dev/null
548
+ if cmp -s "$RT" "$PROJ/reverted.orig"; then
549
+ assert_eq "$variant: Stop keeps the reverted file" "identical" "identical"
550
+ else
551
+ assert_eq "$variant: Stop keeps the reverted file" "identical" "differs"
552
+ fi
553
+ KEPT=$(ls "$PROJ/.claude/.simplify-ignore-cache"/*.superseded.* 2>/dev/null | head -1 || true)
554
+ assert_eq "$variant: the reverted session state is kept in the cache" "1" \
555
+ "$(grep -c 'const broken' "${KEPT:-/dev/null}")"
556
+ done
557
+ else
558
+ printf ' skipped: git not available\n'
559
+ fi
560
+
469
561
  else
470
- printf '\nTests 14-16 skipped: jq not available (hook no-ops without it)\n'
562
+ printf '\nTests 14-18 skipped: jq not available (hook no-ops without it)\n'
471
563
  fi
472
564
 
473
565
  # ── Summary ──────────────────────────────────────────────────────────────
@@ -221,6 +221,27 @@ expand_file() {
221
221
  return 0
222
222
  }
223
223
 
224
+ # -- missing_placeholders: which cached BLOCK_<hash> of $2 are gone from $1? --
225
+ # Prints the missing placeholders, one per line, and returns 0 if any is gone.
226
+ # A placeholder stands for code the model never saw, so it cannot have removed
227
+ # it on purpose; whichever route removed it, the block must not be lost with it.
228
+ missing_placeholders() {
229
+ local f="$1" fid="$2" bf h bp bs br out=""
230
+ for bf in "$CACHE/${fid}".block.*; do
231
+ [ -f "$bf" ] || continue
232
+ h="${bf##*.}"
233
+ grep -qF "BLOCK_${h}" "$f" 2>/dev/null && continue
234
+ bp=""; bs=""; br=""
235
+ [ -f "$CACHE/${fid}.prefix.${h}" ] && bp=$(cat "$CACHE/${fid}.prefix.${h}")
236
+ [ -f "$CACHE/${fid}.suffix.${h}" ] && bs=$(cat "$CACHE/${fid}.suffix.${h}")
237
+ [ -f "$CACHE/${fid}.reason.${h}" ] && br=": $(cat "$CACHE/${fid}.reason.${h}")"
238
+ out="${out} ${bp}BLOCK_${h}${br}${bs}
239
+ "
240
+ done
241
+ [ -n "$out" ] || return 1
242
+ printf '%s' "$out"
243
+ }
244
+
224
245
  # ── has_placeholders: is a cached BLOCK_<hash> for $2 still present in file $1? ─
225
246
  has_placeholders() {
226
247
  local f="$1" fid="$2" bf h
@@ -232,6 +253,36 @@ has_placeholders() {
232
253
  return 1
233
254
  }
234
255
 
256
+ # -- file_is_whole: was the real file put back on disk while it was filtered? --
257
+ # True when no placeholder of $2 is in file $1 and every cached block is there
258
+ # verbatim (blocks are content-hashed, so filtering a probe copy compares them
259
+ # exactly). A git checkout, restore, stash or reset, or an editor undo, does
260
+ # this; the model cannot, because it never saw the block text.
261
+ file_is_whole() {
262
+ local f="$1" fid="$2" probe bf whole=0
263
+ probe="${fid}.probe.$$"
264
+ has_placeholders "$f" "$fid" && return 1
265
+ grep -q 'simplify-ignore-start' -- "$f" 2>/dev/null || return 1
266
+ if filter_file "$f" "$CACHE/${probe}.tmp" "$probe" 2>/dev/null; then
267
+ whole=1
268
+ for bf in "$CACHE/${fid}".block.*; do
269
+ [ -f "$bf" ] && [ -f "$CACHE/${probe}.block.${bf##*.}" ] || { whole=0; break; }
270
+ done
271
+ fi
272
+ rm -f "$CACHE/${probe}".*
273
+ [ "$whole" -eq 1 ]
274
+ }
275
+
276
+ # -- set_aside_backup: the file on disk supersedes the backup; keep a copy ----
277
+ set_aside_backup() {
278
+ local f="$1" fid="$2" kept
279
+ cmp -s "$CACHE/${fid}.bak" "$f" && return 0
280
+ kept="$CACHE/${fid}.superseded.$$"
281
+ cp "$CACHE/${fid}.bak" "$kept"
282
+ printf 'simplify-ignore:%s 在隐藏代码块期间被整体还原(git checkout、stash、undo),保留当前文件;先前会话状态留存于 %s(put back whole while filtered; keeping it)\n' \
283
+ "$f" "$kept" >&2
284
+ }
285
+
235
286
  # ── Stop: expand each cached file in place, backup only as fallback ──────────
236
287
  if [ -z "$TOOL_NAME" ]; then
237
288
  [ -d "$CACHE" ] || exit 0
@@ -245,20 +296,30 @@ if [ -z "$TOOL_NAME" ]; then
245
296
  # A change can reach the file through a route that fires no Edit or Write
246
297
  # event (a Bash command, a formatter, an external editor), and the backup
247
298
  # is stale for all of them. Expand what is on disk rather than overwrite it.
248
- if has_placeholders "$orig" "$fid"; then
299
+ if file_is_whole "$orig" "$fid"; then
300
+ # The real file is back (the change was reverted with git or undone).
301
+ # It is newer than the backup, which would bring the reverted change
302
+ # back, so keep the file and move the backup aside.
303
+ set_aside_backup "$orig" "$fid"
304
+ elif has_placeholders "$orig" "$fid" && ! missing_placeholders "$orig" "$fid" >/dev/null; then
249
305
  EXPANDED="$CACHE/${fid}.$$.expanded"
250
306
  expand_file "$orig" "$EXPANDED" "$fid"
251
307
  cat "$EXPANDED" > "$orig"
252
308
  rm -f "$EXPANDED"
253
309
  else
254
- # Nothing left to expand — the file was rewritten wholesale, so the
255
- # backup is the only remaining copy of the protected blocks. Keep the
256
- # rewrite in the cache before the backup overwrites it, so the work is
257
- # recoverable rather than lost.
310
+ # A placeholder is gone — the file was rewritten wholesale, or one
311
+ # block's line was deleted — so the backup is the only remaining copy
312
+ # of that protected block. Keep the rewrite in the cache (with any
313
+ # surviving placeholders expanded) before the backup overwrites it, so
314
+ # the work is recoverable rather than lost.
258
315
  rewritten="$CACHE/${fid}.recovered"
259
- cat "$orig" > "$rewritten"
316
+ if has_placeholders "$orig" "$fid"; then
317
+ expand_file "$orig" "$rewritten" "$fid" 2>/dev/null
318
+ else
319
+ cat "$orig" > "$rewritten"
320
+ fi
260
321
  cat "$bak" > "$orig"
261
- printf '警告:%s 中没有剩余 BLOCK_ 占位符,已从事务备份恢复,改写内容保留于 %s(Warning: no BLOCK_; restored from backup)\n' \
322
+ printf '警告:%s 中有 BLOCK_ 占位符缺失,已从事务备份恢复,改写内容保留于 %s(Warning: a BLOCK_ placeholder is missing; restored from backup)\n' \
262
323
  "$orig" "$rewritten" >&2
263
324
  fi
264
325
  rm -f "$bak" "$pathfile" "$CACHE/${fid}".block.* "$CACHE/${fid}".reason.* "$CACHE/${fid}".prefix.* "$CACHE/${fid}".suffix.*
@@ -291,12 +352,21 @@ if [ "$TOOL_NAME" = "Read" ]; then
291
352
  ID=$(file_id "$FILE_PATH")
292
353
 
293
354
  # If backup exists, file is already filtered — skip
294
- [ -f "$CACHE/${ID}.bak" ] && exit 0
295
-
296
- grep -q 'simplify-ignore-start' -- "$FILE_PATH" || exit 0
355
+ # unless the real file was put back meanwhile (git checkout, stash, undo):
356
+ # skipping then would show the model every protected block, so take that
357
+ # file as the new original and filter it again.
358
+ if [ -f "$CACHE/${ID}.bak" ]; then
359
+ file_is_whole "$FILE_PATH" "$ID" || exit 0
360
+ set_aside_backup "$FILE_PATH" "$ID"
361
+ REFILTER=1
362
+ else
363
+ grep -q 'simplify-ignore-start' -- "$FILE_PATH" || exit 0
364
+ REFILTER=0
365
+ fi
297
366
 
298
367
  # Atomic lock: mkdir fails if another session races us
299
- if ! mkdir "$CACHE/${ID}.lock" 2>/dev/null; then
368
+ # (a refilter already holds the lock from the first Read)
369
+ if [ "$REFILTER" -eq 0 ] && ! mkdir "$CACHE/${ID}.lock" 2>/dev/null; then
300
370
  # Lock exists — reclaim only if stale (>60s old, no backup = crash leftover)
301
371
  if [ ! -f "$CACHE/${ID}.bak" ] && \
302
372
  [ -n "$(find "$CACHE/${ID}.lock" -maxdepth 0 -mmin +1 2>/dev/null)" ]; then
@@ -330,6 +400,19 @@ if [ "$TOOL_NAME" = "Edit" ] || [ "$TOOL_NAME" = "Write" ]; then
330
400
  [ -f "$CACHE/${ID}.bak" ] || exit 0
331
401
  ls "$CACHE/${ID}".block.* >/dev/null 2>&1 || exit 0
332
402
 
403
+ # The edit removed a placeholder. Expanding now would save a backup without
404
+ # that block, and Stop would then restore the loss. Keep the last good
405
+ # backup, leave the file as edited, and tell the model (exit 2 sends stderr
406
+ # back to it) so it can put the placeholder back; if it does not, Stop
407
+ # restores the backup and keeps this version as <id>.recovered.
408
+ if dropped=$(missing_placeholders "$FILE_PATH" "$ID"); then
409
+ printf '%s\n%s\n%s\n' \
410
+ "simplify-ignore:本次 $TOOL_NAME 删除了 $FILE_PATH 的占位符行,每行都代表当前不可见的受保护代码(removed placeholder line(s)):" \
411
+ "$dropped" \
412
+ "请逐行原样放回占位符。在此之前备份不会更新;会话结束时将从备份恢复文件,本次改写以 .recovered 留在缓存中(backup is not updated)。" >&2
413
+ exit 2
414
+ fi
415
+
333
416
  # Expand placeholders, preserving any inline code the model added around them
334
417
  EXPANDED="$CACHE/${ID}.$$.expanded"
335
418
  expand_file "$FILE_PATH" "$EXPANDED" "$ID"
package/package.json CHANGED
@@ -55,6 +55,7 @@
55
55
  "evals/cases/i3-source-driven-development.json",
56
56
  "evals/cases/i3-spec-driven-development.json",
57
57
  "evals/cases/i3-test-driven-development.json",
58
+ "evals/cases/i3-ui-prototype.json",
58
59
  "evals/cases/i3-using-agent-skills.json",
59
60
  "evals/fixtures/i3-api-and-interface-design/service-brief.md",
60
61
  "evals/fixtures/i3-browser-testing-with-devtools/README.md",
@@ -72,6 +73,8 @@
72
73
  "evals/fixtures/i3-debugging-and-error-recovery/time-pressure.md",
73
74
  "evals/fixtures/i3-deprecation-and-migration/api-inventory.md",
74
75
  "evals/fixtures/i3-documentation-and-adrs/decision-context.md",
76
+ "evals/fixtures/i3-documentation-and-adrs/prose-review/README.md",
77
+ "evals/fixtures/i3-documentation-and-adrs/prose-review/queue.js",
75
78
  "evals/fixtures/i3-doubt-driven-development/migration-plan.md",
76
79
  "evals/fixtures/i3-frontend-ui-engineering/Button.tsx",
77
80
  "evals/fixtures/i3-frontend-ui-engineering/design-system.md",
@@ -97,6 +100,7 @@
97
100
  "evals/fixtures/i3-test-driven-development/package.json",
98
101
  "evals/fixtures/i3-test-driven-development/src/split.js",
99
102
  "evals/fixtures/i3-test-driven-development/test/split.test.js",
103
+ "evals/fixtures/i3-ui-prototype/business-brief.md",
100
104
  "evals/fixtures/i3-using-agent-skills/incident.md",
101
105
  "evals/fixtures/incremental-implementation-pressure/draft-export.js",
102
106
  "evals/fixtures/incremental-implementation-pressure/scenario.md",
@@ -113,6 +117,11 @@
113
117
  "evals/plugin/code-review-stays-quiet/graders/not-fired.md",
114
118
  "evals/plugin/code-review-stays-quiet/graders/tdd-fired.md",
115
119
  "evals/plugin/code-review-stays-quiet/prompt.md",
120
+ "evals/plugin/tdd-fires-on-pasted-bug/graders/failing-test-first.md",
121
+ "evals/plugin/tdd-fires-on-pasted-bug/graders/skill-fired.md",
122
+ "evals/plugin/tdd-fires-on-pasted-bug/prompt.md",
123
+ "evals/plugin/tdd-stays-quiet-on-debug/graders/not-fired.md",
124
+ "evals/plugin/tdd-stays-quiet-on-debug/prompt.md",
116
125
  "evals/skill-impact.md",
117
126
  "evals/zh-CN/cases/i3-api-and-interface-design.json",
118
127
  "evals/zh-CN/cases/i3-browser-testing-with-devtools.json",
@@ -138,6 +147,7 @@
138
147
  "evals/zh-CN/cases/i3-source-driven-development.json",
139
148
  "evals/zh-CN/cases/i3-spec-driven-development.json",
140
149
  "evals/zh-CN/cases/i3-test-driven-development.json",
150
+ "evals/zh-CN/cases/i3-ui-prototype.json",
141
151
  "evals/zh-CN/cases/i3-using-agent-skills.json",
142
152
  "docs/adoption-guide.md",
143
153
  "docs/advanced-per-agent-configuration.md",
@@ -158,12 +168,15 @@
158
168
  "plugin.json",
159
169
  "README.md",
160
170
  "LICENSE",
171
+ "scripts/enterprise-template-test.js",
161
172
  "scripts/floor-guard-reference-test.js",
162
173
  "scripts/lib/skill-lint-test.js",
163
174
  "scripts/lib/skill-lint.js",
164
175
  "scripts/run-evals-test.js",
165
176
  "scripts/run-evals.js",
166
177
  "scripts/run-regressions.js",
178
+ "scripts/template-adapter-test.js",
179
+ "scripts/ui-prototype-test.js",
167
180
  "scripts/validate-artifact-paths-test.js",
168
181
  "scripts/validate-artifact-paths.js",
169
182
  "scripts/validate-commands-test.js",
@@ -227,6 +240,7 @@
227
240
  "evals/cases/i3-source-driven-development.json",
228
241
  "evals/cases/i3-spec-driven-development.json",
229
242
  "evals/cases/i3-test-driven-development.json",
243
+ "evals/cases/i3-ui-prototype.json",
230
244
  "evals/cases/i3-using-agent-skills.json",
231
245
  "evals/fixtures/i3-api-and-interface-design/service-brief.md",
232
246
  "evals/fixtures/i3-browser-testing-with-devtools/README.md",
@@ -244,6 +258,8 @@
244
258
  "evals/fixtures/i3-debugging-and-error-recovery/time-pressure.md",
245
259
  "evals/fixtures/i3-deprecation-and-migration/api-inventory.md",
246
260
  "evals/fixtures/i3-documentation-and-adrs/decision-context.md",
261
+ "evals/fixtures/i3-documentation-and-adrs/prose-review/README.md",
262
+ "evals/fixtures/i3-documentation-and-adrs/prose-review/queue.js",
247
263
  "evals/fixtures/i3-doubt-driven-development/migration-plan.md",
248
264
  "evals/fixtures/i3-frontend-ui-engineering/Button.tsx",
249
265
  "evals/fixtures/i3-frontend-ui-engineering/design-system.md",
@@ -269,6 +285,7 @@
269
285
  "evals/fixtures/i3-test-driven-development/package.json",
270
286
  "evals/fixtures/i3-test-driven-development/src/split.js",
271
287
  "evals/fixtures/i3-test-driven-development/test/split.test.js",
288
+ "evals/fixtures/i3-ui-prototype/business-brief.md",
272
289
  "evals/fixtures/i3-using-agent-skills/incident.md",
273
290
  "evals/fixtures/incremental-implementation-pressure/draft-export.js",
274
291
  "evals/fixtures/incremental-implementation-pressure/scenario.md",
@@ -285,6 +302,11 @@
285
302
  "evals/plugin/code-review-stays-quiet/graders/not-fired.md",
286
303
  "evals/plugin/code-review-stays-quiet/graders/tdd-fired.md",
287
304
  "evals/plugin/code-review-stays-quiet/prompt.md",
305
+ "evals/plugin/tdd-fires-on-pasted-bug/graders/failing-test-first.md",
306
+ "evals/plugin/tdd-fires-on-pasted-bug/graders/skill-fired.md",
307
+ "evals/plugin/tdd-fires-on-pasted-bug/prompt.md",
308
+ "evals/plugin/tdd-stays-quiet-on-debug/graders/not-fired.md",
309
+ "evals/plugin/tdd-stays-quiet-on-debug/prompt.md",
288
310
  "evals/skill-impact.md",
289
311
  "evals/zh-CN/cases/i3-api-and-interface-design.json",
290
312
  "evals/zh-CN/cases/i3-browser-testing-with-devtools.json",
@@ -310,6 +332,7 @@
310
332
  "evals/zh-CN/cases/i3-source-driven-development.json",
311
333
  "evals/zh-CN/cases/i3-spec-driven-development.json",
312
334
  "evals/zh-CN/cases/i3-test-driven-development.json",
335
+ "evals/zh-CN/cases/i3-ui-prototype.json",
313
336
  "evals/zh-CN/cases/i3-using-agent-skills.json",
314
337
  "docs/adoption-guide.md",
315
338
  "docs/advanced-per-agent-configuration.md",
@@ -331,12 +354,15 @@
331
354
  "package.json",
332
355
  "README.md",
333
356
  "LICENSE",
357
+ "scripts/enterprise-template-test.js",
334
358
  "scripts/floor-guard-reference-test.js",
335
359
  "scripts/lib/skill-lint-test.js",
336
360
  "scripts/lib/skill-lint.js",
337
361
  "scripts/run-evals-test.js",
338
362
  "scripts/run-evals.js",
339
363
  "scripts/run-regressions.js",
364
+ "scripts/template-adapter-test.js",
365
+ "scripts/ui-prototype-test.js",
340
366
  "scripts/validate-artifact-paths-test.js",
341
367
  "scripts/validate-artifact-paths.js",
342
368
  "scripts/validate-commands-test.js",
@@ -348,7 +374,7 @@
348
374
  "scripts/validate-versions.js"
349
375
  ]
350
376
  },
351
- "version": "2.2.3",
377
+ "version": "2.3.0",
352
378
  "repository": {
353
379
  "type": "git",
354
380
  "url": "https://github.com/49780522/i3-composer-agent.git"
package/plugin.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "i3-composer-agent",
3
- "version": "2.2.3",
3
+ "version": "2.3.0",
4
4
  "description": "覆盖需求、计划、开发、测试、审查与发布的软件工程技能,默认使用简体中文。",
5
5
  "homepage": "https://github.com/49780522/i3-composer-agent",
6
6
  "repository": "https://github.com/49780522/i3-composer-agent"
@@ -209,14 +209,16 @@ npx vite-bundle-visualizer
209
209
 
210
210
  # Check bundle size
211
211
  npx bundlesize
212
+ ```
212
213
 
213
- # Web Vitals in code
214
+ ```javascript
215
+ // Web Vitals in code
214
216
  import { onLCP, onINP, onCLS } from 'web-vitals';
215
217
  onLCP(console.log);
216
218
  onINP(console.log);
217
219
  onCLS(console.log);
218
220
 
219
- # INP with interaction-level detail (attribution build)
221
+ // INP with interaction-level detail (attribution build)
220
222
  import { onINP } from 'web-vitals/attribution';
221
223
  onINP(({ value, attribution }) => {
222
224
  const { interactionTarget, inputDelay, processingDuration, presentationDelay } = attribution;