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,235 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import os from 'node:os';
4
+ import { spawnSync } from 'node:child_process';
5
+ import { randomUUID } from 'node:crypto';
6
+ import { safeFile } from './governance-io.mjs';
7
+ import { parseAsset, readAsset, serializeAsset, byteDigest, semanticDigest, validateAssetStructure, TOOL_ROOT } from './structured-assets.mjs';
8
+
9
+ const TX = '.yss/asset-transactions';
10
+ const ensure = (ok, message) => { if (!ok) throw new Error(message); };
11
+ const exists = file => fs.existsSync(file);
12
+ const descriptor = file => exists(file) ? { digest: byteDigest(fs.readFileSync(file)), mode: fs.statSync(file).mode & 0o777 } : null;
13
+ const same = (a, b) => JSON.stringify(a) === JSON.stringify(b);
14
+
15
+ /** Adapter for an existing validated writer which also owns Markdown/tracker updates. */
16
+ export function runAssetTransaction(root, changes, action) {
17
+ root=fs.realpathSync(root);assertAssetTransactionIdle(root);
18
+ const directory=safeFile(root,TX);fs.mkdirSync(directory,{recursive:true});
19
+ const lock=safeFile(root,`${TX}/lock`),fd=fs.openSync(lock,'wx');fs.writeFileSync(fd,String(process.pid));fs.fsyncSync(fd);
20
+ const plan_id=byteDigest(serializeAsset({changes,nonce:randomUUID()})).slice(7),journal_ref=`${TX}/${plan_id}.json`,active=safeFile(root,`${TX}/active.json`);
21
+ const tx={schema_version:1,root,plan_id,status:'applying',changes,backups:{}};
22
+ try {
23
+ ensure(!exists(safeFile(root, `${TX}/recovery.lock`)), 'ASSET_RECOVERY_LOCKED');
24
+ for(const change of changes){ensure(same(descriptor(safeFile(root,change.ref)),change.before),`ASSET_INPUT_DRIFT: ${change.ref}`);tx.backups[change.ref]=change.before?fs.readFileSync(safeFile(root,change.ref)).toString('base64'):null;}
25
+ atomic(safeFile(root,journal_ref),serializeAsset(tx));atomic(active,serializeAsset({journal_ref}));
26
+ const result=action();
27
+ for(const change of changes)ensure(descriptor(safeFile(root,change.ref))?.digest===change.after_digest,`ASSET_POSTWRITE_DRIFT: ${change.ref}`);
28
+ tx.status='applied';atomic(safeFile(root,journal_ref),serializeAsset(tx));fs.unlinkSync(active);return result;
29
+ } catch(error) {
30
+ if(exists(active)){const recovered=recoverAssetWrite(root,{lockHeld:true});throw new Error(`${error.message}; ${recovered.status}`);}
31
+ throw error;
32
+ } finally {fs.closeSync(fd);if(exists(lock))fs.unlinkSync(lock);}
33
+ }
34
+
35
+ export function assertAssetTransactionIdle(root) {
36
+ ensure(!exists(safeFile(root, `${TX}/active.json`)), 'ASSET_TRANSACTION_PENDING: recover the unfinished transaction before lifecycle transition');
37
+ }
38
+
39
+ export function assertCurrentAssetReference(root, ref) {
40
+ const directory = safeFile(root, TX);
41
+ if (!exists(directory)) return;
42
+ for (const name of fs.readdirSync(directory)) {
43
+ if (!/^[a-f0-9]{64}\.json$/.test(name)) continue;
44
+ const receipt = parseAsset(fs.readFileSync(path.join(directory, name)), name);
45
+ if (receipt.status === 'applied' && receipt.migration?.source_to_target?.[ref]) throw new Error(`ASSET_HISTORICAL_ONLY: ${ref}; current=${receipt.migration.source_to_target[ref]}`);
46
+ }
47
+ }
48
+
49
+ // The observed closure includes governance, tools and project evidence, but not external checkouts/caches.
50
+ export function observeAssetInputs(root) {
51
+ const rows = {};
52
+ function walk(ref) {
53
+ const file = safeFile(root, ref);
54
+ if (!exists(file)) return;
55
+ const st = fs.lstatSync(file);
56
+ ensure(!st.isSymbolicLink(), `ASSET_SYMLINK: ${ref}`);
57
+ if (st.isDirectory()) for (const name of fs.readdirSync(file).sort()) {
58
+ if (['node_modules', '.git', '.codegraph', '__pycache__'].includes(name)) continue;
59
+ walk(`${ref}/${name}`);
60
+ }
61
+ else if (st.isFile()) rows[ref] = descriptor(file);
62
+ }
63
+ for (const ref of ['yss-project.yaml', 'CONTEXT.md', 'DESIGN.md', 'AGENTS.md', 'skills-lock.json', '.template-spec', '.agents', 'scripts', 'docs']) walk(ref);
64
+ return rows;
65
+ }
66
+
67
+ export function validateAssetSemantics(root, ref, kind) {
68
+ const file = safeFile(root, ref), { value } = readAsset(file, kind, { schemaRoot: root });
69
+ let tool, args;
70
+ if (kind === 'domain-strategy' || kind === 'stage-decision-package') {
71
+ tool = `.agents/skills/yss-stage-decision/scripts/validate-${kind}.mjs`;
72
+ args = [file, '--root', root];
73
+ } else {
74
+ tool = { checkpoint: 'scripts/verify-lifecycle-checkpoint', 'task-package': 'scripts/verify-digital-human-task-package', 'approval-record': 'scripts/verify-approval-record' }[kind];
75
+ args = kind === 'approval-record' ? [value.decision === 'approved' || value.kind === 'review-bundle' ? '--require-approved' : '--history', file] : [file];
76
+ }
77
+ ensure(exists(safeFile(root, tool)), `ASSET_CONSUMER_MISSING: ${tool}`);
78
+ const result = spawnSync(process.execPath, [path.join(root, tool), ...args], { cwd: root, encoding: 'utf8', timeout: 60000, maxBuffer: 8 * 1024 * 1024 });
79
+ ensure(!result.error && result.status === 0, `ASSET_SEMANTIC: ${ref}: ${result.error?.message || result.stderr || result.stdout}`);
80
+ return { ref, kind, command: [tool, ...args.map(x => x.replaceAll(root, '.'))], exit_code: result.status, output: result.stdout.trim() };
81
+ }
82
+
83
+ function approvalBindings(root, changes) {
84
+ for (const change of changes) {
85
+ const value = parseAsset(change.after, change.ref);
86
+ // Writers never turn a bare status into an approval. Bound, independently issued evidence is mandatory.
87
+ const records = change.kind === 'approval-record' ? value.kind === 'review-bundle' ? value.reviews : [value] : [];
88
+ for (const row of records) if (row.decision === 'approved') {
89
+ ensure(row.subject_ref && row.subject_digest && row.drafter_principal_ref && row.drafter_principal_ref !== row.principal_ref, 'ASSET_APPROVAL_REBIND_REQUIRED: subject and independent reviewer required');
90
+ ensure(byteDigest(fs.readFileSync(safeFile(root, row.subject_ref))).replace('sha256:', '') === row.subject_digest.replace('sha256:', ''), 'ASSET_APPROVAL_STALE');
91
+ }
92
+ if (['domain-strategy', 'stage-decision-package'].includes(change.kind) && value.status === 'approved') {
93
+ const approval = parseAsset(fs.readFileSync(safeFile(root, value.approval.approval_ref)), value.approval.approval_ref);
94
+ const check = change.kind === 'domain-strategy' ? 'check.domain-strategy-approved' : 'check.stage-decision-package-approved';
95
+ const row = approval.kind === 'review-bundle' ? approval.reviews.find(x => x.gate_id === check) : approval;
96
+ ensure(row?.subject_ref === change.ref && row.subject_digest?.replace('sha256:', '') === byteDigest(change.after).replace('sha256:', ''), `ASSET_APPROVAL_REBIND_REQUIRED: ${change.ref}`);
97
+ }
98
+ }
99
+ }
100
+
101
+ function overlayVerification(root, observed, changes, { verify = validateAssetSemantics } = {}) {
102
+ const staging = fs.mkdtempSync(path.join(os.tmpdir(), 'yss-asset-check-'));
103
+ try {
104
+ for (const ref of Object.keys(observed)) {
105
+ const target = safeFile(staging, ref); fs.mkdirSync(path.dirname(target), { recursive: true });
106
+ fs.copyFileSync(safeFile(root, ref), target); fs.chmodSync(target, observed[ref].mode);
107
+ }
108
+ for (const change of changes) {
109
+ const target = safeFile(staging, change.ref); fs.mkdirSync(path.dirname(target), { recursive: true }); fs.writeFileSync(target, change.after);
110
+ }
111
+ approvalBindings(staging, changes);
112
+ return changes.map(change => verify(staging, change.ref, change.kind));
113
+ } finally { fs.rmSync(staging, { recursive: true, force: true }); }
114
+ }
115
+
116
+ export function planAssetWrite(root, specs, { schemaRoot = TOOL_ROOT, verify, migration } = {}) {
117
+ root = fs.realpathSync(root); assertAssetTransactionIdle(root);
118
+ ensure(Array.isArray(specs) && specs.length, 'ASSET_EMPTY_PLAN');
119
+ const observed = observeAssetInputs(root), seen = new Set();
120
+ const changes = specs.map(({ ref, kind, value }) => {
121
+ ensure(!seen.has(ref), `ASSET_DUPLICATE_TARGET: ${ref}`); seen.add(ref);
122
+ ensure(ref.endsWith('.json') && /^(docs\/|\.yss\/)/.test(ref) && !ref.startsWith(`${TX}/`), 'ASSET_WRITE_SCOPE: project JSON assets only');
123
+ const file = safeFile(root, ref), before = descriptor(file);
124
+ const legacy = ref.replace(/\.json$/, '.yaml');
125
+ if (!before && exists(safeFile(root, legacy))) ensure(migration?.source_to_target?.[legacy] === ref, 'ASSET_AMBIGUOUS_AUTHORITY: use plan-migrate');
126
+ if (kind === 'approval-record' && before) throw new Error('ASSET_IMMUTABLE_APPROVAL: issue a new record');
127
+ validateAssetStructure(value, kind, { schemaRoot });
128
+ const after = serializeAsset(value); parseAsset(after, ref);
129
+ return { ref, kind, before, after, after_digest: byteDigest(after), semantic_digest: semanticDigest(value) };
130
+ }).filter(change => change.before?.digest !== change.after_digest);
131
+ for (const change of changes) if (!Object.hasOwn(observed, change.ref)) observed[change.ref] = change.before;
132
+ const verification = changes.length ? overlayVerification(root, Object.fromEntries(Object.entries(observed).filter(([,v]) => v)), changes, { verify }) : [];
133
+ const payload = { schema_version: 1, kind: 'asset-write-plan', root, observed, changes, verification, ...(migration ? {migration} : {}), execution_authorization: 'not-granted' };
134
+ return { ...payload, plan_id: byteDigest(serializeAsset(payload)).slice(7) };
135
+ }
136
+
137
+ function atomic(file, bytes, mode = 0o600) {
138
+ fs.mkdirSync(path.dirname(file), { recursive: true });
139
+ const temp = `${file}.${randomUUID()}.tmp`;
140
+ const fd = fs.openSync(temp, 'wx', mode);
141
+ try { fs.writeFileSync(fd, bytes); fs.fsyncSync(fd); } finally { fs.closeSync(fd); }
142
+ try { ensure(fs.readFileSync(temp).equals(Buffer.from(bytes)), 'ASSET_TEMP_READBACK'); fs.renameSync(temp, file); const dir = fs.openSync(path.dirname(file), 'r'); try { fs.fsyncSync(dir); } finally { fs.closeSync(dir); } }
143
+ finally { if (exists(temp)) fs.unlinkSync(temp); }
144
+ }
145
+
146
+ export function applyAssetWrite(root, plan, { verify, afterWrite } = {}) {
147
+ root = fs.realpathSync(root); assertAssetTransactionIdle(root);
148
+ const { plan_id, ...payload } = plan;
149
+ ensure(plan.root === root && plan.kind === 'asset-write-plan' && plan_id === byteDigest(serializeAsset(payload)).slice(7), 'ASSET_PLAN_INVALID');
150
+ const directory = safeFile(root, TX); fs.mkdirSync(directory, { recursive: true });
151
+ const lock = safeFile(root, `${TX}/lock`), fd = fs.openSync(lock, 'wx');
152
+ fs.writeFileSync(fd, String(process.pid));fs.fsyncSync(fd);
153
+ const active = safeFile(root, `${TX}/active.json`);
154
+ let transaction;
155
+ try {
156
+ ensure(!exists(safeFile(root, `${TX}/recovery.lock`)), 'ASSET_RECOVERY_LOCKED');
157
+ const current = observeAssetInputs(root);
158
+ for (const [ref, before] of Object.entries(plan.observed)) ensure(same(descriptor(safeFile(root, ref)), before), `ASSET_INPUT_DRIFT: ${ref}`);
159
+ ensure(Object.keys(current).every(ref => Object.hasOwn(plan.observed, ref)), 'ASSET_INPUT_DRIFT: new dependency files');
160
+ if (!plan.changes.length) return { status: 'unchanged', plan_id, changed_refs: [], execution_authorization: 'not-granted' };
161
+ // Recompute, including schemas and semantics. A plan's recorded successful exit is never trusted.
162
+ if(plan.migration) for(const [ref,digest] of Object.entries(plan.migration.sources)) ensure(byteDigest(fs.readFileSync(safeFile(root,ref)))===digest,`ASSET_MIGRATION_DRIFT: ${ref}`);
163
+ const fresh = planAssetWrite(root, plan.changes.map(c => ({ ref: c.ref, kind: c.kind, value: parseAsset(c.after, c.ref) })), { schemaRoot: root, verify, migration:plan.migration });
164
+ ensure(same(fresh.changes, plan.changes), 'ASSET_PLAN_CHANGED');
165
+ const journalRef = `${TX}/${plan_id}.json`, journalFile = safeFile(root, journalRef);
166
+ ensure(!exists(journalFile), 'ASSET_ALREADY_APPLIED: inspect the existing receipt');
167
+ transaction = { schema_version: 1, plan_id, root, status: 'applying', ...(plan.migration?{migration:plan.migration}:{}), changes: plan.changes, backups: Object.fromEntries(plan.changes.map(c => [c.ref, c.before ? fs.readFileSync(safeFile(root, c.ref)).toString('base64') : null])) };
168
+ atomic(journalFile, serializeAsset(transaction)); atomic(active, serializeAsset({ journal_ref: journalRef }));
169
+ for (const change of plan.changes) {
170
+ ensure(same(descriptor(safeFile(root, change.ref)), change.before), `ASSET_INPUT_DRIFT: ${change.ref}`);
171
+ atomic(safeFile(root, change.ref), change.after, change.before?.mode ?? 0o644);
172
+ readAsset(safeFile(root, change.ref), change.kind, { schemaRoot: root });
173
+ afterWrite?.(change);
174
+ }
175
+ for (const [ref, before] of Object.entries(plan.observed)) {
176
+ const change = plan.changes.find(c => c.ref === ref);
177
+ ensure(descriptor(safeFile(root, ref))?.digest === (change?.after_digest ?? before?.digest), `ASSET_POSTWRITE_DRIFT: ${ref}`);
178
+ }
179
+ ensure(Object.keys(observeAssetInputs(root)).every(ref => Object.hasOwn(plan.observed, ref)), 'ASSET_POSTWRITE_DRIFT: new dependency files');
180
+ transaction.status = 'applied'; atomic(journalFile, serializeAsset(transaction)); fs.unlinkSync(active);
181
+ return { status: 'applied', plan_id, changed_refs: plan.changes.map(c => c.ref), receipt_ref: journalRef, execution_authorization: 'not-granted' };
182
+ } catch (error) {
183
+ if (transaction && exists(active)) {
184
+ const result = recoverAssetWrite(root, { lockHeld: true });
185
+ throw new Error(`${error.message}; ${result.status}: ${result.conflicts.join(',')}`);
186
+ }
187
+ throw error;
188
+ } finally { fs.closeSync(fd); if (exists(lock)) fs.unlinkSync(lock); }
189
+ }
190
+
191
+ export function recoverAssetWrite(root, { lockHeld = false, recoveryHeld = false } = {}) {
192
+ root = fs.realpathSync(root);
193
+ const lock = safeFile(root, `${TX}/lock`);
194
+ if (!lockHeld && !recoveryHeld) {
195
+ const guard = safeFile(root, `${TX}/recovery.lock`);
196
+ fs.mkdirSync(path.dirname(guard), { recursive: true });
197
+ const fd = fs.openSync(guard, 'wx');
198
+ try {
199
+ fs.writeFileSync(fd, String(process.pid)); fs.fsyncSync(fd);
200
+ return recoverAssetWrite(root, { recoveryHeld: true });
201
+ } finally { fs.closeSync(fd); fs.unlinkSync(guard); }
202
+ }
203
+ if (!lockHeld && exists(lock)) {
204
+ const pid=Number(fs.readFileSync(lock,'utf8'));ensure(Number.isInteger(pid)&&pid>0,'ASSET_LOCK_INVALID');
205
+ let live=true;try{process.kill(pid,0);}catch(error){if(error.code==='ESRCH')live=false;else throw error;}
206
+ ensure(!live,'ASSET_LOCKED: writer is still alive');fs.unlinkSync(lock);
207
+ }
208
+ if (!lockHeld) {
209
+ fs.mkdirSync(path.dirname(lock), { recursive: true });
210
+ const fd = fs.openSync(lock, 'wx');
211
+ try {
212
+ fs.writeFileSync(fd, String(process.pid)); fs.fsyncSync(fd);
213
+ return recoverAssetWrite(root, { lockHeld: true });
214
+ } finally { fs.closeSync(fd); fs.unlinkSync(lock); }
215
+ }
216
+ const active = safeFile(root, `${TX}/active.json`);
217
+ if (!exists(active)) return { status: 'idle', conflicts: [] };
218
+ const marker = parseAsset(fs.readFileSync(active), active), journalFile = safeFile(root, marker.journal_ref);
219
+ ensure(marker.journal_ref.startsWith(`${TX}/`), 'ASSET_JOURNAL_PATH');
220
+ const tx = parseAsset(fs.readFileSync(journalFile), journalFile);
221
+ ensure(tx.root === root && ['applying', 'recovery-conflict','applied'].includes(tx.status), 'ASSET_JOURNAL_INVALID');
222
+ if(tx.status==='applied') {for(const c of tx.changes)ensure(descriptor(safeFile(root,c.ref))?.digest===c.after_digest,'ASSET_RECOVERY_CONFLICT');fs.unlinkSync(active);return{status:'applied',conflicts:[]};}
223
+ const conflicts = [];
224
+ for (const change of [...tx.changes].reverse()) {
225
+ ensure(byteDigest(change.after)===change.after_digest && (change.before===null?tx.backups[change.ref]===null:byteDigest(Buffer.from(tx.backups[change.ref],'base64'))===change.before.digest),'ASSET_JOURNAL_CORRUPT');
226
+ const file = safeFile(root, change.ref), actual = descriptor(file);
227
+ if (same(actual, change.before)) continue;
228
+ if (actual?.digest !== change.after_digest) { conflicts.push(change.ref); continue; }
229
+ if (tx.backups[change.ref] === null) fs.unlinkSync(file);
230
+ else atomic(file, Buffer.from(tx.backups[change.ref], 'base64'), change.before.mode);
231
+ }
232
+ tx.status = conflicts.length ? 'recovery-conflict' : 'rolled-back'; tx.conflicts = conflicts;
233
+ atomic(journalFile, serializeAsset(tx)); if (!conflicts.length) fs.unlinkSync(active);
234
+ return { status: tx.status, conflicts };
235
+ }
@@ -0,0 +1,34 @@
1
+ import fs from 'node:fs';
2
+ import {businessAuthoringEnabled,businessPath,businessSetRef,checkBusinessTickets,assertBusinessDeferredApprovals} from './business-tickets.mjs';
3
+ import {yamlValue} from './plan-spec-markdown.mjs';
4
+ import {loadApprovalRecord,validateApprovalRecord} from './approval-record.mjs';
5
+
6
+ // Reuse existing approval protocols; this function creates no approval boundary.
7
+ export function assertBusinessApprovalBasis(root,state,{required=false}={}) {
8
+ if(!businessAuthoringEnabled(root))return;
9
+ if(state?.checkpoint_ref)state=yamlValue(fs.readFileSync(businessPath(root,state.checkpoint_ref),'utf8'));
10
+ if(!required)return;
11
+ const report=checkBusinessTickets({root,setRef:businessSetRef(state),mode:'formal'});
12
+ if(report.status!=='passed')throw Error(`BUSINESS_FORMALIZATION_BLOCKED: ${report.diagnostics.map(x=>x.code).join(', ')}`);
13
+ const rolesDoc=yamlValue(fs.readFileSync(businessPath(root,'.template-spec/agents/digital-human-roles.yaml'),'utf8'));
14
+ const proofRefs=[];
15
+ for(const id of ['gate.spec-baseline-approved','gate.product-design-approved']) {
16
+ const gate=state.gates?.[id];
17
+ if(id==='gate.product-design-approved'&&gate?.status==='not-applicable'&&gate.reason?.trim()&&gate.evidence_refs?.length){for(const ref of gate.evidence_refs)fs.readFileSync(businessPath(root,ref));continue;}
18
+ if(gate?.status!=='approved'||!gate.approval_ref)throw Error(`BUSINESS_APPROVAL_REQUIRED: ${id}`);
19
+ const record=loadApprovalRecord(businessPath(root,gate.approval_ref),id);
20
+ if(record.gate_id!==id||record.subject_ref!==gate.subject_ref||!gate.approval_scope?.length||JSON.stringify([...gate.approval_scope].sort())!==JSON.stringify([...(record.approval_scope||[])].sort()))throw Error(`BUSINESS_APPROVAL_SCOPE_MISMATCH: ${id}`);
21
+ validateApprovalRecord(record,{root,rolesDoc,requireApproved:true});
22
+ if(id==='gate.spec-baseline-approved'&&record.subject_ref!==report.spec.ref) {
23
+ // Existing approvals may cover a review package instead of the Spec itself.
24
+ // Its signed bytes, rather than a mutable checkpoint label, bind the baseline.
25
+ let subject;
26
+ try {subject=yamlValue(fs.readFileSync(businessPath(root,record.subject_ref),'utf8'));}
27
+ catch {throw Error('BUSINESS_SPEC_APPROVAL_MISMATCH: 批准主体不是当前 Spec 或可核验审阅包');}
28
+ const bindings=[...(Array.isArray(subject?.basis)?subject.basis:[]),...(Array.isArray(subject?.assets)?subject.assets:[])];
29
+ if(!bindings.some(x=>(x.ref||x.persisted_ref)===report.spec.ref&&String(x.digest).replace(/^sha256:/,'')===report.spec.digest.slice(7)))throw Error('BUSINESS_SPEC_APPROVAL_MISMATCH');
30
+ }
31
+ proofRefs.push(gate.approval_ref,record.user_decision_ref,record.continuation_ref);
32
+ }
33
+ assertBusinessDeferredApprovals(report,proofRefs);
34
+ }
@@ -0,0 +1,273 @@
1
+ import nativeFs from 'node:fs';
2
+ import {readFileSync,existsSync,lstatSync} from './validation-phase.mjs';
3
+ const fs={...nativeFs,readFileSync,existsSync,lstatSync};
4
+ import path from 'node:path';
5
+ import { createHash } from 'node:crypto';
6
+ import { parseContent, yamlValue, ids as sourceIds } from './plan-spec-markdown.mjs';
7
+ import { fileURLToPath } from 'node:url';
8
+ import { validateJsonSchemas } from './json-schema.mjs';
9
+ import { sourceContextRef, withSourceContextSnapshot } from './strategic-handoff-io.mjs';
10
+
11
+ export const BUSINESS_TICKET_PROTOCOL = 1;
12
+ export const BUSINESS_TICKET_CAPABILITY = 'business-ticket-approval-v1';
13
+ const hash = bytes => `sha256:${createHash('sha256').update(bytes).digest('hex')}`;
14
+ const nonempty = value => typeof value === 'string' && Boolean(value.trim());
15
+ const list = value => Array.isArray(value) && value.every(nonempty);
16
+ const fail = message => { throw new Error(message); };
17
+ export function businessPath(root, ref) {
18
+ if (!nonempty(ref) || path.isAbsolute(ref) || ref.includes('\\') || ref.split('/').some(x => !x || x === '.' || x === '..')) fail(`BUSINESS_PATH_INVALID: ${ref}`);
19
+ ref = sourceContextRef(root, ref);
20
+ let file = fs.realpathSync(root);
21
+ for (const part of ref.split('/')) {
22
+ file = path.join(file, part);
23
+ try { if (fs.lstatSync(file).isSymbolicLink()) fail(`BUSINESS_SYMLINK_FORBIDDEN: ${ref}`); }
24
+ catch (error) { if (error.code !== 'ENOENT') throw error; }
25
+ }
26
+ return file;
27
+ }
28
+ export function ticketMetadata(text) {
29
+ const match = String(text).match(/^\uFEFF?---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/);
30
+ if(match)return yamlValue(match[1]);
31
+ try {const data=yamlValue(String(text));return data&&typeof data==='object'&&!Array.isArray(data)?data:{};}catch{return {};}
32
+ }
33
+ export function businessTicketVersion(root) {
34
+ const identity = businessPath(root, 'yss-project.yaml');
35
+ if (fs.existsSync(identity) && yamlValue(fs.readFileSync(identity,'utf8'))?.repository_mode === 'template-source') return null;
36
+ const ref = '.template-spec/agents/issue-tracker.md';
37
+ const file = businessPath(root, ref);
38
+ if (!fs.existsSync(file)) return null;
39
+ const value = ticketMetadata(fs.readFileSync(file, 'utf8'))?.tracker?.business_ticket_version;
40
+ if (value !== undefined && value !== 1) fail('BUSINESS_TICKET_VERSION_UNSUPPORTED');
41
+ return value ?? null;
42
+ }
43
+ export function businessAuthoringEnabled(root) {
44
+ if(businessTicketVersion(root)!==1)return false;
45
+ const profile=businessPath(root,'.template-spec/process/harness-profile.yaml');
46
+ const id=fs.existsSync(profile)?yamlValue(fs.readFileSync(profile,'utf8'))?.profile_id:null;
47
+ return !['harness.backend-delivery','harness.frontend-delivery'].includes(id);
48
+ }
49
+ export function assertImplementationTicket(text, ref = '') {
50
+ const kind = ticketMetadata(text)?.kind;
51
+ if (kind === 'stage-work-item' || /(^|\/)work-items\//.test(ref)) fail('stage-work-item 不能作为实现 Ticket');
52
+ if (['business-ticket', 'business-ticket-set'].includes(kind) || /(^|\/)business-tickets\//.test(ref)) fail('business-ticket-not-implementable: 业务 Ticket 不能作为实现 Slice');
53
+ }
54
+
55
+ /** Structural evidence only. Business semantics and approval remain with lifecycle reviewers. */
56
+ export function checkBusinessTickets({root, setRef, mode = 'draft', reviewRef} = {}) {
57
+ // Imported v5 sources retain root-relative bindings inside the immutable payload.
58
+ const imported=typeof setRef==='string'&&setRef.match(/^(docs\/handoffs\/[^/]+\/v[1-9][0-9]*\/package\/payload\/files\/)(.+)$/);
59
+ if(imported) {
60
+ const prefix=imported[1], sourceRoot=businessPath(root,prefix.slice(0,-1));
61
+ const result=withSourceContextSnapshot(sourceRoot,()=>checkBusinessTickets({root:sourceRoot,setRef:imported[2],mode,reviewRef:reviewRef?.startsWith(prefix)?reviewRef.slice(prefix.length):reviewRef}));
62
+ const mapped=ref=>typeof ref==='string'?prefix+(ref==='CONTEXT.md'?'source-context.snapshot.md':ref):ref;
63
+ result.inputs=result.inputs.map(x=>({...x,ref:mapped(x.ref)}));
64
+ result.diagnostics=result.diagnostics.map(x=>({...x,source_ref:mapped(x.source_ref)}));
65
+ result.tickets=result.tickets.map(x=>({...x,ref:mapped(x.ref)}));
66
+ if(result.spec)result.spec={...result.spec,ref:mapped(result.spec.ref)};
67
+ if(result.semantic_review)result.semantic_review={...result.semantic_review,ref:mapped(result.semantic_review.ref)};
68
+ return result;
69
+ }
70
+ const report = {schema_version:1, read_only:true, execution_authorization:'not-evaluated', mode, status:'passed', diagnostics:[], inputs:[], tickets:[], uncovered:[], unassessed:['business-granularity','semantic-fidelity','approval-validity']};
71
+ const observed = new Map();
72
+ const schemaInputs = [];
73
+ const schemaPath = fileURLToPath(new URL('../../.template-spec/process/schemas/business-tickets-v1.schema.json',import.meta.url));
74
+ const issue = (code, message, ref = setRef, locator = null) => report.diagnostics.push({code,message,source_ref:ref,locator,recovery:'核对来源、补齐引用或重新审查当前业务 Ticket 集'});
75
+ const read = ref => {
76
+ const bytes = fs.readFileSync(businessPath(root,ref)), digest = hash(bytes);
77
+ if (observed.has(ref) && observed.get(ref) !== digest) fail(`INPUT_DRIFT: ${ref}`);
78
+ observed.set(ref,digest); return bytes.toString('utf8');
79
+ };
80
+ const binding = value => {
81
+ if (!value || !nonempty(value.ref) || !/^v[1-9][0-9]*$/.test(value.version ?? '') || !/^sha256:[a-f0-9]{64}$/.test(value.digest ?? '')) fail('BINDING_INVALID: 需要 ref/version/digest');
82
+ const text = read(value.ref);
83
+ if (observed.get(value.ref) !== value.digest) issue('SOURCE_STALE','来源原始字节已变化',value.ref);
84
+ return text;
85
+ };
86
+ try {
87
+ if (!['draft','formal'].includes(mode)) fail('MODE_INVALID');
88
+ const set = yamlValue(read(setRef));
89
+ schemaInputs.push({value:set,schemaPath,label:setRef});
90
+ if (set?.schema_version !== 1 || set.kind !== 'business-ticket-set' || !nonempty(set.id) || !/^v[1-9][0-9]*$/.test(set.version ?? '') || !['draft','ready-for-human'].includes(set.status)) fail('BUSINESS_SET_INVALID');
91
+ report.id=set.id; report.version=set.version; report.spec=set.spec; report.coverage_deferred=set.coverage_deferred ?? [];
92
+ const spec = parseContent(binding(set.spec),set.spec.ref);
93
+ if (!spec.supported) issue('SPEC_FORMAT_UNASSESSED','Spec 需显式采用 plan-spec-v1;旧格式不推断覆盖',set.spec.ref);
94
+ const entries = spec.entries.filter(x => ['FR','NFR','AC'].includes(x.kind));
95
+ const ids = new Set();
96
+ for (const entry of entries) {
97
+ if (ids.has(entry.id)) issue('DUPLICATE_ID',`Spec ID 重复: ${entry.id}`,set.spec.ref,entry.position.start.line);
98
+ ids.add(entry.id);
99
+ }
100
+ if (!entries.some(x => x.kind === 'FR') || !entries.some(x => x.kind === 'AC')) issue('SPEC_COVERAGE_UNASSESSED','缺少可机械读取的 FR/AC',set.spec.ref);
101
+ if (!Array.isArray(set.tickets) || !set.tickets.length) fail('BUSINESS_TICKETS_REQUIRED');
102
+ const tickets = new Map(), covered = new Set(), seenPaths = new Set();
103
+ for (const entry of set.tickets) {
104
+ const text = binding(entry), ticket = ticketMetadata(text);
105
+ schemaInputs.push({value:ticket,schemaPath,label:entry.ref});
106
+ if (tickets.has(entry.id) || seenPaths.has(entry.ref)) issue('DUPLICATE_ID',`Ticket ID 或路径重复: ${entry.id}`,entry.ref);
107
+ seenPaths.add(entry.ref);
108
+ if (ticket.schema_version !== 1 || ticket.kind !== 'business-ticket' || !/^BT-[A-Za-z0-9][A-Za-z0-9._-]*$/.test(ticket.id ?? '') || ticket.id !== entry.id || ticket.version !== entry.version) issue('BUSINESS_TICKET_INVALID','类型、稳定 ID 或版本不匹配',entry.ref);
109
+ if (!['draft','ready-for-human'].includes(ticket.status)) issue('BUSINESS_READINESS_FORBIDDEN','业务票不得声明实现就绪',entry.ref);
110
+ if (!entry.ref.startsWith(`${path.posix.dirname(setRef)}/business-tickets/`) || !entry.ref.endsWith('.md')) issue('BUSINESS_TICKET_LOCATION','业务票需独立放在 business-tickets/',entry.ref);
111
+ if (['ref','version','digest'].some(key=>ticket.spec?.[key]!==set.spec?.[key])) issue('SPEC_BINDING_MISMATCH','票据与集合的 Spec 依据不一致',entry.ref);
112
+ for (const field of ['requirement_refs','acceptance_refs','dependencies']) if (!list(ticket[field])) issue('REQUIRED_FIELD',`缺少 ${field}`,entry.ref);
113
+ if (!ticket.requirement_refs?.length || !ticket.acceptance_refs?.length) issue('COVERAGE_REQUIRED','需要需求与验收引用',entry.ref);
114
+ for (const [field, pattern] of [['requirement_refs',/^(FR|NFR)-/],['acceptance_refs',/^AC-/]]) {
115
+ for (const id of Array.isArray(ticket[field]) ? ticket[field] : []) {
116
+ if (!ids.has(id) || !pattern.test(id)) issue('DANGLING_REFERENCE',`无效引用 ${id}`,entry.ref);
117
+ else covered.add(id);
118
+ }
119
+ }
120
+ for(const ac of Array.isArray(ticket.acceptance_refs)?ticket.acceptance_refs:[]) {
121
+ const requirementIds=sourceIds(entries.find(x=>x.id===ac)?.fields?.['需求引用'],['FR','NFR']);
122
+ if(!requirementIds.length || requirementIds.some(id=>!ticket.requirement_refs?.includes(id)))issue('AC_REQUIREMENT_MISMATCH',`验收 ${ac} 与本票需求来源不一致`,entry.ref,ac);
123
+ }
124
+ for (const source of ticket.source_refs ?? []) {
125
+ const sourceText = binding(source);
126
+ if (source.locator) {
127
+ let found;
128
+ if (/\.(yaml|yml|json)$/.test(source.ref)) {
129
+ const ids=[];
130
+ const walk=value=>{if(Array.isArray(value))value.forEach(walk);else if(value&&typeof value==='object')for(const [key,item]of Object.entries(value)){if((key==='id'||key.endsWith('_id'))&&typeof item==='string')ids.push(item);else walk(item);}};
131
+ walk(yamlValue(sourceText));found=source.locator_kind!=='heading'&&ids.filter(x=>x===source.locator).length===1;
132
+ } else {const parsed=parseContent(sourceText,source.ref);found=(source.locator_kind==='heading'?parsed.headings:parsed.locators).filter(x=>x.value===source.locator).length===1;}
133
+ if(!found)issue('DANGLING_REFERENCE',`来源定位缺失或不唯一: ${source.locator}`,source.ref,source.locator);
134
+ }
135
+ }
136
+ for (const heading of ['业务结果','范围','非目标','验收','风险']) if (!new RegExp(`^## ${heading}\\s*$`,'m').test(text)) issue('REQUIRED_SECTION',`缺少 ${heading}`,entry.ref);
137
+ for (const question of ticket.open_questions ?? []) {
138
+ if (![question.id,question.question,question.owner,question.resolve_by].every(nonempty) || typeof question.blocking !== 'boolean') issue('QUESTION_INCOMPLETE','未决项需问题、责任人、时点及阻断判断',entry.ref);
139
+ if (mode === 'formal' && question.blocking) issue('OPEN_BLOCKER',question.question,entry.ref);
140
+ }
141
+ if (mode === 'formal' && ticket.status !== 'ready-for-human') issue('TICKET_DRAFT','正式化仍有草案票',entry.ref);
142
+ tickets.set(entry.id,ticket);
143
+ report.tickets.push({id:entry.id,ref:entry.ref,version:entry.version,source_digest:entry.digest,source_refs:ticket.source_refs,requirement_refs:ticket.requirement_refs,acceptance_refs:ticket.acceptance_refs,dependencies:ticket.dependencies});
144
+ }
145
+ const visiting = new Set(), visited = new Set();
146
+ const visit = id => {
147
+ if (visiting.has(id)) { issue('DEPENDENCY_CYCLE',`依赖环包含 ${id}`); return; }
148
+ if (visited.has(id)) return;
149
+ visiting.add(id);
150
+ for (const dep of tickets.get(id)?.dependencies ?? []) {
151
+ if (!tickets.has(dep)) issue('DANGLING_DEPENDENCY',`${id} 依赖未知票 ${dep}`);
152
+ else visit(dep);
153
+ }
154
+ visiting.delete(id); visited.add(id);
155
+ };
156
+ tickets.forEach((_,id)=>visit(id));
157
+ const deferred = new Set();
158
+ for (const item of set.coverage_deferred ?? []) {
159
+ if (!ids.has(item.id) || deferred.has(item.id) || covered.has(item.id)) issue('DEFERRED_COVERAGE_INVALID',`延期引用无效或重复: ${item.id}`);
160
+ if (!['reason','risk','owner','target_version','followup_ticket_ref','verification_plan'].every(k=>nonempty(item[k]))) issue('DEFERRED_INCOMPLETE',`延期缺少责任或处理计划: ${item.id}`);
161
+ if (mode === 'formal') {
162
+ if (!item.decision) issue('DEFERRED_DECISION_REQUIRED',`延期缺少既有决定绑定: ${item.id}`);
163
+ else binding(item.decision);
164
+ }
165
+ deferred.add(item.id);
166
+ }
167
+ report.uncovered = [...ids].filter(id=>!covered.has(id)&&!deferred.has(id));
168
+ for (const id of report.uncovered) issue('COVERAGE_MISSING',`未覆盖 ${id}`,set.spec.ref,id);
169
+ if (mode === 'formal') {
170
+ if (set.status !== 'ready-for-human') issue('SET_DRAFT','业务集合尚未正式化');
171
+ const review = yamlValue(read(reviewRef || set.review_ref));
172
+ schemaInputs.push({value:review,schemaPath,label:reviewRef || set.review_ref});
173
+ if (review.kind !== 'business-ticket-review' || review.schema_version !== 1 || review.result !== 'passed' || review.subject_ref !== setRef || review.subject_digest !== observed.get(setRef) || !nonempty(review.reviewer) || !nonempty(review.drafter) || review.reviewer === review.drafter || !Array.isArray(review.evidence) || !review.evidence.length) issue('REVIEW_REQUIRED','需要独立且绑定当前集合的专业审查');
174
+ for (const ref of review.evidence ?? []) binding(ref);
175
+ report.semantic_review={status:'recorded',ref:reviewRef||set.review_ref,result:review.result,subject_digest:review.subject_digest};
176
+ report.unassessed = ['approval-validity','semantic-review-truth'];
177
+ }
178
+ } catch (error) { issue(error.message.split(':')[0],error.message); }
179
+ try { validateJsonSchemas(schemaInputs).forEach((result,index)=>{if(!result.valid)issue('SCHEMA_INVALID',result.error,schemaInputs[index].label);}); }
180
+ catch(error) {issue('SCHEMA_UNAVAILABLE',error.message);}
181
+ for (const [ref,digest] of observed) {
182
+ try { if (hash(fs.readFileSync(businessPath(root,ref))) !== digest) issue('INPUT_DRIFT','读取期间来源变化',ref); }
183
+ catch { issue('INPUT_DRIFT','读取期间来源消失',ref); }
184
+ }
185
+ report.inputs = [...observed].map(([ref,digest])=>({ref,digest}));
186
+ report.status = report.diagnostics.length ? 'blocked' : 'passed';
187
+ return report;
188
+ }
189
+
190
+ export function businessSetRef(state) { return state?.artifacts?.['artifact.business-ticket-set']?.ref || state?.business_ticket_set_ref; }
191
+ export function assertBusinessTicketTransition(root, current, next, state = {}) {
192
+ if (!businessAuthoringEnabled(root)) return;
193
+ if (state.checkpoint_ref) state=yamlValue(fs.readFileSync(businessPath(root,state.checkpoint_ref),'utf8'));
194
+ const spec = current === 'work-unit.spec-synthesis';
195
+ const design = ['work-unit.prototype-design','work-unit.prototype-design-v2'].includes(current);
196
+ const formal = current === 'work-unit.business-ticket-formalization';
197
+ if (!spec && !design && !formal) return;
198
+ if ((spec || design) && next === 'work-unit.technical-analysis') fail('BUSINESS_FORMALIZATION_REQUIRED');
199
+ const report = checkBusinessTickets({root,setRef:businessSetRef(state),mode:formal?'formal':'draft'});
200
+ if (report.status !== 'passed') fail(`business-ticket-blocked: ${report.diagnostics.map(x=>x.code).join(', ')}`);
201
+ }
202
+
203
+ export function assertSliceBusinessSources({root,ticketText,setBinding,acceptance,specBinding}) {
204
+ const ticket = ticketMetadata(ticketText);
205
+ if (businessTicketVersion(root) !== 1 && !ticket.business_ticket_refs && !setBinding) return;
206
+ if(ticket.kind!=='vertical-slice-ticket')fail('IMPLEMENTATION_TICKET_KIND_REQUIRED');
207
+ if(ticket.business_ticket_set_ref && ticket.business_ticket_set_ref!==setBinding?.ref)fail('BUSINESS_SET_REFERENCE_MISMATCH');
208
+ if (!setBinding?.ref || !setBinding.digest) fail('BUSINESS_SET_BINDING_REQUIRED');
209
+ const bytes = fs.readFileSync(businessPath(root,setBinding.ref));
210
+ if (hash(bytes) !== setBinding.digest) fail('BUSINESS_SET_STALE');
211
+ const result = checkBusinessTickets({root,setRef:setBinding.ref,mode:'formal'});
212
+ if (result.status !== 'passed') fail(`BUSINESS_SOURCE_BLOCKED: ${result.diagnostics.map(x=>x.code).join(', ')}`);
213
+ if (!list(ticket.business_ticket_refs) || !ticket.business_ticket_refs.length || ticket.business_ticket_refs.some(id=>!result.tickets.some(t=>t.id===id))) fail('BUSINESS_TICKET_REFERENCE_REQUIRED');
214
+ const selected=result.tickets.filter(t=>ticket.business_ticket_refs.includes(t.id));
215
+ const allowed=new Set(selected.flatMap(t=>t.acceptance_refs));
216
+ if (!list(ticket.acceptance_refs) || !ticket.acceptance_refs.length || ticket.acceptance_refs.some(id=>!allowed.has(id))) fail('BUSINESS_ACCEPTANCE_REFERENCE_REQUIRED');
217
+ if(acceptance) {
218
+ if(!specBinding || ['ref','digest'].some(key=>result.spec[key]!==specBinding[key]))fail('BUSINESS_SPEC_BINDING_MISMATCH');
219
+ for(const item of Object.values(acceptance))if(item.source!=='spec'||!ticket.acceptance_refs.includes(item.locator))fail('BUSINESS_ACCEPTANCE_SOURCE_MISMATCH');
220
+ if(ticket.acceptance_refs.some(id=>!Object.values(acceptance).some(item=>item.locator===id)))fail('BUSINESS_ACCEPTANCE_UNCOVERED');
221
+ }
222
+ }
223
+
224
+ export function assertBusinessCheckpoint(root,state) {
225
+ if (!businessAuthoringEnabled(root)) return;
226
+ const stage=state.stage;
227
+ const pastSpec=['stage.product-design','stage.system-data-engineering','stage.ticket-formalization','stage.vertical-slice-implementation','stage.verification-release-retrospective'].includes(stage);
228
+ // Design uses ticket-formalization for business drafting, while the full
229
+ // lifecycle uses that stage for engineering Slices. Entering the business
230
+ // work unit must remain possible with drafts; its exit requires formal proof.
231
+ const finalized=['work-unit.technical-analysis','work-unit.strategic-design-handoff','work-unit.implementation-repository-preparation','work-unit.ticket-decomposition','work-unit.slice-implementation'].includes(state.next_work_unit) || ['stage.system-data-engineering','stage.vertical-slice-implementation','stage.verification-release-retrospective'].includes(stage) || (stage==='stage.ticket-formalization'&&state.next_work_unit!=='work-unit.business-ticket-formalization');
232
+ const artifact=state.artifacts?.['artifact.business-ticket-set'];
233
+ const completedSpec=['work-unit.prototype-design','work-unit.prototype-design-v2','work-unit.business-ticket-formalization'].includes(state.next_work_unit)||state.stage_trace?.completed_work_unit==='work-unit.spec-synthesis'||(stage==='stage.spec-architecture'&&['completed','paused-human-gate'].includes(state.status));
234
+ if(!pastSpec && !finalized && !artifact?.ref && !completedSpec)return;
235
+ const report=checkBusinessTickets({root,setRef:businessSetRef(state),mode:finalized?'formal':'draft'});
236
+ if(report.status!=='passed')fail(`BUSINESS_CHECKPOINT_BLOCKED: ${report.diagnostics.map(x=>x.code).join(', ')}`);
237
+ if(artifact?.digest && report.inputs.find(x=>x.ref===artifact.ref)?.digest!==artifact.digest)fail('BUSINESS_SYNC_STALE');
238
+ const sync=businessSyncDiagnostics(root,businessSetRef(state),report);if(sync.length)fail('BUSINESS_SYNC_STALE: '+sync.map(x=>x.ref).join(', '));
239
+ }
240
+
241
+ // Only inspect explicit synchronization declarations in the two feature views.
242
+ export function businessSyncDiagnostics(root,setRef,report) {
243
+ if(!setRef)return [];
244
+ const digest=report.inputs?.find(x=>x.ref===setRef)?.digest,diagnostics=[];
245
+ for(const name of ['map.md','parent-ticket.md']) {
246
+ const ref=path.posix.join(path.posix.dirname(setRef),name),file=businessPath(root,ref);
247
+ if(!fs.existsSync(file))continue;
248
+ const m=ticketMetadata(fs.readFileSync(file,'utf8'));
249
+ if(m.business_ticket_set_ref && (m.business_ticket_set_ref!==setRef||m.business_ticket_set_digest!==digest))diagnostics.push({code:'BUSINESS_SYNC_STALE',ref});
250
+ }
251
+ return diagnostics;
252
+ }
253
+
254
+ export function assertBusinessDeferredApprovals(report,verifiedRefs) {
255
+ for(const item of report.coverage_deferred||[])if(!verifiedRefs.includes(item.decision?.ref))fail(`BUSINESS_DEFERRED_APPROVAL_UNBOUND: ${item.id}`);
256
+ }
257
+
258
+ export function summarizeBusinessImplementation({root,setRef,sliceRefs=[]}) {
259
+ const business=checkBusinessTickets({root,setRef,mode:'formal'});
260
+ const result={status:'not-recorded',execution_authorization:'not-evaluated',implementation_completion:'not-evaluated',tickets:[],diagnostics:[]};
261
+ if(business.status!=='passed'){result.status='blocked';result.diagnostics=business.diagnostics;return result;}
262
+ const mapped=new Map(business.tickets.map(t=>[t.id,new Map()]));
263
+ for(const ref of [...new Set(sliceRefs)])try {
264
+ const text=fs.readFileSync(businessPath(root,ref),'utf8');assertImplementationTicket(text,ref);const ticket=ticketMetadata(text);
265
+ if(ticket.kind!=='vertical-slice-ticket'||ticket.business_ticket_set_ref!==setRef||!list(ticket.business_ticket_refs)||!ticket.business_ticket_refs.length||!list(ticket.acceptance_refs)||!ticket.acceptance_refs.length)fail('SLICE_BUSINESS_BINDING_INVALID');
266
+ const allowed=new Set(business.tickets.filter(t=>ticket.business_ticket_refs.includes(t.id)).flatMap(t=>t.acceptance_refs));
267
+ if(ticket.business_ticket_refs.some(id=>!mapped.has(id))||ticket.acceptance_refs.some(id=>!allowed.has(id)))fail('SLICE_COVERAGE_INVALID');
268
+ for(const id of ticket.business_ticket_refs)for(const ac of ticket.acceptance_refs)if(business.tickets.find(t=>t.id===id).acceptance_refs.includes(ac)){const rows=mapped.get(id);rows.set(ac,[...(rows.get(ac)||[]),ref]);}
269
+ }catch(error){result.diagnostics.push({code:'SLICE_MAPPING_INVALID',source_ref:ref,message:error.message});}
270
+ result.tickets=business.tickets.map(t=>({id:t.id,acceptance_mappings:Object.fromEntries(mapped.get(t.id)),unmapped_acceptance:t.acceptance_refs.filter(ac=>!mapped.get(t.id).has(ac))}));
271
+ result.status=result.diagnostics.length?'blocked':!sliceRefs.length?'not-recorded':result.tickets.some(t=>t.unmapped_acceptance.length)?'partial':'covered';
272
+ return result;
273
+ }
@@ -0,0 +1,43 @@
1
+ import { readDocument, fileBinding } from './governance-io.mjs';
2
+ import { assertAssetTransactionIdle, assertCurrentAssetReference } from './asset-transactions.mjs';
3
+
4
+ /** Validate existing lifecycle context evidence; never grants approval. */
5
+ export function assertCheckpointBoundary(value, {root, history=false}={}) {
6
+ if(history) return {status:'historical-only',execution_authorization:'not-evaluated'};
7
+ assertAssetTransactionIdle(root);
8
+ if(value.stage_tracking?.checkpoint_ref)assertCurrentAssetReference(root,value.stage_tracking.checkpoint_ref);
9
+ const canonical='.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml';
10
+ const contract=readDocument(root,fileBinding(root,canonical)?canonical:'.template-spec/process/checkpoint-boundary.yaml');
11
+ const registry=readDocument(root,'.template-spec/process/lifecycle-registry.yaml');
12
+ const stages=new Set(registry.stages.map(x=>x.id));
13
+ if(!stages.has(value.stage))throw new Error('checkpoint-boundary: 当前 stage 未登记');
14
+ if(value.next_work_unit!=null&&!registry.work_units.some(x=>x.id===value.next_work_unit))throw new Error('checkpoint-boundary: next_work_unit 未登记');
15
+ const required=(v,label)=>{if(typeof v!=='string'||!v.trim())throw new Error(`checkpoint-boundary: 缺少 ${label}`);};
16
+ const reference=(ref,label)=>{required(ref,label);if(!fileBinding(root,ref))throw new Error(`checkpoint-boundary: 证据不可读 ${label}: ${ref}`);};
17
+ const boundary=value.phase_boundary;
18
+ if(boundary!==undefined) {
19
+ if(!boundary||Array.isArray(boundary)||typeof boundary!=='object')throw new Error('checkpoint-boundary: phase_boundary 必须为对象');
20
+ for(const key of contract.phase_boundary.evidence.required)required(boundary[key],`phase_boundary.${key}`);
21
+ if(!contract.phase_boundary.choices.includes(boundary.decision))throw new Error('checkpoint-boundary: decision 非法');
22
+ for(const key of contract.phase_boundary.evidence.conditional[boundary.decision]||[]) {
23
+ required(boundary[key],`phase_boundary.${key}`);
24
+ if(key.endsWith('_ref'))reference(boundary[key],key);
25
+ }
26
+ if(boundary.decision==='compact'&&!stages.has(boundary.next_phase))throw new Error('checkpoint-boundary: next_phase 必须为当前阶段 ID');
27
+ }
28
+ const atBoundary=['paused-human-gate','completed'].includes(value.status)||['handoff','subagent','compact'].includes(boundary?.decision)||
29
+ (['orchestrate','resume'].includes(value.mode)&&(value.stage!=='stage.entry-triage'||Boolean(value.stage_trace?.completed_work_unit)));
30
+ if(atBoundary&&!boundary)throw new Error('checkpoint-boundary: 当前边界缺少 phase_boundary');
31
+ if(atBoundary&&!value.stage_trace)throw new Error('checkpoint-boundary: 当前边界缺少 stage_trace');
32
+ if(value.stage_trace!==undefined) {
33
+ const trace=value.stage_trace;
34
+ if(!trace||Array.isArray(trace)||typeof trace!=='object')throw new Error('checkpoint-boundary: stage_trace 必须为对象');
35
+ for(const key of contract.checkpoint_policy.required_stage_trace_fields) {
36
+ if(key==='stage'){if(!stages.has(trace.stage)||trace.stage!==value.stage)throw new Error('checkpoint-boundary: stage_trace.stage 不一致');}
37
+ else if(!Array.isArray(trace[key]))throw new Error(`checkpoint-boundary: stage_trace.${key} 必须为数组`);
38
+ }
39
+ if(trace.completed_work_unit!==undefined&&!registry.work_units.some(x=>x.id===trace.completed_work_unit))throw new Error('checkpoint-boundary: completed_work_unit 非法');
40
+ for(const key of ['upstream_refs','artifact_refs'])for(const ref of trace[key])reference(typeof ref==='string'?ref:ref?.ref,key);
41
+ }
42
+ return {status:'passed',execution_authorization:'not-evaluated'};
43
+ }