create-yss-spec 3.5.3 → 3.5.5

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 (1728) hide show
  1. package/README.md +8 -0
  2. package/cli-core.lock.json +130 -0
  3. package/package.json +7 -3
  4. package/resources/upgrade-skill/SKILL.md +26 -0
  5. package/resources/upgrade-skill/protocol.md +40 -0
  6. package/resources/upgrade-skill/references/cli-families.md +14 -0
  7. package/src/cli/help.js +1 -0
  8. package/src/cli/index.js +12 -0
  9. package/src/filesystem/transaction-runner.js +27 -0
  10. package/src/template/asset-runtime.js +26 -5
  11. package/src/template/verification-runtime.js +9 -1
  12. package/template/.agents/skills/.strategic-design-skills-manifest.json +5 -5
  13. package/template/.agents/skills/archify/SKILL.md +4 -52
  14. package/template/.agents/skills/archify/references/authoring-notes.md +12 -0
  15. package/template/.agents/skills/archify/references/authoring-workflow.md +25 -0
  16. package/template/.agents/skills/archify/references/delivery-workflow.md +25 -0
  17. package/template/.agents/skills/archify/references/upstream-updates.md +12 -0
  18. package/template/.agents/skills/code-review/SKILL.md +3 -34
  19. package/template/.agents/skills/code-review/references/legacy-convergence.md +5 -0
  20. package/template/.agents/skills/code-review/references/review-axis-checklists.md +18 -0
  21. package/template/.agents/skills/code-review/references/smell-baseline.md +23 -0
  22. package/template/.agents/skills/diagnosing-bugs/SKILL.md +3 -91
  23. package/template/.agents/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  24. package/template/.agents/skills/diagnosing-bugs/references/investigation.md +49 -0
  25. package/template/.agents/skills/git-commit-core/agents/openai.yaml +2 -0
  26. package/template/.agents/skills/maintaining-skills/references/authoring.md +6 -0
  27. package/template/.agents/skills/prototype-review/SKILL.md +11 -0
  28. package/template/.agents/skills/prototype-review/references/component-qa.md +32 -0
  29. package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  30. package/template/.agents/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  31. package/template/.agents/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  32. package/template/.agents/skills/to-spec/SKILL.md +9 -62
  33. package/template/.agents/skills/to-tickets/SKILL.md +20 -86
  34. package/template/.agents/skills/using-git-worktrees/SKILL.md +5 -122
  35. package/template/.agents/skills/using-git-worktrees/references/git-fallback.md +46 -0
  36. package/template/.agents/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  37. package/template/.agents/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  38. package/template/.agents/skills/wayfinder/SKILL.md +7 -86
  39. package/template/.agents/skills/wayfinder/references/chart-map.md +14 -0
  40. package/template/.agents/skills/wayfinder/references/map-format.md +49 -0
  41. package/template/.agents/skills/wayfinder/references/scope-and-frontier.md +24 -0
  42. package/template/.agents/skills/wayfinder/references/ticket-types.md +12 -0
  43. package/template/.agents/skills/wayfinder/references/work-map.md +15 -0
  44. package/template/.agents/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  45. package/template/.agents/skills/yedit-table-usage/SKILL.md +5 -172
  46. package/template/.agents/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  47. package/template/.agents/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  48. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  49. package/template/.agents/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  50. package/template/.agents/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  51. package/template/.agents/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  52. package/template/.agents/skills/yss-design-system/SKILL.md +13 -3
  53. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  54. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  55. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  56. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  57. package/template/.agents/skills/yss-design-system/references/data-quality-theme.md +2 -2
  58. package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +1 -1
  59. package/template/.agents/skills/yss-design-system/references/design-system.md +3 -3
  60. package/template/.agents/skills/yss-design-system/references/enterprise-craft.md +33 -0
  61. package/template/.agents/skills/yss-design-system/references/page-composition.md +24 -0
  62. package/template/.agents/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  63. package/template/.agents/skills/yss-design-system/references/search-date-theme.md +19 -0
  64. package/template/.agents/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  65. package/template/.agents/skills/yss-harness-upgrade/SKILL.md +26 -0
  66. package/template/.agents/skills/yss-harness-upgrade/references/cli-families.md +14 -0
  67. package/template/.agents/skills/yss-hook/SKILL.md +8 -102
  68. package/template/.agents/skills/yss-hook/references/async-actions.md +49 -0
  69. package/template/.agents/skills/yss-hook/references/list-pagination.md +46 -0
  70. package/template/.agents/skills/yss-hook/references/polling.md +20 -0
  71. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  72. package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -0
  73. package/template/.agents/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  74. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +2 -49
  75. package/template/.agents/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  76. package/template/.agents/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  77. package/template/.agents/skills/yss-openapi-governance/SKILL.md +2 -48
  78. package/template/.agents/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  79. package/template/.agents/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  80. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +29 -29
  81. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  82. package/template/.agents/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  83. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +2 -2
  84. package/template/.agents/skills/yss-prototype-stage/SKILL.md +27 -8
  85. package/template/.agents/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  86. package/template/.agents/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  87. package/template/.agents/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  88. package/template/.agents/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  89. package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  90. package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  91. package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  92. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  93. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  94. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  95. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  96. package/template/.agents/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  97. package/template/.agents/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  98. package/template/.agents/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  99. package/template/.agents/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  100. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  101. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  102. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  103. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  104. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  105. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  106. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  107. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  108. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  109. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  110. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  111. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  112. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  113. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  114. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  115. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  116. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  117. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  118. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  119. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  120. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  121. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  122. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  123. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  124. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  125. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  126. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  127. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  128. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  129. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  130. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  131. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  132. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  133. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  134. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  135. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  136. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  137. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  138. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  139. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  140. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  141. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  142. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  143. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  144. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  145. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  146. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  147. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  148. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  149. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  150. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  151. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  152. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  153. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  154. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  155. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  156. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  157. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  158. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  159. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  160. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  161. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  162. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  163. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  164. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  165. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  166. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  167. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  168. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  169. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  170. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  171. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  172. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  173. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  174. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  175. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  176. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  177. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  178. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  179. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  180. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  181. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  182. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  183. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  184. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  185. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  186. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  187. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  188. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  189. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  190. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  191. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  192. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  193. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  194. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  195. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  196. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  197. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  198. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  199. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  200. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  201. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  202. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  203. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  204. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  205. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  206. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  207. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  208. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  209. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  210. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  211. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  212. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  213. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  214. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  215. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  216. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  217. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  218. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  219. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  220. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  221. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  222. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  223. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  224. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  225. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  226. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  227. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  228. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  229. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  230. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  231. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  232. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  233. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  234. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  235. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  236. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  237. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  238. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  239. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  240. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  241. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  242. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  243. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  244. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  245. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  246. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  247. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  248. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  249. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  250. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  251. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  252. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  253. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  254. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  255. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  256. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  257. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  258. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  259. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  260. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  261. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  262. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  263. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  264. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  265. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  266. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  267. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  268. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  269. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  270. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  271. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  272. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  273. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  274. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  275. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  276. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  277. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  278. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  279. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  280. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  281. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  282. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  283. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  284. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  285. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  286. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  287. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  288. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  289. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  290. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  291. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  292. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  293. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  294. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  295. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  296. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  297. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  298. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  299. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  300. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  301. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  302. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  303. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  304. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  305. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  306. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  307. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  308. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  309. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  310. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  311. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  312. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  313. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  314. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  315. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  316. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  317. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  318. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  319. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  320. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  321. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  322. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  323. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  324. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  325. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  326. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  327. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  328. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  329. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  330. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  331. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  332. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  333. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  334. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  335. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  336. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  337. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  338. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  339. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  340. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  341. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  342. package/template/.agents/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  343. package/template/.agents/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  344. package/template/.agents/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  345. package/template/.agents/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  346. package/template/.agents/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  347. package/template/.agents/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  348. package/template/.agents/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  349. package/template/.agents/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  350. package/template/.agents/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  351. package/template/.agents/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  352. package/template/.agents/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  353. package/template/.agents/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  354. package/template/.agents/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  355. package/template/.agents/skills/yss-prototype-stage/references/usability-research.md +26 -0
  356. package/template/.agents/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  357. package/template/.agents/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  358. package/template/.agents/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  359. package/template/.agents/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  360. package/template/.agents/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  361. package/template/.agents/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  362. package/template/.agents/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  363. package/template/.agents/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  364. package/template/.agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  365. package/template/.agents/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  366. package/template/.agents/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  367. package/template/.agents/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  368. package/template/.agents/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  369. package/template/.agents/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  370. package/template/.agents/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  371. package/template/.agents/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  372. package/template/.agents/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  373. package/template/.agents/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  374. package/template/.agents/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  375. package/template/.agents/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  376. package/template/.agents/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  377. package/template/.agents/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  378. package/template/.agents/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  379. package/template/.agents/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  380. package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  381. package/template/.agents/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  382. package/template/.agents/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  383. package/template/.agents/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  384. package/template/.agents/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  385. package/template/.agents/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  386. package/template/.agents/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  387. package/template/.agents/skills/yss-stage-decision/SKILL.md +5 -0
  388. package/template/.agents/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
  389. package/template/.agents/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
  390. package/template/.agents/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
  391. package/template/.agents/skills/yss-technical-design/SKILL.md +4 -0
  392. package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  393. package/template/.agents/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  394. package/template/.agents/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  395. package/template/.agents/skills/ytable-usage/SKILL.md +3 -191
  396. package/template/.agents/skills/ytable-usage/references/selection-and-batch.md +30 -0
  397. package/template/.agents/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  398. package/template/.codex/skills/archify/SKILL.md +4 -52
  399. package/template/.codex/skills/archify/references/authoring-notes.md +12 -0
  400. package/template/.codex/skills/archify/references/authoring-workflow.md +25 -0
  401. package/template/.codex/skills/archify/references/delivery-workflow.md +25 -0
  402. package/template/.codex/skills/archify/references/upstream-updates.md +12 -0
  403. package/template/.codex/skills/code-review/SKILL.md +3 -34
  404. package/template/.codex/skills/code-review/references/legacy-convergence.md +5 -0
  405. package/template/.codex/skills/code-review/references/review-axis-checklists.md +18 -0
  406. package/template/.codex/skills/code-review/references/smell-baseline.md +23 -0
  407. package/template/.codex/skills/diagnosing-bugs/SKILL.md +3 -91
  408. package/template/.codex/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  409. package/template/.codex/skills/diagnosing-bugs/references/investigation.md +49 -0
  410. package/template/.codex/skills/git-commit-core/agents/openai.yaml +2 -0
  411. package/template/.codex/skills/maintaining-skills/references/authoring.md +6 -0
  412. package/template/.codex/skills/prototype-review/SKILL.md +11 -0
  413. package/template/.codex/skills/prototype-review/references/component-qa.md +32 -0
  414. package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  415. package/template/.codex/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  416. package/template/.codex/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  417. package/template/.codex/skills/to-spec/SKILL.md +9 -62
  418. package/template/.codex/skills/to-tickets/SKILL.md +20 -86
  419. package/template/.codex/skills/using-git-worktrees/SKILL.md +5 -122
  420. package/template/.codex/skills/using-git-worktrees/references/git-fallback.md +46 -0
  421. package/template/.codex/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  422. package/template/.codex/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  423. package/template/.codex/skills/wayfinder/SKILL.md +7 -86
  424. package/template/.codex/skills/wayfinder/references/chart-map.md +14 -0
  425. package/template/.codex/skills/wayfinder/references/map-format.md +49 -0
  426. package/template/.codex/skills/wayfinder/references/scope-and-frontier.md +24 -0
  427. package/template/.codex/skills/wayfinder/references/ticket-types.md +12 -0
  428. package/template/.codex/skills/wayfinder/references/work-map.md +15 -0
  429. package/template/.codex/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  430. package/template/.codex/skills/yedit-table-usage/SKILL.md +5 -172
  431. package/template/.codex/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  432. package/template/.codex/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  433. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  434. package/template/.codex/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  435. package/template/.codex/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  436. package/template/.codex/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  437. package/template/.codex/skills/yss-design-system/SKILL.md +13 -3
  438. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  439. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  440. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  441. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  442. package/template/.codex/skills/yss-design-system/references/data-quality-theme.md +2 -2
  443. package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +1 -1
  444. package/template/.codex/skills/yss-design-system/references/design-system.md +3 -3
  445. package/template/.codex/skills/yss-design-system/references/enterprise-craft.md +33 -0
  446. package/template/.codex/skills/yss-design-system/references/page-composition.md +24 -0
  447. package/template/.codex/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  448. package/template/.codex/skills/yss-design-system/references/search-date-theme.md +19 -0
  449. package/template/.codex/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  450. package/template/.codex/skills/yss-harness-upgrade/SKILL.md +26 -0
  451. package/template/.codex/skills/yss-harness-upgrade/references/cli-families.md +14 -0
  452. package/template/.codex/skills/yss-hook/SKILL.md +8 -102
  453. package/template/.codex/skills/yss-hook/references/async-actions.md +49 -0
  454. package/template/.codex/skills/yss-hook/references/list-pagination.md +46 -0
  455. package/template/.codex/skills/yss-hook/references/polling.md +20 -0
  456. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  457. package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -0
  458. package/template/.codex/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  459. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +2 -49
  460. package/template/.codex/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  461. package/template/.codex/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  462. package/template/.codex/skills/yss-openapi-governance/SKILL.md +2 -48
  463. package/template/.codex/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  464. package/template/.codex/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  465. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +29 -29
  466. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  467. package/template/.codex/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  468. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +2 -2
  469. package/template/.codex/skills/yss-prototype-stage/SKILL.md +27 -8
  470. package/template/.codex/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  471. package/template/.codex/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  472. package/template/.codex/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  473. package/template/.codex/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  474. package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  475. package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  476. package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  477. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  478. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  479. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  480. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  481. package/template/.codex/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  482. package/template/.codex/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  483. package/template/.codex/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  484. package/template/.codex/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  485. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  486. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  487. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  488. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  489. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  490. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  491. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  492. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  493. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  494. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  495. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  496. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  497. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  498. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  499. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  500. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  501. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  502. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  503. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  504. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  505. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  506. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  507. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  508. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  509. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  510. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  511. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  512. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  513. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  514. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  515. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  516. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  517. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  518. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  519. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  520. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  521. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  522. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  523. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  524. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  525. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  526. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  527. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  528. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  529. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  530. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  531. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  532. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  533. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  534. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  535. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  536. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  537. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  538. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  539. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  540. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  541. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  542. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  543. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  544. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  545. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  546. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  547. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  548. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  549. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  550. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  551. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  552. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  553. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  554. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  555. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  556. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  557. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  558. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  559. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  560. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  561. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  562. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  563. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  564. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  565. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  566. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  567. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  568. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  569. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  570. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  571. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  572. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  573. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  574. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  575. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  576. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  577. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  578. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  579. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  580. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  581. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  582. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  583. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  584. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  585. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  586. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  587. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  588. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  589. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  590. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  591. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  592. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  593. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  594. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  595. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  596. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  597. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  598. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  599. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  600. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  601. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  602. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  603. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  604. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  605. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  606. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  607. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  608. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  609. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  610. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  611. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  612. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  613. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  614. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  615. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  616. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  617. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  618. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  619. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  620. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  621. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  622. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  623. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  624. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  625. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  626. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  627. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  628. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  629. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  630. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  631. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  632. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  633. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  634. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  635. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  636. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  637. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  638. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  639. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  640. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  641. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  642. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  643. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  644. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  645. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  646. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  647. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  648. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  649. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  650. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  651. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  652. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  653. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  654. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  655. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  656. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  657. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  658. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  659. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  660. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  661. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  662. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  663. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  664. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  665. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  666. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  667. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  668. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  669. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  670. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  671. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  672. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  673. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  674. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  675. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  676. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  677. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  678. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  679. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  680. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  681. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  682. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  683. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  684. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  685. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  686. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  687. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  688. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  689. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  690. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  691. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  692. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  693. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  694. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  695. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  696. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  697. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  698. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  699. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  700. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  701. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  702. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  703. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  704. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  705. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  706. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  707. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  708. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  709. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  710. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  711. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  712. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  713. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  714. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  715. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  716. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  717. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  718. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  719. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  720. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  721. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  722. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  723. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  724. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  725. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  726. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  727. package/template/.codex/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  728. package/template/.codex/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  729. package/template/.codex/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  730. package/template/.codex/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  731. package/template/.codex/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  732. package/template/.codex/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  733. package/template/.codex/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  734. package/template/.codex/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  735. package/template/.codex/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  736. package/template/.codex/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  737. package/template/.codex/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  738. package/template/.codex/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  739. package/template/.codex/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  740. package/template/.codex/skills/yss-prototype-stage/references/usability-research.md +26 -0
  741. package/template/.codex/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  742. package/template/.codex/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  743. package/template/.codex/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  744. package/template/.codex/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  745. package/template/.codex/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  746. package/template/.codex/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  747. package/template/.codex/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  748. package/template/.codex/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  749. package/template/.codex/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  750. package/template/.codex/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  751. package/template/.codex/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  752. package/template/.codex/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  753. package/template/.codex/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  754. package/template/.codex/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  755. package/template/.codex/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  756. package/template/.codex/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  757. package/template/.codex/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  758. package/template/.codex/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  759. package/template/.codex/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  760. package/template/.codex/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  761. package/template/.codex/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  762. package/template/.codex/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  763. package/template/.codex/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  764. package/template/.codex/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  765. package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  766. package/template/.codex/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  767. package/template/.codex/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  768. package/template/.codex/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  769. package/template/.codex/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  770. package/template/.codex/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  771. package/template/.codex/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  772. package/template/.codex/skills/yss-stage-decision/SKILL.md +5 -0
  773. package/template/.codex/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
  774. package/template/.codex/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
  775. package/template/.codex/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
  776. package/template/.codex/skills/yss-technical-design/SKILL.md +4 -0
  777. package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  778. package/template/.codex/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  779. package/template/.codex/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  780. package/template/.codex/skills/ytable-usage/SKILL.md +3 -191
  781. package/template/.codex/skills/ytable-usage/references/selection-and-batch.md +30 -0
  782. package/template/.codex/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  783. package/template/.cursor/skills/archify/SKILL.md +4 -52
  784. package/template/.cursor/skills/archify/references/authoring-notes.md +12 -0
  785. package/template/.cursor/skills/archify/references/authoring-workflow.md +25 -0
  786. package/template/.cursor/skills/archify/references/delivery-workflow.md +25 -0
  787. package/template/.cursor/skills/archify/references/upstream-updates.md +12 -0
  788. package/template/.cursor/skills/code-review/SKILL.md +3 -34
  789. package/template/.cursor/skills/code-review/references/legacy-convergence.md +5 -0
  790. package/template/.cursor/skills/code-review/references/review-axis-checklists.md +18 -0
  791. package/template/.cursor/skills/code-review/references/smell-baseline.md +23 -0
  792. package/template/.cursor/skills/diagnosing-bugs/SKILL.md +3 -91
  793. package/template/.cursor/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  794. package/template/.cursor/skills/diagnosing-bugs/references/investigation.md +49 -0
  795. package/template/.cursor/skills/git-commit-core/agents/openai.yaml +2 -0
  796. package/template/.cursor/skills/maintaining-skills/references/authoring.md +6 -0
  797. package/template/.cursor/skills/prototype-review/SKILL.md +11 -0
  798. package/template/.cursor/skills/prototype-review/references/component-qa.md +32 -0
  799. package/template/.cursor/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  800. package/template/.cursor/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  801. package/template/.cursor/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  802. package/template/.cursor/skills/to-spec/SKILL.md +9 -62
  803. package/template/.cursor/skills/to-tickets/SKILL.md +20 -86
  804. package/template/.cursor/skills/using-git-worktrees/SKILL.md +5 -122
  805. package/template/.cursor/skills/using-git-worktrees/references/git-fallback.md +46 -0
  806. package/template/.cursor/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  807. package/template/.cursor/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  808. package/template/.cursor/skills/wayfinder/SKILL.md +7 -86
  809. package/template/.cursor/skills/wayfinder/references/chart-map.md +14 -0
  810. package/template/.cursor/skills/wayfinder/references/map-format.md +49 -0
  811. package/template/.cursor/skills/wayfinder/references/scope-and-frontier.md +24 -0
  812. package/template/.cursor/skills/wayfinder/references/ticket-types.md +12 -0
  813. package/template/.cursor/skills/wayfinder/references/work-map.md +15 -0
  814. package/template/.cursor/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  815. package/template/.cursor/skills/yedit-table-usage/SKILL.md +5 -172
  816. package/template/.cursor/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  817. package/template/.cursor/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  818. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  819. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  820. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  821. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  822. package/template/.cursor/skills/yss-design-system/SKILL.md +13 -3
  823. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  824. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  825. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  826. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  827. package/template/.cursor/skills/yss-design-system/references/data-quality-theme.md +2 -2
  828. package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +1 -1
  829. package/template/.cursor/skills/yss-design-system/references/design-system.md +3 -3
  830. package/template/.cursor/skills/yss-design-system/references/enterprise-craft.md +33 -0
  831. package/template/.cursor/skills/yss-design-system/references/page-composition.md +24 -0
  832. package/template/.cursor/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  833. package/template/.cursor/skills/yss-design-system/references/search-date-theme.md +19 -0
  834. package/template/.cursor/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  835. package/template/.cursor/skills/yss-harness-upgrade/SKILL.md +26 -0
  836. package/template/.cursor/skills/yss-harness-upgrade/references/cli-families.md +14 -0
  837. package/template/.cursor/skills/yss-hook/SKILL.md +8 -102
  838. package/template/.cursor/skills/yss-hook/references/async-actions.md +49 -0
  839. package/template/.cursor/skills/yss-hook/references/list-pagination.md +46 -0
  840. package/template/.cursor/skills/yss-hook/references/polling.md +20 -0
  841. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  842. package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -0
  843. package/template/.cursor/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  844. package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +2 -49
  845. package/template/.cursor/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  846. package/template/.cursor/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  847. package/template/.cursor/skills/yss-openapi-governance/SKILL.md +2 -48
  848. package/template/.cursor/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  849. package/template/.cursor/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  850. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +29 -29
  851. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  852. package/template/.cursor/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  853. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +2 -2
  854. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +27 -8
  855. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  856. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  857. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  858. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  859. package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  860. package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  861. package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  862. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  863. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  864. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  865. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  866. package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  867. package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  868. package/template/.cursor/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  869. package/template/.cursor/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  870. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  871. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  872. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  873. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  874. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  875. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  876. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  877. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  878. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  879. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  880. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  881. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  882. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  883. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  884. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  885. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  886. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  887. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  888. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  889. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  890. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  891. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  892. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  893. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  894. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  895. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  896. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  897. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  898. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  899. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  900. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  901. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  902. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  903. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  904. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  905. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  906. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  907. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  908. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  909. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  910. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  911. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  912. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  913. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  914. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  915. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  916. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  917. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  918. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  919. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  920. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  921. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  922. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  923. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  924. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  925. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  926. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  927. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  928. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  929. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  930. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  931. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  932. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  933. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  934. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  935. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  936. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  937. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  938. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  939. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  940. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  941. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  942. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  943. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  944. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  945. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  946. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  947. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  948. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  949. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  950. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  951. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  952. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  953. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  954. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  955. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  956. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  957. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  958. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  959. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  960. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  961. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  962. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  963. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  964. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  965. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  966. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  967. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  968. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  969. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  970. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  971. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  972. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  973. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  974. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  975. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  976. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  977. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  978. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  979. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  980. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  981. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  982. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  983. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  984. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  985. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  986. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  987. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  988. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  989. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  990. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  991. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  992. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  993. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  994. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  995. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  996. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  997. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  998. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  999. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  1000. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  1001. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  1002. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  1003. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  1004. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  1005. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  1006. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  1007. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  1008. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  1009. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  1010. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  1011. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  1012. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  1013. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  1014. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  1015. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  1016. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  1017. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  1018. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  1019. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  1020. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  1021. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  1022. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  1023. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  1024. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  1025. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  1026. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  1027. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  1028. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  1029. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  1030. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  1031. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  1032. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  1033. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  1034. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  1035. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  1036. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  1037. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  1038. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  1039. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  1040. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  1041. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  1042. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  1043. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  1044. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  1045. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  1046. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  1047. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  1048. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  1049. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  1050. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  1051. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  1052. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  1053. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  1054. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  1055. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  1056. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  1057. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  1058. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  1059. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  1060. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  1061. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  1062. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  1063. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  1064. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  1065. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  1066. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  1067. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  1068. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  1069. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  1070. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  1071. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  1072. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  1073. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  1074. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  1075. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  1076. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  1077. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  1078. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  1079. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  1080. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  1081. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  1082. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  1083. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  1084. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  1085. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  1086. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  1087. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  1088. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  1089. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  1090. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  1091. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  1092. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  1093. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  1094. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  1095. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  1096. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  1097. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  1098. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  1099. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  1100. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  1101. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  1102. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  1103. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  1104. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  1105. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  1106. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  1107. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  1108. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  1109. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  1110. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  1111. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  1112. package/template/.cursor/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  1113. package/template/.cursor/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  1114. package/template/.cursor/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  1115. package/template/.cursor/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  1116. package/template/.cursor/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  1117. package/template/.cursor/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  1118. package/template/.cursor/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  1119. package/template/.cursor/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  1120. package/template/.cursor/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  1121. package/template/.cursor/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  1122. package/template/.cursor/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  1123. package/template/.cursor/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  1124. package/template/.cursor/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  1125. package/template/.cursor/skills/yss-prototype-stage/references/usability-research.md +26 -0
  1126. package/template/.cursor/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  1127. package/template/.cursor/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  1128. package/template/.cursor/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  1129. package/template/.cursor/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  1130. package/template/.cursor/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  1131. package/template/.cursor/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  1132. package/template/.cursor/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  1133. package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  1134. package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  1135. package/template/.cursor/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  1136. package/template/.cursor/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  1137. package/template/.cursor/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  1138. package/template/.cursor/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  1139. package/template/.cursor/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  1140. package/template/.cursor/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  1141. package/template/.cursor/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  1142. package/template/.cursor/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  1143. package/template/.cursor/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  1144. package/template/.cursor/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  1145. package/template/.cursor/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  1146. package/template/.cursor/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  1147. package/template/.cursor/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  1148. package/template/.cursor/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  1149. package/template/.cursor/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  1150. package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  1151. package/template/.cursor/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  1152. package/template/.cursor/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  1153. package/template/.cursor/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  1154. package/template/.cursor/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  1155. package/template/.cursor/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  1156. package/template/.cursor/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  1157. package/template/.cursor/skills/yss-stage-decision/SKILL.md +5 -0
  1158. package/template/.cursor/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
  1159. package/template/.cursor/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
  1160. package/template/.cursor/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
  1161. package/template/.cursor/skills/yss-technical-design/SKILL.md +4 -0
  1162. package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  1163. package/template/.cursor/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  1164. package/template/.cursor/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  1165. package/template/.cursor/skills/ytable-usage/SKILL.md +3 -191
  1166. package/template/.cursor/skills/ytable-usage/references/selection-and-batch.md +30 -0
  1167. package/template/.cursor/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  1168. package/template/.pi/skills/archify/SKILL.md +4 -52
  1169. package/template/.pi/skills/archify/references/authoring-notes.md +12 -0
  1170. package/template/.pi/skills/archify/references/authoring-workflow.md +25 -0
  1171. package/template/.pi/skills/archify/references/delivery-workflow.md +25 -0
  1172. package/template/.pi/skills/archify/references/upstream-updates.md +12 -0
  1173. package/template/.pi/skills/code-review/SKILL.md +3 -34
  1174. package/template/.pi/skills/code-review/references/legacy-convergence.md +5 -0
  1175. package/template/.pi/skills/code-review/references/review-axis-checklists.md +18 -0
  1176. package/template/.pi/skills/code-review/references/smell-baseline.md +23 -0
  1177. package/template/.pi/skills/diagnosing-bugs/SKILL.md +3 -91
  1178. package/template/.pi/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  1179. package/template/.pi/skills/diagnosing-bugs/references/investigation.md +49 -0
  1180. package/template/.pi/skills/git-commit-core/agents/openai.yaml +2 -0
  1181. package/template/.pi/skills/maintaining-skills/references/authoring.md +6 -0
  1182. package/template/.pi/skills/prototype-review/SKILL.md +11 -0
  1183. package/template/.pi/skills/prototype-review/references/component-qa.md +32 -0
  1184. package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  1185. package/template/.pi/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  1186. package/template/.pi/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  1187. package/template/.pi/skills/to-spec/SKILL.md +9 -62
  1188. package/template/.pi/skills/to-tickets/SKILL.md +20 -86
  1189. package/template/.pi/skills/using-git-worktrees/SKILL.md +5 -122
  1190. package/template/.pi/skills/using-git-worktrees/references/git-fallback.md +46 -0
  1191. package/template/.pi/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  1192. package/template/.pi/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  1193. package/template/.pi/skills/wayfinder/SKILL.md +7 -86
  1194. package/template/.pi/skills/wayfinder/references/chart-map.md +14 -0
  1195. package/template/.pi/skills/wayfinder/references/map-format.md +49 -0
  1196. package/template/.pi/skills/wayfinder/references/scope-and-frontier.md +24 -0
  1197. package/template/.pi/skills/wayfinder/references/ticket-types.md +12 -0
  1198. package/template/.pi/skills/wayfinder/references/work-map.md +15 -0
  1199. package/template/.pi/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  1200. package/template/.pi/skills/yedit-table-usage/SKILL.md +5 -172
  1201. package/template/.pi/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  1202. package/template/.pi/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  1203. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  1204. package/template/.pi/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  1205. package/template/.pi/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  1206. package/template/.pi/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  1207. package/template/.pi/skills/yss-design-system/SKILL.md +13 -3
  1208. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  1209. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  1210. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  1211. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  1212. package/template/.pi/skills/yss-design-system/references/data-quality-theme.md +2 -2
  1213. package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +1 -1
  1214. package/template/.pi/skills/yss-design-system/references/design-system.md +3 -3
  1215. package/template/.pi/skills/yss-design-system/references/enterprise-craft.md +33 -0
  1216. package/template/.pi/skills/yss-design-system/references/page-composition.md +24 -0
  1217. package/template/.pi/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  1218. package/template/.pi/skills/yss-design-system/references/search-date-theme.md +19 -0
  1219. package/template/.pi/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  1220. package/template/.pi/skills/yss-harness-upgrade/SKILL.md +26 -0
  1221. package/template/.pi/skills/yss-harness-upgrade/references/cli-families.md +14 -0
  1222. package/template/.pi/skills/yss-hook/SKILL.md +8 -102
  1223. package/template/.pi/skills/yss-hook/references/async-actions.md +49 -0
  1224. package/template/.pi/skills/yss-hook/references/list-pagination.md +46 -0
  1225. package/template/.pi/skills/yss-hook/references/polling.md +20 -0
  1226. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  1227. package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -0
  1228. package/template/.pi/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  1229. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +2 -49
  1230. package/template/.pi/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  1231. package/template/.pi/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  1232. package/template/.pi/skills/yss-openapi-governance/SKILL.md +2 -48
  1233. package/template/.pi/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  1234. package/template/.pi/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  1235. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +29 -29
  1236. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  1237. package/template/.pi/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  1238. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +2 -2
  1239. package/template/.pi/skills/yss-prototype-stage/SKILL.md +27 -8
  1240. package/template/.pi/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  1241. package/template/.pi/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  1242. package/template/.pi/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  1243. package/template/.pi/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  1244. package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  1245. package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  1246. package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  1247. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  1248. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  1249. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  1250. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  1251. package/template/.pi/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  1252. package/template/.pi/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  1253. package/template/.pi/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  1254. package/template/.pi/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  1255. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  1256. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  1257. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  1258. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  1259. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  1260. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  1261. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  1262. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  1263. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  1264. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  1265. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  1266. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  1267. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  1268. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  1269. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  1270. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  1271. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  1272. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  1273. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  1274. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  1275. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  1276. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  1277. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  1278. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  1279. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  1280. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  1281. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  1282. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  1283. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  1284. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  1285. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  1286. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  1287. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  1288. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  1289. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  1290. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  1291. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  1292. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  1293. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  1294. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  1295. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  1296. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  1297. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  1298. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  1299. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  1300. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  1301. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  1302. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  1303. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  1304. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  1305. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  1306. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  1307. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  1308. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  1309. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  1310. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  1311. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  1312. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  1313. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  1314. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  1315. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  1316. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  1317. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  1318. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  1319. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  1320. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  1321. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  1322. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  1323. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  1324. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  1325. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  1326. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  1327. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  1328. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  1329. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  1330. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  1331. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  1332. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  1333. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  1334. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  1335. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  1336. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  1337. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  1338. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  1339. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  1340. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  1341. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  1342. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  1343. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  1344. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  1345. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  1346. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  1347. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  1348. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  1349. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  1350. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  1351. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  1352. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  1353. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  1354. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  1355. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  1356. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  1357. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  1358. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  1359. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  1360. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  1361. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  1362. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  1363. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  1364. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  1365. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  1366. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  1367. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  1368. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  1369. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  1370. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  1371. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  1372. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  1373. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  1374. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  1375. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  1376. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  1377. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  1378. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  1379. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  1380. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  1381. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  1382. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  1383. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  1384. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  1385. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  1386. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  1387. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  1388. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  1389. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  1390. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  1391. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  1392. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  1393. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  1394. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  1395. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  1396. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  1397. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  1398. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  1399. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  1400. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  1401. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  1402. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  1403. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  1404. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  1405. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  1406. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  1407. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  1408. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  1409. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  1410. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  1411. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  1412. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  1413. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  1414. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  1415. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  1416. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  1417. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  1418. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  1419. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  1420. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  1421. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  1422. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  1423. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  1424. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  1425. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  1426. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  1427. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  1428. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  1429. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  1430. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  1431. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  1432. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  1433. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  1434. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  1435. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  1436. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  1437. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  1438. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  1439. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  1440. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  1441. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  1442. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  1443. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  1444. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  1445. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  1446. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  1447. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  1448. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  1449. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  1450. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  1451. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  1452. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  1453. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  1454. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  1455. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  1456. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  1457. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  1458. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  1459. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  1460. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  1461. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  1462. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  1463. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  1464. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  1465. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  1466. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  1467. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  1468. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  1469. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  1470. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  1471. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  1472. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  1473. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  1474. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  1475. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  1476. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  1477. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  1478. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  1479. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  1480. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  1481. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  1482. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  1483. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  1484. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  1485. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  1486. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  1487. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  1488. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  1489. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  1490. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  1491. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  1492. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  1493. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  1494. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  1495. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  1496. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  1497. package/template/.pi/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  1498. package/template/.pi/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  1499. package/template/.pi/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  1500. package/template/.pi/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  1501. package/template/.pi/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  1502. package/template/.pi/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  1503. package/template/.pi/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  1504. package/template/.pi/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  1505. package/template/.pi/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  1506. package/template/.pi/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  1507. package/template/.pi/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  1508. package/template/.pi/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  1509. package/template/.pi/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  1510. package/template/.pi/skills/yss-prototype-stage/references/usability-research.md +26 -0
  1511. package/template/.pi/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  1512. package/template/.pi/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  1513. package/template/.pi/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  1514. package/template/.pi/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  1515. package/template/.pi/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  1516. package/template/.pi/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  1517. package/template/.pi/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  1518. package/template/.pi/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  1519. package/template/.pi/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  1520. package/template/.pi/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  1521. package/template/.pi/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  1522. package/template/.pi/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  1523. package/template/.pi/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  1524. package/template/.pi/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  1525. package/template/.pi/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  1526. package/template/.pi/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  1527. package/template/.pi/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  1528. package/template/.pi/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  1529. package/template/.pi/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  1530. package/template/.pi/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  1531. package/template/.pi/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  1532. package/template/.pi/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  1533. package/template/.pi/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  1534. package/template/.pi/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  1535. package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  1536. package/template/.pi/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  1537. package/template/.pi/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  1538. package/template/.pi/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  1539. package/template/.pi/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  1540. package/template/.pi/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  1541. package/template/.pi/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  1542. package/template/.pi/skills/yss-stage-decision/SKILL.md +5 -0
  1543. package/template/.pi/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
  1544. package/template/.pi/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
  1545. package/template/.pi/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
  1546. package/template/.pi/skills/yss-technical-design/SKILL.md +4 -0
  1547. package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  1548. package/template/.pi/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  1549. package/template/.pi/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  1550. package/template/.pi/skills/ytable-usage/SKILL.md +3 -191
  1551. package/template/.pi/skills/ytable-usage/references/selection-and-batch.md +30 -0
  1552. package/template/.pi/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  1553. package/template/.template-spec/agents/digital-human-roles.yaml +2 -2
  1554. package/template/.template-spec/agents/issue-tracker.md +10 -1
  1555. package/template/.template-spec/agents/yss-skill-registry.yaml +50 -1
  1556. package/template/.template-spec/design/README.md +7 -2
  1557. package/template/.template-spec/design/design.md +30 -35
  1558. package/template/.template-spec/design/templates/examples/model-publishing-interaction.example.md +2 -2
  1559. package/template/.template-spec/design/templates/interaction-spec-template.md +24 -0
  1560. package/template/.template-spec/design/templates/prototype-evidence-template.yaml +18 -5
  1561. package/template/.template-spec/design/templates/prototype-review-checklist.md +8 -0
  1562. package/template/.template-spec/design/tokens/.design-md-projection.json +2 -2
  1563. package/template/.template-spec/design/tokens/variables.css +162 -0
  1564. package/template/.template-spec/plan/templates/plan-template.md +25 -1
  1565. package/template/.template-spec/process/business-tickets.md +48 -0
  1566. package/template/.template-spec/process/checkpoint-boundary.yaml +73 -0
  1567. package/template/.template-spec/process/contract-reading.md +36 -1
  1568. package/template/.template-spec/process/document-writing.md +14 -0
  1569. package/template/.template-spec/process/feature-assets.md +38 -0
  1570. package/template/.template-spec/process/harness-upgrade.md +40 -0
  1571. package/template/.template-spec/process/lifecycle-artifact-map.md +3 -2
  1572. package/template/.template-spec/process/lifecycle-registry-baseline.json +9 -5
  1573. package/template/.template-spec/process/lifecycle-registry.yaml +18 -6
  1574. package/template/.template-spec/process/plan-spec-quality.md +69 -0
  1575. package/template/.template-spec/process/project-ci.md +21 -0
  1576. package/template/.template-spec/process/reading-policy.yaml +4 -0
  1577. package/template/.template-spec/process/schemas/approval-record.schema.json +23 -0
  1578. package/template/.template-spec/process/schemas/business-tickets-v1.schema.json +449 -0
  1579. package/template/.template-spec/process/schemas/domain-strategy-reading.schema.json +216 -0
  1580. package/template/.template-spec/process/schemas/lifecycle-checkpoint.schema.json +203 -11
  1581. package/template/.template-spec/process/schemas/reading-manifest.schema.json +14 -0
  1582. package/template/.template-spec/process/schemas/reading-policy.schema.json +10 -0
  1583. package/template/.template-spec/process/schemas/stage-decision-package-reading.schema.json +148 -0
  1584. package/template/.template-spec/process/stage-tracking.md +10 -2
  1585. package/template/.template-spec/process/strategic-handoff-package.md +3 -1
  1586. package/template/.template-spec/process/structured-assets.md +35 -0
  1587. package/template/.template-spec/process/templates/lifecycle-checkpoint-template.json +48 -0
  1588. package/template/.template-spec/process/templates/stage-checkpoint-template.md +6 -1
  1589. package/template/.template-spec/templates/approval-record-template.json +23 -0
  1590. package/template/.template-spec/templates/business-ticket-review-template.yaml +11 -0
  1591. package/template/.template-spec/templates/business-ticket-set-template.yaml +16 -0
  1592. package/template/.template-spec/templates/business-ticket-template.md +38 -0
  1593. package/template/.template-spec/templates/examples/lifecycle-writing-examples.md +16 -0
  1594. package/template/.template-spec/templates/examples/plan-spec/complex-defective.md +38 -0
  1595. package/template/.template-spec/templates/examples/plan-spec/complex-source.md +12 -0
  1596. package/template/.template-spec/templates/examples/plan-spec/complex-valid.md +38 -0
  1597. package/template/.template-spec/templates/examples/plan-spec/expectations.json +46 -0
  1598. package/template/.template-spec/templates/examples/plan-spec/high-risk-before.md +32 -0
  1599. package/template/.template-spec/templates/examples/plan-spec/high-risk-defective.md +39 -0
  1600. package/template/.template-spec/templates/examples/plan-spec/high-risk-source.md +11 -0
  1601. package/template/.template-spec/templates/examples/plan-spec/high-risk-valid.md +39 -0
  1602. package/template/.template-spec/templates/examples/plan-spec/ordinary-defective.md +36 -0
  1603. package/template/.template-spec/templates/examples/plan-spec/ordinary-plan.md +27 -0
  1604. package/template/.template-spec/templates/examples/plan-spec/ordinary-source.md +14 -0
  1605. package/template/.template-spec/templates/examples/plan-spec/ordinary-valid.md +36 -0
  1606. package/template/.template-spec/templates/local-parent-ticket-template.md +23 -15
  1607. package/template/.template-spec/templates/spec-delta-template.md +7 -5
  1608. package/template/.template-spec/templates/spec-template.md +31 -15
  1609. package/template/.template-spec/templates/vertical-slice-ticket-template.md +4 -0
  1610. package/template/AGENTS.md +1 -1
  1611. package/template/CONTEXT.md +1 -0
  1612. package/template/DESIGN.md +23 -4
  1613. package/template/scripts/check-plan-stage-coverage +12 -0
  1614. package/template/scripts/contract +20 -2
  1615. package/template/scripts/feature-assets +23 -0
  1616. package/template/scripts/inspect-plan-spec +32 -0
  1617. package/template/scripts/inspect-skill-discovery +24 -0
  1618. package/template/scripts/lib/approval-record.mjs +4 -3
  1619. package/template/scripts/lib/asset-command.mjs +35 -0
  1620. package/template/scripts/lib/asset-migration.mjs +101 -0
  1621. package/template/scripts/lib/asset-transactions.mjs +235 -0
  1622. package/template/scripts/lib/business-ticket-lifecycle.mjs +34 -0
  1623. package/template/scripts/lib/business-tickets.mjs +273 -0
  1624. package/template/scripts/lib/checkpoint-boundary.mjs +43 -0
  1625. package/template/scripts/lib/contract-views.mjs +27 -8
  1626. package/template/scripts/lib/feature-assets.mjs +274 -0
  1627. package/template/scripts/lib/governance-io.mjs +40 -0
  1628. package/template/scripts/lib/json-schema.mjs +43 -4
  1629. package/template/scripts/lib/lifecycle-context-query.mjs +7 -0
  1630. package/template/scripts/lib/lifecycle-presentation.mjs +77 -0
  1631. package/template/scripts/lib/lifecycle-status.mjs +33 -2
  1632. package/template/scripts/lib/lifecycle-transition.mjs +12 -3
  1633. package/template/scripts/lib/plan-spec-markdown.mjs +97 -0
  1634. package/template/scripts/lib/plan-spec-quality.mjs +289 -0
  1635. package/template/scripts/lib/plan-stage-coverage.mjs +40 -0
  1636. package/template/scripts/lib/project-ci-install.mjs +98 -0
  1637. package/template/scripts/lib/project-governance.mjs +189 -0
  1638. package/template/scripts/lib/reading-view-adapters.mjs +62 -0
  1639. package/template/scripts/lib/reading-view-bundle.mjs +202 -0
  1640. package/template/scripts/lib/reading-view-diff.mjs +29 -0
  1641. package/template/scripts/lib/reading-view-markdown.mjs +41 -0
  1642. package/template/scripts/lib/reading-view-model.mjs +13 -0
  1643. package/template/scripts/lib/reading-view-policy.mjs +16 -0
  1644. package/template/scripts/lib/skill-discovery.mjs +150 -0
  1645. package/template/scripts/lib/skill-registry.mjs +41 -1
  1646. package/template/scripts/lib/skill-supply-chain.mjs +1 -1
  1647. package/template/scripts/lib/slice-contract-preparation.mjs +8 -2
  1648. package/template/scripts/lib/slice-contract.mjs +15 -1
  1649. package/template/scripts/lib/stage-tracking-migration.mjs +20 -4
  1650. package/template/scripts/lib/stage-tracking.mjs +10 -5
  1651. package/template/scripts/lib/strategic-handoff-consumption.mjs +14 -2
  1652. package/template/scripts/lib/strategic-handoff-io.mjs +6 -2
  1653. package/template/scripts/lib/strategic-handoff.mjs +26 -5
  1654. package/template/scripts/lib/structured-assets.mjs +81 -0
  1655. package/template/scripts/lib/task-package.mjs +18 -4
  1656. package/template/scripts/lib/testing/user-decision-fixture.mjs +33 -0
  1657. package/template/scripts/lib/user-decision-reuse.mjs +1 -1
  1658. package/template/scripts/lifecycle-status +16 -3
  1659. package/template/scripts/project-ci +20 -0
  1660. package/template/scripts/project-ci-transition +13 -0
  1661. package/template/scripts/query-lifecycle-context +4 -0
  1662. package/template/scripts/stage-tracking +1 -0
  1663. package/template/scripts/vendor/NOTICES.md +237 -0
  1664. package/template/scripts/vendor/manifest.json +1216 -65
  1665. package/template/scripts/vendor/markdown.mjs +11783 -0
  1666. package/template/scripts/verify-approval-record +4 -1
  1667. package/template/scripts/verify-business-tickets +11 -0
  1668. package/template/scripts/verify-context-contract +4 -1
  1669. package/template/scripts/verify-digital-human-task-package +4 -1
  1670. package/template/scripts/verify-lifecycle-checkpoint +24 -6
  1671. package/template/scripts/verify-prototype-design +3 -0
  1672. package/template/skills-lock.json +46 -34
  1673. package/template.manifest.json +3 -1
  1674. package/template.snapshot.json +5 -5
  1675. package/vendor/cli-core/build.mjs +302 -0
  1676. package/vendor/cli-core/bundle.mjs +198 -0
  1677. package/vendor/cli-core/cli.mjs +182 -0
  1678. package/vendor/cli-core/command-runner.mjs +107 -0
  1679. package/vendor/cli-core/engine.mjs +239 -0
  1680. package/vendor/cli-core/family.mjs +28 -0
  1681. package/vendor/cli-core/gitignore.mjs +15 -0
  1682. package/vendor/cli-core/identity.mjs +274 -0
  1683. package/vendor/cli-core/io.mjs +153 -0
  1684. package/vendor/cli-core/layout-migration.mjs +64 -0
  1685. package/vendor/cli-core/legacy.mjs +19 -0
  1686. package/vendor/cli-core/migrate.mjs +237 -0
  1687. package/vendor/cli-core/migration-adapter.mjs +19 -0
  1688. package/vendor/cli-core/package.json +13 -0
  1689. package/vendor/cli-core/scaffold.mjs +117 -0
  1690. package/vendor/cli-core/spec-migration-adapter.mjs +83 -0
  1691. package/vendor/cli-core/tests/build.test.mjs +40 -0
  1692. package/vendor/cli-core/tests/cli.test.mjs +1065 -0
  1693. package/vendor/cli-core/tests/migration-version.test.mjs +8 -0
  1694. package/vendor/cli-core/tests/package-contract.mjs +75 -0
  1695. package/vendor/cli-core/transaction.mjs +529 -0
  1696. package/vendor/cli-core/update.mjs +79 -0
  1697. package/vendor/cli-core/vendor/NOTICES.md +6 -0
  1698. package/vendor/cli-core/vendor/yaml.LICENSE +13 -0
  1699. package/vendor/cli-core/vendor/yaml.mjs +6311 -0
  1700. package/vendor/cli-core/verification.mjs +131 -0
  1701. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1702. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1703. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1704. package/template/.agents/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1705. package/template/.agents/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1706. package/template/.agents/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1707. package/template/.agents/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
  1708. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1709. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1710. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1711. package/template/.codex/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1712. package/template/.codex/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1713. package/template/.codex/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1714. package/template/.codex/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
  1715. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1716. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1717. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1718. package/template/.cursor/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1719. package/template/.cursor/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1720. package/template/.cursor/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1721. package/template/.cursor/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
  1722. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1723. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1724. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1725. package/template/.pi/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1726. package/template/.pi/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1727. package/template/.pi/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1728. package/template/.pi/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
@@ -0,0 +1,137 @@
1
+ #!/usr/bin/env node
2
+ import { existsSync, realpathSync, readFileSync, lstatSync } from 'node:fs';
3
+ // Author-side build; only the fully verified offline package is published.
4
+ import {readFile,writeFile,mkdir,mkdtemp,rm,cp,rename,lstat,realpath} from 'node:fs/promises';
5
+ import {createRequire} from 'node:module';
6
+ import {createHash} from 'node:crypto';
7
+ import {execFileSync} from 'node:child_process';
8
+ import {fileURLToPath,pathToFileURL} from 'node:url';
9
+ import path from 'node:path';
10
+ import {prepareOfflineHtml,sealOfflineHtml,resourceErrors,assertPrototypeTarget} from './offline-html.mjs';
11
+ import {localPath,parseScenarios} from './scenario-contract.mjs';
12
+ const assets=path.resolve(fileURLToPath(new URL('../assets/shadcn-vue-authoring/',import.meta.url)));
13
+ const sha=bytes=>`sha256:${createHash('sha256').update(bytes).digest('hex')}`;
14
+ const escape=text=>text.replace(/[<>&"]/g,c=>({'<':'&lt;','>':'&gt;','&':'&amp;','"':'&quot;'}[c]));
15
+ export async function verifyShadcnVueSources(){
16
+ const registry=JSON.parse(await readFile(path.join(assets,'registry-manifest.json'),'utf8'));
17
+ if(registry.repository!=='https://github.com/unovue/shadcn-vue'||!/^[a-f0-9]{40}$/.test(registry.revision))throw Error('缺少固定 shadcn-vue revision');
18
+ for(const c of registry.components)if(!/^ui\/[a-z-]+\/[A-Za-z]+\.(?:vue|ts)$/.test(c.path)||sha(await readFile(path.join(assets,c.path)))!==c.digest)throw Error(`shadcn 组件源码摘要不匹配: ${c.path}`);
19
+ return registry;
20
+ }
21
+ export async function buildShadcnVuePrototype({projectRoot,root,feature,toolchain,entry,config,density,profile='H2'}){
22
+ if(!['H1','H2'].includes(profile))throw Error('profile 必须为 H1/H2');
23
+ if(!toolchain)throw Error('需要独立作者工具目录 toolchain;不要在共享 Skill 内安装依赖');
24
+ if(config&&entry)throw Error('--config 与 --entry 互斥');
25
+ projectRoot=path.resolve(projectRoot);root=path.resolve(root);toolchain=await realpath(toolchain);
26
+ await assertPrototypeTarget({projectRoot,root,feature});
27
+ let authorRoot=entry?path.dirname(path.resolve(entry)):path.resolve(assets,'../vue-business-patterns'),entryRef=entry?path.basename(entry):'workbench.ts',title='查询与详情';
28
+ let scenarios=fileURLToPath(new URL('../assets/vue-business-patterns/list-detail.scenarios.json',import.meta.url));
29
+ if(config){config=path.resolve(config);authorRoot=path.dirname(config);const c=JSON.parse(await readFile(await localPath(authorRoot,path.basename(config)),'utf8'));
30
+ if(c.schema_version!==1||!c.title?.trim()||Object.keys(c).some(k=>!['schema_version','title','entry','scenarios','density'].includes(k)))throw Error('作者配置需要 schema_version=1、title、entry、scenarios,可选 density');
31
+ density ??= c.density;
32
+ title=c.title;entryRef=c.entry;scenarios=await localPath(authorRoot,c.scenarios);
33
+ }
34
+ density ??= 'compact';
35
+ if(!['compact','comfortable'].includes(density))throw Error('density 必须为 compact/comfortable');
36
+ authorRoot=await realpath(authorRoot);
37
+ const entryPath=await localPath(authorRoot,entryRef),source=await readFile(entryPath,'utf8'),scenarioBytes=await readFile(scenarios);parseScenarios(scenarioBytes);
38
+ const expected=JSON.parse(await readFile(path.join(assets,'package.json'),'utf8')),packages={...expected.dependencies,...expected.devDependencies};
39
+ for(const [name,version] of Object.entries(packages))if(JSON.parse(await readFile(path.join(toolchain,'node_modules',name,'package.json'),'utf8')).version!==version)throw Error(`${name} 需要锁定 ${version}`);
40
+ const lock=await readFile(path.join(assets,'pnpm-lock.yaml'));
41
+ if(sha(await readFile(path.join(toolchain,'pnpm-lock.yaml')))!==sha(lock))throw Error('作者工具 pnpm lock 与技能基线不匹配');
42
+ const registry=await verifyShadcnVueSources(),theme=(await readFile(path.join(assets,'../prototype-theme.css'),'utf8'))+'\n'+await readFile(path.join(assets,'theme.css'),'utf8');
43
+ const require=createRequire(path.join(toolchain,'package.json')),{build}=require('esbuild');
44
+ const {parse,compileScript,compileTemplate,compileStyleAsync,registerTS}=require('@vue/compiler-sfc');
45
+ registerTS(()=>require('typescript'));
46
+ const typePath=p=>p.includes('/node_modules/')?path.join(toolchain,'node_modules',p.split('/node_modules/').slice(1).join('/node_modules/')):p;
47
+ const authored=new Map(),vueStyles=new Map();
48
+ // compiler-sfc reads type-only imports itself, outside esbuild's module hooks.
49
+ // Apply the same source boundary and capture those inputs in provenance.
50
+ function boundedTypeFile(request){
51
+ const file=path.resolve(typePath(request));
52
+ const base=[toolchain,assets,authorRoot].find(root=>file.startsWith(root+path.sep));
53
+ if(!base||!existsSync(file))return null;
54
+ const physical=realpathSync(file);if(!physical.startsWith(base+path.sep))return null;
55
+ if(base!==toolchain)for(let cursor=file;cursor!==base;cursor=path.dirname(cursor))if(lstatSync(cursor).isSymbolicLink())return null;
56
+ return {file,base};
57
+ }
58
+ const typeFs={fileExists:p=>!!boundedTypeFile(p),readFile:p=>{
59
+ const item=boundedTypeFile(p);if(!item)throw Error('Vue 类型来源越出作者或锁定依赖目录');
60
+ const bytes=readFileSync(item.file);
61
+ if(item.base===authorRoot)authored.set(item.file,{rel:path.relative(authorRoot,item.file).split(path.sep).join('/'),bytes});
62
+ return bytes.toString('utf8');
63
+ }};
64
+ const result=await build({absWorkingDir:authorRoot,entryPoints:[entryPath],outdir:path.join(authorRoot,'.bundle'),entryNames:'app',assetNames:'assets/[name]-[hash]',bundle:true,write:false,format:'iife',platform:'browser',target:['chrome110'],minify:true,metafile:true,legalComments:'eof',nodePaths:[path.join(toolchain,'node_modules')],loader:{'.png':'file','.jpg':'file','.jpeg':'file','.svg':'file','.webp':'file','.gif':'file'},define:{'process.env.NODE_ENV':'"production"',__VUE_OPTIONS_API__:'true',__VUE_PROD_DEVTOOLS__:'false',__VUE_PROD_HYDRATION_MISMATCH_DETAILS__:'false'},plugins:[{name:'bounded-authoring',setup(b){
65
+ b.onResolve({filter:/^vue-style:/},args=>({path:args.path,namespace:'vue-style'}));
66
+ b.onLoad({filter:/.*/,namespace:'vue-style'},args=>({...vueStyles.get(args.path),loader:'css'}));
67
+ b.onResolve({filter:/^(?:@\/lib\/utils$|@\/(?:components|registry\/new-york-v4)\/ui\/)/},args=>{
68
+ const file=args.path==='@/lib/utils'?'utils.ts':`ui/${args.path.split('/').at(-1)}/index.ts`;
69
+ if(file!=='utils.ts'&&!registry.components.some(x=>x.path===file))throw Error(`未收录组件 ${file}`);
70
+ return {path:path.join(assets,file)};
71
+ });
72
+ b.onResolve({filter:/^[^./]/},args=>{if(args.path.startsWith('@/'))throw Error(`未登记别名: ${args.path}`);if(!args.importer.includes('/node_modules/')){const name=args.path.startsWith('@')?args.path.split('/').slice(0,2).join('/'):args.path.split('/')[0];if(!Object.hasOwn(packages,name))throw Error(`未登记依赖: ${name}`);}return;});
73
+ b.onLoad({filter:/.*/},async args=>{
74
+ if(args.path.includes(`${path.sep}node_modules${path.sep}`))return;
75
+ const trusted=args.path.startsWith(assets+path.sep),base=trusted?assets:authorRoot,rel=path.relative(base,args.path).split(path.sep).join('/');
76
+ await localPath(base,rel);
77
+ const bytes=await readFile(args.path),ext=path.extname(args.path);
78
+ if(!/\.(?:vue|tsx?|jsx?|json|css|png|jpe?g|svg|webp|gif)$/.test(ext))throw Error(`未支持作者资源: ${rel}`);
79
+ if(/\.(?:vue|tsx?|jsx?|css)$/.test(ext)){const errors=resourceErrors(rel,bytes.toString(),{}).filter(e=>!e.includes('资源缺失或越出交付包'));if(errors.length)throw Error(errors.join('\n'));}
80
+ if(!trusted||args.path===entryPath)authored.set(args.path,{rel,bytes});
81
+ if(ext==='.vue'){
82
+ const {descriptor,errors}=parse(bytes.toString(),{filename:args.path});if(errors.length)throw errors[0];
83
+ if(descriptor.customBlocks.length||[descriptor.script,descriptor.scriptSetup,descriptor.template,...descriptor.styles].some(x=>x?.src)||descriptor.template?.lang&&descriptor.template.lang!=='html'||descriptor.styles.some(x=>x.lang&&x.lang!=='css'||x.module))throw Error('Vue 作者仅支持本地内联 script/template/CSS;不执行预处理器或自定义块');
84
+ const id='data-v-'+sha(bytes).slice(7,19),scoped=descriptor.styles.some(x=>x.scoped);
85
+ let contents;
86
+ if(descriptor.script||descriptor.scriptSetup){const compiled=compileScript(descriptor,{id,genDefaultAs:'__sfc__',inlineTemplate:true,fs:typeFs,templateOptions:{compilerOptions:{scopeId:scoped?id:undefined}}});contents=compiled.content;if(!descriptor.scriptSetup&&descriptor.template){const tpl=compileTemplate({source:descriptor.template.content,filename:args.path,id,scoped,compilerOptions:{bindingMetadata:compiled.bindings}});if(tpl.errors.length)throw tpl.errors[0];contents+='\n'+tpl.code.replace('export function render','function render')+'\n__sfc__.render=render;';}}
87
+ else {const tpl=compileTemplate({source:descriptor.template?.content||'',filename:args.path,id,scoped});if(tpl.errors.length)throw tpl.errors[0];contents=tpl.code.replace('export function render','function render')+'\nconst __sfc__={render};';}
88
+ for(let i=0;i<descriptor.styles.length;i++){const style=descriptor.styles[i];const result=await compileStyleAsync({source:style.content,filename:args.path,id,scoped:style.scoped});if(result.errors.length)throw result.errors[0];const key=`vue-style:${id}-${i}`;vueStyles.set(key,{contents:result.code,resolveDir:path.dirname(args.path)});contents+=`\nimport ${JSON.stringify(key)};`;}
89
+ if(scoped)contents+=`\n__sfc__.__scopeId=${JSON.stringify(id)};`;
90
+ return {contents:contents+'\nexport default __sfc__;',loader:'ts',resolveDir:path.dirname(args.path)};
91
+ }
92
+ return;
93
+ });
94
+ }}]});
95
+ // Every resolved package must belong to the declared dependency closure.
96
+ const roots=new Set();
97
+ for(const input of Object.keys(result.metafile.inputs)){
98
+ const absolute=path.resolve(authorRoot,input);if(!absolute.includes(`${path.sep}node_modules${path.sep}`))continue;
99
+ if(!absolute.startsWith(toolchain+path.sep))throw Error('依赖必须来自锁定作者工具目录');
100
+ let current=path.dirname(absolute);
101
+ while(current!==path.dirname(current)){try{const pkg=JSON.parse(await readFile(path.join(current,'package.json'),'utf8'));if(pkg.name&&pkg.version){roots.add(current);break;}}catch{}current=path.dirname(current);}
102
+ }
103
+ const notices=[`shadcn-vue @ ${registry.revision}\n${await readFile(path.join(assets,'SHADCN-LICENSE.txt'),'utf8')}`];
104
+ for(const base of [...roots].sort()){
105
+ const pkg=JSON.parse(await readFile(path.join(base,'package.json'),'utf8'));let license;
106
+ for(const name of ['LICENSE','LICENSE.md','LICENSE.txt','license','license.md'])try{license=await readFile(path.join(base,name),'utf8');break;}catch{}
107
+ if(!license){const records=JSON.parse(await readFile(path.join(assets,'licenses/sources.json'),'utf8')),record=records.find(r=>r.package===pkg.name&&r.version===pkg.version);if(record){license=await readFile(path.join(assets,'licenses',record.file),'utf8');if(sha(license)!==record.digest)throw Error('补充许可证摘要不匹配');}}
108
+ if(!license)throw Error(`缺少已打包依赖的许可文件 ${pkg.name}`);notices.push(`${pkg.name}@${pkg.version}\n${license}`);
109
+ }
110
+ const stagingParent=path.join(path.dirname(root),'build');await mkdir(stagingParent,{recursive:true});const temp=await mkdtemp(path.join(stagingParent,'.prototype-'));
111
+ try{
112
+ const project=path.join(temp,'project'),out=path.join(project,`docs/.scratch/${feature}/design/prototypes`);
113
+ await mkdir(path.join(project,'.template-spec/design/tokens'),{recursive:true});for(const ref of ['DESIGN.md','.template-spec/design/tokens/variables.css'])await cp(path.join(projectRoot,ref),path.join(project,ref));
114
+ await writeFile(path.join(temp,'scenarios.json'),scenarioBytes);
115
+ const manifest=await prepareOfflineHtml({projectRoot:project,root:out,feature,profile,pattern:'workbench',scenarios:path.join(temp,'scenarios.json'),title,density});
116
+ // Only files in the actual module closure participate in Tailwind scanning.
117
+ let css=`@import ${JSON.stringify(path.join(toolchain,'node_modules/tailwindcss/index.css'))} source(none);\n@source ${JSON.stringify(path.join(assets,'ui'))};\n`;
118
+ for(const [absolute,item] of authored)if(/\.(?:vue|[jt]sx?)$/.test(absolute))css+=`@source ${JSON.stringify(absolute)};\n`;
119
+ await writeFile(path.join(temp,'input.css'),css+theme);
120
+ const cli=JSON.parse(await readFile(path.join(toolchain,'node_modules/@tailwindcss/cli/package.json'),'utf8'));
121
+ execFileSync(process.execPath,[path.join(toolchain,'node_modules/@tailwindcss/cli',cli.bin.tailwindcss),'-i',path.join(temp,'input.css'),'-o',path.join(temp,'styles.css'),'--minify'],{cwd:toolchain,stdio:'pipe'});
122
+ let styles=await readFile(path.join(temp,'styles.css'),'utf8');
123
+ for(const file of result.outputFiles){const ref=path.relative(path.join(authorRoot,'.bundle'),file.path);if(ref==='app.css'){styles+='\n'+file.text;continue;}const target=await localPath(out,ref);await mkdir(path.dirname(target),{recursive:true});await writeFile(target,file.contents);}
124
+ await writeFile(path.join(out,'styles.css'),styles);
125
+ await writeFile(path.join(out,'index.html'),`<!doctype html><html lang="zh-CN" data-density="${density}"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>${escape(title)}</title><link rel="stylesheet" href="./tokens.css"><link rel="stylesheet" href="./styles.css"><script src="./scenarios.js"></script><script src="./scenario-runtime.js"></script><script defer src="./app.js"></script></head><body><div id="app"></div></body></html>`);
126
+ const authoredFiles={};
127
+ for(const {rel,bytes} of authored.values()){const ref=`authoring-sources/${rel}`,target=await localPath(out,ref);await mkdir(path.dirname(target),{recursive:true});await writeFile(target,bytes);authoredFiles[ref]=sha(bytes);}
128
+ await mkdir(path.join(out,'component-sources'));
129
+ for(const item of registry.components){const target=path.join(out,'component-sources',item.path);await mkdir(path.dirname(target),{recursive:true});await cp(path.join(assets,item.path),target);}
130
+ await cp(path.join(assets,'utils.ts'),path.join(out,'component-sources/utils.ts'));await cp(path.join(assets,'registry-manifest.json'),path.join(out,'registry-manifest.json'));
131
+ const buildBasis={packages,lock_digest:sha(lock),source_digest:sha(source),theme_digest:sha(theme),registry_digest:sha(await readFile(path.join(assets,'registry-manifest.json'))),registry_revision:registry.revision,component_groups:registry.component_groups,used_component_files:registry.components.filter(c=>Object.keys(result.metafile.inputs).some(p=>path.resolve(authorRoot,p)===path.join(assets,c.path))).map(c=>c.path),support_source_digests:{'utils.ts':sha(await readFile(path.join(assets,'utils.ts')))},authored_files:authoredFiles,format:'iife',browser_runtime:'vue',toolchain_required_by_recipient:false};
132
+ await writeFile(path.join(out,'authoring-source.ts'),source);await writeFile(path.join(out,'token-theme.css'),theme);await writeFile(path.join(out,'build-provenance.json'),JSON.stringify(buildBasis,null,2)+'\n');await writeFile(path.join(out,'THIRD-PARTY-NOTICES.txt'),notices.join('\n\n'));
133
+ await writeFile(path.join(out,'yss-prototype-adapter.json'),JSON.stringify({...manifest,component_basis:'vue-shadcn-prebuilt',build_provenance:buildBasis},null,2));
134
+ const sealed=await sealOfflineHtml(out,profile);await assertPrototypeTarget({projectRoot,root,feature});await rename(out,root);return sealed;
135
+ }finally{await rm(temp,{recursive:true,force:true});}
136
+ }
137
+ if(process.argv[1]&&existsSync(process.argv[1])&&pathToFileURL(realpathSync(process.argv[1])).href===import.meta.url){const args={};for(let i=2;i<process.argv.length;i+=2){if(!process.argv[i].startsWith('--')||!process.argv[i+1])throw Error('参数必须是 --key value');args[process.argv[i].slice(2)]=process.argv[i+1];}const projectRoot=path.resolve(args['project-root']||'.');const root=args.root||path.join(projectRoot,'docs/.scratch',args.feature||'','design/prototypes');console.log(JSON.stringify(await buildShadcnVuePrototype({projectRoot,root,feature:args.feature,profile:args.profile,toolchain:args.toolchain,entry:args.entry,config:args.config,density:args.density}),null,2));}
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env node
2
+ import {readFile,writeFile} from 'node:fs/promises';
3
+ import {createHash} from 'node:crypto';
4
+ import {fileURLToPath,pathToFileURL} from 'node:url';
5
+ import {parseScenarios} from './scenario-contract.mjs';
6
+ const base=new URL('../assets/vue-business-patterns/',import.meta.url);
7
+ const names=['list-detail','multi-step','approval','conflict','analysis','combined-query','owner-validity'];
8
+ export async function composeWorkspaceScenarios() {
9
+ const inputs=Object.fromEntries(await Promise.all(names.map(async name=>{const bytes=await readFile(new URL(name+'.scenarios.json',base));return [name,{doc:parseScenarios(bytes),digest:'sha256:'+createHash('sha256').update(bytes).digest('hex')}]})));
10
+ const modes=[['primary','正常工作区',{}],['exceptions','失败与冲突恢复',{'multi-step':'failure',approval:'failure',conflict:'conflict','combined-query':'failure','owner-validity':'failure'}],['no-permission','只读与权限',{'list-detail':'no-permission','multi-step':'no-permission',approval:'no-permission',conflict:'no-permission','combined-query':'no-permission','owner-validity':'no-permission'}],['empty','空结果',{'list-detail':'empty',approval:'empty',analysis:'empty','combined-query':'empty'}]];
11
+ return {schema_version:1,scenarios:modes.map(([id,label,overrides])=>({id,label,state_ref:'.agents/skills/yss-prototype-stage/references/enterprise-workspace.md',initial_data:{pages:Object.fromEntries(names.map(name=>{
12
+ const selected=inputs[name].doc.scenarios.find(s=>s.id===(overrides[name]||'primary'));
13
+ if(!selected)throw Error(`缺少明确来源 ${name}/${overrides[name]}`);
14
+ return [name,{...selected,source_ref:`authoring-sources/${name}.scenarios.json`,source_digest:inputs[name].digest}];
15
+ }))}}))};
16
+ }
17
+ if(process.argv[1]&&pathToFileURL(process.argv[1]).href===import.meta.url) {
18
+ const target=fileURLToPath(new URL('workspace.scenarios.json',base));const bytes=JSON.stringify(await composeWorkspaceScenarios(),null,2)+'\n';
19
+ if(process.argv.includes('--check')){if(await readFile(target,'utf8')!==bytes)throw Error('工作区场景与来源漂移');console.log('工作区场景来源一致');}
20
+ else if(process.argv.includes('--write')){await writeFile(target,bytes);console.log('已组合工作区场景');}
21
+ else throw Error('需要 --check 或 --write');
22
+ }
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env node
2
+ import { existsSync, realpathSync } from 'node:fs';
3
+ import {pathToFileURL} from 'node:url';
4
+ import path from 'node:path';
5
+ import {exportVuePatterns} from './export-vue-patterns.mjs';
6
+ export const exportBusinessPatterns=exportVuePatterns;
7
+ if(process.argv[1]&&existsSync(process.argv[1])&&import.meta.url===pathToFileURL(realpathSync(process.argv[1])).href){const args={};for(let i=2;i<process.argv.length;i+=2)args[process.argv[i].slice(2)]=process.argv[i+1];console.log(JSON.stringify(await exportBusinessPatterns({projectRoot:path.resolve(args['project-root']||'.'),output:args.output,toolchain:args.toolchain})));}
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ import { existsSync, realpathSync } from 'node:fs';
3
+ import {mkdtemp,mkdir,cp,readFile,writeFile,readdir,rename,rm} from 'node:fs/promises';
4
+ import path from 'node:path';
5
+ import {pathToFileURL} from 'node:url';
6
+ import {writeScenarios} from './scenario-contract.mjs';
7
+ import {prepareComparison} from './prototype-comparison.mjs';
8
+ export async function exportLowFidelityExercise({projectRoot,output}){
9
+ output=path.resolve(output);try{if((await readdir(output)).length)throw Error('目标非空,拒绝覆盖');}catch(e){if(e.code!=='ENOENT')throw e;}
10
+ await mkdir(path.dirname(output),{recursive:true});const temp=await mkdtemp(path.join(path.dirname(output),'.low-fidelity-'));
11
+ try{await mkdir(path.join(temp,'.template-spec/design/tokens'),{recursive:true});for(const ref of ['DESIGN.md','.template-spec/design/tokens/variables.css'])await cp(path.join(projectRoot,ref),path.join(temp,ref));
12
+ const doc=JSON.parse(await readFile(new URL('../assets/native-workbench/scenarios.json',import.meta.url)));doc.scenarios=doc.scenarios.filter(s=>['primary','failure'].includes(s.id));for(const s of doc.scenarios)s.state_ref='comparison-record.md';
13
+ const bytes=JSON.stringify(doc,null,2)+'\n';await writeFile(path.join(temp,'shared.json'),bytes);await cp(new URL('../references/low-fidelity-exercise.md',import.meta.url),path.join(temp,'record.md'));
14
+ for(const mode of ['single','batch','queue']){const root=path.join(temp,mode);await writeScenarios(root,bytes);for(const file of ['index.html','styles.css','app.js'])await writeFile(path.join(root,file),(await readFile(new URL(`../assets/low-fidelity-exercise/${file}`,import.meta.url),'utf8')).replaceAll('__MODE__',mode));await cp(path.join(temp,'.template-spec/design/tokens/variables.css'),path.join(root,'tokens.css'));}
15
+ const input={schema_version:2,comparison_id:'low-fidelity-exercise',title:'低保真:资料审批组织方式',comparison_ref:'record.md',scenario_ref:'shared.json',cases:[{id:'normal',label:'正常处理',scenario:'primary'},{id:'retry',label:'失败恢复',scenario:'failure'}],variants:['single','batch','queue'].map((id,i)=>({id,label:['逐项处理','批量处理','引导队列'][i],root:id,entry:'index.html',cases:['normal','retry']}))};await writeFile(path.join(temp,'input.json'),JSON.stringify(input));const result=await prepareComparison({projectRoot:temp,feature:'exercise',input:'input.json'});await rename(result.root,output);return {root:output,entry:path.join(output,'index.html')};
16
+ }finally{await rm(temp,{recursive:true,force:true});}
17
+ }
18
+ if(process.argv[1]&&existsSync(process.argv[1])&&import.meta.url===pathToFileURL(realpathSync(process.argv[1])).href){const args={};for(let i=2;i<process.argv.length;i+=2)args[process.argv[i].slice(2)]=process.argv[i+1];console.log(JSON.stringify(await exportLowFidelityExercise({projectRoot:path.resolve(args['project-root']||'.'),output:args.output})));}
@@ -0,0 +1,21 @@
1
+ #!/usr/bin/env node
2
+ import { existsSync, realpathSync } from 'node:fs';
3
+ import {mkdtemp,mkdir,cp,writeFile,readdir,rename,rm} from 'node:fs/promises';
4
+ import path from 'node:path';
5
+ import {pathToFileURL} from 'node:url';
6
+ import {buildShadcnVuePrototype} from './build-shadcn-vue-prototype.mjs';
7
+ const catalog={workspace:'企业多页工作区','component-states':'组件状态展示'};
8
+ const patterns={'list-detail':'查询与详情','multi-step':'分步表单','approval':'审批与权限',conflict:'冲突与恢复',analysis:'高密度分析','combined-query':'组合查询','owner-validity':'负责人及有效期表单'};
9
+ export async function exportVuePatterns({projectRoot,output,toolchain}){
10
+ output=path.resolve(output);try{if((await readdir(output)).length)throw Error('目标非空,拒绝覆盖');}catch(e){if(e.code!=='ENOENT')throw e;}
11
+ await mkdir(path.dirname(output),{recursive:true});const temp=await mkdtemp(path.join(path.dirname(output),'.business-patterns-'));
12
+ try{
13
+ const fixture=path.join(temp,'fixture'),bundle=path.join(temp,'bundle');await mkdir(path.join(fixture,'.template-spec/design/tokens'),{recursive:true});await mkdir(bundle);
14
+ for(const ref of ['DESIGN.md','.template-spec/design/tokens/variables.css'])await cp(path.join(projectRoot,ref),path.join(fixture,ref));
15
+ for(const name of Object.keys({...patterns,...catalog})){const root=path.join(fixture,`docs/.scratch/${name}/design/prototypes`);await buildShadcnVuePrototype({projectRoot:fixture,root,feature:name,toolchain,config:new URL(`../assets/vue-business-patterns/${name}-standard.config.json`,import.meta.url).pathname});await cp(root,path.join(bundle,name),{recursive:true});}
16
+ await cp(path.join(projectRoot,'.template-spec/design/tokens/variables.css'),path.join(bundle,'tokens.css'));
17
+ await writeFile(path.join(bundle,'index.html'),`<!doctype html><html lang="zh-CN"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Vue 企业页面模式</title><link rel="stylesheet" href="tokens.css"><style>body{font-family:var(--brand-font-family);color:var(--brand-color-text);background:var(--brand-color-bg-layout);padding:var(--brand-size-lg)}a{color:var(--yss-color-primary-control)}li{margin-block:var(--brand-size)}</style><h1>Vue 企业页面模式</h1><p>维护教学示例;场景及保存结果为本地模拟,不代表已批准产品。</p><ul>${Object.entries({...patterns,...catalog}).map(([id,label])=>`<li><a href="${id}/index.html">${label}</a></li>`).join('')}</ul></html>`);
18
+ await rename(bundle,output);return {root:output,entry:path.join(output,'index.html'),patterns:Object.keys(patterns)};
19
+ }finally{await rm(temp,{recursive:true,force:true});}
20
+ }
21
+ if(process.argv[1]&&existsSync(process.argv[1])&&import.meta.url===pathToFileURL(realpathSync(process.argv[1])).href){const args={};for(let i=2;i<process.argv.length;i+=2)args[process.argv[i].slice(2)]=process.argv[i+1];console.log(JSON.stringify(await exportVuePatterns({projectRoot:path.resolve(args['project-root']||'.'),output:args.output,toolchain:args.toolchain})));}
@@ -2,6 +2,7 @@ import { createHash } from "node:crypto";
2
2
  import { existsSync } from "node:fs";
3
3
  import { mkdir, readFile, writeFile, readdir, lstat } from "node:fs/promises";
4
4
  import path from "node:path";
5
+ import {writeScenarios,scenarioScript} from "./scenario-contract.mjs";
5
6
 
6
7
  const manifestName = "yss-prototype-adapter.json";
7
8
  const sha = (bytes) => `sha256:${createHash("sha256").update(bytes).digest("hex")}`;
@@ -20,17 +21,17 @@ async function inventory(root, relative = "") {
20
21
  return Object.fromEntries(Object.entries(result).sort(([a], [b]) => a.localeCompare(b, "en")));
21
22
  }
22
23
 
23
- function resourceErrors(file, text, files) {
24
+ export function resourceErrors(file, text, files) {
24
25
  const errors = [];
25
26
  const refs = [];
26
- if (/\.html?$/i.test(file)) {
27
+ if (/\.(?:html?|vue)$/i.test(file)) {
27
28
  for (const tag of text.matchAll(/<(?:script|link|img|source|iframe|video|audio|object|embed)\b[^>]*>/gi)) {
28
- for (const attr of tag[0].matchAll(/\b(?:src|href|poster|data)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+))/gi)) refs.push(attr[1] ?? attr[2] ?? attr[3]);
29
+ for (const attr of tag[0].matchAll(/(?<![:\w-])\b(?:src|href|poster|data)\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s>]+))/gi)) refs.push(attr[1] ?? attr[2] ?? attr[3]);
29
30
  if (/\bsrcset\s*=/i.test(tag[0])) errors.push(`${file}: 离线包请使用明确的本地 src,srcset 需先转换并复验`);
30
31
  }
31
32
  if (/<base\b/i.test(text) || /<script\b[^>]*\btype\s*=\s*["']?module\b/i.test(text)) errors.push(`${file}: file:// 交付不使用 base 或 module script`);
32
33
  }
33
- if (/\.(?:css|html?)$/i.test(file)) {
34
+ if (/\.(?:css|html?|vue)$/i.test(file)) {
34
35
  for (const match of text.matchAll(/url\(\s*["']?([^"')]+)["']?\s*\)|@import\s+["']([^"']+)["']/gi)) refs.push((match[1] ?? match[2]).trim());
35
36
  }
36
37
  for (const ref of refs) {
@@ -41,27 +42,32 @@ function resourceErrors(file, text, files) {
41
42
  const target = path.posix.normalize(path.posix.join(path.posix.dirname(file), decoded));
42
43
  if (target.startsWith("../") || !Object.hasOwn(files, target)) errors.push(`${file}: 资源缺失或越出交付包 ${ref}`);
43
44
  }
44
- if (/\.(?:jsx?|html?)$/i.test(file) && /\b(?:fetch\s*\(|XMLHttpRequest|WebSocket|EventSource|import\s*\(|serviceWorker\s*\.)/.test(text)) errors.push(`${file}: 离线默认路线不依赖网络、动态模块或 Service Worker;使用随包场景数据`);
45
+ if (/\.(?:(?:jsx?|tsx?|vue)|html?)$/i.test(file) && /\b(?:fetch\s*\(|XMLHttpRequest|WebSocket|EventSource|import\s*\(|serviceWorker\s*\.)/.test(text)) errors.push(`${file}: 离线默认路线不依赖网络、动态模块或 Service Worker;使用随包场景数据`);
45
46
  return errors;
46
47
  }
47
48
 
48
- async function inspect(root, profile, checkDigests) {
49
+ async function inspect(root, profile, checkDigests, allowLegacy = false) {
49
50
  const errors = [];
50
51
  let manifest, files;
51
52
  try {
52
53
  files = await inventory(root);
53
54
  manifest = JSON.parse(await readFile(path.join(root, manifestName), "utf8"));
54
55
  } catch (error) { return { errors: [error.message] }; }
55
- if (manifest.schema_version !== 4 || !["html-css-js", "react-antd-prebuilt"].includes(manifest.component_basis) || manifest.runtime_build_required !== false) errors.push("原型必须使用 offline-html adapter schema v4 / html-css-js / runtime_build_required=false");
56
+ if (manifest.schema_version !== 4 || !["html-css-js", "vue-shadcn-prebuilt", ...(allowLegacy ? ["react-antd-prebuilt", "react-shadcn-prebuilt"] : [])].includes(manifest.component_basis) || manifest.runtime_build_required !== false) errors.push("原型必须使用 offline-html adapter schema v4 / html-css-js 或 vue-shadcn-prebuilt / runtime_build_required=false;React 作者路线已退役,仅允许只读 legacy 校验");
56
57
  if (manifest.prototype_profile !== profile || manifest.profile_kind !== (profile === "H1" ? "visual-review" : "flow-review")) errors.push("adapter 档位与验证档位不一致");
57
58
  if (manifest.entry !== "index.html" || !files[manifest.entry]) errors.push("缺少本地 index.html 入口");
59
+ if (manifest.visual_preset) {
60
+ if (manifest.visual_preset.name !== "yss-enterprise" || !["compact", "comfortable"].includes(manifest.visual_preset.density)) errors.push("未知原型视觉预设或密度");
61
+ const entry = await readFile(path.join(root, "index.html"), "utf8").catch(() => "");
62
+ if (!entry.includes(`data-density="${manifest.visual_preset.density}"`)) errors.push("视觉预设与页面密度不一致");
63
+ }
58
64
  for (const file of ["styles.css", "tokens.css", "app.js", "scenarios.js"]) if (!files[file]) errors.push(`缺少 ${file}`);
59
65
  for (const file of Object.keys(files)) {
60
66
  if (/(^|\/)(node_modules|package\.json|(?:pnpm|package)-lock\.(?:yaml|json)|yarn\.lock)(\/|$)/.test(file)) errors.push(`交付包不得依赖 ${file}`);
61
- if (/\.(css|jsx?|html?)$/i.test(file)) {
67
+ if (/\.(css|(?:jsx?|tsx?|vue)|html?)$/i.test(file)) {
62
68
  const content = await readFile(path.join(root, file), "utf8");
63
69
  // Compiled dependencies contain network API names; inspect authored code and require real offline browser evidence.
64
- if (!(manifest.component_basis === "react-antd-prebuilt" && file === "app.js")) errors.push(...resourceErrors(file, content, files));
70
+ if (!(["react-antd-prebuilt", "react-shadcn-prebuilt", "vue-shadcn-prebuilt"].includes(manifest.component_basis) && file === "app.js")) errors.push(...resourceErrors(file, content, files));
65
71
  }
66
72
  }
67
73
  if (manifest.component_basis === "react-antd-prebuilt") {
@@ -73,6 +79,25 @@ async function inspect(root, profile, checkDigests) {
73
79
  if (!files["THIRD-PARTY-NOTICES.txt"] || !files["build-provenance.json"]) errors.push("缺少构建来源或第三方许可");
74
80
  else { try { if (JSON.stringify(JSON.parse(await readFile(path.join(root, "build-provenance.json"), "utf8"))) !== JSON.stringify(build)) errors.push("构建来源与 manifest 不匹配"); } catch { errors.push("构建来源不是有效 JSON"); } }
75
81
  }
82
+ if (["react-shadcn-prebuilt", "vue-shadcn-prebuilt"].includes(manifest.component_basis)) {
83
+ const vue = manifest.component_basis === "vue-shadcn-prebuilt", runtime = vue ? "vue" : "react", helper = vue ? "utils.ts" : "cn.ts";
84
+ const build = manifest.build_provenance;
85
+ if (build?.format !== "iife" || build?.browser_runtime !== runtime || build?.toolchain_required_by_recipient !== false) errors.push("shadcn 必须离线预构建,接收者无需工具链");
86
+ for (const [field, ref] of Object.entries({source_digest:vue?"authoring-source.ts":"authoring-source.tsx",theme_digest:"token-theme.css",registry_digest:"registry-manifest.json"})) if (!files[ref] || build?.[field] !== files[ref]) errors.push(`shadcn 源文件与构建来源摘要不一致: ${field}`);
87
+ if (!files[`component-sources/${helper}`] || build?.support_source_digests?.[helper] !== files[`component-sources/${helper}`]) errors.push("shadcn 辅助源码摘要不匹配");
88
+ if (!/^sha256:[a-f0-9]{64}$/.test(build?.lock_digest ?? "")) errors.push("缺少 shadcn lock_digest");
89
+ for (const name of (vue ? ["vue", "@vue/compiler-sfc", "reka-ui", "esbuild", "tailwindcss", "@tailwindcss/cli"] : ["react", "react-dom", "esbuild", "radix-ui", "tailwindcss", "@tailwindcss/cli"])) if (!/^\d+\.\d+\.\d+$/.test(build?.packages?.[name] ?? "")) errors.push(`shadcn 作者工具需要精确版本 ${name}`);
90
+ try {
91
+ const registry = JSON.parse(await readFile(path.join(root, "registry-manifest.json"), "utf8"));
92
+ if (registry.repository !== (vue ? "https://github.com/unovue/shadcn-vue" : "https://github.com/shadcn-ui/ui") || !/^[a-f0-9]{40}$/.test(registry.revision) || registry.revision !== build.registry_revision || !registry.components?.length) errors.push("shadcn 固定源码来源缺失或不一致");
93
+ for (const item of registry.components ?? []) if (!(vue ? /^ui\/[a-z-]+\/[A-Za-z]+\.(?:vue|ts)$/ : /^ui\/[a-z-]+\.tsx$/).test(item.path) || item.digest !== files[`component-sources/${vue ? item.path : path.posix.basename(item.path)}`]) errors.push(`shadcn 组件源码摘要不匹配: ${item.path}`);
94
+ if (vue && (build.packages.vue !== build.packages['@vue/compiler-sfc'] || !Array.isArray(build.used_component_files) || !build.used_component_files.length || build.used_component_files.some(p=>!registry.components.some(c=>c.path===p)))) errors.push("Vue 编译器版本或实际组件依赖闭包不匹配");
95
+ if (JSON.stringify(JSON.parse(await readFile(path.join(root, "build-provenance.json"), "utf8"))) !== JSON.stringify(build)) errors.push("构建来源与 manifest 不匹配");
96
+ } catch { errors.push("shadcn 构建来源不是有效 JSON"); }
97
+ if (!files["THIRD-PARTY-NOTICES.txt"]) errors.push("缺少第三方许可");
98
+ }
99
+ if (files["scenarios.json"]) {try {if(await readFile(path.join(root,"scenarios.js"),"utf8")!==scenarioScript(await readFile(path.join(root,"scenarios.json"))))errors.push("场景 JSON 与派生脚本不一致");if(!files["scenario-runtime.js"])errors.push("缺少场景运行时");}catch(e){errors.push(e.message);}}
100
+ if (manifest.build_provenance?.authored_files) for(const [ref,hash] of Object.entries(manifest.build_provenance.authored_files))if(files[ref]!==hash)errors.push(`作者来源摘要漂移: ${ref}`);
76
101
  if (files["styles.css"]) {
77
102
  const styles = await readFile(path.join(root, "styles.css"), "utf8");
78
103
  for (const token of ["--brand-font-family", "--brand-color-text", "--brand-color-bg-layout", "--brand-color-bg-container", "--yss-color-primary-control", "--yss-control-height"]) if (!styles.includes(token)) errors.push(`styles.css 未消费项目 Token ${token}`);
@@ -83,8 +108,9 @@ async function inspect(root, profile, checkDigests) {
83
108
  return { errors, manifest, files };
84
109
  }
85
110
 
86
- export async function validateOfflineHtml(root, profile) {
87
- const { errors } = await inspect(root, profile, true);
111
+ export async function validateOfflineHtml(root, profile, { allowLegacy = false, projectRoot } = {}) {
112
+ const { errors, manifest } = await inspect(root, profile, true, allowLegacy);
113
+ if(projectRoot && manifest) for(const source of [manifest.design_source,manifest.token_source]) {try {if(sha(await readFile(path.join(projectRoot,source.path)))!==source.digest)errors.push(`当前项目来源已漂移: ${source.path}`);}catch(e){errors.push(e.message);}}
88
114
  return { errors };
89
115
  }
90
116
 
@@ -96,26 +122,37 @@ export async function sealOfflineHtml(root, profile) {
96
122
  return manifest;
97
123
  }
98
124
 
99
- export async function prepareOfflineHtml({ projectRoot, root, feature, profile, pattern = "editor" }) {
100
- if (!/^[a-z0-9][a-z0-9-]*$/.test(feature ?? "")) throw new TypeError("feature 必须是小写 kebab-case");
101
- if (!["editor", "workbench"].includes(pattern)) throw new Error("pattern 必须为 editor/workbench");
102
- const expected = path.resolve(projectRoot, "docs/.scratch", feature, "design/prototypes");
103
- if (path.resolve(root) !== expected) throw new TypeError(`原型目录必须精确匹配 ${expected}`);
104
- for (let current = path.resolve(root); current.startsWith(`${path.resolve(projectRoot)}${path.sep}`); current = path.dirname(current)) {
105
- if (existsSync(current) && (await lstat(current)).isSymbolicLink()) throw new Error(`原型路径不允许符号链接: ${current}`);
106
- }
107
- // Refuse an occupied destination instead of replacing an existing or frozen prototype.
108
- if (existsSync(root) && ((await lstat(root)).isSymbolicLink() || (await readdir(root)).length)) throw new Error("原型目录已存在内容;请在保留旧版本后选择新 feature 工作目录,不覆盖已有原型");
125
+ export async function prepareOfflineHtml({ projectRoot, root, feature, profile, pattern = "editor", scenarios, title, density = "compact" }) {
126
+ await assertPrototypeTarget({projectRoot,root,feature,pattern});
127
+ if (!["compact", "comfortable"].includes(density)) throw new Error("density 必须为 compact/comfortable");
109
128
  const design = await readFile(path.join(projectRoot, "DESIGN.md"));
110
129
  const tokens = await readFile(path.join(projectRoot, ".template-spec/design/tokens/variables.css"));
111
130
  await mkdir(root, { recursive: true });
112
- for (const file of ["index.html", "styles.css", "app.js", "scenarios.js"]) {
131
+ for (const file of ["index.html", "styles.css", "app.js"]) {
113
132
  const folder = pattern === "workbench" && file !== "scenarios.js" ? new URL("../assets/native-workbench/", import.meta.url) : assetRoot;
114
133
  const source = await readFile(new URL(file, folder), "utf8");
115
- await writeFile(path.join(root, file), source.replaceAll("__FEATURE__", feature).replaceAll("__PROFILE__", profile));
134
+ let output=source.replaceAll("__FEATURE__", feature).replaceAll("__PROFILE__", profile);
135
+ if (file === "index.html") output=output.replace('<html ', `<html data-density="${density}" `);
136
+ if (file === "styles.css") output+='\n'+await readFile(new URL('../assets/prototype-theme.css',import.meta.url),'utf8');
137
+ if(file==="index.html") {output=output.replace(/<script[^>]*src="\.\/scenarios.js"[^>]*><\/script>/g, "").replace("</head>", "<script src=\"./scenarios.js\"></script><script src=\"./scenario-runtime.js\"></script></head>");if(title)output=output.replace(/<title>.*?<\/title>/,`<title>${title.replace(/[<>&"]/g,c=>({"<":"&lt;",">":"&gt;","&":"&amp;",'"':"&quot;"})[c])}</title>`);}
138
+ await writeFile(path.join(root, file), output);
116
139
  }
140
+ await writeScenarios(root,scenarios?await readFile(scenarios):await readFile(new URL(`../assets/${pattern==="workbench"?"native-workbench":"offline-html"}/scenarios.json`,import.meta.url)));
117
141
  await writeFile(path.join(root, "tokens.css"), tokens);
118
142
  const manifest = { schema_version: 4, feature, pattern, prototype_profile: profile, profile_kind: profile === "H1" ? "visual-review" : "flow-review", component_basis: "html-css-js", runtime_build_required: false, entry: "index.html", design_source: { path: "DESIGN.md", digest: sha(design) }, token_source: { path: ".template-spec/design/tokens/variables.css", digest: sha(tokens) }, files: {} };
143
+ manifest.visual_preset = { name: "yss-enterprise", density };
119
144
  await writeFile(path.join(root, manifestName), JSON.stringify(manifest));
120
145
  return sealOfflineHtml(root, profile);
121
146
  }
147
+
148
+ export async function assertPrototypeTarget({projectRoot,root,feature,pattern="workbench"}) {
149
+ if (!/^[a-z0-9][a-z0-9-]*$/.test(feature ?? "")) throw new TypeError("feature 必须是小写 kebab-case");
150
+ if (!["editor", "workbench"].includes(pattern)) throw new Error("pattern 必须为 editor/workbench");
151
+ const expected = path.resolve(projectRoot, "docs/.scratch", feature, "design/prototypes");
152
+ if (path.resolve(root) !== expected) throw new TypeError(`原型目录必须精确匹配 ${expected}`);
153
+ for (let current = path.resolve(root); current.startsWith(`${path.resolve(projectRoot)}${path.sep}`); current = path.dirname(current)) {
154
+ if (existsSync(current) && (await lstat(current)).isSymbolicLink()) throw new Error(`原型路径不允许符号链接: ${current}`);
155
+ }
156
+ // Refuse an occupied destination instead of replacing an existing or frozen prototype.
157
+ if (existsSync(root) && ((await lstat(root)).isSymbolicLink() || (await readdir(root)).length)) throw new Error("原型目录已存在内容;请在保留旧版本后选择新 feature 工作目录,不覆盖已有原型");
158
+ }
@@ -0,0 +1,208 @@
1
+ #!/usr/bin/env node
2
+ import { existsSync, realpathSync } from 'node:fs';
3
+ // Review-only snapshots. This tool never writes prototype approval or product evidence.
4
+ import { createHash } from 'node:crypto';
5
+ import { lstat, readdir, readFile, writeFile, mkdir, mkdtemp, rename, rm, realpath } from 'node:fs/promises';
6
+ import path from 'node:path';
7
+ import { pathToFileURL } from 'node:url';
8
+ import { parseArgs } from 'node:util';
9
+ import { resourceErrors } from './offline-html.mjs';
10
+ import {parseScenarios,scenarioScript} from './scenario-contract.mjs';
11
+
12
+ const manifestName = 'comparison-manifest.json';
13
+ const assets = new URL('../assets/comparison/', import.meta.url);
14
+ const hash = bytes => `sha256:${createHash('sha256').update(bytes).digest('hex')}`;
15
+ const id = value => typeof value === 'string' && /^[a-z0-9][a-z0-9-]*$/.test(value);
16
+ const requireThat = (test, message) => { if (!test) throw new Error(message); };
17
+ const json = value => JSON.stringify(value, null, 2) + '\n';
18
+
19
+ function relative(ref) {
20
+ requireThat(typeof ref === 'string' && ref.length && !/[\\?#%\x00-\x1f]/.test(ref) && !/^(?:\/|[a-z][\w+.-]*:)/i.test(ref) && ref.split('/').every(x => x && x !== '.' && x !== '..'), `需要包内相对路径: ${ref}`);
21
+ return ref;
22
+ }
23
+ async function safe(root, ref) {
24
+ relative(ref);
25
+ let current = root;
26
+ for (const part of ref.split('/')) {
27
+ current = path.join(current, part);
28
+ try { requireThat(!(await lstat(current)).isSymbolicLink(), `不允许符号链接: ${ref}`); }
29
+ catch (error) { if (error.code !== 'ENOENT') throw error; }
30
+ }
31
+ return current;
32
+ }
33
+ async function inventory(root, prefix = '') {
34
+ requireThat(!(await lstat(root)).isSymbolicLink(), '不允许符号链接目录');
35
+ const files = {};
36
+ for (const entry of await readdir(root, { withFileTypes: true })) {
37
+ const ref = prefix + entry.name;
38
+ relative(ref);
39
+ requireThat(!entry.isSymbolicLink(), `不允许符号链接: ${ref}`);
40
+ if (entry.isDirectory()) Object.assign(files, await inventory(path.join(root, entry.name), ref + '/'));
41
+ else {
42
+ requireThat(entry.isFile(), `不是普通文件: ${ref}`);
43
+ if (ref !== manifestName) files[ref] = hash(await readFile(path.join(root, entry.name)));
44
+ }
45
+ }
46
+ return Object.fromEntries(Object.entries(files).sort(([a], [b]) => a.localeCompare(b, 'en')));
47
+ }
48
+ function keys(object, allowed, name) {
49
+ requireThat(object && typeof object === 'object' && !Array.isArray(object), `${name} 必须是对象`);
50
+ requireThat(Object.keys(object).every(k => allowed.includes(k)), `${name} 存在未知字段;比较包不承载批准或业务状态定义`);
51
+ }
52
+ function definition(input, legacy = false) {
53
+ keys(input, ['schema_version', 'comparison_id', 'title', 'comparison_ref', 'scenario_ref', 'variants', 'cases'], 'input');
54
+ requireThat(input.schema_version === (legacy ? 1 : 2) && id(input.comparison_id) && typeof input.title === 'string' && input.title.trim(), '需要 schema_version=2、安全 comparison_id 和 title');
55
+ relative(input.comparison_ref); relative(input.scenario_ref);
56
+ requireThat(Array.isArray(input.variants) && input.variants.length >= 2 && input.variants.length <= 3, '需要 2–3 个候选');
57
+ requireThat(Array.isArray(input.cases) && input.cases.length, '需要共同场景');
58
+ for (const item of input.cases) {
59
+ keys(item, ['id', 'label', 'scenario'], 'case');
60
+ requireThat(id(item.id) && id(item.scenario) && typeof item.label === 'string' && item.label.trim(), '场景需要安全 id/scenario 和 label');
61
+ }
62
+ requireThat(new Set(input.cases.map(c => c.id)).size === input.cases.length, 'case id 重复');
63
+ for (const item of input.variants) {
64
+ keys(item, ['id', 'label', 'root', 'entry', 'cases'], 'variant');
65
+ requireThat(id(item.id) && typeof item.label === 'string' && item.label.trim(), '候选需要安全 id 和 label');
66
+ relative(item.root); relative(item.entry);
67
+ requireThat(/\.html?$/.test(item.entry), '候选入口必须是 HTML');
68
+ requireThat(Array.isArray(item.cases) && item.cases.length === input.cases.length && new Set(item.cases).size === item.cases.length && input.cases.every(c => item.cases.includes(c.id)), '候选缺少共同场景或场景重复');
69
+ }
70
+ requireThat(new Set(input.variants.map(v => v.id)).size === input.variants.length, 'variant id 重复');
71
+ }
72
+ function view(manifest) {
73
+ return { title: manifest.title, variants: manifest.variants.map(({ id, label, entry }) => ({ id, label, entry })), cases: manifest.schema_version===1?manifest.cases:manifest.cases.map(c=>({...c,dataDigest:manifest.scenario_digests[c.scenario]})) };
74
+ }
75
+ function browserData(manifest) {
76
+ return `window.prototypeComparison = ${JSON.stringify(view(manifest)).replaceAll('<', '\\u003c').replaceAll('\u2028', '\\u2028').replaceAll('\u2029', '\\u2029')};\n`;
77
+ }
78
+
79
+ export async function prepareComparison({ projectRoot, feature, input: inputPath }) {
80
+ requireThat(id(feature), 'feature 必须为 kebab-case');
81
+ const project = await realpath(projectRoot);
82
+ const input = JSON.parse(await readFile(await safe(project, inputPath), 'utf8'));
83
+ definition(input);
84
+ const output = await safe(project, `docs/.scratch/${feature}/design/comparisons/${input.comparison_id}`);
85
+ try { requireThat((await readdir(output)).length === 0, '比较目录非空,拒绝覆盖'); }
86
+ catch (error) { if (error.code !== 'ENOENT') throw error; }
87
+ const sources = [input.comparison_ref, input.scenario_ref, 'DESIGN.md', '.template-spec/design/tokens/variables.css'];
88
+ const bytes = await Promise.all(sources.map(async ref => readFile(await safe(project, ref))));
89
+ const scenes=parseScenarios(bytes[1]);
90
+ requireThat(input.cases.every(c=>scenes.scenarios.some(s=>s.id===c.scenario)), "共同场景 ID 不存在");
91
+ const scenarioDigests=Object.fromEntries(scenes.scenarios.map(s=>[s.id,hash(JSON.stringify(s.initial_data))]));
92
+ // Check all inputs before creating the review package. Candidate roots must not contain the output.
93
+ const candidates = [];
94
+ for (const variant of input.variants) {
95
+ const source = await safe(project, variant.root);
96
+ requireThat(output !== source && !output.startsWith(source + path.sep), '候选目录不能包含比较输出');
97
+ const files = await inventory(source);
98
+ requireThat(files[variant.entry], `候选入口缺失: ${variant.id}`);
99
+ requireThat(files['scenarios.json'] === hash(bytes[1]) && files['scenarios.js'] === hash(scenarioScript(bytes[1])) && files['scenario-runtime.js'], `候选 ${variant.id} 的 scenarios.js 与共同来源不一致`);
100
+ requireThat(files['tokens.css'] === hash(bytes[3]), `候选 ${variant.id} 的 tokens.css 与项目快照不一致`);
101
+ for (const ref of Object.keys(files)) {
102
+ if (/\.(?:css|js|html?)$/.test(ref)) requireThat(resourceErrors(ref, await readFile(path.join(source, ref), 'utf8'), files).length === 0, `候选 ${variant.id} 含非离线或缺失资源: ${ref}`);
103
+ }
104
+ candidates.push({ variant, source, files });
105
+ }
106
+ await mkdir(path.dirname(output), { recursive: true });
107
+ const staging = await mkdtemp(path.join(path.dirname(output), '.comparison-'));
108
+ try {
109
+ const names = ['comparison-record.md', 'scenarios.json', 'DESIGN.md', 'tokens.css'];
110
+ const bindings = [];
111
+ await mkdir(path.join(staging, 'sources'));
112
+ for (let i = 0; i < sources.length; i++) {
113
+ const snapshot = `sources/${names[i]}`;
114
+ await writeFile(path.join(staging, snapshot), bytes[i]);
115
+ bindings.push({ source_ref: sources[i], snapshot, digest: hash(bytes[i]) });
116
+ }
117
+ for (const file of ['index.html', 'comparison.js', 'comparison.css']) await writeFile(path.join(staging, file), await readFile(new URL(file, assets)));
118
+ const variants = [];
119
+ for (const { variant, source, files } of candidates) {
120
+ const base = `variants/${variant.id}`;
121
+ for (const ref of Object.keys(files)) {
122
+ const target = path.join(staging, base, ref);
123
+ await mkdir(path.dirname(target), { recursive: true });
124
+ await writeFile(target, await readFile(path.join(source, ref)));
125
+ }
126
+ const entry = `${base}/${variant.entry}`;
127
+ let html = await readFile(path.join(staging, entry), 'utf8');
128
+ requireThat(/<\/body\s*>/i.test(html), `候选 ${variant.id} 缺少 body 结束标签`);
129
+ await writeFile(path.join(staging, entry), html);
130
+ variants.push({ id: variant.id, label: variant.label, entry, source_root: variant.root, cases: variant.cases });
131
+ }
132
+ const manifest = { schema_version: 2, scenario_digests:scenarioDigests, purpose: 'review-only', comparison_id: input.comparison_id, title: input.title, variants, cases: input.cases, bindings, files: {} };
133
+ await writeFile(path.join(staging, manifestName), json(manifest));
134
+ await writeFile(path.join(staging, 'comparison-data.js'), browserData(manifest));
135
+ await sealComparison(staging);
136
+ // rename replaces only an empty directory; a concurrent nonempty destination fails.
137
+ await rename(staging, output);
138
+ return { root: output, entry: path.join(output, 'index.html') };
139
+ } catch (error) { await rm(staging, { recursive: true, force: true }); throw error; }
140
+ }
141
+
142
+ async function inspect(root, checkDigests, projectRoot, allowLegacy = false) {
143
+ const files = await inventory(root);
144
+ const manifest = JSON.parse(await readFile(path.join(root, manifestName), 'utf8'));
145
+ keys(manifest, ['schema_version', 'purpose', 'comparison_id', 'title', 'variants', 'cases', 'bindings', 'files', 'scenario_digests'], 'manifest');
146
+ const legacy=manifest.schema_version===1;
147
+ requireThat((manifest.schema_version===2 || (legacy&&allowLegacy)) && manifest.purpose==='review-only', '当前比较包仅支持 review-only v2;v1 需要 --allow-legacy 只读检查');
148
+ requireThat(Array.isArray(manifest.bindings) && manifest.bindings.length === 4, '来源绑定缺失');
149
+ const [record, scenarios, design, tokens] = manifest.bindings;
150
+ const snapshots = ['sources/comparison-record.md', legacy?'sources/scenarios.js':'sources/scenarios.json', 'sources/DESIGN.md', 'sources/tokens.css'];
151
+ for (const [i, binding] of manifest.bindings.entries()) {
152
+ keys(binding, ['source_ref', 'snapshot', 'digest'], 'binding'); relative(binding.source_ref);
153
+ requireThat(binding.snapshot === snapshots[i] && files[binding.snapshot] === binding.digest, '来源快照摘要不一致');
154
+ if (projectRoot) requireThat(hash(await readFile(await safe(await realpath(projectRoot), binding.source_ref))) === binding.digest, `来源已漂移: ${binding.source_ref}`);
155
+ }
156
+ requireThat(design.source_ref === 'DESIGN.md' && tokens.source_ref === '.template-spec/design/tokens/variables.css', '设计来源不符合项目合同');
157
+ requireThat(Array.isArray(manifest.variants), '候选缺失');
158
+ const input = { schema_version: manifest.schema_version, comparison_id: manifest.comparison_id, title: manifest.title, comparison_ref: record.source_ref, scenario_ref: scenarios.source_ref, cases: manifest.cases, variants: manifest.variants.map(v => {
159
+ keys(v, ['id', 'label', 'entry', 'source_root', 'cases'], 'manifest variant');
160
+ requireThat(id(v.id) && v.entry.startsWith(`variants/${v.id}/`), '候选入口越界');
161
+ return { id: v.id, label: v.label, root: v.source_root, entry: v.entry, cases: v.cases };
162
+ }) };
163
+ definition(input,legacy);
164
+ if(!legacy){const bytes=await readFile(path.join(root,scenarios.snapshot)),doc=parseScenarios(bytes);requireThat(manifest.cases.every(c=>doc.scenarios.some(s=>s.id===c.scenario)), '共同场景 ID 不存在');requireThat(JSON.stringify(manifest.scenario_digests)===JSON.stringify(Object.fromEntries(doc.scenarios.map(s=>[s.id,hash(JSON.stringify(s.initial_data))]))), '场景初始化摘要不一致');}
165
+ for (const variant of manifest.variants) {
166
+ requireThat(files[variant.entry], `候选入口缺失: ${variant.id}`);
167
+ requireThat(files[`variants/${variant.id}/${legacy?'scenarios.js':'scenarios.json'}`] === scenarios.digest, '候选场景数据不一致');
168
+ if(!legacy)requireThat(files[`variants/${variant.id}/scenarios.js`]===hash(scenarioScript(await readFile(path.join(root,scenarios.snapshot)))) && files[`variants/${variant.id}/scenario-runtime.js`], '候选场景脚本或运行时不一致');
169
+ requireThat(files[`variants/${variant.id}/tokens.css`] === tokens.digest, '候选 Token 不一致');
170
+ }
171
+ for (const ref of Object.keys(files)) {
172
+ requireThat(!/(^|\/)(?:node_modules|package\.json|(?:pnpm|package)-lock\.(?:yaml|json)|yarn\.lock)(\/|$)/.test(ref), `离线包不得携带 ${ref}`);
173
+ if (/\.(?:css|js|html?)$/.test(ref)) {
174
+ const errors = resourceErrors(ref, await readFile(path.join(root, ref), 'utf8'), files);
175
+ requireThat(!errors.length, errors.join('\n'));
176
+ }
177
+ }
178
+ for (const ref of ['index.html', 'comparison.js', 'comparison.css']) requireThat(files[ref], `评审资源缺失: ${ref}`);
179
+ if (checkDigests) {
180
+ requireThat(await readFile(path.join(root, 'comparison-data.js'), 'utf8') === browserData(manifest), '运行时比较配置与 manifest 不一致');
181
+ requireThat(JSON.stringify(manifest.files) === JSON.stringify(files), '比较资源摘要或清单已变化,请审查后重新 seal');
182
+ }
183
+ return manifest;
184
+ }
185
+ export async function sealComparison(root) {
186
+ const manifest = await inspect(root, false);
187
+ await writeFile(path.join(root, 'comparison-data.js'), browserData(manifest));
188
+ manifest.files = await inventory(root);
189
+ await writeFile(path.join(root, manifestName), json(manifest));
190
+ return manifest;
191
+ }
192
+ export async function validateComparison(root, projectRoot, {allowLegacy=false} = {}) {
193
+ try { const manifest=await inspect(root, true, projectRoot,allowLegacy); return { errors: [], ...(manifest.schema_version===1?{warnings:["历史 v1 只读校验:未验证应用初始化"]}:{}) }; }
194
+ catch (error) { return { errors: [error.message] }; }
195
+ }
196
+ if (process.argv[1] && existsSync(process.argv[1]) && import.meta.url === pathToFileURL(realpathSync(process.argv[1])).href) {
197
+ try {
198
+ const { values, positionals } = parseArgs({ allowPositionals: true, options: {...Object.fromEntries(['project-root', 'feature', 'input', 'root'].map(k => [k, { type: 'string' }])), 'allow-legacy':{type:'boolean'}} });
199
+ const [command] = positionals;
200
+ requireThat(positionals.length === 1, '用法: prepare --project-root ... --feature ... --input ... | seal/validate --root ...');
201
+ let result;
202
+ if (command === 'prepare') result = await prepareComparison({ projectRoot: values['project-root'], feature: values.feature, input: values.input });
203
+ else if (command === 'seal') { await sealComparison(values.root); result = { result: 'sealed', purpose: 'review-only' }; }
204
+ else if (command === 'validate') { result = await validateComparison(values.root, values['project-root'], {allowLegacy:values['allow-legacy']}); if (result.errors.length) process.exitCode = 1; }
205
+ else throw new Error('未知比较命令');
206
+ process.stdout.write(json(result));
207
+ } catch (error) { process.stderr.write(error.message + '\n'); process.exitCode = 1; }
208
+ }