create-yss-spec 3.5.3 → 3.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1728) hide show
  1. package/README.md +8 -0
  2. package/cli-core.lock.json +130 -0
  3. package/package.json +7 -3
  4. package/resources/upgrade-skill/SKILL.md +26 -0
  5. package/resources/upgrade-skill/protocol.md +40 -0
  6. package/resources/upgrade-skill/references/cli-families.md +14 -0
  7. package/src/cli/help.js +1 -0
  8. package/src/cli/index.js +12 -0
  9. package/src/filesystem/transaction-runner.js +27 -0
  10. package/src/template/asset-runtime.js +26 -5
  11. package/src/template/verification-runtime.js +9 -1
  12. package/template/.agents/skills/.strategic-design-skills-manifest.json +5 -5
  13. package/template/.agents/skills/archify/SKILL.md +4 -52
  14. package/template/.agents/skills/archify/references/authoring-notes.md +12 -0
  15. package/template/.agents/skills/archify/references/authoring-workflow.md +25 -0
  16. package/template/.agents/skills/archify/references/delivery-workflow.md +25 -0
  17. package/template/.agents/skills/archify/references/upstream-updates.md +12 -0
  18. package/template/.agents/skills/code-review/SKILL.md +3 -34
  19. package/template/.agents/skills/code-review/references/legacy-convergence.md +5 -0
  20. package/template/.agents/skills/code-review/references/review-axis-checklists.md +18 -0
  21. package/template/.agents/skills/code-review/references/smell-baseline.md +23 -0
  22. package/template/.agents/skills/diagnosing-bugs/SKILL.md +3 -91
  23. package/template/.agents/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  24. package/template/.agents/skills/diagnosing-bugs/references/investigation.md +49 -0
  25. package/template/.agents/skills/git-commit-core/agents/openai.yaml +2 -0
  26. package/template/.agents/skills/maintaining-skills/references/authoring.md +6 -0
  27. package/template/.agents/skills/prototype-review/SKILL.md +11 -0
  28. package/template/.agents/skills/prototype-review/references/component-qa.md +32 -0
  29. package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  30. package/template/.agents/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  31. package/template/.agents/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  32. package/template/.agents/skills/to-spec/SKILL.md +9 -62
  33. package/template/.agents/skills/to-tickets/SKILL.md +20 -86
  34. package/template/.agents/skills/using-git-worktrees/SKILL.md +5 -122
  35. package/template/.agents/skills/using-git-worktrees/references/git-fallback.md +46 -0
  36. package/template/.agents/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  37. package/template/.agents/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  38. package/template/.agents/skills/wayfinder/SKILL.md +7 -86
  39. package/template/.agents/skills/wayfinder/references/chart-map.md +14 -0
  40. package/template/.agents/skills/wayfinder/references/map-format.md +49 -0
  41. package/template/.agents/skills/wayfinder/references/scope-and-frontier.md +24 -0
  42. package/template/.agents/skills/wayfinder/references/ticket-types.md +12 -0
  43. package/template/.agents/skills/wayfinder/references/work-map.md +15 -0
  44. package/template/.agents/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  45. package/template/.agents/skills/yedit-table-usage/SKILL.md +5 -172
  46. package/template/.agents/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  47. package/template/.agents/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  48. package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  49. package/template/.agents/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  50. package/template/.agents/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  51. package/template/.agents/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  52. package/template/.agents/skills/yss-design-system/SKILL.md +13 -3
  53. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  54. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  55. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  56. package/template/.agents/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  57. package/template/.agents/skills/yss-design-system/references/data-quality-theme.md +2 -2
  58. package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +1 -1
  59. package/template/.agents/skills/yss-design-system/references/design-system.md +3 -3
  60. package/template/.agents/skills/yss-design-system/references/enterprise-craft.md +33 -0
  61. package/template/.agents/skills/yss-design-system/references/page-composition.md +24 -0
  62. package/template/.agents/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  63. package/template/.agents/skills/yss-design-system/references/search-date-theme.md +19 -0
  64. package/template/.agents/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  65. package/template/.agents/skills/yss-harness-upgrade/SKILL.md +26 -0
  66. package/template/.agents/skills/yss-harness-upgrade/references/cli-families.md +14 -0
  67. package/template/.agents/skills/yss-hook/SKILL.md +8 -102
  68. package/template/.agents/skills/yss-hook/references/async-actions.md +49 -0
  69. package/template/.agents/skills/yss-hook/references/list-pagination.md +46 -0
  70. package/template/.agents/skills/yss-hook/references/polling.md +20 -0
  71. package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  72. package/template/.agents/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -0
  73. package/template/.agents/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  74. package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +2 -49
  75. package/template/.agents/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  76. package/template/.agents/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  77. package/template/.agents/skills/yss-openapi-governance/SKILL.md +2 -48
  78. package/template/.agents/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  79. package/template/.agents/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  80. package/template/.agents/skills/yss-product-lifecycle/SKILL.md +29 -29
  81. package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  82. package/template/.agents/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  83. package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +2 -2
  84. package/template/.agents/skills/yss-prototype-stage/SKILL.md +27 -8
  85. package/template/.agents/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  86. package/template/.agents/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  87. package/template/.agents/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  88. package/template/.agents/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  89. package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  90. package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  91. package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  92. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  93. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  94. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  95. package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  96. package/template/.agents/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  97. package/template/.agents/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  98. package/template/.agents/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  99. package/template/.agents/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  100. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  101. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  102. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  103. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  104. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  105. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  106. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  107. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  108. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  109. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  110. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  111. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  112. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  113. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  114. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  115. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  116. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  117. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  118. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  119. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  120. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  121. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  122. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  123. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  124. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  125. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  126. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  127. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  128. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  129. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  130. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  131. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  132. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  133. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  134. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  135. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  136. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  137. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  138. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  139. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  140. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  141. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  142. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  143. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  144. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  145. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  146. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  147. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  148. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  149. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  150. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  151. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  152. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  153. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  154. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  155. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  156. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  157. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  158. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  159. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  160. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  161. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  162. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  163. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  164. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  165. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  166. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  167. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  168. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  169. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  170. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  171. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  172. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  173. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  174. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  175. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  176. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  177. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  178. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  179. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  180. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  181. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  182. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  183. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  184. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  185. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  186. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  187. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  188. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  189. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  190. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  191. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  192. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  193. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  194. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  195. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  196. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  197. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  198. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  199. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  200. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  201. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  202. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  203. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  204. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  205. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  206. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  207. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  208. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  209. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  210. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  211. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  212. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  213. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  214. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  215. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  216. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  217. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  218. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  219. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  220. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  221. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  222. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  223. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  224. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  225. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  226. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  227. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  228. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  229. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  230. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  231. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  232. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  233. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  234. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  235. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  236. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  237. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  238. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  239. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  240. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  241. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  242. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  243. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  244. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  245. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  246. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  247. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  248. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  249. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  250. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  251. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  252. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  253. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  254. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  255. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  256. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  257. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  258. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  259. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  260. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  261. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  262. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  263. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  264. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  265. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  266. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  267. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  268. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  269. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  270. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  271. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  272. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  273. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  274. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  275. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  276. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  277. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  278. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  279. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  280. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  281. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  282. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  283. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  284. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  285. package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  286. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  287. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  288. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  289. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  290. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  291. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  292. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  293. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  294. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  295. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  296. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  297. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  298. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  299. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  300. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  301. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  302. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  303. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  304. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  305. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  306. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  307. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  308. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  309. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  310. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  311. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  312. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  313. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  314. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  315. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  316. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  317. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  318. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  319. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  320. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  321. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  322. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  323. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  324. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  325. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  326. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  327. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  328. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  329. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  330. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  331. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  332. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  333. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  334. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  335. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  336. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  337. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  338. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  339. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  340. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  341. package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  342. package/template/.agents/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  343. package/template/.agents/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  344. package/template/.agents/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  345. package/template/.agents/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  346. package/template/.agents/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  347. package/template/.agents/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  348. package/template/.agents/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  349. package/template/.agents/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  350. package/template/.agents/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  351. package/template/.agents/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  352. package/template/.agents/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  353. package/template/.agents/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  354. package/template/.agents/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  355. package/template/.agents/skills/yss-prototype-stage/references/usability-research.md +26 -0
  356. package/template/.agents/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  357. package/template/.agents/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  358. package/template/.agents/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  359. package/template/.agents/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  360. package/template/.agents/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  361. package/template/.agents/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  362. package/template/.agents/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  363. package/template/.agents/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  364. package/template/.agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  365. package/template/.agents/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  366. package/template/.agents/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  367. package/template/.agents/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  368. package/template/.agents/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  369. package/template/.agents/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  370. package/template/.agents/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  371. package/template/.agents/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  372. package/template/.agents/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  373. package/template/.agents/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  374. package/template/.agents/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  375. package/template/.agents/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  376. package/template/.agents/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  377. package/template/.agents/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  378. package/template/.agents/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  379. package/template/.agents/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  380. package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  381. package/template/.agents/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  382. package/template/.agents/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  383. package/template/.agents/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  384. package/template/.agents/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  385. package/template/.agents/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  386. package/template/.agents/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  387. package/template/.agents/skills/yss-stage-decision/SKILL.md +5 -0
  388. package/template/.agents/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
  389. package/template/.agents/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
  390. package/template/.agents/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
  391. package/template/.agents/skills/yss-technical-design/SKILL.md +4 -0
  392. package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  393. package/template/.agents/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  394. package/template/.agents/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  395. package/template/.agents/skills/ytable-usage/SKILL.md +3 -191
  396. package/template/.agents/skills/ytable-usage/references/selection-and-batch.md +30 -0
  397. package/template/.agents/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  398. package/template/.codex/skills/archify/SKILL.md +4 -52
  399. package/template/.codex/skills/archify/references/authoring-notes.md +12 -0
  400. package/template/.codex/skills/archify/references/authoring-workflow.md +25 -0
  401. package/template/.codex/skills/archify/references/delivery-workflow.md +25 -0
  402. package/template/.codex/skills/archify/references/upstream-updates.md +12 -0
  403. package/template/.codex/skills/code-review/SKILL.md +3 -34
  404. package/template/.codex/skills/code-review/references/legacy-convergence.md +5 -0
  405. package/template/.codex/skills/code-review/references/review-axis-checklists.md +18 -0
  406. package/template/.codex/skills/code-review/references/smell-baseline.md +23 -0
  407. package/template/.codex/skills/diagnosing-bugs/SKILL.md +3 -91
  408. package/template/.codex/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  409. package/template/.codex/skills/diagnosing-bugs/references/investigation.md +49 -0
  410. package/template/.codex/skills/git-commit-core/agents/openai.yaml +2 -0
  411. package/template/.codex/skills/maintaining-skills/references/authoring.md +6 -0
  412. package/template/.codex/skills/prototype-review/SKILL.md +11 -0
  413. package/template/.codex/skills/prototype-review/references/component-qa.md +32 -0
  414. package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  415. package/template/.codex/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  416. package/template/.codex/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  417. package/template/.codex/skills/to-spec/SKILL.md +9 -62
  418. package/template/.codex/skills/to-tickets/SKILL.md +20 -86
  419. package/template/.codex/skills/using-git-worktrees/SKILL.md +5 -122
  420. package/template/.codex/skills/using-git-worktrees/references/git-fallback.md +46 -0
  421. package/template/.codex/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  422. package/template/.codex/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  423. package/template/.codex/skills/wayfinder/SKILL.md +7 -86
  424. package/template/.codex/skills/wayfinder/references/chart-map.md +14 -0
  425. package/template/.codex/skills/wayfinder/references/map-format.md +49 -0
  426. package/template/.codex/skills/wayfinder/references/scope-and-frontier.md +24 -0
  427. package/template/.codex/skills/wayfinder/references/ticket-types.md +12 -0
  428. package/template/.codex/skills/wayfinder/references/work-map.md +15 -0
  429. package/template/.codex/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  430. package/template/.codex/skills/yedit-table-usage/SKILL.md +5 -172
  431. package/template/.codex/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  432. package/template/.codex/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  433. package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  434. package/template/.codex/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  435. package/template/.codex/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  436. package/template/.codex/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  437. package/template/.codex/skills/yss-design-system/SKILL.md +13 -3
  438. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  439. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  440. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  441. package/template/.codex/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  442. package/template/.codex/skills/yss-design-system/references/data-quality-theme.md +2 -2
  443. package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +1 -1
  444. package/template/.codex/skills/yss-design-system/references/design-system.md +3 -3
  445. package/template/.codex/skills/yss-design-system/references/enterprise-craft.md +33 -0
  446. package/template/.codex/skills/yss-design-system/references/page-composition.md +24 -0
  447. package/template/.codex/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  448. package/template/.codex/skills/yss-design-system/references/search-date-theme.md +19 -0
  449. package/template/.codex/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  450. package/template/.codex/skills/yss-harness-upgrade/SKILL.md +26 -0
  451. package/template/.codex/skills/yss-harness-upgrade/references/cli-families.md +14 -0
  452. package/template/.codex/skills/yss-hook/SKILL.md +8 -102
  453. package/template/.codex/skills/yss-hook/references/async-actions.md +49 -0
  454. package/template/.codex/skills/yss-hook/references/list-pagination.md +46 -0
  455. package/template/.codex/skills/yss-hook/references/polling.md +20 -0
  456. package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  457. package/template/.codex/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -0
  458. package/template/.codex/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  459. package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +2 -49
  460. package/template/.codex/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  461. package/template/.codex/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  462. package/template/.codex/skills/yss-openapi-governance/SKILL.md +2 -48
  463. package/template/.codex/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  464. package/template/.codex/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  465. package/template/.codex/skills/yss-product-lifecycle/SKILL.md +29 -29
  466. package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  467. package/template/.codex/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  468. package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +2 -2
  469. package/template/.codex/skills/yss-prototype-stage/SKILL.md +27 -8
  470. package/template/.codex/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  471. package/template/.codex/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  472. package/template/.codex/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  473. package/template/.codex/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  474. package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  475. package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  476. package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  477. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  478. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  479. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  480. package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  481. package/template/.codex/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  482. package/template/.codex/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  483. package/template/.codex/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  484. package/template/.codex/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  485. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  486. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  487. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  488. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  489. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  490. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  491. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  492. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  493. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  494. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  495. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  496. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  497. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  498. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  499. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  500. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  501. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  502. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  503. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  504. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  505. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  506. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  507. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  508. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  509. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  510. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  511. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  512. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  513. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  514. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  515. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  516. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  517. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  518. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  519. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  520. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  521. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  522. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  523. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  524. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  525. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  526. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  527. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  528. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  529. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  530. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  531. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  532. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  533. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  534. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  535. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  536. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  537. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  538. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  539. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  540. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  541. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  542. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  543. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  544. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  545. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  546. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  547. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  548. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  549. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  550. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  551. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  552. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  553. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  554. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  555. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  556. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  557. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  558. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  559. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  560. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  561. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  562. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  563. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  564. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  565. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  566. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  567. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  568. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  569. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  570. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  571. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  572. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  573. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  574. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  575. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  576. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  577. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  578. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  579. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  580. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  581. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  582. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  583. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  584. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  585. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  586. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  587. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  588. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  589. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  590. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  591. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  592. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  593. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  594. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  595. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  596. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  597. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  598. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  599. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  600. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  601. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  602. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  603. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  604. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  605. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  606. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  607. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  608. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  609. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  610. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  611. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  612. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  613. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  614. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  615. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  616. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  617. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  618. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  619. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  620. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  621. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  622. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  623. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  624. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  625. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  626. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  627. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  628. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  629. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  630. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  631. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  632. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  633. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  634. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  635. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  636. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  637. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  638. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  639. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  640. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  641. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  642. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  643. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  644. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  645. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  646. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  647. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  648. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  649. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  650. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  651. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  652. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  653. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  654. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  655. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  656. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  657. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  658. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  659. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  660. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  661. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  662. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  663. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  664. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  665. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  666. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  667. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  668. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  669. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  670. package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  671. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  672. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  673. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  674. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  675. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  676. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  677. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  678. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  679. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  680. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  681. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  682. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  683. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  684. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  685. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  686. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  687. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  688. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  689. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  690. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  691. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  692. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  693. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  694. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  695. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  696. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  697. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  698. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  699. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  700. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  701. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  702. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  703. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  704. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  705. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  706. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  707. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  708. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  709. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  710. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  711. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  712. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  713. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  714. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  715. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  716. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  717. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  718. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  719. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  720. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  721. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  722. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  723. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  724. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  725. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  726. package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  727. package/template/.codex/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  728. package/template/.codex/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  729. package/template/.codex/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  730. package/template/.codex/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  731. package/template/.codex/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  732. package/template/.codex/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  733. package/template/.codex/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  734. package/template/.codex/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  735. package/template/.codex/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  736. package/template/.codex/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  737. package/template/.codex/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  738. package/template/.codex/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  739. package/template/.codex/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  740. package/template/.codex/skills/yss-prototype-stage/references/usability-research.md +26 -0
  741. package/template/.codex/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  742. package/template/.codex/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  743. package/template/.codex/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  744. package/template/.codex/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  745. package/template/.codex/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  746. package/template/.codex/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  747. package/template/.codex/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  748. package/template/.codex/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  749. package/template/.codex/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  750. package/template/.codex/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  751. package/template/.codex/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  752. package/template/.codex/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  753. package/template/.codex/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  754. package/template/.codex/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  755. package/template/.codex/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  756. package/template/.codex/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  757. package/template/.codex/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  758. package/template/.codex/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  759. package/template/.codex/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  760. package/template/.codex/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  761. package/template/.codex/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  762. package/template/.codex/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  763. package/template/.codex/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  764. package/template/.codex/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  765. package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  766. package/template/.codex/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  767. package/template/.codex/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  768. package/template/.codex/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  769. package/template/.codex/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  770. package/template/.codex/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  771. package/template/.codex/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  772. package/template/.codex/skills/yss-stage-decision/SKILL.md +5 -0
  773. package/template/.codex/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
  774. package/template/.codex/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
  775. package/template/.codex/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
  776. package/template/.codex/skills/yss-technical-design/SKILL.md +4 -0
  777. package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  778. package/template/.codex/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  779. package/template/.codex/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  780. package/template/.codex/skills/ytable-usage/SKILL.md +3 -191
  781. package/template/.codex/skills/ytable-usage/references/selection-and-batch.md +30 -0
  782. package/template/.codex/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  783. package/template/.cursor/skills/archify/SKILL.md +4 -52
  784. package/template/.cursor/skills/archify/references/authoring-notes.md +12 -0
  785. package/template/.cursor/skills/archify/references/authoring-workflow.md +25 -0
  786. package/template/.cursor/skills/archify/references/delivery-workflow.md +25 -0
  787. package/template/.cursor/skills/archify/references/upstream-updates.md +12 -0
  788. package/template/.cursor/skills/code-review/SKILL.md +3 -34
  789. package/template/.cursor/skills/code-review/references/legacy-convergence.md +5 -0
  790. package/template/.cursor/skills/code-review/references/review-axis-checklists.md +18 -0
  791. package/template/.cursor/skills/code-review/references/smell-baseline.md +23 -0
  792. package/template/.cursor/skills/diagnosing-bugs/SKILL.md +3 -91
  793. package/template/.cursor/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  794. package/template/.cursor/skills/diagnosing-bugs/references/investigation.md +49 -0
  795. package/template/.cursor/skills/git-commit-core/agents/openai.yaml +2 -0
  796. package/template/.cursor/skills/maintaining-skills/references/authoring.md +6 -0
  797. package/template/.cursor/skills/prototype-review/SKILL.md +11 -0
  798. package/template/.cursor/skills/prototype-review/references/component-qa.md +32 -0
  799. package/template/.cursor/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  800. package/template/.cursor/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  801. package/template/.cursor/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  802. package/template/.cursor/skills/to-spec/SKILL.md +9 -62
  803. package/template/.cursor/skills/to-tickets/SKILL.md +20 -86
  804. package/template/.cursor/skills/using-git-worktrees/SKILL.md +5 -122
  805. package/template/.cursor/skills/using-git-worktrees/references/git-fallback.md +46 -0
  806. package/template/.cursor/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  807. package/template/.cursor/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  808. package/template/.cursor/skills/wayfinder/SKILL.md +7 -86
  809. package/template/.cursor/skills/wayfinder/references/chart-map.md +14 -0
  810. package/template/.cursor/skills/wayfinder/references/map-format.md +49 -0
  811. package/template/.cursor/skills/wayfinder/references/scope-and-frontier.md +24 -0
  812. package/template/.cursor/skills/wayfinder/references/ticket-types.md +12 -0
  813. package/template/.cursor/skills/wayfinder/references/work-map.md +15 -0
  814. package/template/.cursor/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  815. package/template/.cursor/skills/yedit-table-usage/SKILL.md +5 -172
  816. package/template/.cursor/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  817. package/template/.cursor/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  818. package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  819. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  820. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  821. package/template/.cursor/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  822. package/template/.cursor/skills/yss-design-system/SKILL.md +13 -3
  823. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  824. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  825. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  826. package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  827. package/template/.cursor/skills/yss-design-system/references/data-quality-theme.md +2 -2
  828. package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +1 -1
  829. package/template/.cursor/skills/yss-design-system/references/design-system.md +3 -3
  830. package/template/.cursor/skills/yss-design-system/references/enterprise-craft.md +33 -0
  831. package/template/.cursor/skills/yss-design-system/references/page-composition.md +24 -0
  832. package/template/.cursor/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  833. package/template/.cursor/skills/yss-design-system/references/search-date-theme.md +19 -0
  834. package/template/.cursor/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  835. package/template/.cursor/skills/yss-harness-upgrade/SKILL.md +26 -0
  836. package/template/.cursor/skills/yss-harness-upgrade/references/cli-families.md +14 -0
  837. package/template/.cursor/skills/yss-hook/SKILL.md +8 -102
  838. package/template/.cursor/skills/yss-hook/references/async-actions.md +49 -0
  839. package/template/.cursor/skills/yss-hook/references/list-pagination.md +46 -0
  840. package/template/.cursor/skills/yss-hook/references/polling.md +20 -0
  841. package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  842. package/template/.cursor/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -0
  843. package/template/.cursor/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  844. package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +2 -49
  845. package/template/.cursor/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  846. package/template/.cursor/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  847. package/template/.cursor/skills/yss-openapi-governance/SKILL.md +2 -48
  848. package/template/.cursor/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  849. package/template/.cursor/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  850. package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +29 -29
  851. package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  852. package/template/.cursor/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  853. package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +2 -2
  854. package/template/.cursor/skills/yss-prototype-stage/SKILL.md +27 -8
  855. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  856. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  857. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  858. package/template/.cursor/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  859. package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  860. package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  861. package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  862. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  863. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  864. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  865. package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  866. package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  867. package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  868. package/template/.cursor/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  869. package/template/.cursor/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  870. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  871. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  872. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  873. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  874. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  875. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  876. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  877. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  878. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  879. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  880. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  881. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  882. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  883. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  884. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  885. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  886. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  887. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  888. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  889. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  890. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  891. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  892. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  893. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  894. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  895. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  896. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  897. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  898. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  899. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  900. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  901. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  902. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  903. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  904. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  905. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  906. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  907. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  908. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  909. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  910. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  911. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  912. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  913. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  914. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  915. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  916. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  917. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  918. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  919. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  920. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  921. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  922. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  923. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  924. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  925. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  926. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  927. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  928. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  929. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  930. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  931. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  932. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  933. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  934. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  935. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  936. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  937. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  938. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  939. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  940. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  941. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  942. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  943. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  944. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  945. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  946. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  947. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  948. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  949. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  950. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  951. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  952. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  953. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  954. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  955. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  956. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  957. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  958. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  959. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  960. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  961. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  962. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  963. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  964. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  965. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  966. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  967. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  968. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  969. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  970. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  971. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  972. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  973. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  974. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  975. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  976. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  977. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  978. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  979. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  980. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  981. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  982. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  983. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  984. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  985. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  986. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  987. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  988. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  989. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  990. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  991. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  992. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  993. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  994. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  995. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  996. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  997. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  998. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  999. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  1000. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  1001. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  1002. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  1003. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  1004. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  1005. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  1006. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  1007. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  1008. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  1009. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  1010. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  1011. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  1012. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  1013. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  1014. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  1015. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  1016. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  1017. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  1018. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  1019. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  1020. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  1021. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  1022. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  1023. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  1024. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  1025. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  1026. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  1027. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  1028. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  1029. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  1030. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  1031. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  1032. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  1033. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  1034. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  1035. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  1036. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  1037. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  1038. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  1039. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  1040. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  1041. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  1042. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  1043. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  1044. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  1045. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  1046. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  1047. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  1048. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  1049. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  1050. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  1051. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  1052. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  1053. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  1054. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  1055. package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  1056. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  1057. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  1058. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  1059. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  1060. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  1061. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  1062. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  1063. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  1064. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  1065. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  1066. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  1067. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  1068. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  1069. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  1070. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  1071. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  1072. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  1073. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  1074. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  1075. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  1076. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  1077. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  1078. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  1079. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  1080. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  1081. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  1082. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  1083. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  1084. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  1085. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  1086. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  1087. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  1088. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  1089. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  1090. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  1091. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  1092. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  1093. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  1094. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  1095. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  1096. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  1097. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  1098. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  1099. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  1100. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  1101. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  1102. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  1103. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  1104. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  1105. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  1106. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  1107. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  1108. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  1109. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  1110. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  1111. package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  1112. package/template/.cursor/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  1113. package/template/.cursor/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  1114. package/template/.cursor/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  1115. package/template/.cursor/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  1116. package/template/.cursor/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  1117. package/template/.cursor/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  1118. package/template/.cursor/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  1119. package/template/.cursor/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  1120. package/template/.cursor/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  1121. package/template/.cursor/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  1122. package/template/.cursor/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  1123. package/template/.cursor/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  1124. package/template/.cursor/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  1125. package/template/.cursor/skills/yss-prototype-stage/references/usability-research.md +26 -0
  1126. package/template/.cursor/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  1127. package/template/.cursor/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  1128. package/template/.cursor/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  1129. package/template/.cursor/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  1130. package/template/.cursor/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  1131. package/template/.cursor/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  1132. package/template/.cursor/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  1133. package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  1134. package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  1135. package/template/.cursor/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  1136. package/template/.cursor/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  1137. package/template/.cursor/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  1138. package/template/.cursor/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  1139. package/template/.cursor/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  1140. package/template/.cursor/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  1141. package/template/.cursor/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  1142. package/template/.cursor/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  1143. package/template/.cursor/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  1144. package/template/.cursor/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  1145. package/template/.cursor/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  1146. package/template/.cursor/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  1147. package/template/.cursor/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  1148. package/template/.cursor/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  1149. package/template/.cursor/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  1150. package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  1151. package/template/.cursor/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  1152. package/template/.cursor/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  1153. package/template/.cursor/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  1154. package/template/.cursor/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  1155. package/template/.cursor/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  1156. package/template/.cursor/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  1157. package/template/.cursor/skills/yss-stage-decision/SKILL.md +5 -0
  1158. package/template/.cursor/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
  1159. package/template/.cursor/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
  1160. package/template/.cursor/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
  1161. package/template/.cursor/skills/yss-technical-design/SKILL.md +4 -0
  1162. package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  1163. package/template/.cursor/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  1164. package/template/.cursor/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  1165. package/template/.cursor/skills/ytable-usage/SKILL.md +3 -191
  1166. package/template/.cursor/skills/ytable-usage/references/selection-and-batch.md +30 -0
  1167. package/template/.cursor/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  1168. package/template/.pi/skills/archify/SKILL.md +4 -52
  1169. package/template/.pi/skills/archify/references/authoring-notes.md +12 -0
  1170. package/template/.pi/skills/archify/references/authoring-workflow.md +25 -0
  1171. package/template/.pi/skills/archify/references/delivery-workflow.md +25 -0
  1172. package/template/.pi/skills/archify/references/upstream-updates.md +12 -0
  1173. package/template/.pi/skills/code-review/SKILL.md +3 -34
  1174. package/template/.pi/skills/code-review/references/legacy-convergence.md +5 -0
  1175. package/template/.pi/skills/code-review/references/review-axis-checklists.md +18 -0
  1176. package/template/.pi/skills/code-review/references/smell-baseline.md +23 -0
  1177. package/template/.pi/skills/diagnosing-bugs/SKILL.md +3 -91
  1178. package/template/.pi/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
  1179. package/template/.pi/skills/diagnosing-bugs/references/investigation.md +49 -0
  1180. package/template/.pi/skills/git-commit-core/agents/openai.yaml +2 -0
  1181. package/template/.pi/skills/maintaining-skills/references/authoring.md +6 -0
  1182. package/template/.pi/skills/prototype-review/SKILL.md +11 -0
  1183. package/template/.pi/skills/prototype-review/references/component-qa.md +32 -0
  1184. package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +3 -73
  1185. package/template/.pi/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
  1186. package/template/.pi/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
  1187. package/template/.pi/skills/to-spec/SKILL.md +9 -62
  1188. package/template/.pi/skills/to-tickets/SKILL.md +20 -86
  1189. package/template/.pi/skills/using-git-worktrees/SKILL.md +5 -122
  1190. package/template/.pi/skills/using-git-worktrees/references/git-fallback.md +46 -0
  1191. package/template/.pi/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
  1192. package/template/.pi/skills/using-git-worktrees/references/troubleshooting.md +47 -0
  1193. package/template/.pi/skills/wayfinder/SKILL.md +7 -86
  1194. package/template/.pi/skills/wayfinder/references/chart-map.md +14 -0
  1195. package/template/.pi/skills/wayfinder/references/map-format.md +49 -0
  1196. package/template/.pi/skills/wayfinder/references/scope-and-frontier.md +24 -0
  1197. package/template/.pi/skills/wayfinder/references/ticket-types.md +12 -0
  1198. package/template/.pi/skills/wayfinder/references/work-map.md +15 -0
  1199. package/template/.pi/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
  1200. package/template/.pi/skills/yedit-table-usage/SKILL.md +5 -172
  1201. package/template/.pi/skills/yedit-table-usage/references/editable-table-example.md +141 -0
  1202. package/template/.pi/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
  1203. package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
  1204. package/template/.pi/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
  1205. package/template/.pi/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
  1206. package/template/.pi/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
  1207. package/template/.pi/skills/yss-design-system/SKILL.md +13 -3
  1208. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
  1209. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
  1210. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
  1211. package/template/.pi/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
  1212. package/template/.pi/skills/yss-design-system/references/data-quality-theme.md +2 -2
  1213. package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +1 -1
  1214. package/template/.pi/skills/yss-design-system/references/design-system.md +3 -3
  1215. package/template/.pi/skills/yss-design-system/references/enterprise-craft.md +33 -0
  1216. package/template/.pi/skills/yss-design-system/references/page-composition.md +24 -0
  1217. package/template/.pi/skills/yss-design-system/references/prototype-default-theme.md +26 -0
  1218. package/template/.pi/skills/yss-design-system/references/search-date-theme.md +19 -0
  1219. package/template/.pi/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
  1220. package/template/.pi/skills/yss-harness-upgrade/SKILL.md +26 -0
  1221. package/template/.pi/skills/yss-harness-upgrade/references/cli-families.md +14 -0
  1222. package/template/.pi/skills/yss-hook/SKILL.md +8 -102
  1223. package/template/.pi/skills/yss-hook/references/async-actions.md +49 -0
  1224. package/template/.pi/skills/yss-hook/references/list-pagination.md +46 -0
  1225. package/template/.pi/skills/yss-hook/references/polling.md +20 -0
  1226. package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
  1227. package/template/.pi/skills/yss-implementation-contract-compiler/references/boundaries.md +1 -0
  1228. package/template/.pi/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
  1229. package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +2 -49
  1230. package/template/.pi/skills/yss-openapi-draft-review/references/review-output.md +45 -0
  1231. package/template/.pi/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
  1232. package/template/.pi/skills/yss-openapi-governance/SKILL.md +2 -48
  1233. package/template/.pi/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
  1234. package/template/.pi/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
  1235. package/template/.pi/skills/yss-product-lifecycle/SKILL.md +29 -29
  1236. package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
  1237. package/template/.pi/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
  1238. package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +2 -2
  1239. package/template/.pi/skills/yss-prototype-stage/SKILL.md +27 -8
  1240. package/template/.pi/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
  1241. package/template/.pi/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
  1242. package/template/.pi/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
  1243. package/template/.pi/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
  1244. package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
  1245. package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
  1246. package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
  1247. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
  1248. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
  1249. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
  1250. package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
  1251. package/template/.pi/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
  1252. package/template/.pi/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
  1253. package/template/.pi/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
  1254. package/template/.pi/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
  1255. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
  1256. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
  1257. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
  1258. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
  1259. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
  1260. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
  1261. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
  1262. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
  1263. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
  1264. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
  1265. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
  1266. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
  1267. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
  1268. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
  1269. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
  1270. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
  1271. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
  1272. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
  1273. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
  1274. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
  1275. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
  1276. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
  1277. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
  1278. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
  1279. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
  1280. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
  1281. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
  1282. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
  1283. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
  1284. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
  1285. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
  1286. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
  1287. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
  1288. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
  1289. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
  1290. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
  1291. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
  1292. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
  1293. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
  1294. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
  1295. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
  1296. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
  1297. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
  1298. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
  1299. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
  1300. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
  1301. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
  1302. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
  1303. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
  1304. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
  1305. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
  1306. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
  1307. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
  1308. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
  1309. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
  1310. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
  1311. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
  1312. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
  1313. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
  1314. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
  1315. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
  1316. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
  1317. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
  1318. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
  1319. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
  1320. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
  1321. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
  1322. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
  1323. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
  1324. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
  1325. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
  1326. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
  1327. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
  1328. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
  1329. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
  1330. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
  1331. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
  1332. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
  1333. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
  1334. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
  1335. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
  1336. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
  1337. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
  1338. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
  1339. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
  1340. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
  1341. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
  1342. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
  1343. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
  1344. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
  1345. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
  1346. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
  1347. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
  1348. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
  1349. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
  1350. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
  1351. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
  1352. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
  1353. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
  1354. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
  1355. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
  1356. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
  1357. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
  1358. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
  1359. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
  1360. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
  1361. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
  1362. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
  1363. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
  1364. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
  1365. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
  1366. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
  1367. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
  1368. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
  1369. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
  1370. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
  1371. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
  1372. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
  1373. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
  1374. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
  1375. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
  1376. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
  1377. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
  1378. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
  1379. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
  1380. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
  1381. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
  1382. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
  1383. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
  1384. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
  1385. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
  1386. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
  1387. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
  1388. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
  1389. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
  1390. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
  1391. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
  1392. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
  1393. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
  1394. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
  1395. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
  1396. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
  1397. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
  1398. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
  1399. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
  1400. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
  1401. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
  1402. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
  1403. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
  1404. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
  1405. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
  1406. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
  1407. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
  1408. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
  1409. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
  1410. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
  1411. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
  1412. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
  1413. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
  1414. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
  1415. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
  1416. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
  1417. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
  1418. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
  1419. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
  1420. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
  1421. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
  1422. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
  1423. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
  1424. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
  1425. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
  1426. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
  1427. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
  1428. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
  1429. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
  1430. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
  1431. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
  1432. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
  1433. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
  1434. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
  1435. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
  1436. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
  1437. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
  1438. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
  1439. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
  1440. package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
  1441. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
  1442. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
  1443. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
  1444. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
  1445. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
  1446. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
  1447. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
  1448. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
  1449. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
  1450. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
  1451. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
  1452. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
  1453. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
  1454. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
  1455. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
  1456. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
  1457. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
  1458. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
  1459. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
  1460. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
  1461. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
  1462. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
  1463. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
  1464. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
  1465. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
  1466. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
  1467. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
  1468. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
  1469. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
  1470. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
  1471. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
  1472. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
  1473. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
  1474. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
  1475. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
  1476. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
  1477. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
  1478. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
  1479. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
  1480. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
  1481. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
  1482. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
  1483. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
  1484. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
  1485. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
  1486. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
  1487. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
  1488. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
  1489. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
  1490. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
  1491. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
  1492. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
  1493. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
  1494. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
  1495. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
  1496. package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
  1497. package/template/.pi/skills/yss-prototype-stage/references/business-patterns.md +42 -0
  1498. package/template/.pi/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
  1499. package/template/.pi/skills/yss-prototype-stage/references/component-recipes.md +41 -0
  1500. package/template/.pi/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
  1501. package/template/.pi/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
  1502. package/template/.pi/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
  1503. package/template/.pi/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
  1504. package/template/.pi/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
  1505. package/template/.pi/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
  1506. package/template/.pi/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
  1507. package/template/.pi/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
  1508. package/template/.pi/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
  1509. package/template/.pi/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
  1510. package/template/.pi/skills/yss-prototype-stage/references/usability-research.md +26 -0
  1511. package/template/.pi/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
  1512. package/template/.pi/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
  1513. package/template/.pi/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
  1514. package/template/.pi/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
  1515. package/template/.pi/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
  1516. package/template/.pi/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
  1517. package/template/.pi/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
  1518. package/template/.pi/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
  1519. package/template/.pi/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
  1520. package/template/.pi/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
  1521. package/template/.pi/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
  1522. package/template/.pi/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
  1523. package/template/.pi/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
  1524. package/template/.pi/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
  1525. package/template/.pi/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
  1526. package/template/.pi/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
  1527. package/template/.pi/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
  1528. package/template/.pi/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
  1529. package/template/.pi/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
  1530. package/template/.pi/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
  1531. package/template/.pi/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
  1532. package/template/.pi/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
  1533. package/template/.pi/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
  1534. package/template/.pi/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
  1535. package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
  1536. package/template/.pi/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
  1537. package/template/.pi/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
  1538. package/template/.pi/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
  1539. package/template/.pi/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
  1540. package/template/.pi/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
  1541. package/template/.pi/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
  1542. package/template/.pi/skills/yss-stage-decision/SKILL.md +5 -0
  1543. package/template/.pi/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
  1544. package/template/.pi/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
  1545. package/template/.pi/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
  1546. package/template/.pi/skills/yss-technical-design/SKILL.md +4 -0
  1547. package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +4 -61
  1548. package/template/.pi/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
  1549. package/template/.pi/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
  1550. package/template/.pi/skills/ytable-usage/SKILL.md +3 -191
  1551. package/template/.pi/skills/ytable-usage/references/selection-and-batch.md +30 -0
  1552. package/template/.pi/skills/ytable-usage/references/table-pagination-examples.md +170 -0
  1553. package/template/.template-spec/agents/digital-human-roles.yaml +2 -2
  1554. package/template/.template-spec/agents/issue-tracker.md +10 -1
  1555. package/template/.template-spec/agents/yss-skill-registry.yaml +50 -1
  1556. package/template/.template-spec/design/README.md +7 -2
  1557. package/template/.template-spec/design/design.md +30 -35
  1558. package/template/.template-spec/design/templates/examples/model-publishing-interaction.example.md +2 -2
  1559. package/template/.template-spec/design/templates/interaction-spec-template.md +24 -0
  1560. package/template/.template-spec/design/templates/prototype-evidence-template.yaml +18 -5
  1561. package/template/.template-spec/design/templates/prototype-review-checklist.md +8 -0
  1562. package/template/.template-spec/design/tokens/.design-md-projection.json +2 -2
  1563. package/template/.template-spec/design/tokens/variables.css +162 -0
  1564. package/template/.template-spec/plan/templates/plan-template.md +25 -1
  1565. package/template/.template-spec/process/business-tickets.md +48 -0
  1566. package/template/.template-spec/process/checkpoint-boundary.yaml +73 -0
  1567. package/template/.template-spec/process/contract-reading.md +36 -1
  1568. package/template/.template-spec/process/document-writing.md +14 -0
  1569. package/template/.template-spec/process/feature-assets.md +38 -0
  1570. package/template/.template-spec/process/harness-upgrade.md +40 -0
  1571. package/template/.template-spec/process/lifecycle-artifact-map.md +3 -2
  1572. package/template/.template-spec/process/lifecycle-registry-baseline.json +9 -5
  1573. package/template/.template-spec/process/lifecycle-registry.yaml +18 -6
  1574. package/template/.template-spec/process/plan-spec-quality.md +69 -0
  1575. package/template/.template-spec/process/project-ci.md +21 -0
  1576. package/template/.template-spec/process/reading-policy.yaml +4 -0
  1577. package/template/.template-spec/process/schemas/approval-record.schema.json +23 -0
  1578. package/template/.template-spec/process/schemas/business-tickets-v1.schema.json +449 -0
  1579. package/template/.template-spec/process/schemas/domain-strategy-reading.schema.json +216 -0
  1580. package/template/.template-spec/process/schemas/lifecycle-checkpoint.schema.json +203 -11
  1581. package/template/.template-spec/process/schemas/reading-manifest.schema.json +14 -0
  1582. package/template/.template-spec/process/schemas/reading-policy.schema.json +10 -0
  1583. package/template/.template-spec/process/schemas/stage-decision-package-reading.schema.json +148 -0
  1584. package/template/.template-spec/process/stage-tracking.md +10 -2
  1585. package/template/.template-spec/process/strategic-handoff-package.md +3 -1
  1586. package/template/.template-spec/process/structured-assets.md +35 -0
  1587. package/template/.template-spec/process/templates/lifecycle-checkpoint-template.json +48 -0
  1588. package/template/.template-spec/process/templates/stage-checkpoint-template.md +6 -1
  1589. package/template/.template-spec/templates/approval-record-template.json +23 -0
  1590. package/template/.template-spec/templates/business-ticket-review-template.yaml +11 -0
  1591. package/template/.template-spec/templates/business-ticket-set-template.yaml +16 -0
  1592. package/template/.template-spec/templates/business-ticket-template.md +38 -0
  1593. package/template/.template-spec/templates/examples/lifecycle-writing-examples.md +16 -0
  1594. package/template/.template-spec/templates/examples/plan-spec/complex-defective.md +38 -0
  1595. package/template/.template-spec/templates/examples/plan-spec/complex-source.md +12 -0
  1596. package/template/.template-spec/templates/examples/plan-spec/complex-valid.md +38 -0
  1597. package/template/.template-spec/templates/examples/plan-spec/expectations.json +46 -0
  1598. package/template/.template-spec/templates/examples/plan-spec/high-risk-before.md +32 -0
  1599. package/template/.template-spec/templates/examples/plan-spec/high-risk-defective.md +39 -0
  1600. package/template/.template-spec/templates/examples/plan-spec/high-risk-source.md +11 -0
  1601. package/template/.template-spec/templates/examples/plan-spec/high-risk-valid.md +39 -0
  1602. package/template/.template-spec/templates/examples/plan-spec/ordinary-defective.md +36 -0
  1603. package/template/.template-spec/templates/examples/plan-spec/ordinary-plan.md +27 -0
  1604. package/template/.template-spec/templates/examples/plan-spec/ordinary-source.md +14 -0
  1605. package/template/.template-spec/templates/examples/plan-spec/ordinary-valid.md +36 -0
  1606. package/template/.template-spec/templates/local-parent-ticket-template.md +23 -15
  1607. package/template/.template-spec/templates/spec-delta-template.md +7 -5
  1608. package/template/.template-spec/templates/spec-template.md +31 -15
  1609. package/template/.template-spec/templates/vertical-slice-ticket-template.md +4 -0
  1610. package/template/AGENTS.md +1 -1
  1611. package/template/CONTEXT.md +1 -0
  1612. package/template/DESIGN.md +23 -4
  1613. package/template/scripts/check-plan-stage-coverage +12 -0
  1614. package/template/scripts/contract +20 -2
  1615. package/template/scripts/feature-assets +23 -0
  1616. package/template/scripts/inspect-plan-spec +32 -0
  1617. package/template/scripts/inspect-skill-discovery +24 -0
  1618. package/template/scripts/lib/approval-record.mjs +4 -3
  1619. package/template/scripts/lib/asset-command.mjs +35 -0
  1620. package/template/scripts/lib/asset-migration.mjs +101 -0
  1621. package/template/scripts/lib/asset-transactions.mjs +235 -0
  1622. package/template/scripts/lib/business-ticket-lifecycle.mjs +34 -0
  1623. package/template/scripts/lib/business-tickets.mjs +273 -0
  1624. package/template/scripts/lib/checkpoint-boundary.mjs +43 -0
  1625. package/template/scripts/lib/contract-views.mjs +27 -8
  1626. package/template/scripts/lib/feature-assets.mjs +274 -0
  1627. package/template/scripts/lib/governance-io.mjs +40 -0
  1628. package/template/scripts/lib/json-schema.mjs +43 -4
  1629. package/template/scripts/lib/lifecycle-context-query.mjs +7 -0
  1630. package/template/scripts/lib/lifecycle-presentation.mjs +77 -0
  1631. package/template/scripts/lib/lifecycle-status.mjs +33 -2
  1632. package/template/scripts/lib/lifecycle-transition.mjs +12 -3
  1633. package/template/scripts/lib/plan-spec-markdown.mjs +97 -0
  1634. package/template/scripts/lib/plan-spec-quality.mjs +289 -0
  1635. package/template/scripts/lib/plan-stage-coverage.mjs +40 -0
  1636. package/template/scripts/lib/project-ci-install.mjs +98 -0
  1637. package/template/scripts/lib/project-governance.mjs +189 -0
  1638. package/template/scripts/lib/reading-view-adapters.mjs +62 -0
  1639. package/template/scripts/lib/reading-view-bundle.mjs +202 -0
  1640. package/template/scripts/lib/reading-view-diff.mjs +29 -0
  1641. package/template/scripts/lib/reading-view-markdown.mjs +41 -0
  1642. package/template/scripts/lib/reading-view-model.mjs +13 -0
  1643. package/template/scripts/lib/reading-view-policy.mjs +16 -0
  1644. package/template/scripts/lib/skill-discovery.mjs +150 -0
  1645. package/template/scripts/lib/skill-registry.mjs +41 -1
  1646. package/template/scripts/lib/skill-supply-chain.mjs +1 -1
  1647. package/template/scripts/lib/slice-contract-preparation.mjs +8 -2
  1648. package/template/scripts/lib/slice-contract.mjs +15 -1
  1649. package/template/scripts/lib/stage-tracking-migration.mjs +20 -4
  1650. package/template/scripts/lib/stage-tracking.mjs +10 -5
  1651. package/template/scripts/lib/strategic-handoff-consumption.mjs +14 -2
  1652. package/template/scripts/lib/strategic-handoff-io.mjs +6 -2
  1653. package/template/scripts/lib/strategic-handoff.mjs +26 -5
  1654. package/template/scripts/lib/structured-assets.mjs +81 -0
  1655. package/template/scripts/lib/task-package.mjs +18 -4
  1656. package/template/scripts/lib/testing/user-decision-fixture.mjs +33 -0
  1657. package/template/scripts/lib/user-decision-reuse.mjs +1 -1
  1658. package/template/scripts/lifecycle-status +16 -3
  1659. package/template/scripts/project-ci +20 -0
  1660. package/template/scripts/project-ci-transition +13 -0
  1661. package/template/scripts/query-lifecycle-context +4 -0
  1662. package/template/scripts/stage-tracking +1 -0
  1663. package/template/scripts/vendor/NOTICES.md +237 -0
  1664. package/template/scripts/vendor/manifest.json +1216 -65
  1665. package/template/scripts/vendor/markdown.mjs +11783 -0
  1666. package/template/scripts/verify-approval-record +4 -1
  1667. package/template/scripts/verify-business-tickets +11 -0
  1668. package/template/scripts/verify-context-contract +4 -1
  1669. package/template/scripts/verify-digital-human-task-package +4 -1
  1670. package/template/scripts/verify-lifecycle-checkpoint +24 -6
  1671. package/template/scripts/verify-prototype-design +3 -0
  1672. package/template/skills-lock.json +46 -34
  1673. package/template.manifest.json +3 -1
  1674. package/template.snapshot.json +5 -5
  1675. package/vendor/cli-core/build.mjs +302 -0
  1676. package/vendor/cli-core/bundle.mjs +198 -0
  1677. package/vendor/cli-core/cli.mjs +182 -0
  1678. package/vendor/cli-core/command-runner.mjs +107 -0
  1679. package/vendor/cli-core/engine.mjs +239 -0
  1680. package/vendor/cli-core/family.mjs +28 -0
  1681. package/vendor/cli-core/gitignore.mjs +15 -0
  1682. package/vendor/cli-core/identity.mjs +274 -0
  1683. package/vendor/cli-core/io.mjs +153 -0
  1684. package/vendor/cli-core/layout-migration.mjs +64 -0
  1685. package/vendor/cli-core/legacy.mjs +19 -0
  1686. package/vendor/cli-core/migrate.mjs +237 -0
  1687. package/vendor/cli-core/migration-adapter.mjs +19 -0
  1688. package/vendor/cli-core/package.json +13 -0
  1689. package/vendor/cli-core/scaffold.mjs +117 -0
  1690. package/vendor/cli-core/spec-migration-adapter.mjs +83 -0
  1691. package/vendor/cli-core/tests/build.test.mjs +40 -0
  1692. package/vendor/cli-core/tests/cli.test.mjs +1065 -0
  1693. package/vendor/cli-core/tests/migration-version.test.mjs +8 -0
  1694. package/vendor/cli-core/tests/package-contract.mjs +75 -0
  1695. package/vendor/cli-core/transaction.mjs +529 -0
  1696. package/vendor/cli-core/update.mjs +79 -0
  1697. package/vendor/cli-core/vendor/NOTICES.md +6 -0
  1698. package/vendor/cli-core/vendor/yaml.LICENSE +13 -0
  1699. package/vendor/cli-core/vendor/yaml.mjs +6311 -0
  1700. package/vendor/cli-core/verification.mjs +131 -0
  1701. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1702. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1703. package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1704. package/template/.agents/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1705. package/template/.agents/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1706. package/template/.agents/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1707. package/template/.agents/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
  1708. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1709. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1710. package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1711. package/template/.codex/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1712. package/template/.codex/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1713. package/template/.codex/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1714. package/template/.codex/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
  1715. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1716. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1717. package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1718. package/template/.cursor/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1719. package/template/.cursor/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1720. package/template/.cursor/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1721. package/template/.cursor/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
  1722. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
  1723. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
  1724. package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
  1725. package/template/.pi/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
  1726. package/template/.pi/skills/yss-prototype-stage/references/antd-integration.md +0 -61
  1727. package/template/.pi/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
  1728. package/template/.pi/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
@@ -0,0 +1,98 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import { randomUUID } from 'node:crypto';
4
+ import { safeFile, fileBinding, readDocument, digest } from './governance-io.mjs';
5
+ import { CI_CONFIG, TRACKER, governanceScope } from './project-governance.mjs';
6
+
7
+ export const CI_WORKFLOW='.github/workflows/yss-governance.yml';
8
+ export const CI_RECEIPT='.template-spec/process/project-ci-install.json';
9
+ export const CI_JOURNAL='.template-spec/process/.project-ci-transaction.json';
10
+ const conflict=message=>{const error=new Error(message);error.exitCode=1;throw error;};
11
+ const canonical=value=>Array.isArray(value)?value.map(canonical):value&&typeof value==='object'?Object.fromEntries(Object.keys(value).sort().map(k=>[k,canonical(value[k])])):value;
12
+ const encode=value=>JSON.stringify(canonical(value),null,2)+'\n';
13
+ const hashObject=value=>digest(encode(value));
14
+ function workflow(branch) {
15
+ return `# Managed by scripts/project-ci; edit through an explicit plan/apply.\nname: YSS project governance\non:\n pull_request:\n push:\n branches: [${JSON.stringify(branch)}]\n workflow_dispatch:\npermissions:\n contents: read\njobs:\n governance:\n name: YSS governance\n runs-on: ubuntu-latest\n timeout-minutes: 15\n steps:\n - uses: actions/checkout@v4\n with:\n fetch-depth: 0\n persist-credentials: false\n - uses: actions/setup-node@v4\n with:\n node-version: '24'\n - uses: actions/setup-python@v5\n with:\n python-version: '3.12'\n - run: python -m pip install jsonschema==4.23.0\n - name: Check current governance evidence\n env:\n BASE_SHA: \${{ github.event.pull_request.base.sha }}\n shell: bash\n run: |\n if [[ -n "$BASE_SHA" ]]; then\n node scripts/project-ci check --root . --base "$BASE_SHA" --json > "$RUNNER_TEMP/yss-governance.json"\n else\n node scripts/project-ci check --root . --json > "$RUNNER_TEMP/yss-governance.json"\n fi\n - uses: actions/upload-artifact@v4\n if: always()\n with:\n name: yss-governance\n path: \${{ runner.temp }}/yss-governance.json\n if-no-files-found: error\n`;
16
+ }
17
+ function configuration(branch,additionalPaths) {
18
+ if(typeof branch!=='string'||!/^[A-Za-z0-9][A-Za-z0-9._/-]*$/.test(branch)||branch.includes('..')||branch.includes('//')||branch.endsWith('/')||branch.endsWith('.lock'))throw new Error('目标分支无效');
19
+ return {schema_version:1,provider:'github',branch,additional_paths:[...new Set(additionalPaths)].sort()};
20
+ }
21
+ function outputs(config) {
22
+ const items=[{ref:CI_WORKFLOW,content:workflow(config.branch)},{ref:CI_CONFIG,content:encode(config)}];
23
+ const receipt={schema_version:1,kind:'project-ci-installation',managed:Object.fromEntries(items.map(x=>[x.ref,digest(x.content)]))};
24
+ return [...items,{ref:CI_RECEIPT,content:encode(receipt)}].map(x=>({...x,sha256:digest(x.content)}));
25
+ }
26
+ export function planProjectCi({root,provider='github',branch,additionalPaths}={}) {
27
+ root=fs.realpathSync(root);
28
+ if(provider!=='github')throw new Error('首版仅支持 --provider github');
29
+ const scope=governanceScope(root);
30
+ const config=configuration(branch??scope.config.branch??'main',additionalPaths??scope.config.additional_paths);
31
+ config.additional_paths.forEach(ref=>safeFile(root,ref));
32
+ const owned=fileBinding(root,CI_RECEIPT)?readDocument(root,CI_RECEIPT):null;
33
+ if(owned&&(owned.schema_version!==1||owned.kind!=='project-ci-installation'||!owned.managed))throw new Error('CI 托管凭据无效');
34
+ const expected=outputs(config),conflicts=[];
35
+ const inputs=[...new Set(['yss-project.yaml',TRACKER,CI_CONFIG,CI_RECEIPT,CI_WORKFLOW,CI_JOURNAL])].sort().map(ref=>({ref,sha256:fileBinding(root,ref)}));
36
+ for(const item of expected) {
37
+ const current=fileBinding(root,item.ref);
38
+ if(item.ref===CI_RECEIPT)continue;
39
+ if(current&&(!owned||owned.managed[item.ref]!==current))conflicts.push({ref:item.ref,reason:'已有人工文件或托管输出已被修改'});
40
+ if(!current&&owned?.managed[item.ref])conflicts.push({ref:item.ref,reason:'托管文件缺失,先恢复或显式处理'});
41
+ }
42
+ if(fileBinding(root,CI_JOURNAL))conflicts.push({ref:CI_JOURNAL,reason:'存在未完成事务,运行 apply --recover'});
43
+ const implementation=['project-ci-install.mjs','project-governance.mjs','governance-io.mjs'].map(ref=>({ref,sha256:digest(fs.readFileSync(new URL(ref,import.meta.url)))}));
44
+ const plan={schema_version:1,kind:'project-ci-plan',root,provider,branch:config.branch,additional_paths:config.additional_paths,roots:[...new Set([scope.trackerRoot,...config.additional_paths])],inputs,implementation,outputs:expected,conflicts,execution_authorization:'not-evaluated'};
45
+ return {...plan,plan_digest:hashObject(plan)};
46
+ }
47
+ function atomicWrite(root,ref,bytes) {
48
+ const target=safeFile(root,ref);fs.mkdirSync(path.dirname(target),{recursive:true});
49
+ const temporary=`${target}.tmp-${randomUUID()}`;
50
+ try{fs.writeFileSync(temporary,bytes,{flag:'wx'});fs.renameSync(temporary,target);}finally{if(fs.existsSync(temporary))fs.unlinkSync(temporary);}
51
+ }
52
+ export function recoverProjectCi(root) {
53
+ root=fs.realpathSync(root);
54
+ governanceScope(root);
55
+ const journal=readDocument(root,CI_JOURNAL);
56
+ if(journal.schema_version!==1||journal.kind!=='project-ci-transaction'||!Array.isArray(journal.files)||journal.files.length!==3||new Set(journal.files.map(x=>x.ref)).size!==3||journal.files.some(x=>![CI_WORKFLOW,CI_CONFIG,CI_RECEIPT].includes(x.ref)))throw new Error('CI 恢复日志无效');
57
+ for(const item of journal.files) {
58
+ const old=item.before===null?null:Buffer.from(item.before,'base64');
59
+ if((old===null?null:digest(old))!==item.before_digest)throw new Error(`恢复备份摘要不一致: ${item.ref}`);
60
+ const current=fileBinding(root,item.ref);
61
+ if(current!==item.after_digest&&current!==item.before_digest)conflict(`恢复冲突,保留后续修改: ${item.ref}`);
62
+ }
63
+ for(const item of [...journal.files].reverse())if(fileBinding(root,item.ref)!==item.before_digest) {
64
+ if(item.before===null)fs.unlinkSync(safeFile(root,item.ref));else atomicWrite(root,item.ref,Buffer.from(item.before,'base64'));
65
+ }
66
+ fs.unlinkSync(safeFile(root,CI_JOURNAL));return {status:'recovered',remote_changed:false};
67
+ }
68
+ export function applyProjectCi({root,plan,recover=false}={}) {
69
+ root=fs.realpathSync(root);
70
+ if(recover)return recoverProjectCi(root);
71
+ const {plan_digest,...body}=plan||{};
72
+ if(plan_digest!==hashObject(body)||plan.schema_version!==1||plan.provider!=='github'||plan.kind!=='project-ci-plan'||plan.root!==root||plan.conflicts.length)throw new Error('CI 计划无效、根不匹配或存在冲突');
73
+ const intended=outputs(configuration(plan.branch,plan.additional_paths));
74
+ if(encode(intended)!==encode(plan.outputs))throw new Error('CI 计划输出被替换');
75
+ if(fileBinding(root,CI_JOURNAL))throw new Error('存在未完成事务,先运行 apply --recover');
76
+ const currentScope=governanceScope(root);
77
+ if(intended.every(x=>fileBinding(root,x.ref)===x.sha256)) {
78
+ const unchanged=plan.inputs.filter(x=>![CI_CONFIG,CI_RECEIPT,CI_WORKFLOW].includes(x.ref)).every(x=>fileBinding(root,x.ref)===x.sha256);
79
+ const sameCode=plan.implementation.every(x=>['project-ci-install.mjs','project-governance.mjs','governance-io.mjs'].includes(x.ref)&&digest(fs.readFileSync(new URL(x.ref,import.meta.url)))===x.sha256);
80
+ if(!unchanged||!sameCode||!plan.roots.includes(currentScope.trackerRoot))conflict('CI 计划输入已变化,请重新 plan');
81
+ return {status:'unchanged',remote_changed:false};
82
+ }
83
+ const current=planProjectCi({root,provider:plan.provider,branch:plan.branch,additionalPaths:plan.additional_paths});
84
+ if(current.plan_digest!==plan.plan_digest)conflict('CI 计划输入已变化,请重新 plan');
85
+ const journal={schema_version:1,kind:'project-ci-transaction',plan_digest,files:intended.map(x=>{const hash=fileBinding(root,x.ref);return {ref:x.ref,before:hash?fs.readFileSync(safeFile(root,x.ref)).toString('base64'):null,before_digest:hash,after_digest:x.sha256};})};
86
+ const journalFile=safeFile(root,CI_JOURNAL);fs.mkdirSync(path.dirname(journalFile),{recursive:true});
87
+ fs.writeFileSync(journalFile,encode(journal),{flag:'wx'});
88
+ try {
89
+ for(const item of intended) {
90
+ const before=journal.files.find(x=>x.ref===item.ref).before_digest;
91
+ if(fileBinding(root,item.ref)!==before)throw new Error(`并发修改: ${item.ref}`);
92
+ atomicWrite(root,item.ref,item.content);
93
+ }
94
+ if(!intended.every(x=>fileBinding(root,x.ref)===x.sha256))throw new Error('CI 写入后并发变化');
95
+ fs.unlinkSync(journalFile);
96
+ }catch(error){try{recoverProjectCi(root);}catch(recovery){throw new Error(`${error.message}; ${recovery.message}`);}throw error;}
97
+ return {status:'applied',files:intended.map(x=>x.ref),remote_changed:false};
98
+ }
@@ -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,202 @@
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
+ bindReferences(view.presentation);
54
+ diagnostics.push(...view.blockers.map(reason=>({ref:asset.ref,reason})));
55
+ const name=asset.kind==='checkpoint'?'status':asset.kind;
56
+ outputs[`${loc.directory}/${name}.review.md`]=view.markdown;
57
+ }
58
+ 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');
59
+ const renderer=toolClosure();
60
+ readFileSync(safe(ROOT,'.template-spec/process/schemas/reading-manifest.schema.json'));
61
+ const dependencies=validationDependencies().files.map(row=>{
62
+ 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};
63
+ }).sort((a,b)=>(a.scope+a.ref).localeCompare(b.scope+b.ref));
64
+ for(const row of referenceBindings)if(!dependencies.some(item=>item.scope===row.scope&&item.ref===row.ref))dependencies.push(row);
65
+ // A missing policy is also an input; adding one invalidates the previous package.
66
+ if(!dependencies.some(row=>row.scope==='project'&&row.ref===READING_POLICY))dependencies.push({scope:'project',ref:READING_POLICY,digest:null});
67
+ 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};
68
+ schema(manifest,'.template-spec/process/schemas/reading-manifest.schema.json');
69
+ return {loc,outputs,block,manifest};
70
+ });
71
+ }
72
+ function oldManifest(root,loc){
73
+ const value=bytes(root,`${loc.directory}/.manifest.json`);if(!value)return null;
74
+ try{const m=JSON.parse(value);if(m.schema_version!==1||!m.outputs||!m.navigation||typeof m.outputs!=='object')throw Error();
75
+ 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();
76
+ if(m.navigation.ref!==`${loc.base}/map.md`)throw Error();return m;
77
+ }catch{throw Error('reading-manifest-invalid: preserve files; restore last valid manifest before rebuilding');}
78
+ }
79
+ function changesFor(root,built){
80
+ const old=oldManifest(root,built.loc),changes=[],mapRef=built.manifest.navigation.ref,mapBytes=bytes(root,mapRef),currentMap=mapBytes?.toString('utf8')||'',nav=navigation(currentMap);
81
+ for(const [ref,text]of Object.entries(built.outputs)){
82
+ const before=bytes(root,ref);if(before&&(!old?.outputs[ref]||hash(before)!==old.outputs[ref]))throw Error(`reading-output-conflict: ${ref}`);
83
+ if(!before||before.toString('utf8')!==text)changes.push({ref,before:before?.toString('base64')??null,after:Buffer.from(text).toString('base64')});
84
+ }
85
+ for(const ref of Object.keys(old?.outputs||{}))if(!Object.hasOwn(built.outputs,ref))throw Error(`reading-retired-output-needs-review: ${ref}`);
86
+ if(nav.block&&(!old||hash(nav.block)!==old.navigation.block_digest))throw Error(`reading-output-conflict: ${mapRef}`);
87
+ const nextMap=nav.block?currentMap.slice(0,nav.a)+built.block+currentMap.slice(nav.b):currentMap+(currentMap.endsWith('\n')?'':'\n')+'\n'+built.block+'\n';
88
+ if(nextMap!==currentMap)changes.push({ref:mapRef,before:mapBytes?.toString('base64')??null,after:Buffer.from(nextMap).toString('base64')});
89
+ const manifestRef=`${built.loc.directory}/.manifest.json`,before=bytes(root,manifestRef),after=json(built.manifest);
90
+ if(before?.toString('utf8')!==after)changes.push({ref:manifestRef,before:before?.toString('base64')??null,after:Buffer.from(after).toString('base64')});
91
+ return changes;
92
+ }
93
+ function verifyInputs(root,built){
94
+ 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}`);
95
+ if(json(toolClosure())!==json(built.manifest.renderer))throw Error('reading-renderer-drift');
96
+ }
97
+ 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);}}
98
+ function same(root,ref,encoded){const current=bytes(root,ref);return encoded===null?current===null:current!==null&&hash(current)===hash(Buffer.from(encoded,'base64'));}
99
+ function recover(root,loc){
100
+ const ref=`${loc.directory}/.transaction.json`,content=bytes(root,ref);if(!content)return;
101
+ const journal=JSON.parse(content);
102
+ if(journal.schema_version!==1||!Array.isArray(journal.changes))throw Error('reading-recovery-journal-invalid');
103
+ 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');}
104
+ const conflicts=[];
105
+ for(const c of [...journal.changes].reverse()){
106
+ if(same(root,c.ref,c.before))continue;
107
+ if(!same(root,c.ref,c.after)){conflicts.push(c.ref);continue;}
108
+ if(c.before===null)fs.unlinkSync(safe(root,c.ref));else atomic(root,c.ref,Buffer.from(c.before,'base64'));
109
+ }
110
+ if(conflicts.length)throw Error(`reading-recovery-conflict: ${conflicts.join(', ')}`);
111
+ fs.unlinkSync(safe(root,ref));
112
+ }
113
+ function locked(root,loc,action){
114
+ const lockRef=`${loc.directory}/${loc.lock_name||'.lock'}`,file=safe(root,lockRef,{missing:true});fs.mkdirSync(path.dirname(file),{recursive:true});
115
+ if(fs.existsSync(file)){
116
+ 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');}
117
+ try{process.kill(pid,0);throw Error('reading-busy');}catch(error){if(error.code!=='ESRCH')throw error;}
118
+ const recoveryLock=safe(root,`${lockRef}.recovery`,{missing:true});
119
+ fs.writeFileSync(recoveryLock,String(process.pid),{flag:'wx'});
120
+ try{if(!fs.existsSync(file)||hash(fs.readFileSync(file))!==hash(old))throw Error('reading-busy');fs.unlinkSync(file);}
121
+ finally{fs.unlinkSync(recoveryLock);}
122
+ }
123
+ const token=json({pid:process.pid,token:randomUUID()});fs.writeFileSync(file,token,{flag:'wx'});
124
+ try{if(loc.recover!==false)recover(root,loc);return action();}finally{if(fs.existsSync(file)&&fs.readFileSync(file,'utf8')===token)fs.unlinkSync(file);}
125
+ }
126
+ export function renderReadingBundle(root,checkpoint,{afterWrite}={}){
127
+ root=path.resolve(root);identity(root);const loc=readingLocation(checkpoint);
128
+ return locked(root,loc,()=>{
129
+ const built=build(root,checkpoint),changes=changesFor(root,built);verifyInputs(root,built);
130
+ if(!changes.length)return {status:'unchanged',checkpoint_ref:checkpoint,diagnostics:built.manifest.diagnostics};
131
+ const journalRef=`${loc.directory}/.transaction.json`;
132
+ atomic(root,journalRef,json({schema_version:1,changes}));
133
+ try{
134
+ for(const [index,c]of changes.entries()){
135
+ verifyInputs(root,built);if(!same(root,c.ref,c.before))throw Error(`reading-output-conflict: ${c.ref}`);
136
+ atomic(root,c.ref,Buffer.from(c.after,'base64'));afterWrite?.(c,index+1);
137
+ }
138
+ verifyInputs(root,built);
139
+ for(const c of changes)if(!same(root,c.ref,c.after))throw Error(`reading-output-conflict: ${c.ref}`);
140
+ fs.unlinkSync(safe(root,journalRef));
141
+ return {status:'rendered',checkpoint_ref:checkpoint,changed_refs:changes.map(c=>c.ref),diagnostics:built.manifest.diagnostics};
142
+ }catch(error){try{recover(root,loc);}catch(recovery){throw Error(`${error.message}; ${recovery.message}`);}throw error;}
143
+ });
144
+ }
145
+ export function checkReadingViews(root,checkpoint,{required=false}={}){
146
+ identity(root);const enabled=managedReading(root,checkpoint);
147
+ if(!required&&!enabled)return {status:'manual',read_only:true,execution_allowed:false,blockers:[]};
148
+ try{
149
+ const loc=readingLocation(checkpoint);
150
+ if(bytes(root,`${loc.directory}/.transaction.json`)||bytes(root,`${loc.directory}/.lock`))throw Error('reading-update-incomplete');
151
+ const expected=build(root,checkpoint),actual=oldManifest(root,loc),reasons=[];
152
+ if(!actual||json(actual)!==json(expected.manifest))reasons.push('reading-manifest-stale');
153
+ for(const [ref,digest]of Object.entries(expected.manifest.outputs))if(descriptor(root,ref)!==digest)reasons.push(`reading-output-stale: ${ref}`);
154
+ if(hash(navigation(bytes(root,expected.manifest.navigation.ref)?.toString('utf8')||'').block||'')!==expected.manifest.navigation.block_digest)reasons.push('reading-navigation-stale');
155
+ verifyInputs(root,expected);
156
+ 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}`};
157
+ }catch(error){return {status:'stale',read_only:true,execution_allowed:false,blockers:[error.message],recovery:`scripts/contract render --checkpoint ${checkpoint}`};}
158
+ }
159
+ export function planEnableReading(root,checkpoint){
160
+ identity(root);root=path.resolve(root);const built=build(root,checkpoint),changes=changesFor(root,built),policy=readingPolicy(root);
161
+ const nextPolicy={...policy,mode:'managed',checkpoints:[...new Set([...policy.checkpoints,checkpoint])].sort()};
162
+ 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')}))};
163
+ return {...payload,plan_id:hash(json(payload))};
164
+ }
165
+ function applyEnableReadingLocked(root,plan){
166
+ 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');
167
+ const policy=readingPolicy(root);
168
+ if(json(policy)===json(plan.policy_after)&&checkReadingViews(root,plan.checkpoint_ref).status==='current')return {status:'unchanged'};
169
+ const current=planEnableReading(root,plan.checkpoint_ref);if(json(current)!==json(plan))throw Error('reading-enable-plan-stale');
170
+ const before=bytes(root,READING_POLICY);atomic(root,READING_POLICY,json(plan.policy_after));
171
+ try{return {status:'enabled',reading_update:renderReadingBundle(root,plan.checkpoint_ref)};}
172
+ 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;}
173
+ }
174
+ export function finalizeReading(root,checkpoint,sourceOperation){
175
+ try{if(!managedReading(root,checkpoint))return {...sourceOperation,source_operation:sourceOperation.status,reading_update:{status:'manual'}};
176
+ return {...sourceOperation,source_operation:sourceOperation.status,reading_update:renderReadingBundle(root,checkpoint)};
177
+ }catch(error){return {...sourceOperation,source_operation:sourceOperation.status,reading_update:{status:'failed',error:error.message,recovery:`scripts/contract render --checkpoint ${checkpoint}`}};}
178
+ }
179
+ export function readingCheckpointsForAsset(root,ref,kind){
180
+ if(!['domain-strategy','stage-decision-package','checkpoint','tracking-migration'].includes(kind))return [];
181
+ const policy=readingPolicy(root);if(policy.mode!=='managed')return [];
182
+ return policy.checkpoints.filter(checkpoint=>ref.startsWith(readingLocation(checkpoint).base+'/'));
183
+ }
184
+ export function assertReadingTransition(root,decisionState,currentWorkUnit){
185
+ const ref=decisionState?.checkpoint_ref||decisionState?.checkpoint?.ref;
186
+ 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'};}
187
+ if(!managedReading(root,ref))return {status:'manual'};
188
+ const result=checkReadingViews(root,ref);if(result.blockers.length)throw Error(`reading-views-stale: ${result.blockers.join('; ')}`);return result;
189
+ }
190
+ export function saveReadingComparison(root,checkpoint,result){
191
+ const loc=readingLocation(checkpoint);
192
+ if(result.blockers?.length||!result.diff||!result.diff.markdown)throw Error('reading-comparison-source-invalid');
193
+ const report=result.diff.markdown+'\n批准有效性:not-checked;原决定及语义审阅仍按准备结果处理。\n';
194
+ 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});
195
+ if(fs.existsSync(file)){if(fs.readFileSync(file,'utf8')!==report)throw Error('reading-comparison-conflict');return {ref,digest:hash(report),status:'unchanged'};}
196
+ fs.mkdirSync(path.dirname(file),{recursive:true});fs.writeFileSync(file,report,{flag:'wx'});return {ref,digest:hash(report),status:'saved'};
197
+ }
198
+
199
+ export function applyEnableReading(root,plan){
200
+ identity(root);
201
+ return locked(root,{base:'.template-spec/process',directory:'.template-spec/process',lock_name:'.reading-enable.lock',recover:false},()=>applyEnableReadingLocked(root,plan));
202
+ }
@@ -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
+ }