create-yss-spec 3.5.3 → 3.5.4

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 (1654) hide show
  1. package/package.json +1 -1
  2. package/src/template/asset-runtime.js +20 -5
  3. package/template/.agents/skills/.strategic-design-skills-manifest.json +5 -5
  4. package/template/.agents/skills/archify/SKILL.md +4 -52
  5. package/template/.agents/skills/archify/references/authoring-notes.md +12 -0
  6. package/template/.agents/skills/archify/references/authoring-workflow.md +25 -0
  7. package/template/.agents/skills/archify/references/delivery-workflow.md +25 -0
  8. package/template/.agents/skills/archify/references/upstream-updates.md +12 -0
  9. package/template/.agents/skills/code-review/SKILL.md +3 -34
  10. package/template/.agents/skills/code-review/references/legacy-convergence.md +5 -0
  11. package/template/.agents/skills/code-review/references/review-axis-checklists.md +18 -0
  12. package/template/.agents/skills/code-review/references/smell-baseline.md +23 -0
  13. package/template/.agents/skills/diagnosing-bugs/SKILL.md +3 -91
  14. package/template/.agents/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  15. package/template/.agents/skills/diagnosing-bugs/references/investigation.md +49 -0
  16. package/template/.agents/skills/git-commit-core/agents/openai.yaml +2 -0
  17. package/template/.agents/skills/maintaining-skills/references/authoring.md +6 -0
  18. package/template/.agents/skills/prototype-review/SKILL.md +11 -0
  19. package/template/.agents/skills/prototype-review/references/component-qa.md +32 -0
  20. package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  21. package/template/.agents/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  22. package/template/.agents/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  23. package/template/.agents/skills/to-spec/SKILL.md +9 -62
  24. package/template/.agents/skills/to-tickets/SKILL.md +20 -86
  25. package/template/.agents/skills/using-git-worktrees/SKILL.md +5 -122
  26. package/template/.agents/skills/using-git-worktrees/references/git-fallback.md +46 -0
  27. package/template/.agents/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  28. package/template/.agents/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  29. package/template/.agents/skills/wayfinder/SKILL.md +7 -86
  30. package/template/.agents/skills/wayfinder/references/chart-map.md +14 -0
  31. package/template/.agents/skills/wayfinder/references/map-format.md +49 -0
  32. package/template/.agents/skills/wayfinder/references/scope-and-frontier.md +24 -0
  33. package/template/.agents/skills/wayfinder/references/ticket-types.md +12 -0
  34. package/template/.agents/skills/wayfinder/references/work-map.md +15 -0
  35. package/template/.agents/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  36. package/template/.agents/skills/yedit-table-usage/SKILL.md +5 -172
  37. package/template/.agents/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  38. package/template/.agents/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  39. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  40. package/template/.agents/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  41. package/template/.agents/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  42. package/template/.agents/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  43. package/template/.agents/skills/yss-design-system/SKILL.md +13 -3
  44. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  45. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  46. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  47. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  48. package/template/.agents/skills/yss-design-system/references/data-quality-theme.md +2 -2
  49. package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +1 -1
  50. package/template/.agents/skills/yss-design-system/references/design-system.md +3 -3
  51. package/template/.agents/skills/yss-design-system/references/enterprise-craft.md +33 -0
  52. package/template/.agents/skills/yss-design-system/references/page-composition.md +24 -0
  53. package/template/.agents/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  54. package/template/.agents/skills/yss-design-system/references/search-date-theme.md +19 -0
  55. package/template/.agents/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  56. package/template/.agents/skills/yss-hook/SKILL.md +8 -102
  57. package/template/.agents/skills/yss-hook/references/async-actions.md +49 -0
  58. package/template/.agents/skills/yss-hook/references/list-pagination.md +46 -0
  59. package/template/.agents/skills/yss-hook/references/polling.md +20 -0
  60. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  61. package/template/.agents/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  62. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +2 -49
  63. package/template/.agents/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  64. package/template/.agents/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  65. package/template/.agents/skills/yss-openapi-governance/SKILL.md +2 -48
  66. package/template/.agents/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  67. package/template/.agents/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  68. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +20 -16
  69. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  70. package/template/.agents/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  71. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +2 -2
  72. package/template/.agents/skills/yss-prototype-stage/SKILL.md +27 -8
  73. package/template/.agents/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  74. package/template/.agents/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  75. package/template/.agents/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  76. package/template/.agents/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  77. package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  78. package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  79. package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  80. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  81. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  82. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  83. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  84. package/template/.agents/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  85. package/template/.agents/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  86. package/template/.agents/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  87. package/template/.agents/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  88. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  89. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  90. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  91. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  92. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  93. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  94. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  95. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  96. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  97. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  98. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  99. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  100. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  101. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  102. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  103. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  104. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  105. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  106. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  107. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  108. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  109. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  110. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  111. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  112. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  113. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  114. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  115. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  116. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  117. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  118. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  119. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  120. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  121. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  122. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  123. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  124. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  125. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  126. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  127. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  128. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  129. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  130. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  131. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  132. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  133. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  134. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  135. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  136. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  137. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  138. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  139. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  140. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  141. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  142. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  143. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  144. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  145. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  146. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  147. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  148. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  149. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  150. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  151. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  152. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  153. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  154. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  155. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  156. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  157. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  158. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  159. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  160. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  161. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  162. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  163. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  164. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  165. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  166. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  167. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  168. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  169. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  170. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  171. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  172. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  173. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  174. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  175. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  176. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  177. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  178. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  179. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  180. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  181. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  182. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  183. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  184. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  185. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  186. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  187. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  188. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  189. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  190. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  191. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  192. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  193. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  194. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  195. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  196. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  197. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  198. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  199. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  200. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  201. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  202. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  203. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  204. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  205. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  206. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  207. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  208. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  209. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  210. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  211. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  212. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  213. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  214. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  215. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  216. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  217. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  218. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  219. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  220. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  221. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  222. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  223. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  224. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  225. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  226. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  227. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  228. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  229. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  230. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  231. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  232. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  233. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  234. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  235. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  236. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  237. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  238. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  239. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  240. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  241. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  242. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  243. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  244. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  245. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  246. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  247. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  248. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  249. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  250. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  251. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  252. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  253. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  254. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  255. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  256. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  257. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  258. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  259. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  260. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  261. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  262. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  263. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  264. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  265. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  266. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  267. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  268. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  269. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  270. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  271. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  272. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  273. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  274. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  275. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  276. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  277. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  278. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  279. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  280. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  281. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  282. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  283. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  284. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  285. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  286. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  287. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  288. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  289. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  290. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  291. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  292. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  293. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  294. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  295. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  296. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  297. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  298. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  299. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  300. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  301. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  302. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  303. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  304. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  305. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  306. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  307. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  308. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  309. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  310. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  311. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  312. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  313. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  314. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  315. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  316. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  317. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  318. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  319. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  320. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  321. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  322. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  323. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  324. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  325. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  326. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  327. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  328. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  329. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  330. package/template/.agents/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  331. package/template/.agents/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  332. package/template/.agents/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  333. package/template/.agents/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  334. package/template/.agents/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  335. package/template/.agents/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  336. package/template/.agents/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  337. package/template/.agents/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  338. package/template/.agents/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  339. package/template/.agents/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  340. package/template/.agents/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  341. package/template/.agents/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  342. package/template/.agents/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  343. package/template/.agents/skills/yss-prototype-stage/references/usability-research.md +26 -0
  344. package/template/.agents/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  345. package/template/.agents/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  346. package/template/.agents/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  347. package/template/.agents/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  348. package/template/.agents/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  349. package/template/.agents/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  350. package/template/.agents/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  351. package/template/.agents/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  352. package/template/.agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  353. package/template/.agents/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  354. package/template/.agents/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  355. package/template/.agents/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  356. package/template/.agents/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  357. package/template/.agents/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  358. package/template/.agents/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  359. package/template/.agents/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  360. package/template/.agents/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  361. package/template/.agents/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  362. package/template/.agents/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  363. package/template/.agents/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  364. package/template/.agents/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  365. package/template/.agents/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  366. package/template/.agents/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  367. package/template/.agents/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  368. package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  369. package/template/.agents/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  370. package/template/.agents/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  371. package/template/.agents/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  372. package/template/.agents/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  373. package/template/.agents/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  374. package/template/.agents/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  375. package/template/.agents/skills/yss-stage-decision/SKILL.md +2 -0
  376. package/template/.agents/skills/yss-technical-design/SKILL.md +4 -0
  377. package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  378. package/template/.agents/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  379. package/template/.agents/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  380. package/template/.agents/skills/ytable-usage/SKILL.md +3 -191
  381. package/template/.agents/skills/ytable-usage/references/selection-and-batch.md +30 -0
  382. package/template/.agents/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  383. package/template/.codex/skills/archify/SKILL.md +4 -52
  384. package/template/.codex/skills/archify/references/authoring-notes.md +12 -0
  385. package/template/.codex/skills/archify/references/authoring-workflow.md +25 -0
  386. package/template/.codex/skills/archify/references/delivery-workflow.md +25 -0
  387. package/template/.codex/skills/archify/references/upstream-updates.md +12 -0
  388. package/template/.codex/skills/code-review/SKILL.md +3 -34
  389. package/template/.codex/skills/code-review/references/legacy-convergence.md +5 -0
  390. package/template/.codex/skills/code-review/references/review-axis-checklists.md +18 -0
  391. package/template/.codex/skills/code-review/references/smell-baseline.md +23 -0
  392. package/template/.codex/skills/diagnosing-bugs/SKILL.md +3 -91
  393. package/template/.codex/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  394. package/template/.codex/skills/diagnosing-bugs/references/investigation.md +49 -0
  395. package/template/.codex/skills/git-commit-core/agents/openai.yaml +2 -0
  396. package/template/.codex/skills/maintaining-skills/references/authoring.md +6 -0
  397. package/template/.codex/skills/prototype-review/SKILL.md +11 -0
  398. package/template/.codex/skills/prototype-review/references/component-qa.md +32 -0
  399. package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  400. package/template/.codex/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  401. package/template/.codex/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  402. package/template/.codex/skills/to-spec/SKILL.md +9 -62
  403. package/template/.codex/skills/to-tickets/SKILL.md +20 -86
  404. package/template/.codex/skills/using-git-worktrees/SKILL.md +5 -122
  405. package/template/.codex/skills/using-git-worktrees/references/git-fallback.md +46 -0
  406. package/template/.codex/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  407. package/template/.codex/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  408. package/template/.codex/skills/wayfinder/SKILL.md +7 -86
  409. package/template/.codex/skills/wayfinder/references/chart-map.md +14 -0
  410. package/template/.codex/skills/wayfinder/references/map-format.md +49 -0
  411. package/template/.codex/skills/wayfinder/references/scope-and-frontier.md +24 -0
  412. package/template/.codex/skills/wayfinder/references/ticket-types.md +12 -0
  413. package/template/.codex/skills/wayfinder/references/work-map.md +15 -0
  414. package/template/.codex/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  415. package/template/.codex/skills/yedit-table-usage/SKILL.md +5 -172
  416. package/template/.codex/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  417. package/template/.codex/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  418. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  419. package/template/.codex/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  420. package/template/.codex/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  421. package/template/.codex/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  422. package/template/.codex/skills/yss-design-system/SKILL.md +13 -3
  423. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  424. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  425. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  426. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  427. package/template/.codex/skills/yss-design-system/references/data-quality-theme.md +2 -2
  428. package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +1 -1
  429. package/template/.codex/skills/yss-design-system/references/design-system.md +3 -3
  430. package/template/.codex/skills/yss-design-system/references/enterprise-craft.md +33 -0
  431. package/template/.codex/skills/yss-design-system/references/page-composition.md +24 -0
  432. package/template/.codex/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  433. package/template/.codex/skills/yss-design-system/references/search-date-theme.md +19 -0
  434. package/template/.codex/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  435. package/template/.codex/skills/yss-hook/SKILL.md +8 -102
  436. package/template/.codex/skills/yss-hook/references/async-actions.md +49 -0
  437. package/template/.codex/skills/yss-hook/references/list-pagination.md +46 -0
  438. package/template/.codex/skills/yss-hook/references/polling.md +20 -0
  439. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  440. package/template/.codex/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  441. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +2 -49
  442. package/template/.codex/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  443. package/template/.codex/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  444. package/template/.codex/skills/yss-openapi-governance/SKILL.md +2 -48
  445. package/template/.codex/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  446. package/template/.codex/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  447. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +20 -16
  448. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  449. package/template/.codex/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  450. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +2 -2
  451. package/template/.codex/skills/yss-prototype-stage/SKILL.md +27 -8
  452. package/template/.codex/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  453. package/template/.codex/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  454. package/template/.codex/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  455. package/template/.codex/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  456. package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  457. package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  458. package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  459. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  460. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  461. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  462. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  463. package/template/.codex/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  464. package/template/.codex/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  465. package/template/.codex/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  466. package/template/.codex/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  467. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  468. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  469. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  470. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  471. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  472. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  473. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  474. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  475. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  476. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  477. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  478. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  479. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  480. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  481. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  482. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  483. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  484. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  485. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  486. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  487. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  488. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  489. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  490. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  491. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  492. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  493. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  494. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  495. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  496. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  497. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  498. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  499. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  500. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  501. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  502. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  503. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  504. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  505. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  506. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  507. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  508. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  509. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  510. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  511. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  512. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  513. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  514. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  515. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  516. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  517. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  518. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  519. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  520. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  521. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  522. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  523. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  524. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  525. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  526. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  527. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  528. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  529. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  530. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  531. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  532. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  533. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  534. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  535. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  536. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  537. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  538. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  539. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  540. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  541. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  542. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  543. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  544. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  545. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  546. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  547. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  548. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  549. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  550. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  551. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  552. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  553. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  554. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  555. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  556. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  557. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  558. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  559. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  560. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  561. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  562. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  563. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  564. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  565. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  566. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  567. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  568. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  569. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  570. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  571. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  572. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  573. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  574. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  575. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  576. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  577. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  578. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  579. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  580. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  581. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  582. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  583. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  584. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  585. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  586. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  587. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  588. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  589. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  590. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  591. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  592. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  593. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  594. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  595. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  596. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  597. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  598. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  599. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  600. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  601. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  602. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  603. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  604. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  605. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  606. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  607. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  608. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  609. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  610. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  611. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  612. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  613. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  614. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  615. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  616. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  617. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  618. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  619. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  620. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  621. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  622. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  623. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  624. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  625. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  626. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  627. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  628. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  629. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  630. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  631. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  632. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  633. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  634. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  635. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  636. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  637. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  638. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  639. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  640. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  641. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  642. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  643. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  644. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  645. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  646. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  647. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  648. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  649. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  650. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  651. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  652. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  653. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  654. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  655. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  656. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  657. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  658. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  659. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  660. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  661. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  662. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  663. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  664. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  665. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  666. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  667. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  668. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  669. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  670. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  671. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  672. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  673. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  674. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  675. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  676. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  677. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  678. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  679. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  680. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  681. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  682. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  683. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  684. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  685. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  686. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  687. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  688. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  689. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  690. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  691. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  692. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  693. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  694. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  695. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  696. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  697. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  698. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  699. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  700. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  701. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  702. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  703. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  704. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  705. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  706. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  707. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  708. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  709. package/template/.codex/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  710. package/template/.codex/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  711. package/template/.codex/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  712. package/template/.codex/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  713. package/template/.codex/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  714. package/template/.codex/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  715. package/template/.codex/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  716. package/template/.codex/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  717. package/template/.codex/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  718. package/template/.codex/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  719. package/template/.codex/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  720. package/template/.codex/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  721. package/template/.codex/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  722. package/template/.codex/skills/yss-prototype-stage/references/usability-research.md +26 -0
  723. package/template/.codex/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  724. package/template/.codex/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  725. package/template/.codex/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  726. package/template/.codex/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  727. package/template/.codex/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  728. package/template/.codex/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  729. package/template/.codex/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  730. package/template/.codex/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  731. package/template/.codex/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  732. package/template/.codex/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  733. package/template/.codex/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  734. package/template/.codex/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  735. package/template/.codex/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  736. package/template/.codex/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  737. package/template/.codex/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  738. package/template/.codex/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  739. package/template/.codex/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  740. package/template/.codex/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  741. package/template/.codex/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  742. package/template/.codex/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  743. package/template/.codex/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  744. package/template/.codex/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  745. package/template/.codex/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  746. package/template/.codex/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  747. package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  748. package/template/.codex/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  749. package/template/.codex/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  750. package/template/.codex/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  751. package/template/.codex/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  752. package/template/.codex/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  753. package/template/.codex/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  754. package/template/.codex/skills/yss-stage-decision/SKILL.md +2 -0
  755. package/template/.codex/skills/yss-technical-design/SKILL.md +4 -0
  756. package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  757. package/template/.codex/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  758. package/template/.codex/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  759. package/template/.codex/skills/ytable-usage/SKILL.md +3 -191
  760. package/template/.codex/skills/ytable-usage/references/selection-and-batch.md +30 -0
  761. package/template/.codex/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  762. package/template/.cursor/skills/archify/SKILL.md +4 -52
  763. package/template/.cursor/skills/archify/references/authoring-notes.md +12 -0
  764. package/template/.cursor/skills/archify/references/authoring-workflow.md +25 -0
  765. package/template/.cursor/skills/archify/references/delivery-workflow.md +25 -0
  766. package/template/.cursor/skills/archify/references/upstream-updates.md +12 -0
  767. package/template/.cursor/skills/code-review/SKILL.md +3 -34
  768. package/template/.cursor/skills/code-review/references/legacy-convergence.md +5 -0
  769. package/template/.cursor/skills/code-review/references/review-axis-checklists.md +18 -0
  770. package/template/.cursor/skills/code-review/references/smell-baseline.md +23 -0
  771. package/template/.cursor/skills/diagnosing-bugs/SKILL.md +3 -91
  772. package/template/.cursor/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  773. package/template/.cursor/skills/diagnosing-bugs/references/investigation.md +49 -0
  774. package/template/.cursor/skills/git-commit-core/agents/openai.yaml +2 -0
  775. package/template/.cursor/skills/maintaining-skills/references/authoring.md +6 -0
  776. package/template/.cursor/skills/prototype-review/SKILL.md +11 -0
  777. package/template/.cursor/skills/prototype-review/references/component-qa.md +32 -0
  778. package/template/.cursor/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  779. package/template/.cursor/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  780. package/template/.cursor/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  781. package/template/.cursor/skills/to-spec/SKILL.md +9 -62
  782. package/template/.cursor/skills/to-tickets/SKILL.md +20 -86
  783. package/template/.cursor/skills/using-git-worktrees/SKILL.md +5 -122
  784. package/template/.cursor/skills/using-git-worktrees/references/git-fallback.md +46 -0
  785. package/template/.cursor/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  786. package/template/.cursor/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  787. package/template/.cursor/skills/wayfinder/SKILL.md +7 -86
  788. package/template/.cursor/skills/wayfinder/references/chart-map.md +14 -0
  789. package/template/.cursor/skills/wayfinder/references/map-format.md +49 -0
  790. package/template/.cursor/skills/wayfinder/references/scope-and-frontier.md +24 -0
  791. package/template/.cursor/skills/wayfinder/references/ticket-types.md +12 -0
  792. package/template/.cursor/skills/wayfinder/references/work-map.md +15 -0
  793. package/template/.cursor/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  794. package/template/.cursor/skills/yedit-table-usage/SKILL.md +5 -172
  795. package/template/.cursor/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  796. package/template/.cursor/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  797. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  798. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  799. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  800. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  801. package/template/.cursor/skills/yss-design-system/SKILL.md +13 -3
  802. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  803. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  804. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  805. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  806. package/template/.cursor/skills/yss-design-system/references/data-quality-theme.md +2 -2
  807. package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +1 -1
  808. package/template/.cursor/skills/yss-design-system/references/design-system.md +3 -3
  809. package/template/.cursor/skills/yss-design-system/references/enterprise-craft.md +33 -0
  810. package/template/.cursor/skills/yss-design-system/references/page-composition.md +24 -0
  811. package/template/.cursor/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  812. package/template/.cursor/skills/yss-design-system/references/search-date-theme.md +19 -0
  813. package/template/.cursor/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  814. package/template/.cursor/skills/yss-hook/SKILL.md +8 -102
  815. package/template/.cursor/skills/yss-hook/references/async-actions.md +49 -0
  816. package/template/.cursor/skills/yss-hook/references/list-pagination.md +46 -0
  817. package/template/.cursor/skills/yss-hook/references/polling.md +20 -0
  818. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  819. package/template/.cursor/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  820. package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +2 -49
  821. package/template/.cursor/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  822. package/template/.cursor/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  823. package/template/.cursor/skills/yss-openapi-governance/SKILL.md +2 -48
  824. package/template/.cursor/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  825. package/template/.cursor/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  826. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +20 -16
  827. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  828. package/template/.cursor/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  829. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +2 -2
  830. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +27 -8
  831. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  832. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  833. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  834. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  835. package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  836. package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  837. package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  838. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  839. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  840. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  841. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  842. package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  843. package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  844. package/template/.cursor/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  845. package/template/.cursor/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  846. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  847. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  848. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  849. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  850. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  851. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  852. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  853. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  854. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  855. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  856. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  857. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  858. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  859. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  860. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  861. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  862. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  863. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  864. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  865. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  866. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  867. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  868. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  869. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  870. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  871. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  872. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  873. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  874. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  875. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  876. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  877. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  878. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  879. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  880. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  881. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  882. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  883. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  884. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  885. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  886. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  887. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  888. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  889. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  890. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  891. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  892. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  893. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  894. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  895. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  896. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  897. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  898. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  899. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  900. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  901. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  902. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  903. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  904. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  905. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  906. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  907. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  908. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  909. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  910. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  911. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  912. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  913. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  914. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  915. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  916. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  917. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  918. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  919. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  920. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  921. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  922. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  923. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  924. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  925. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  926. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  927. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  928. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  929. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  930. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  931. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  932. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  933. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  934. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  935. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  936. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  937. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  938. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  939. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  940. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  941. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  942. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  943. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  944. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  945. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  946. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  947. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  948. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  949. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  950. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  951. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  952. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  953. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  954. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  955. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  956. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  957. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  958. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  959. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  960. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  961. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  962. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  963. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  964. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  965. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  966. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  967. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  968. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  969. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  970. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  971. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  972. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  973. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  974. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  975. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  976. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  977. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  978. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  979. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  980. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  981. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  982. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  983. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  984. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  985. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  986. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  987. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  988. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  989. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  990. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  991. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  992. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  993. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  994. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  995. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  996. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  997. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  998. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  999. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  1000. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  1001. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  1002. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  1003. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  1004. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  1005. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  1006. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  1007. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  1008. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  1009. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  1010. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  1011. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  1012. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  1013. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  1014. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  1015. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  1016. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  1017. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  1018. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  1019. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  1020. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  1021. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  1022. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  1023. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  1024. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  1025. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  1026. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  1027. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  1028. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  1029. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  1030. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  1031. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  1032. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  1033. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  1034. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  1035. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  1036. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  1037. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  1038. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  1039. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  1040. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  1041. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  1042. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  1043. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  1044. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  1045. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  1046. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  1047. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  1048. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  1049. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  1050. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  1051. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  1052. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  1053. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  1054. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  1055. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  1056. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  1057. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  1058. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  1059. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  1060. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  1061. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  1062. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  1063. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  1064. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  1065. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  1066. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  1067. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  1068. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  1069. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  1070. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  1071. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  1072. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  1073. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  1074. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  1075. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  1076. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  1077. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  1078. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  1079. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  1080. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  1081. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  1082. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  1083. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  1084. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  1085. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  1086. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  1087. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  1088. package/template/.cursor/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  1089. package/template/.cursor/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  1090. package/template/.cursor/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  1091. package/template/.cursor/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  1092. package/template/.cursor/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  1093. package/template/.cursor/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  1094. package/template/.cursor/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  1095. package/template/.cursor/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  1096. package/template/.cursor/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  1097. package/template/.cursor/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  1098. package/template/.cursor/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  1099. package/template/.cursor/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  1100. package/template/.cursor/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  1101. package/template/.cursor/skills/yss-prototype-stage/references/usability-research.md +26 -0
  1102. package/template/.cursor/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  1103. package/template/.cursor/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  1104. package/template/.cursor/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  1105. package/template/.cursor/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  1106. package/template/.cursor/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  1107. package/template/.cursor/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  1108. package/template/.cursor/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  1109. package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  1110. package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  1111. package/template/.cursor/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  1112. package/template/.cursor/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  1113. package/template/.cursor/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  1114. package/template/.cursor/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  1115. package/template/.cursor/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  1116. package/template/.cursor/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  1117. package/template/.cursor/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  1118. package/template/.cursor/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  1119. package/template/.cursor/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  1120. package/template/.cursor/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  1121. package/template/.cursor/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  1122. package/template/.cursor/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  1123. package/template/.cursor/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  1124. package/template/.cursor/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  1125. package/template/.cursor/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  1126. package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  1127. package/template/.cursor/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  1128. package/template/.cursor/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  1129. package/template/.cursor/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  1130. package/template/.cursor/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  1131. package/template/.cursor/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  1132. package/template/.cursor/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  1133. package/template/.cursor/skills/yss-stage-decision/SKILL.md +2 -0
  1134. package/template/.cursor/skills/yss-technical-design/SKILL.md +4 -0
  1135. package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  1136. package/template/.cursor/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  1137. package/template/.cursor/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  1138. package/template/.cursor/skills/ytable-usage/SKILL.md +3 -191
  1139. package/template/.cursor/skills/ytable-usage/references/selection-and-batch.md +30 -0
  1140. package/template/.cursor/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  1141. package/template/.pi/skills/archify/SKILL.md +4 -52
  1142. package/template/.pi/skills/archify/references/authoring-notes.md +12 -0
  1143. package/template/.pi/skills/archify/references/authoring-workflow.md +25 -0
  1144. package/template/.pi/skills/archify/references/delivery-workflow.md +25 -0
  1145. package/template/.pi/skills/archify/references/upstream-updates.md +12 -0
  1146. package/template/.pi/skills/code-review/SKILL.md +3 -34
  1147. package/template/.pi/skills/code-review/references/legacy-convergence.md +5 -0
  1148. package/template/.pi/skills/code-review/references/review-axis-checklists.md +18 -0
  1149. package/template/.pi/skills/code-review/references/smell-baseline.md +23 -0
  1150. package/template/.pi/skills/diagnosing-bugs/SKILL.md +3 -91
  1151. package/template/.pi/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  1152. package/template/.pi/skills/diagnosing-bugs/references/investigation.md +49 -0
  1153. package/template/.pi/skills/git-commit-core/agents/openai.yaml +2 -0
  1154. package/template/.pi/skills/maintaining-skills/references/authoring.md +6 -0
  1155. package/template/.pi/skills/prototype-review/SKILL.md +11 -0
  1156. package/template/.pi/skills/prototype-review/references/component-qa.md +32 -0
  1157. package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  1158. package/template/.pi/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  1159. package/template/.pi/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  1160. package/template/.pi/skills/to-spec/SKILL.md +9 -62
  1161. package/template/.pi/skills/to-tickets/SKILL.md +20 -86
  1162. package/template/.pi/skills/using-git-worktrees/SKILL.md +5 -122
  1163. package/template/.pi/skills/using-git-worktrees/references/git-fallback.md +46 -0
  1164. package/template/.pi/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  1165. package/template/.pi/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  1166. package/template/.pi/skills/wayfinder/SKILL.md +7 -86
  1167. package/template/.pi/skills/wayfinder/references/chart-map.md +14 -0
  1168. package/template/.pi/skills/wayfinder/references/map-format.md +49 -0
  1169. package/template/.pi/skills/wayfinder/references/scope-and-frontier.md +24 -0
  1170. package/template/.pi/skills/wayfinder/references/ticket-types.md +12 -0
  1171. package/template/.pi/skills/wayfinder/references/work-map.md +15 -0
  1172. package/template/.pi/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  1173. package/template/.pi/skills/yedit-table-usage/SKILL.md +5 -172
  1174. package/template/.pi/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  1175. package/template/.pi/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  1176. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  1177. package/template/.pi/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  1178. package/template/.pi/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  1179. package/template/.pi/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  1180. package/template/.pi/skills/yss-design-system/SKILL.md +13 -3
  1181. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  1182. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  1183. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  1184. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  1185. package/template/.pi/skills/yss-design-system/references/data-quality-theme.md +2 -2
  1186. package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +1 -1
  1187. package/template/.pi/skills/yss-design-system/references/design-system.md +3 -3
  1188. package/template/.pi/skills/yss-design-system/references/enterprise-craft.md +33 -0
  1189. package/template/.pi/skills/yss-design-system/references/page-composition.md +24 -0
  1190. package/template/.pi/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  1191. package/template/.pi/skills/yss-design-system/references/search-date-theme.md +19 -0
  1192. package/template/.pi/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  1193. package/template/.pi/skills/yss-hook/SKILL.md +8 -102
  1194. package/template/.pi/skills/yss-hook/references/async-actions.md +49 -0
  1195. package/template/.pi/skills/yss-hook/references/list-pagination.md +46 -0
  1196. package/template/.pi/skills/yss-hook/references/polling.md +20 -0
  1197. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  1198. package/template/.pi/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  1199. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +2 -49
  1200. package/template/.pi/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  1201. package/template/.pi/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  1202. package/template/.pi/skills/yss-openapi-governance/SKILL.md +2 -48
  1203. package/template/.pi/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  1204. package/template/.pi/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  1205. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +20 -16
  1206. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  1207. package/template/.pi/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  1208. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +2 -2
  1209. package/template/.pi/skills/yss-prototype-stage/SKILL.md +27 -8
  1210. package/template/.pi/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  1211. package/template/.pi/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  1212. package/template/.pi/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  1213. package/template/.pi/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  1214. package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  1215. package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  1216. package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  1217. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  1218. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  1219. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  1220. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  1221. package/template/.pi/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  1222. package/template/.pi/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  1223. package/template/.pi/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  1224. package/template/.pi/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  1225. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  1226. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  1227. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  1228. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  1229. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  1230. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  1231. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  1232. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  1233. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  1234. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  1235. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  1236. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  1237. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  1238. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  1239. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  1240. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  1241. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  1242. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  1243. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  1244. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  1245. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  1246. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  1247. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  1248. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  1249. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  1250. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  1251. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  1252. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  1253. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  1254. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  1255. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  1256. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  1257. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  1258. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  1259. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  1260. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  1261. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  1262. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  1263. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  1264. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  1265. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  1266. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  1267. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  1268. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  1269. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  1270. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  1271. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  1272. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  1273. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  1274. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  1275. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  1276. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  1277. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  1278. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  1279. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  1280. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  1281. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  1282. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  1283. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  1284. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  1285. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  1286. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  1287. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  1288. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  1289. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  1290. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  1291. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  1292. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  1293. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  1294. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  1295. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  1296. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  1297. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  1298. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  1299. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  1300. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  1301. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  1302. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  1303. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  1304. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  1305. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  1306. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  1307. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  1308. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  1309. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  1310. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  1311. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  1312. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  1313. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  1314. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  1315. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  1316. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  1317. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  1318. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  1319. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  1320. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  1321. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  1322. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  1323. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  1324. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  1325. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  1326. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  1327. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  1328. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  1329. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  1330. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  1331. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  1332. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  1333. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  1334. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  1335. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  1336. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  1337. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  1338. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  1339. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  1340. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  1341. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  1342. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  1343. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  1344. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  1345. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  1346. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  1347. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  1348. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  1349. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  1350. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  1351. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  1352. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  1353. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  1354. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  1355. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  1356. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  1357. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  1358. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  1359. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  1360. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  1361. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  1362. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  1363. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  1364. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  1365. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  1366. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  1367. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  1368. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  1369. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  1370. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  1371. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  1372. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  1373. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  1374. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  1375. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  1376. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  1377. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  1378. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  1379. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  1380. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  1381. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  1382. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  1383. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  1384. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  1385. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  1386. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  1387. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  1388. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  1389. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  1390. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  1391. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  1392. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  1393. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  1394. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  1395. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  1396. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  1397. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  1398. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  1399. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  1400. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  1401. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  1402. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  1403. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  1404. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  1405. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  1406. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  1407. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  1408. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  1409. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  1410. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  1411. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  1412. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  1413. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  1414. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  1415. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  1416. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  1417. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  1418. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  1419. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  1420. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  1421. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  1422. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  1423. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  1424. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  1425. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  1426. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  1427. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  1428. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  1429. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  1430. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  1431. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  1432. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  1433. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  1434. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  1435. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  1436. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  1437. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  1438. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  1439. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  1440. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  1441. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  1442. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  1443. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  1444. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  1445. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  1446. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  1447. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  1448. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  1449. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  1450. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  1451. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  1452. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  1453. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  1454. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  1455. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  1456. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  1457. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  1458. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  1459. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  1460. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  1461. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  1462. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  1463. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  1464. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  1465. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  1466. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  1467. package/template/.pi/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  1468. package/template/.pi/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  1469. package/template/.pi/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  1470. package/template/.pi/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  1471. package/template/.pi/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  1472. package/template/.pi/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  1473. package/template/.pi/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  1474. package/template/.pi/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  1475. package/template/.pi/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  1476. package/template/.pi/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  1477. package/template/.pi/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  1478. package/template/.pi/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  1479. package/template/.pi/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  1480. package/template/.pi/skills/yss-prototype-stage/references/usability-research.md +26 -0
  1481. package/template/.pi/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  1482. package/template/.pi/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  1483. package/template/.pi/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  1484. package/template/.pi/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  1485. package/template/.pi/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  1486. package/template/.pi/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  1487. package/template/.pi/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  1488. package/template/.pi/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  1489. package/template/.pi/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  1490. package/template/.pi/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  1491. package/template/.pi/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  1492. package/template/.pi/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  1493. package/template/.pi/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  1494. package/template/.pi/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  1495. package/template/.pi/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  1496. package/template/.pi/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  1497. package/template/.pi/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  1498. package/template/.pi/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  1499. package/template/.pi/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  1500. package/template/.pi/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  1501. package/template/.pi/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  1502. package/template/.pi/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  1503. package/template/.pi/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  1504. package/template/.pi/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  1505. package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  1506. package/template/.pi/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  1507. package/template/.pi/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  1508. package/template/.pi/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  1509. package/template/.pi/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  1510. package/template/.pi/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  1511. package/template/.pi/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  1512. package/template/.pi/skills/yss-stage-decision/SKILL.md +2 -0
  1513. package/template/.pi/skills/yss-technical-design/SKILL.md +4 -0
  1514. package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  1515. package/template/.pi/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  1516. package/template/.pi/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  1517. package/template/.pi/skills/ytable-usage/SKILL.md +3 -191
  1518. package/template/.pi/skills/ytable-usage/references/selection-and-batch.md +30 -0
  1519. package/template/.pi/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  1520. package/template/.template-spec/agents/digital-human-roles.yaml +2 -2
  1521. package/template/.template-spec/agents/issue-tracker.md +10 -1
  1522. package/template/.template-spec/agents/yss-skill-registry.yaml +41 -0
  1523. package/template/.template-spec/design/README.md +7 -2
  1524. package/template/.template-spec/design/design.md +30 -35
  1525. package/template/.template-spec/design/templates/examples/model-publishing-interaction.example.md +2 -2
  1526. package/template/.template-spec/design/templates/interaction-spec-template.md +24 -0
  1527. package/template/.template-spec/design/templates/prototype-evidence-template.yaml +18 -5
  1528. package/template/.template-spec/design/templates/prototype-review-checklist.md +8 -0
  1529. package/template/.template-spec/design/tokens/.design-md-projection.json +2 -2
  1530. package/template/.template-spec/design/tokens/variables.css +162 -0
  1531. package/template/.template-spec/plan/templates/plan-template.md +25 -1
  1532. package/template/.template-spec/process/business-tickets.md +48 -0
  1533. package/template/.template-spec/process/checkpoint-boundary.yaml +73 -0
  1534. package/template/.template-spec/process/contract-reading.md +35 -0
  1535. package/template/.template-spec/process/document-writing.md +2 -0
  1536. package/template/.template-spec/process/feature-assets.md +38 -0
  1537. package/template/.template-spec/process/lifecycle-artifact-map.md +1 -0
  1538. package/template/.template-spec/process/lifecycle-registry-baseline.json +9 -5
  1539. package/template/.template-spec/process/lifecycle-registry.yaml +15 -5
  1540. package/template/.template-spec/process/plan-spec-quality.md +69 -0
  1541. package/template/.template-spec/process/project-ci.md +21 -0
  1542. package/template/.template-spec/process/reading-policy.yaml +4 -0
  1543. package/template/.template-spec/process/schemas/business-tickets-v1.schema.json +449 -0
  1544. package/template/.template-spec/process/schemas/domain-strategy-reading.schema.json +216 -0
  1545. package/template/.template-spec/process/schemas/lifecycle-checkpoint.schema.json +203 -11
  1546. package/template/.template-spec/process/schemas/reading-manifest.schema.json +14 -0
  1547. package/template/.template-spec/process/schemas/reading-policy.schema.json +10 -0
  1548. package/template/.template-spec/process/schemas/stage-decision-package-reading.schema.json +148 -0
  1549. package/template/.template-spec/process/stage-tracking.md +8 -0
  1550. package/template/.template-spec/process/strategic-handoff-package.md +3 -1
  1551. package/template/.template-spec/process/templates/stage-checkpoint-template.md +6 -1
  1552. package/template/.template-spec/templates/business-ticket-review-template.yaml +11 -0
  1553. package/template/.template-spec/templates/business-ticket-set-template.yaml +16 -0
  1554. package/template/.template-spec/templates/business-ticket-template.md +38 -0
  1555. package/template/.template-spec/templates/examples/lifecycle-writing-examples.md +16 -0
  1556. package/template/.template-spec/templates/examples/plan-spec/complex-defective.md +38 -0
  1557. package/template/.template-spec/templates/examples/plan-spec/complex-source.md +12 -0
  1558. package/template/.template-spec/templates/examples/plan-spec/complex-valid.md +38 -0
  1559. package/template/.template-spec/templates/examples/plan-spec/expectations.json +46 -0
  1560. package/template/.template-spec/templates/examples/plan-spec/high-risk-before.md +32 -0
  1561. package/template/.template-spec/templates/examples/plan-spec/high-risk-defective.md +39 -0
  1562. package/template/.template-spec/templates/examples/plan-spec/high-risk-source.md +11 -0
  1563. package/template/.template-spec/templates/examples/plan-spec/high-risk-valid.md +39 -0
  1564. package/template/.template-spec/templates/examples/plan-spec/ordinary-defective.md +36 -0
  1565. package/template/.template-spec/templates/examples/plan-spec/ordinary-plan.md +27 -0
  1566. package/template/.template-spec/templates/examples/plan-spec/ordinary-source.md +14 -0
  1567. package/template/.template-spec/templates/examples/plan-spec/ordinary-valid.md +36 -0
  1568. package/template/.template-spec/templates/local-parent-ticket-template.md +23 -15
  1569. package/template/.template-spec/templates/spec-delta-template.md +7 -5
  1570. package/template/.template-spec/templates/spec-template.md +31 -15
  1571. package/template/.template-spec/templates/vertical-slice-ticket-template.md +4 -0
  1572. package/template/AGENTS.md +1 -1
  1573. package/template/CONTEXT.md +1 -0
  1574. package/template/DESIGN.md +23 -4
  1575. package/template/scripts/contract +14 -2
  1576. package/template/scripts/feature-assets +23 -0
  1577. package/template/scripts/inspect-plan-spec +32 -0
  1578. package/template/scripts/inspect-skill-discovery +24 -0
  1579. package/template/scripts/lib/business-ticket-lifecycle.mjs +34 -0
  1580. package/template/scripts/lib/business-tickets.mjs +273 -0
  1581. package/template/scripts/lib/checkpoint-boundary.mjs +40 -0
  1582. package/template/scripts/lib/contract-views.mjs +21 -8
  1583. package/template/scripts/lib/feature-assets.mjs +274 -0
  1584. package/template/scripts/lib/governance-io.mjs +40 -0
  1585. package/template/scripts/lib/lifecycle-status.mjs +17 -1
  1586. package/template/scripts/lib/lifecycle-transition.mjs +12 -3
  1587. package/template/scripts/lib/plan-spec-markdown.mjs +97 -0
  1588. package/template/scripts/lib/plan-spec-quality.mjs +289 -0
  1589. package/template/scripts/lib/project-ci-install.mjs +98 -0
  1590. package/template/scripts/lib/project-governance.mjs +189 -0
  1591. package/template/scripts/lib/reading-view-adapters.mjs +62 -0
  1592. package/template/scripts/lib/reading-view-bundle.mjs +201 -0
  1593. package/template/scripts/lib/reading-view-diff.mjs +29 -0
  1594. package/template/scripts/lib/reading-view-markdown.mjs +39 -0
  1595. package/template/scripts/lib/reading-view-model.mjs +13 -0
  1596. package/template/scripts/lib/reading-view-policy.mjs +16 -0
  1597. package/template/scripts/lib/skill-discovery.mjs +150 -0
  1598. package/template/scripts/lib/skill-registry.mjs +41 -1
  1599. package/template/scripts/lib/skill-supply-chain.mjs +1 -1
  1600. package/template/scripts/lib/slice-contract-preparation.mjs +8 -2
  1601. package/template/scripts/lib/slice-contract.mjs +15 -1
  1602. package/template/scripts/lib/stage-tracking-migration.mjs +9 -1
  1603. package/template/scripts/lib/stage-tracking.mjs +10 -5
  1604. package/template/scripts/lib/strategic-handoff-consumption.mjs +14 -2
  1605. package/template/scripts/lib/strategic-handoff-io.mjs +6 -2
  1606. package/template/scripts/lib/strategic-handoff.mjs +26 -5
  1607. package/template/scripts/lib/task-package.mjs +14 -3
  1608. package/template/scripts/lib/testing/user-decision-fixture.mjs +33 -0
  1609. package/template/scripts/lib/user-decision-reuse.mjs +1 -1
  1610. package/template/scripts/lifecycle-status +12 -2
  1611. package/template/scripts/project-ci +20 -0
  1612. package/template/scripts/project-ci-transition +13 -0
  1613. package/template/scripts/query-lifecycle-context +4 -0
  1614. package/template/scripts/stage-tracking +1 -0
  1615. package/template/scripts/vendor/NOTICES.md +237 -0
  1616. package/template/scripts/vendor/manifest.json +1216 -65
  1617. package/template/scripts/vendor/markdown.mjs +11783 -0
  1618. package/template/scripts/verify-approval-record +4 -1
  1619. package/template/scripts/verify-business-tickets +11 -0
  1620. package/template/scripts/verify-context-contract +4 -1
  1621. package/template/scripts/verify-digital-human-task-package +4 -1
  1622. package/template/scripts/verify-lifecycle-checkpoint +17 -2
  1623. package/template/scripts/verify-prototype-design +3 -0
  1624. package/template/skills-lock.json +34 -34
  1625. package/template.manifest.json +2 -1
  1626. package/template.snapshot.json +5 -5
  1627. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1628. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1629. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1630. package/template/.agents/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1631. package/template/.agents/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1632. package/template/.agents/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1633. package/template/.agents/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
  1634. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1635. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1636. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1637. package/template/.codex/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1638. package/template/.codex/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1639. package/template/.codex/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1640. package/template/.codex/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
  1641. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1642. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1643. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1644. package/template/.cursor/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1645. package/template/.cursor/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1646. package/template/.cursor/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1647. package/template/.cursor/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
  1648. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1649. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1650. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1651. package/template/.pi/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1652. package/template/.pi/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1653. package/template/.pi/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1654. package/template/.pi/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
@@ -0,0 +1,189 @@
1
+ import fs from 'node:fs';
2
+ import { spawnSync } from 'node:child_process';
3
+ import { parseDocument } from '../vendor/yaml.mjs';
4
+ import { assertCheckpointBoundary } from './checkpoint-boundary.mjs';
5
+ import { safeFile, fileBinding, readDocument, digest, orchestrationRef } from './governance-io.mjs';
6
+
7
+ export const CI_CONFIG='.template-spec/process/project-ci.yaml';
8
+ export const TRACKER='.template-spec/agents/issue-tracker.md';
9
+ export function parseGovernance(bytes, ref) {
10
+ const source=String(bytes), yaml=ref.endsWith('.md')?source.match(/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/)?.[1]:source;
11
+ if(yaml===undefined)return null;
12
+ const doc=parseDocument(yaml,{uniqueKeys:true,maxAliasCount:0});
13
+ if(doc.errors.length)throw new Error(`${ref}: ${doc.errors[0].message}`);
14
+ return doc.toJS({maxAliasCount:0});
15
+ }
16
+ export function governanceScope(root) {
17
+ const identity=readDocument(root,'yss-project.yaml');
18
+ if(identity?.schema_version!==1||identity.repository_mode!=='project-instance')throw new Error('project-ci 仅适用于 project-instance');
19
+ const tracker=parseGovernance(fs.readFileSync(safeFile(root,TRACKER)),TRACKER)?.tracker;
20
+ if(!tracker||!['local-markdown','github','gitlab'].includes(tracker.platform)||typeof tracker.root!=='string')throw new Error('主 tracker 配置无效');
21
+ const config=fileBinding(root,CI_CONFIG)?readDocument(root,CI_CONFIG):{schema_version:1,provider:'github',branch:'main',additional_paths:[]};
22
+ if(config.schema_version!==1||config.provider!=='github'||!Array.isArray(config.additional_paths)||config.additional_paths.some(x=>typeof x!=='string'))throw new Error('project-ci 配置无效');
23
+ const roots=[...new Set([tracker.root.replace(/\/$/,''),...config.additional_paths])].sort();
24
+ roots.forEach(ref=>safeFile(root,ref));
25
+ return {roots,config,trackerRoot:tracker.root.replace(/\/$/,'')};
26
+ }
27
+ export function governanceFiles(root, roots) {
28
+ const result=[];
29
+ const visit=ref=>{
30
+ const full=safeFile(root,ref);
31
+ if(!fs.existsSync(full))return;
32
+ const st=fs.lstatSync(full);
33
+ if(st.isDirectory()) for(const name of fs.readdirSync(full).sort())visit(`${ref}/${name}`);
34
+ else if(st.isFile())result.push(ref);
35
+ else throw new Error(`治理范围含不支持的文件: ${ref}`);
36
+ };
37
+ roots.forEach(visit);return [...new Set(result)].sort();
38
+ }
39
+ const checkpoint=(value,ref)=>/(?:^|\/)checkpoint\.(?:yaml|yml|json)$/.test(ref)||Boolean(value?.repository_mode&&value?.stage&&value?.gates);
40
+ const claimed=value=>Boolean(value&&typeof value==='object'&&(['approved','completed','ready-for-agent','running','paused-human-gate'].includes(value.status)||['active','paused','failed','resolved'].includes(value.workflow_status)||value.result==='completed'||value.decision==='approved'||Object.values(value.gates||{}).some(x=>x?.status==='approved')||Object.values(value.artifacts||{}).some(x=>x?.status==='approved')));
41
+ const identityRefs=new Set(['term_refs','skill_refs','principal_ref','drafter_principal_ref','requester_ref','responder_ref','runtime_instance_ref','original_ref','owner_ref']);
42
+ const fileReference=item=>typeof item==='string'&&!/^[a-zA-Z][a-zA-Z0-9+.-]*:/.test(item)&&! /^(?:gate|artifact|work-unit|stage|evidence|check|skill|runtime|role)\.[a-z0-9-]+$/.test(item)&&/[./]/.test(item);
43
+ function references(value, found=new Set()) {
44
+ if(Array.isArray(value))for(const item of value)references(item,found);
45
+ else if(value&&typeof value==='object')for(const [key,item] of Object.entries(value)) {
46
+ if(identityRefs.has(key))continue;
47
+ if((key==='ref'||key.endsWith('_ref'))&&fileReference(item))found.add(item);
48
+ else if((key.endsWith('_refs')||key==='inputs')&&Array.isArray(item))for(const ref of item)if(fileReference(ref))found.add(ref);
49
+ if(item&&typeof item==='object')references(item,found);
50
+ }
51
+ return found;
52
+ }
53
+ function bindings(value, output=[]) {
54
+ if(Array.isArray(value))for(const item of value)bindings(item,output);
55
+ else if(value&&typeof value==='object') {
56
+ if(typeof value.ref==='string'&&(value.digest||value.sha256))output.push([value.ref,value.digest||value.sha256]);
57
+ for(const [key,item] of Object.entries(value)) {
58
+ if(key.endsWith('_ref')&&typeof item==='string'&&value[key.replace(/_ref$/,'_digest')])output.push([item,value[key.replace(/_ref$/,'_digest')]]);
59
+ if(item&&typeof item==='object')bindings(item,output);
60
+ }
61
+ }
62
+ return output;
63
+ }
64
+
65
+ /** Fixed validators only. Checkpoint verification commands are data, never executable input. */
66
+ export function checkProjectGovernance({root,base,checkpointRef,taskRef,recovery=false}={}) {
67
+ root=fs.realpathSync(root);
68
+ const report={schema_version:1,kind:'project-governance-verification',read_only:true,execution_authorization:'not-evaluated',status:'passed',checks:[],diagnostics:[],inputs:[],scope:{roots:[],files:[],checkpoints:[],tasks:[],unrecognized:[],missing_capabilities:[]},base:base||null};
69
+ const observed=new Map();
70
+ const issue=(code,message,ref,exception=false)=>{report.diagnostics.push({code,message,source_ref:ref,recovery:'修复明确输入或证据后重新运行当前校验'});report.status=exception?'error':report.status==='error'?'error':'failed';};
71
+ const observe=ref=>{const hash=fileBinding(root,ref);if(observed.has(ref)&&observed.get(ref)!==hash)throw new Error(`INPUT_DRIFT: ${ref}`);observed.set(ref,hash);return hash;};
72
+ const read=ref=>{if(!observe(ref))throw new Error(`输入不可读: ${ref}`);return fs.readFileSync(safeFile(root,ref));};
73
+ const run=(id,script,args,refs)=>{
74
+ const requirements={
75
+ 'scripts/verify-lifecycle-checkpoint':['.template-spec/process/schemas/lifecycle-checkpoint.schema.json'],
76
+ 'scripts/verify-digital-human-task-package':['.template-spec/process/schemas/digital-human-task-package.schema.json','.template-spec/agents/digital-human-roles.yaml'],
77
+ 'scripts/verify-approval-record':['.template-spec/agents/digital-human-roles.yaml']
78
+ };
79
+ const missing=[script,...(requirements[script]||[])].filter(ref=>!observe(ref));
80
+ if(missing.length){report.scope.missing_capabilities.push(...missing);report.checks.push({id,command:[process.execPath,script,...args],input_refs:refs,exit_code:null,status:'unavailable',missing});issue('capability-missing',`缺少适用校验能力 ${missing.join(', ')},先显式安装对应阶段资产`,script,true);return;}
81
+ const begin=performance.now(),result=spawnSync(process.execPath,[safeFile(root,script),...args],{cwd:root,encoding:'utf8',maxBuffer:8*1024*1024,timeout:120000});
82
+ const unavailable=result.error||result.status===null||result.status===2||/ERR_MODULE_NOT_FOUND|MODULE_NOT_FOUND|ModuleNotFoundError/.test(result.stderr||'');
83
+ report.checks.push({id,command:[process.execPath,script,...args],input_refs:refs,exit_code:result.status,duration_ms:Math.round(performance.now()-begin),stdout:result.stdout||'',stderr:result.stderr||result.error?.message||'',status:result.status===0?'passed':'failed'});
84
+ if(result.status!==0)issue(unavailable?'capability-unavailable':'validation-failed',`${id}: ${result.error?.message||result.stderr||result.stdout}`,refs[0],Boolean(unavailable));
85
+ };
86
+ try {
87
+ for(const ref of ['yss-project.yaml',TRACKER,CI_CONFIG,'CONTEXT.md','.template-spec/process/harness-profile.yaml','.template-spec/process/checkpoint-boundary.yaml','.template-spec/process/lifecycle-registry.yaml','.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml'])observe(ref);
88
+ const {roots}=governanceScope(root);report.scope.roots=roots;
89
+ const registry=readDocument(root,'.template-spec/process/lifecycle-registry.yaml');
90
+ observe(orchestrationRef(root));
91
+ const initial=governanceFiles(root,roots);report.scope.files=initial;
92
+ // Validator code/schema changes invalidate this run too; do not import future Skill validators.
93
+ const toolFiles=governanceFiles(root,['scripts','.template-spec/process/schemas','.template-spec/agents','.agents/skills/yss-product-lifecycle']);
94
+ toolFiles.forEach(observe);
95
+ run('context','scripts/verify-context-contract',['--root',root,'--json'],['CONTEXT.md']);
96
+ report.recovery = recovery ? {sequence:['context','checkpoint','approval','transition','task-package'],dispatch:false,action:'复核实际任务结果及当前证据后由主控继续',prerequisites:['当前适用检查通过','原任务结果明确']} : null;
97
+ const queue=checkpointRef?[checkpointRef]:initial.filter(ref=>/\.(?:ya?ml|json|md)$/.test(ref));
98
+ if(taskRef)queue.push(taskRef);
99
+ const strictRefs=new Set([checkpointRef,taskRef].filter(Boolean));
100
+ const seen=new Set(),values=new Map(),claimFiles=new Set(),tickets=[];
101
+ while(queue.length) {
102
+ const ref=queue.shift();if(seen.has(ref))continue;seen.add(ref);
103
+ let bytes,value;
104
+ try{bytes=read(ref);value=parseGovernance(bytes,ref);}catch(error){issue('input-invalid',error.message,ref,true);continue;}
105
+ values.set(ref,value);
106
+ const isCheckpoint=checkpoint(value,ref),isTask=Boolean(value?.task_id&&value?.work_unit_id&&(value?.contract||['active','paused','failed','resolved'].includes(value.workflow_status)));
107
+ if(isCheckpoint) {
108
+ report.scope.checkpoints.push(ref);
109
+ if(value.repository_mode!=='project-instance')issue('checkpoint-identity-mismatch','checkpoint 身份与项目实例不一致',ref);
110
+ const nextUnit=registry.work_units.find(x=>x.id===value.next_work_unit);
111
+ if(nextUnit?.scope==='template-source'&&nextUnit.id!=='work-unit.entry-triage')issue('work-unit-scope-invalid','项目实例不得路由模板维护工作单元',ref);
112
+ for(const id of Object.keys(value.artifacts||{}))if(!registry.artifacts.some(x=>x.id===id))issue('artifact-id-unknown',`未识别生命周期资产 ID: ${id}`,ref);
113
+ try{assertCheckpointBoundary(value,{root});}catch(error){issue('checkpoint-boundary-invalid',error.message,ref);}
114
+ run('checkpoint','scripts/verify-lifecycle-checkpoint',[ref],[ref]);
115
+ if(claimed(value))claimFiles.add(ref);
116
+ if(value.stage_trace?.completed_work_unit)run('transition','scripts/project-ci-transition',[ref],[ref]);
117
+ else if(['running','completed'].includes(value.status)&&['resume','orchestrate'].includes(value.mode))issue('transition-origin-missing','当前流转缺少 stage_trace.completed_work_unit,无法核验前后因果',ref);
118
+ if(recovery&&(value.blockers?.length||['blocked','stale'].includes(value.status)))issue('recovery-blocked','当前 checkpoint 存在阻塞',ref);
119
+ } else if(isTask) {
120
+ report.scope.tasks.push(ref);run('task-package','scripts/verify-digital-human-task-package',[ref],[ref]);
121
+ if(recovery) {
122
+ const status=value.workflow_status;
123
+ if(status==='resolved'&&!value.result?.evidence_refs?.length&&!value.verification_results?.length)issue('task-result-unknown','resolved 任务缺少实际结果引用,不能判定完成',ref);
124
+ if(status!=='resolved')issue('task-not-resolved',`任务状态 ${status||'unknown'};先核查原任务,禁止重复派发`,ref);
125
+ }
126
+ } else if(value?.gate_id&&value?.decision==='approved') {
127
+ run('approval','scripts/verify-approval-record',['--require-approved',ref],[ref]);
128
+ } else if(claimed(value)) {
129
+ // Claimed assets need an owning checkpoint; owner-specific validators are called through it.
130
+ claimFiles.add(ref);
131
+ } else report.scope.unrecognized.push(ref);
132
+ if(/(?:^|\n)Status:\s*ready-for-agent\s*(?:\n|$)/.test(bytes.toString()))tickets.push(ref);
133
+ if(isCheckpoint||isTask||claimed(value)||value?.gate_id||strictRefs.has(ref)) {
134
+ for(const dependency of references(value)) {
135
+ if(!strictRefs.has(dependency)){strictRefs.add(dependency);seen.delete(dependency);}
136
+ try{read(dependency);if(/\.(?:ya?ml|json|md)$/.test(dependency))queue.push(dependency);}catch(error){issue('reference-unreadable',error.message,ref);}
137
+ }
138
+ for(const [target,hash] of bindings(value)) {
139
+ try{const actual=observe(target);if(actual!==String(hash).replace(/^(?!sha256:)/,'sha256:'))issue('evidence-drift',`摘要不一致: ${target}`,ref);}catch(error){issue('evidence-unreadable',error.message,ref);}
140
+ }
141
+ }
142
+ }
143
+ if(checkpointRef&&!report.scope.checkpoints.includes(checkpointRef))issue('checkpoint-unrecognized','指定引用不是可识别的 checkpoint',checkpointRef);
144
+ if(taskRef&&!report.scope.tasks.includes(taskRef))issue('task-unrecognized','指定引用不是可识别的任务包',taskRef);
145
+ const owned=new Set();
146
+ const owningQueue=[...report.scope.checkpoints];
147
+ while(owningQueue.length)for(const dependency of references(values.get(owningQueue.shift())))if(!owned.has(dependency)){owned.add(dependency);owningQueue.push(dependency);}
148
+ for(const ref of claimFiles)if(!report.scope.checkpoints.includes(ref)) {
149
+ if(!owned.has(ref))issue('claim-without-checkpoint','已声明完成或批准的资产缺少 checkpoint 归属',ref);
150
+ else {
151
+ const asset=values.get(ref),contract=asset?.slice_contract||asset;
152
+ if(contract?.contract_id&&contract?.work_units)run('slice-contract','scripts/slice-contract',['verify',ref,'--root',root,'--json'],[ref]);
153
+ else {report.scope.unrecognized.push(ref);report.scope.missing_capabilities.push(ref);issue('asset-validator-missing','当前声称批准或完成的结构化资产缺少已接入的专属校验能力;补齐资产校验适配后重验',ref,true);}
154
+ }
155
+ }
156
+ for(const ref of tickets)if(!owned.has(ref)&&!report.scope.tasks.some(t=>references(values.get(t)).has(ref)))issue('ticket-without-readiness','ready-for-agent Ticket 缺少当前 checkpoint/任务包证据',ref);
157
+ if(base) {
158
+ if(!/^[a-fA-F0-9]{40}$/.test(base))throw new Error('--base 必须为完整 40 位 commit');
159
+ const git=args=>{const r=spawnSync('git',args,{cwd:root,encoding:'utf8',maxBuffer:16*1024*1024});if(r.status!==0)throw new Error(r.stderr||'Git 基线不可读');return r.stdout;};
160
+ git(['cat-file','-e',`${base}^{commit}`]);
161
+ const oldFiles=git(['ls-tree','-r','--name-only','-z',base]).split('\0').filter(Boolean);
162
+ const oldTracker=parseGovernance(git(['show',`${base}:${TRACKER}`]),TRACKER)?.tracker;
163
+ const oldConfig=oldFiles.includes(CI_CONFIG)?parseGovernance(git(['show',`${base}:${CI_CONFIG}`]),CI_CONFIG):{additional_paths:[]};
164
+ const oldRoots=[oldTracker?.root?.replace(/\/$/,''),...(oldConfig.additional_paths||[])].filter(Boolean);
165
+ for(const ref of oldRoots)if(!roots.some(r=>ref===r||ref.startsWith(r+'/')))issue('scope-reduced',`相对基线缩小检查范围: ${ref}`,CI_CONFIG);
166
+ const oldValues=new Map();
167
+ const oldRead=ref=>{if(!oldValues.has(ref))oldValues.set(ref,parseGovernance(git(['show',`${base}:${ref}`]),ref));return oldValues.get(ref);};
168
+ const oldScope=oldFiles.filter(ref=>oldRoots.some(r=>ref===r||ref.startsWith(r+'/'))&&/\.(?:ya?ml|json|md)$/.test(ref));
169
+ const oldEvidence=new Set(),oldQueue=[];
170
+ for(const ref of oldScope)if(claimed(oldRead(ref)))oldQueue.push(ref);
171
+ while(oldQueue.length){const ref=oldQueue.shift();if(oldEvidence.has(ref))continue;oldEvidence.add(ref);if(!observe(ref))issue('approved-evidence-deleted',`基线批准依据已删除: ${ref}`,ref);if(/\.(?:ya?ml|json|md)$/.test(ref)&&oldFiles.includes(ref))for(const dep of references(oldRead(ref)))if(oldFiles.includes(dep))oldQueue.push(dep);}
172
+ for(const ref of oldScope.filter(ref=>/\.(?:ya?ml|json)$/.test(ref))) {
173
+ const old=parseGovernance(git(['show',`${base}:${ref}`]),ref);
174
+ if(!checkpoint(old,ref))continue;
175
+ if(!observe(ref)){issue('checkpoint-deleted',`基线 checkpoint 已删除: ${ref}`,ref);continue;}
176
+ const now=values.get(ref);
177
+ if(!report.scope.checkpoints.includes(ref))issue('checkpoint-unassessed',`基线 checkpoint 不再被识别或检查: ${ref}`,ref);
178
+ for(const [id,state] of Object.entries(old.gates||{}))if(state.status==='approved'&&!now?.gates?.[id])issue('approval-claim-removed',`基线批准 ${id} 被移除,须保留历史与当前处置`,ref);
179
+ if(claimed(old))for(const dep of references(old))if(!observe(dep))issue('approved-evidence-deleted',`基线批准依据已删除: ${dep}`,ref);
180
+ }
181
+ }
182
+ if(JSON.stringify(initial)!==JSON.stringify(governanceFiles(root,roots))||JSON.stringify(toolFiles)!==JSON.stringify(governanceFiles(root,['scripts','.template-spec/process/schemas','.template-spec/agents','.agents/skills/yss-product-lifecycle'])))throw new Error('INPUT_DRIFT: 检查范围发生变化');
183
+ for(const [ref,hash] of observed)if(fileBinding(root,ref)!==hash)throw new Error(`INPUT_DRIFT: ${ref}`);
184
+ }catch(error){issue('input-or-execution-error',error.message,checkpointRef||null,true);}
185
+ report.scope.files=[...new Set([...report.scope.files,...observed.keys()].filter(ref=>!ref.startsWith('scripts/')&&!ref.startsWith('.agents/')))].sort();
186
+ report.inputs=[...observed].sort(([a],[b])=>a.localeCompare(b)).map(([ref,sha256])=>({ref,sha256}));
187
+ report.input_digest=digest(JSON.stringify(report.inputs));
188
+ return {report,exitCode:report.status==='passed'?0:report.status==='error'?2:1};
189
+ }
@@ -0,0 +1,62 @@
1
+ import {readingIdFields} from './reading-view-model.mjs';
2
+ import path from 'node:path';
3
+ import {readFileSync,existsSync} from './validation-phase.mjs';
4
+ import {safe,hash} from './strategic-handoff-io.mjs';
5
+
6
+ const orders={
7
+ 'domain-strategy':['contexts','subdomains','relationships','rule_catalog','scenarios','concept_candidates','invariants','downstream_mapping','status'],
8
+ 'stage-decision-package':['problem_statement','target_users','mvp','non_goals','confirmed_decisions','success_criteria','test_seams','assumptions','constraints','unresolved_items','downstream_mapping'],
9
+ checkpoint:['stage','status','next_work_unit','blockers','stage_tracking','artifacts','gates','verification','human_review']
10
+ };
11
+ export function adaptReading(kind,raw,{root,ref,blockers}){
12
+ if(kind==='tracking-migration')return migration(raw,{root,ref,blockers});
13
+ const order=orders[kind];if(!order)return raw;
14
+ const inspect=(value,collection)=>{
15
+ if(!value||typeof value!=='object')return;
16
+ if(Array.isArray(value)&&readingIdFields[collection]){const key=readingIdFields[collection],ids=value.map(x=>x?.[key]).filter(x=>typeof x==='string');if(new Set(ids).size!==ids.length)blockers.push(`duplicate-stable-id: ${collection}.${key}`);}
17
+ for(const [key,child]of Object.entries(value))inspect(child,key);
18
+ };inspect(raw);
19
+ const content=Object.fromEntries([...order,...Object.keys(raw)].filter((key,index,all)=>Object.hasOwn(raw,key)&&all.indexOf(key)===index).map(key=>[key,raw[key]]));
20
+ if(kind==='checkpoint')content.状态阅读说明={源声明:'上面的阶段、状态和工作项进度均为源声明,分别保留。',阻塞登记:Array.isArray(raw.blockers)&&!raw.blockers.length?'未登记阻塞;不等于可执行。':'按源记录检查;缺失不等于无阻塞。',未核验:'批准、完整门禁、Ticket 就绪及外部事实未核验;历史验证记录不能替代本次验证。'};
21
+ return content;
22
+ }
23
+ const LIMIT=2*1024*1024;
24
+ function migration(plan,{root,ref,blockers}){
25
+ const content={...Object.fromEntries(Object.entries(plan).filter(([k])=>!['root','changes','observed','input','plan_id','schema_version'].includes(k))),plan_id:plan.plan_id,执行结果:'proposed(仅为计划;没有验证执行回执)',changes:[]};
26
+ try{
27
+ const {plan_id,...payload}=plan;
28
+ if(plan.schema_version!==1||!Array.isArray(plan.changes)||hash(JSON.stringify(payload)).slice(7)!==plan_id)throw Error('migration-plan-digest-mismatch');
29
+ const base=path.posix.dirname(ref),isPersisted=path.posix.basename(ref)==='plan.json';
30
+ let backups=[];
31
+ if(isPersisted){
32
+ for(const name of ['backup.json','receipt.json','failure.json']){
33
+ const target=`${base}/${name}`,file=safe(root,target,{missing:true});
34
+ if(!existsSync(file))continue;
35
+ const bytes=readFileSync(file);if(bytes.length>LIMIT*4)throw Error(`migration-preview-too-large: ${target}`);
36
+ const value=JSON.parse(bytes);
37
+ content[name.replace('.json','')+'_ref']=target;
38
+ if(name==='backup.json'){if(!Array.isArray(value))throw Error('migration-backup-invalid');backups=value;}
39
+ else if(name==='receipt.json'){if(value.plan_id!==plan_id||value.status!=='applied')throw Error('migration-receipt-conflict');content.执行结果='applied(原事务回执;不表示当前资产仍与历史一致)';content.回执=value;}
40
+ else {content.执行结果='failed(保留恢复冲突;回执不能覆盖失败记录)';content.失败记录=value;}
41
+ }
42
+ }
43
+ for(const change of plan.changes){
44
+ safe(root,change.ref,{missing:true});
45
+ if(typeof change.after!=='string'||Buffer.byteLength(change.after)>LIMIT)throw Error(`migration-preview-too-large-or-invalid: ${change.ref}`);
46
+ if(hash(change.after)!==change.after_digest)throw Error(`migration-after-digest-mismatch: ${change.ref}`);
47
+ let before=change.before?'无法比较旧内容:未提供匹配的历史备份;不读取当前文件冒充旧版本。':'原文件不存在(新增)';
48
+ const matches=backups.filter(row=>row.ref===change.ref);if(matches.length>1)throw Error('migration-backup-duplicate');
49
+ const backup=matches[0];
50
+ if(change.before&&backup){
51
+ if(typeof backup.bytes!=='string'||backup.bytes.length>LIMIT*1.4||!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(backup.bytes))throw Error('migration-backup-base64-invalid');
52
+ const bytes=Buffer.from(backup.bytes,'base64');
53
+ if(hash(bytes)!==change.before.digest||backup.before?.digest!==change.before.digest||backup.before?.mode!==change.before.mode)throw Error('migration-backup-digest-mismatch');
54
+ before=new TextDecoder('utf-8',{fatal:true}).decode(bytes);
55
+ }
56
+ content.changes.push({ref:change.ref,before,after:change.after,before_binding:change.before,after_digest:change.after_digest});
57
+ }
58
+ content.未展开字段={root:'本机位置不参与业务阅读',observed:'原计划中的事务读集;完整值见权威计划',input:'登记输入保留在原计划;不作为当前进度',恢复数据:'Base64 原备份不写回、不执行;上面仅展示经过摘要核对的 UTF-8 内容'};
59
+ content.gaps=plan.gaps;
60
+ }catch(error){blockers.push(error.message);content.诊断=error.message;}
61
+ return content;
62
+ }
@@ -0,0 +1,201 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import {randomUUID} from 'node:crypto';
4
+ import {viewContract} from './contract-views.mjs';
5
+ import {readFileSync,existsSync,withValidationPhase,validationDependencies} from './validation-phase.mjs';
6
+ import {safe,hash,ROOT,schema} from './strategic-handoff-io.mjs';
7
+ import {parseSliceYaml} from './slice-contract.mjs';
8
+ import {READING_POLICY,readingPolicy,managedReading,readingLocation} from './reading-view-policy.mjs';
9
+ const json=value=>JSON.stringify(value,null,2)+'\n';
10
+ const BEGIN='<!-- YSS-READING:BEGIN -->',END='<!-- YSS-READING:END -->';
11
+ const kinds={'artifact.domain-strategy':'domain-strategy',domain_strategy:'domain-strategy','domain-strategy':'domain-strategy','artifact.stage-decision-package':'stage-decision-package',stage_decision:'stage-decision-package','stage-decision-package':'stage-decision-package'};
12
+ const bytes=(root,ref)=>{const file=safe(root,ref,{missing:true});return existsSync(file)?readFileSync(file):null;};
13
+ const descriptor=(root,ref)=>{const b=bytes(root,ref);return b===null?null:hash(b);};
14
+ function identity(root){const id=parseSliceYaml(bytes(root,'yss-project.yaml'));if(id?.schema_version!==1||id.repository_mode!=='project-instance')throw Error('reading-project-instance-required');}
15
+ function toolClosure(){
16
+ const found=new Map();
17
+ const visit=ref=>{if(found.has(ref))return;const file=safe(ROOT,ref),content=readFileSync(file);found.set(ref,hash(content));
18
+ if(/\.(mjs|js)$/.test(ref))for(const match of content.toString().matchAll(/(?:from\s*|import\s*)['"](\.[^'"]+)['"]/g))visit(path.posix.normalize(path.posix.join(path.posix.dirname(ref),match[1])));
19
+ };
20
+ for(const ref of ['scripts/lib/reading-view-bundle.mjs','scripts/contract'])visit(ref);
21
+ return Object.fromEntries([...found].sort(([a],[b])=>a.localeCompare(b)));
22
+ }
23
+ function navigation(text){
24
+ const starts=text.split(BEGIN).length-1,ends=text.split(END).length-1;
25
+ if(!starts&&!ends)return {manual:text,block:null};
26
+ if(starts!==1||ends!==1||text.indexOf(END)<text.indexOf(BEGIN))throw Error('reading-navigation-marker-conflict');
27
+ const a=text.indexOf(BEGIN),b=text.indexOf(END)+END.length;
28
+ return {manual:text.slice(0,a)+text.slice(b),block:text.slice(a,b),a,b};
29
+ }
30
+ function build(root,checkpoint){
31
+ return withValidationPhase({root,purpose:'reading-bundle',readOnly:true},()=>{
32
+ identity(root);readingPolicy(root);
33
+ if(!bytes(root,'CONTEXT.md'))throw Error('reading-context-required');
34
+ const loc=readingLocation(checkpoint),raw=parseSliceYaml(bytes(root,checkpoint)),assets=[{ref:checkpoint,kind:'checkpoint'}],seen=new Set();
35
+ for(const [key,value]of Object.entries(raw.artifacts||{})){
36
+ const kind=kinds[key];if(!kind)continue;
37
+ const ref=typeof value==='string'?value:value?.ref;
38
+ if(!ref){if(['missing','not-applicable'].includes(value?.status))continue;throw Error(`reading-artifact-ref-required: ${key}`);}
39
+ if(seen.has(kind))throw Error(`reading-artifact-duplicate: ${kind}`);seen.add(kind);assets.push({ref,kind});
40
+ }
41
+ const outputs={},diagnostics=[],referenceBindings=[];
42
+ const bindReferences=(value,key='')=>{
43
+ if(typeof value==='string'&&(/^(ref|.*_ref|evidence_refs)$/.test(key))&&(/^(docs\/|\.template-spec\/|CONTEXT\.md)/.test(value))){
44
+ const ref=value.split('#')[0];
45
+ if(ref.startsWith(loc.directory+'/')||ref===loc.base+'/map.md')throw Error('reading-self-dependency');
46
+ referenceBindings.push({scope:'project',ref,digest:descriptor(root,ref)});
47
+ }else if(value&&typeof value==='object')for(const [child,v]of Object.entries(value))bindReferences(v,Array.isArray(value)?key:child);
48
+ };
49
+ bindReferences(raw);
50
+ for(const asset of assets){
51
+ bindReferences(parseSliceYaml(bytes(root,asset.ref)));
52
+ const view=viewContract(asset.ref,{root,kind:asset.kind});
53
+ diagnostics.push(...view.blockers.map(reason=>({ref:asset.ref,reason})));
54
+ const name=asset.kind==='checkpoint'?'status':asset.kind;
55
+ outputs[`${loc.directory}/${name}.review.md`]=view.markdown;
56
+ }
57
+ const block=[BEGIN,'## 阅读导航','',...Object.keys(outputs).map(ref=>`- [${path.posix.basename(ref)}](./${path.posix.relative(loc.base,ref)})`),'','以上为来源快照;提交审阅或交接前运行 `scripts/contract check-views --checkpoint '+checkpoint+'`。',END].join('\n');
58
+ const renderer=toolClosure();
59
+ readFileSync(safe(ROOT,'.template-spec/process/schemas/reading-manifest.schema.json'));
60
+ const dependencies=validationDependencies().files.map(row=>{
61
+ const local=path.relative(root,row.file);return !local.startsWith('..')&&!path.isAbsolute(local)?{scope:'project',ref:local,digest:'sha256:'+row.digest}:{scope:'tool',ref:path.relative(ROOT,row.file),digest:'sha256:'+row.digest};
62
+ }).sort((a,b)=>(a.scope+a.ref).localeCompare(b.scope+b.ref));
63
+ for(const row of referenceBindings)if(!dependencies.some(item=>item.scope===row.scope&&item.ref===row.ref))dependencies.push(row);
64
+ // A missing policy is also an input; adding one invalidates the previous package.
65
+ if(!dependencies.some(row=>row.scope==='project'&&row.ref===READING_POLICY))dependencies.push({scope:'project',ref:READING_POLICY,digest:null});
66
+ const manifest={schema_version:1,checkpoint_ref:checkpoint,renderer,dependencies,outputs:Object.fromEntries(Object.entries(outputs).map(([ref,text])=>[ref,hash(text)])),navigation:{ref:`${loc.base}/map.md`,block_digest:hash(block)},diagnostics};
67
+ schema(manifest,'.template-spec/process/schemas/reading-manifest.schema.json');
68
+ return {loc,outputs,block,manifest};
69
+ });
70
+ }
71
+ function oldManifest(root,loc){
72
+ const value=bytes(root,`${loc.directory}/.manifest.json`);if(!value)return null;
73
+ try{const m=JSON.parse(value);if(m.schema_version!==1||!m.outputs||!m.navigation||typeof m.outputs!=='object')throw Error();
74
+ for(const ref of Object.keys(m.outputs))if(!new RegExp(`^${loc.directory.replaceAll('.','\\.')}/(?:domain-strategy|stage-decision-package|status)\\.review\\.md$`).test(ref))throw Error();
75
+ if(m.navigation.ref!==`${loc.base}/map.md`)throw Error();return m;
76
+ }catch{throw Error('reading-manifest-invalid: preserve files; restore last valid manifest before rebuilding');}
77
+ }
78
+ function changesFor(root,built){
79
+ const old=oldManifest(root,built.loc),changes=[],mapRef=built.manifest.navigation.ref,mapBytes=bytes(root,mapRef),currentMap=mapBytes?.toString('utf8')||'',nav=navigation(currentMap);
80
+ for(const [ref,text]of Object.entries(built.outputs)){
81
+ const before=bytes(root,ref);if(before&&(!old?.outputs[ref]||hash(before)!==old.outputs[ref]))throw Error(`reading-output-conflict: ${ref}`);
82
+ if(!before||before.toString('utf8')!==text)changes.push({ref,before:before?.toString('base64')??null,after:Buffer.from(text).toString('base64')});
83
+ }
84
+ for(const ref of Object.keys(old?.outputs||{}))if(!Object.hasOwn(built.outputs,ref))throw Error(`reading-retired-output-needs-review: ${ref}`);
85
+ if(nav.block&&(!old||hash(nav.block)!==old.navigation.block_digest))throw Error(`reading-output-conflict: ${mapRef}`);
86
+ const nextMap=nav.block?currentMap.slice(0,nav.a)+built.block+currentMap.slice(nav.b):currentMap+(currentMap.endsWith('\n')?'':'\n')+'\n'+built.block+'\n';
87
+ if(nextMap!==currentMap)changes.push({ref:mapRef,before:mapBytes?.toString('base64')??null,after:Buffer.from(nextMap).toString('base64')});
88
+ const manifestRef=`${built.loc.directory}/.manifest.json`,before=bytes(root,manifestRef),after=json(built.manifest);
89
+ if(before?.toString('utf8')!==after)changes.push({ref:manifestRef,before:before?.toString('base64')??null,after:Buffer.from(after).toString('base64')});
90
+ return changes;
91
+ }
92
+ function verifyInputs(root,built){
93
+ for(const row of built.manifest.dependencies)if(descriptor(row.scope==='project'?root:ROOT,row.ref)!==row.digest)throw Error(`reading-input-drift: ${row.ref}`);
94
+ if(json(toolClosure())!==json(built.manifest.renderer))throw Error('reading-renderer-drift');
95
+ }
96
+ function atomic(root,ref,value){const file=safe(root,ref,{missing:true});fs.mkdirSync(path.dirname(file),{recursive:true});const tmp=`${file}.tmp-${randomUUID()}`;try{fs.writeFileSync(tmp,value,{flag:'wx',mode:fs.existsSync(file)?fs.statSync(file).mode&0o777:0o644});safe(root,ref,{missing:true});fs.renameSync(tmp,file);}finally{if(fs.existsSync(tmp))fs.unlinkSync(tmp);}}
97
+ function same(root,ref,encoded){const current=bytes(root,ref);return encoded===null?current===null:current!==null&&hash(current)===hash(Buffer.from(encoded,'base64'));}
98
+ function recover(root,loc){
99
+ const ref=`${loc.directory}/.transaction.json`,content=bytes(root,ref);if(!content)return;
100
+ const journal=JSON.parse(content);
101
+ if(journal.schema_version!==1||!Array.isArray(journal.changes))throw Error('reading-recovery-journal-invalid');
102
+ for(const c of journal.changes){if(![`${loc.base}/map.md`,`${loc.directory}/.manifest.json`,...['domain-strategy','stage-decision-package','status'].map(k=>`${loc.directory}/${k}.review.md`)].includes(c.ref)||!(c.before===null||typeof c.before==='string')||typeof c.after!=='string')throw Error('reading-recovery-journal-invalid');}
103
+ const conflicts=[];
104
+ for(const c of [...journal.changes].reverse()){
105
+ if(same(root,c.ref,c.before))continue;
106
+ if(!same(root,c.ref,c.after)){conflicts.push(c.ref);continue;}
107
+ if(c.before===null)fs.unlinkSync(safe(root,c.ref));else atomic(root,c.ref,Buffer.from(c.before,'base64'));
108
+ }
109
+ if(conflicts.length)throw Error(`reading-recovery-conflict: ${conflicts.join(', ')}`);
110
+ fs.unlinkSync(safe(root,ref));
111
+ }
112
+ function locked(root,loc,action){
113
+ const lockRef=`${loc.directory}/${loc.lock_name||'.lock'}`,file=safe(root,lockRef,{missing:true});fs.mkdirSync(path.dirname(file),{recursive:true});
114
+ if(fs.existsSync(file)){
115
+ const old=fs.readFileSync(file);let pid;try{pid=JSON.parse(old).pid;if(!Number.isInteger(pid)||pid<=0)throw Error();}catch{throw Error('reading-lock-invalid');}
116
+ try{process.kill(pid,0);throw Error('reading-busy');}catch(error){if(error.code!=='ESRCH')throw error;}
117
+ const recoveryLock=safe(root,`${lockRef}.recovery`,{missing:true});
118
+ fs.writeFileSync(recoveryLock,String(process.pid),{flag:'wx'});
119
+ try{if(!fs.existsSync(file)||hash(fs.readFileSync(file))!==hash(old))throw Error('reading-busy');fs.unlinkSync(file);}
120
+ finally{fs.unlinkSync(recoveryLock);}
121
+ }
122
+ const token=json({pid:process.pid,token:randomUUID()});fs.writeFileSync(file,token,{flag:'wx'});
123
+ try{if(loc.recover!==false)recover(root,loc);return action();}finally{if(fs.existsSync(file)&&fs.readFileSync(file,'utf8')===token)fs.unlinkSync(file);}
124
+ }
125
+ export function renderReadingBundle(root,checkpoint,{afterWrite}={}){
126
+ root=path.resolve(root);identity(root);const loc=readingLocation(checkpoint);
127
+ return locked(root,loc,()=>{
128
+ const built=build(root,checkpoint),changes=changesFor(root,built);verifyInputs(root,built);
129
+ if(!changes.length)return {status:'unchanged',checkpoint_ref:checkpoint,diagnostics:built.manifest.diagnostics};
130
+ const journalRef=`${loc.directory}/.transaction.json`;
131
+ atomic(root,journalRef,json({schema_version:1,changes}));
132
+ try{
133
+ for(const [index,c]of changes.entries()){
134
+ verifyInputs(root,built);if(!same(root,c.ref,c.before))throw Error(`reading-output-conflict: ${c.ref}`);
135
+ atomic(root,c.ref,Buffer.from(c.after,'base64'));afterWrite?.(c,index+1);
136
+ }
137
+ verifyInputs(root,built);
138
+ for(const c of changes)if(!same(root,c.ref,c.after))throw Error(`reading-output-conflict: ${c.ref}`);
139
+ fs.unlinkSync(safe(root,journalRef));
140
+ return {status:'rendered',checkpoint_ref:checkpoint,changed_refs:changes.map(c=>c.ref),diagnostics:built.manifest.diagnostics};
141
+ }catch(error){try{recover(root,loc);}catch(recovery){throw Error(`${error.message}; ${recovery.message}`);}throw error;}
142
+ });
143
+ }
144
+ export function checkReadingViews(root,checkpoint,{required=false}={}){
145
+ identity(root);const enabled=managedReading(root,checkpoint);
146
+ if(!required&&!enabled)return {status:'manual',read_only:true,execution_allowed:false,blockers:[]};
147
+ try{
148
+ const loc=readingLocation(checkpoint);
149
+ if(bytes(root,`${loc.directory}/.transaction.json`)||bytes(root,`${loc.directory}/.lock`))throw Error('reading-update-incomplete');
150
+ const expected=build(root,checkpoint),actual=oldManifest(root,loc),reasons=[];
151
+ if(!actual||json(actual)!==json(expected.manifest))reasons.push('reading-manifest-stale');
152
+ for(const [ref,digest]of Object.entries(expected.manifest.outputs))if(descriptor(root,ref)!==digest)reasons.push(`reading-output-stale: ${ref}`);
153
+ if(hash(navigation(bytes(root,expected.manifest.navigation.ref)?.toString('utf8')||'').block||'')!==expected.manifest.navigation.block_digest)reasons.push('reading-navigation-stale');
154
+ verifyInputs(root,expected);
155
+ return {status:reasons.length?'stale':'current',read_only:true,execution_allowed:false,approval_validity:'not-checked',blockers:reasons,diagnostics:expected.manifest.diagnostics,recovery:`scripts/contract render --checkpoint ${checkpoint}`};
156
+ }catch(error){return {status:'stale',read_only:true,execution_allowed:false,blockers:[error.message],recovery:`scripts/contract render --checkpoint ${checkpoint}`};}
157
+ }
158
+ export function planEnableReading(root,checkpoint){
159
+ identity(root);root=path.resolve(root);const built=build(root,checkpoint),changes=changesFor(root,built),policy=readingPolicy(root);
160
+ const nextPolicy={...policy,mode:'managed',checkpoints:[...new Set([...policy.checkpoints,checkpoint])].sort()};
161
+ const payload={schema_version:1,kind:'reading-enable-plan',root,checkpoint_ref:checkpoint,policy_before:descriptor(root,READING_POLICY),policy_after:nextPolicy,dependencies:built.manifest.dependencies,renderer:built.manifest.renderer,outputs_before:Object.fromEntries([...Object.keys(built.outputs),built.manifest.navigation.ref,`${built.loc.directory}/.manifest.json`].map(ref=>[ref,descriptor(root,ref)])),preview:changes.map(c=>({ref:c.ref,before_digest:c.before===null?null:hash(Buffer.from(c.before,'base64')),after:Buffer.from(c.after,'base64').toString('utf8')}))};
162
+ return {...payload,plan_id:hash(json(payload))};
163
+ }
164
+ function applyEnableReadingLocked(root,plan){
165
+ const {plan_id,...payload}=plan;if(plan.kind!=='reading-enable-plan'||plan.root!==path.resolve(root)||hash(json(payload))!==plan_id)throw Error('reading-enable-plan-invalid');
166
+ const policy=readingPolicy(root);
167
+ if(json(policy)===json(plan.policy_after)&&checkReadingViews(root,plan.checkpoint_ref).status==='current')return {status:'unchanged'};
168
+ const current=planEnableReading(root,plan.checkpoint_ref);if(json(current)!==json(plan))throw Error('reading-enable-plan-stale');
169
+ const before=bytes(root,READING_POLICY);atomic(root,READING_POLICY,json(plan.policy_after));
170
+ try{return {status:'enabled',reading_update:renderReadingBundle(root,plan.checkpoint_ref)};}
171
+ catch(error){if(descriptor(root,READING_POLICY)===hash(json(plan.policy_after))){if(before===null)fs.unlinkSync(safe(root,READING_POLICY));else atomic(root,READING_POLICY,before);}throw error;}
172
+ }
173
+ export function finalizeReading(root,checkpoint,sourceOperation){
174
+ try{if(!managedReading(root,checkpoint))return {...sourceOperation,source_operation:sourceOperation.status,reading_update:{status:'manual'}};
175
+ return {...sourceOperation,source_operation:sourceOperation.status,reading_update:renderReadingBundle(root,checkpoint)};
176
+ }catch(error){return {...sourceOperation,source_operation:sourceOperation.status,reading_update:{status:'failed',error:error.message,recovery:`scripts/contract render --checkpoint ${checkpoint}`}};}
177
+ }
178
+ export function readingCheckpointsForAsset(root,ref,kind){
179
+ if(!['domain-strategy','stage-decision-package','checkpoint','tracking-migration'].includes(kind))return [];
180
+ const policy=readingPolicy(root);if(policy.mode!=='managed')return [];
181
+ return policy.checkpoints.filter(checkpoint=>ref.startsWith(readingLocation(checkpoint).base+'/'));
182
+ }
183
+ export function assertReadingTransition(root,decisionState,currentWorkUnit){
184
+ const ref=decisionState?.checkpoint_ref||decisionState?.checkpoint?.ref;
185
+ if(!ref){const policy=readingPolicy(root);if(policy.mode==='managed'&&policy.checkpoints.length&&['work-unit.plan-requirements','work-unit.domain-strategy-design','work-unit.stage-decision-package','work-unit.spec-synthesis'].includes(currentWorkUnit))throw Error('reading-checkpoint-ref-required');return {status:'not-applicable'};}
186
+ if(!managedReading(root,ref))return {status:'manual'};
187
+ const result=checkReadingViews(root,ref);if(result.blockers.length)throw Error(`reading-views-stale: ${result.blockers.join('; ')}`);return result;
188
+ }
189
+ export function saveReadingComparison(root,checkpoint,result){
190
+ const loc=readingLocation(checkpoint);
191
+ if(result.blockers?.length||!result.diff||!result.diff.markdown)throw Error('reading-comparison-source-invalid');
192
+ const report=result.diff.markdown+'\n批准有效性:not-checked;原决定及语义审阅仍按准备结果处理。\n';
193
+ const id=hash(json({before:result.before,after:result.after,report,renderer:toolClosure()})).slice(7),ref=`${loc.directory}/changes/${id}.md`,file=safe(root,ref,{missing:true});
194
+ if(fs.existsSync(file)){if(fs.readFileSync(file,'utf8')!==report)throw Error('reading-comparison-conflict');return {ref,digest:hash(report),status:'unchanged'};}
195
+ fs.mkdirSync(path.dirname(file),{recursive:true});fs.writeFileSync(file,report,{flag:'wx'});return {ref,digest:hash(report),status:'saved'};
196
+ }
197
+
198
+ export function applyEnableReading(root,plan){
199
+ identity(root);
200
+ return locked(root,{base:'.template-spec/process',directory:'.template-spec/process',lock_name:'.reading-enable.lock',recover:false},()=>applyEnableReadingLocked(root,plan));
201
+ }
@@ -0,0 +1,29 @@
1
+ import {readingIdFields} from './reading-view-model.mjs';
2
+ import {renderReadingValue} from './reading-view-markdown.mjs';
3
+ const object=v=>v!==null&&typeof v==='object'&&!Array.isArray(v);
4
+ const identity=(value,pointer)=>{const key=readingIdFields[pointer.split('/').at(-1)]||'id';return object(value)&&typeof value[key]==='string'?key:undefined;};
5
+ const part=value=>String(value).replace(/~/g,'~0').replace(/\//g,'~1');
6
+ const bindings=new Set(['schema_version','digest','subject_digest','document_digest','referenced_terms_digest','ref','context_ref','persisted_ref']);
7
+ const business=new Set(['responsibilities','non_responsibilities','rules','failure_results','success_results','statement','constraints','status','acceptance','progress','scope','preconditions','blockers','owner','deferred']);
8
+ export function readingDiff(before,after){
9
+ const changes=[];
10
+ const walk=(a,b,p,category='unclassified')=>{
11
+ if(JSON.stringify(a)===JSON.stringify(b))return;
12
+ if(object(a)&&object(b)){for(const key of new Set([...Object.keys(a),...Object.keys(b)]))walk(a[key],b[key],`${p}/${part(key)}`,bindings.has(key)?'binding-change':business.has(key)?'business-change':category);return;}
13
+ if(Array.isArray(a)&&Array.isArray(b)&&a.length&&b.length){
14
+ const key=identity(a[0],p);if(key&&[...a,...b].every(x=>object(x)&&typeof x[key]==='string')){
15
+ const left=a.map(x=>x[key]),right=b.map(x=>x[key]);
16
+ if(new Set(left).size!==left.length||new Set(right).size!==right.length){changes.push({path:p,category:'unclassified',diagnostic:'duplicate-stable-id',before:a,after:b});return;}
17
+ if(JSON.stringify(left)!==JSON.stringify(right))changes.push({path:p,category:'business-change',change:'order-or-membership',before:left,after:right});
18
+ for(const id of new Set([...left,...right]))walk(a.find(x=>x[key]===id),b.find(x=>x[key]===id),`${p}/@${part(id)}`,category);return;
19
+ }
20
+ }
21
+ changes.push({path:p,category,before:a===undefined?{absent:true}:a,after:b===undefined?{absent:true}:b});
22
+ };
23
+ walk(before,after,'');return changes;
24
+ }
25
+ export function renderReadingDiff(result){
26
+ const changes=result.semantic_changes||result.changes;
27
+ return ['# 合同差异审阅','本报告不认定语义等价,不授予批准沿用或执行权限。',`旧来源:${result.before.ref};${result.before.digest}`,`新来源:${result.after.ref};${result.after.digest}`,
28
+ ...changes.flatMap(row=>[`## ${row.path||'/'}`,`分类:${row.category}(仍需按实际影响审阅)`,renderReadingValue({before:row.before,after:row.after,...(row.change?{change:row.change}:{})})]),...(!changes.length?[result.bytes_changed?'presentation-change:解析内容相同,原字节不同;原绑定仍需核验。':'没有检测到差异;批准有效性未核验。']:[])].join('\n\n')+'\n';
29
+ }
@@ -0,0 +1,39 @@
1
+ // Presentation only: labels never change identifiers or decision values.
2
+ export const readingLabels=Object.freeze({
3
+ 'domain-strategy':'领域战略审阅','stage-decision-package':'阶段决策审阅',checkpoint:'阶段状态快照','tracking-migration':'跟踪迁移审阅',
4
+ contexts:'业务责任区',subdomains:'业务板块',relationships:'协作与交接关系',rule_catalog:'业务规则',scenarios:'业务场景',concept_candidates:'关键业务对象候选',invariants:'不可违反的规则',downstream_mapping:'下游传播',context_snapshot:'术语来源',evidence_refs:'证据来源',approval:'批准记录',
5
+ responsibilities:'负责事项',non_responsibilities:'不负责事项',owner:'负责人',status:'声明状态',statement:'规则内容',responsible_context:'责任区',preconditions:'前提条件',commands:'操作',rules:'适用规则',events:'业务事件',success_results:'成功结果',failure_results:'失败结果',consumers:'消费方',rule_refs:'规则引用',critical:'关键场景',
6
+ problem_statement:'问题与目标',target_users:'目标用户',mvp:'本期范围',non_goals:'非目标',success_criteria:'成功标准',test_seams:'测试边界',confirmed_decisions:'已确认决定',assumptions:'假设',constraints:'约束',unresolved_items:'未决事项',domain_strategy_ref:'领域战略来源',impact_assessment:'影响面',
7
+ stage:'当前阶段',next_work_unit:'下一工作单元',blockers:'已登记阻塞',stage_tracking:'阶段工作',items:'工作项',progress:'工作项进度',acceptance:'验收条件',dependencies:'依赖',completion:'完成证据',recheck_required:'需要重新检查',deferred:'延期安排',cancellation_reason:'取消原因',
8
+ artifacts:'阶段资产',gates:'门禁登记',checks:'检查范围',verification:'验证记录',human_review:'人工审阅',context_reconciliation:'术语对账',ticket_sync:'Ticket 同步',git_checkpoint:'Git 授权记录',rollback:'回滚',
9
+ changes:'文件变化',before:'修改前',after:'修改后',changed_refs:'变更文件',source_operation:'源操作结果',reading_update:'阅读材料更新',
10
+ name:'名称',title:'标题',description:'说明',rationale:'依据',scope:'范围',type:'类型',next_action:'下一动作',target_version:'目标版本',semantic_upstream:'规则提供方',semantic_downstream:'规则使用方',business_authority:'业务决策权',transport_direction:'信息方向',translation_responsibility:'口径转换负责人',model_change_impact:'模型变更影响',direction_explanation:'方向说明',
11
+ });
12
+ export const escapeMarkdown=value=>String(value).replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/([\\`*_\[\]|])/g,'\\$1');
13
+ const scalar=value=>value===null?'null':String(value);
14
+ function textLines(value,indent=''){
15
+ return scalar(value).split(/\r?\n/).map((line,index)=>`${index?'\n'+indent+'> ':''}${escapeMarkdown(line)}`).join('');
16
+ }
17
+ export function renderReadingValue(value,depth=0){
18
+ if(value===null||typeof value!=='object')return textLines(value);
19
+ const entries=Object.entries(value);
20
+ if(!entries.length)return Array.isArray(value)?'[](来源明确为空)':'{}(来源明确为空)';
21
+ return entries.map(([key,child])=>{
22
+ if(Array.isArray(value)&&(child===null||typeof child!=='object'))return '- '+textLines(child).replace(/\n/g,'\n ');
23
+ const label=Array.isArray(value)?`第 ${Number(key)+1} 项`:escapeMarkdown(readingLabels[key]||key);
24
+ const rendered=renderReadingValue(child,depth+1).split('\n');
25
+ return child!==null&&typeof child==='object'&&Object.keys(child).length?`- **${label}**:\n${rendered.map(line=>' '+line).join('\n')}`:`- **${label}**:${rendered[0]}${rendered.slice(1).map(line=>'\n '+line).join('')}`;
26
+ }).join('\n');
27
+ }
28
+ export function renderReadingMarkdown(view){
29
+ const lines=[`# ${readingLabels[view.kind]||view.kind} · ${escapeMarkdown(view.binding.id||view.binding.ref)}`,
30
+ `版本:${escapeMarkdown(view.binding.version||'源资产未声明')};权威文件:${escapeMarkdown(view.binding.ref)}`,
31
+ `来源 SHA-256:${view.binding.digest}`,
32
+ '本页为来源快照;当前有效性需重新检查。批准有效性未核验;本视图不授予执行权限。',
33
+ `检查范围:${view.checks.map(escapeMarkdown).join(';')}`];
34
+ for(const [key,value]of Object.entries(view.content))if(value!==undefined){
35
+ lines.push(`## ${readingLabels[key]||escapeMarkdown(key)}`,key==='正文'&&typeof value==='string'?value:renderReadingValue(value));
36
+ }
37
+ if(view.blockers.length)lines.push('## 阻断与未决检查',...view.blockers.map(item=>`- ${escapeMarkdown(item)}`));
38
+ return lines.join('\n\n')+'\n';
39
+ }
@@ -0,0 +1,13 @@
1
+ export const readingIdFields=Object.freeze({contexts:'context_id',subdomains:'subdomain_id',relationships:'relationship_id',rule_catalog:'rule_id',scenarios:'scenario_id',concept_candidates:'concept_id',invariants:'invariant_id',downstream_mapping:'mapping_id',items:'id'});
2
+ // A lossless presentation index, never another editable contract.
3
+ const pointerPart=key=>String(key).replace(/~/g,'~0').replace(/\//g,'~1');
4
+ export function readingViewModel(view,raw){
5
+ const locations=[];
6
+ const walk=(value,pointer)=>{
7
+ if(value===null||typeof value!=='object'||Object.keys(value).length===0){locations.push({content_pointer:pointer,pointer_kind:'view-content',...(view.kind!=='tracking-migration'&&Object.hasOwn(raw||{},pointer.split('/')[1])?{source_pointer:pointer}:{}),source_ref:view.binding.ref,source_digest:view.binding.digest});return;}
8
+ for(const [key,child]of Object.entries(value))walk(child,`${pointer}/${pointerPart(key)}`);
9
+ };
10
+ walk(view.content,'');
11
+ return {view_schema_version:1,kind:view.kind,profile:view.profile,binding:view.binding,read_only:true,execution_allowed:false,approval_validity:'not-checked',
12
+ declared_state:{status:raw?.status??null,stage:raw?.stage??null},checks:view.checks,sections:Object.keys(view.content),diagnostics:view.blockers,source_locations:locations,coverage:{rendered_leaf_count:locations.length,scope:'presented-content; owner verification remains required'}};
13
+ }
@@ -0,0 +1,16 @@
1
+ import {existsSync,readFileSync} from './validation-phase.mjs';
2
+ import {safe,schema} from './strategic-handoff-io.mjs';
3
+ import {parseSliceYaml} from './slice-contract.mjs';
4
+ export const READING_POLICY='.template-spec/process/reading-policy.yaml';
5
+ export function readingPolicy(root){
6
+ const file=safe(root,READING_POLICY,{missing:true});
7
+ if(!existsSync(file))return {schema_version:1,mode:'manual',checkpoints:[]};
8
+ const value=parseSliceYaml(readFileSync(file));schema(value,'.template-spec/process/schemas/reading-policy.schema.json');
9
+ return value;
10
+ }
11
+ export function managedReading(root,checkpoint){const policy=readingPolicy(root);return policy.mode==='managed'&&policy.checkpoints.includes(checkpoint);}
12
+ export function readingLocation(checkpoint){
13
+ const match=/^docs\/\.scratch\/([a-z0-9][a-z0-9-]*)\/[^/]+\.(yaml|json)$/.exec(checkpoint);
14
+ if(!match)throw Error('reading-checkpoint-path-invalid');
15
+ return {feature:match[1],base:`docs/.scratch/${match[1]}`,directory:`docs/.scratch/${match[1]}/reading`};
16
+ }