create-yss-spec 3.5.3 → 3.5.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/template/asset-runtime.js +20 -5
- package/template/.agents/skills/.strategic-design-skills-manifest.json +5 -5
- package/template/.agents/skills/archify/SKILL.md +4 -52
- package/template/.agents/skills/archify/references/authoring-notes.md +12 -0
- package/template/.agents/skills/archify/references/authoring-workflow.md +25 -0
- package/template/.agents/skills/archify/references/delivery-workflow.md +25 -0
- package/template/.agents/skills/archify/references/upstream-updates.md +12 -0
- package/template/.agents/skills/code-review/SKILL.md +3 -34
- package/template/.agents/skills/code-review/references/legacy-convergence.md +5 -0
- package/template/.agents/skills/code-review/references/review-axis-checklists.md +18 -0
- package/template/.agents/skills/code-review/references/smell-baseline.md +23 -0
- package/template/.agents/skills/diagnosing-bugs/SKILL.md +3 -91
- package/template/.agents/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
- package/template/.agents/skills/diagnosing-bugs/references/investigation.md +49 -0
- package/template/.agents/skills/git-commit-core/agents/openai.yaml +2 -0
- package/template/.agents/skills/maintaining-skills/references/authoring.md +6 -0
- package/template/.agents/skills/prototype-review/SKILL.md +11 -0
- package/template/.agents/skills/prototype-review/references/component-qa.md +32 -0
- package/template/.agents/skills/setup-matt-pocock-skills/SKILL.md +3 -73
- package/template/.agents/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
- package/template/.agents/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
- package/template/.agents/skills/to-spec/SKILL.md +9 -62
- package/template/.agents/skills/to-tickets/SKILL.md +20 -86
- package/template/.agents/skills/using-git-worktrees/SKILL.md +5 -122
- package/template/.agents/skills/using-git-worktrees/references/git-fallback.md +46 -0
- package/template/.agents/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
- package/template/.agents/skills/using-git-worktrees/references/troubleshooting.md +47 -0
- package/template/.agents/skills/wayfinder/SKILL.md +7 -86
- package/template/.agents/skills/wayfinder/references/chart-map.md +14 -0
- package/template/.agents/skills/wayfinder/references/map-format.md +49 -0
- package/template/.agents/skills/wayfinder/references/scope-and-frontier.md +24 -0
- package/template/.agents/skills/wayfinder/references/ticket-types.md +12 -0
- package/template/.agents/skills/wayfinder/references/work-map.md +15 -0
- package/template/.agents/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
- package/template/.agents/skills/yedit-table-usage/SKILL.md +5 -172
- package/template/.agents/skills/yedit-table-usage/references/editable-table-example.md +141 -0
- package/template/.agents/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
- package/template/.agents/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
- package/template/.agents/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
- package/template/.agents/skills/yss-design-system/SKILL.md +13 -3
- package/template/.agents/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
- package/template/.agents/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
- package/template/.agents/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
- package/template/.agents/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
- package/template/.agents/skills/yss-design-system/references/data-quality-theme.md +2 -2
- package/template/.agents/skills/yss-design-system/references/design-qa-theme.md +1 -1
- package/template/.agents/skills/yss-design-system/references/design-system.md +3 -3
- package/template/.agents/skills/yss-design-system/references/enterprise-craft.md +33 -0
- package/template/.agents/skills/yss-design-system/references/page-composition.md +24 -0
- package/template/.agents/skills/yss-design-system/references/prototype-default-theme.md +26 -0
- package/template/.agents/skills/yss-design-system/references/search-date-theme.md +19 -0
- package/template/.agents/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
- package/template/.agents/skills/yss-hook/SKILL.md +8 -102
- package/template/.agents/skills/yss-hook/references/async-actions.md +49 -0
- package/template/.agents/skills/yss-hook/references/list-pagination.md +46 -0
- package/template/.agents/skills/yss-hook/references/polling.md +20 -0
- package/template/.agents/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
- package/template/.agents/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
- package/template/.agents/skills/yss-openapi-draft-review/SKILL.md +2 -49
- package/template/.agents/skills/yss-openapi-draft-review/references/review-output.md +45 -0
- package/template/.agents/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
- package/template/.agents/skills/yss-openapi-governance/SKILL.md +2 -48
- package/template/.agents/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
- package/template/.agents/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
- package/template/.agents/skills/yss-product-lifecycle/SKILL.md +20 -16
- package/template/.agents/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
- package/template/.agents/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
- package/template/.agents/skills/yss-product-lifecycle/references/state-model.md +2 -2
- package/template/.agents/skills/yss-prototype-stage/SKILL.md +27 -8
- package/template/.agents/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
- package/template/.agents/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
- package/template/.agents/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
- package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
- package/template/.agents/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
- package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
- package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
- package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
- package/template/.agents/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
- package/template/.agents/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
- package/template/.agents/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
- package/template/.agents/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
- package/template/.agents/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
- package/template/.agents/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
- package/template/.agents/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
- package/template/.agents/skills/yss-prototype-stage/references/business-patterns.md +42 -0
- package/template/.agents/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
- package/template/.agents/skills/yss-prototype-stage/references/component-recipes.md +41 -0
- package/template/.agents/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
- package/template/.agents/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
- package/template/.agents/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
- package/template/.agents/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
- package/template/.agents/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
- package/template/.agents/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
- package/template/.agents/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
- package/template/.agents/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
- package/template/.agents/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
- package/template/.agents/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
- package/template/.agents/skills/yss-prototype-stage/references/usability-research.md +26 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
- package/template/.agents/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
- package/template/.agents/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
- package/template/.agents/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
- package/template/.agents/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
- package/template/.agents/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
- package/template/.agents/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
- package/template/.agents/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
- package/template/.agents/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
- package/template/.agents/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
- package/template/.agents/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
- package/template/.agents/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
- package/template/.agents/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
- package/template/.agents/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
- package/template/.agents/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
- package/template/.agents/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
- package/template/.agents/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
- package/template/.agents/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
- package/template/.agents/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
- package/template/.agents/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
- package/template/.agents/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
- package/template/.agents/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
- package/template/.agents/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
- package/template/.agents/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
- package/template/.agents/skills/yss-stage-decision/SKILL.md +2 -0
- package/template/.agents/skills/yss-technical-design/SKILL.md +4 -0
- package/template/.agents/skills/yss-ui-business-page-generation/SKILL.md +4 -61
- package/template/.agents/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
- package/template/.agents/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
- package/template/.agents/skills/ytable-usage/SKILL.md +3 -191
- package/template/.agents/skills/ytable-usage/references/selection-and-batch.md +30 -0
- package/template/.agents/skills/ytable-usage/references/table-pagination-examples.md +170 -0
- package/template/.codex/skills/archify/SKILL.md +4 -52
- package/template/.codex/skills/archify/references/authoring-notes.md +12 -0
- package/template/.codex/skills/archify/references/authoring-workflow.md +25 -0
- package/template/.codex/skills/archify/references/delivery-workflow.md +25 -0
- package/template/.codex/skills/archify/references/upstream-updates.md +12 -0
- package/template/.codex/skills/code-review/SKILL.md +3 -34
- package/template/.codex/skills/code-review/references/legacy-convergence.md +5 -0
- package/template/.codex/skills/code-review/references/review-axis-checklists.md +18 -0
- package/template/.codex/skills/code-review/references/smell-baseline.md +23 -0
- package/template/.codex/skills/diagnosing-bugs/SKILL.md +3 -91
- package/template/.codex/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
- package/template/.codex/skills/diagnosing-bugs/references/investigation.md +49 -0
- package/template/.codex/skills/git-commit-core/agents/openai.yaml +2 -0
- package/template/.codex/skills/maintaining-skills/references/authoring.md +6 -0
- package/template/.codex/skills/prototype-review/SKILL.md +11 -0
- package/template/.codex/skills/prototype-review/references/component-qa.md +32 -0
- package/template/.codex/skills/setup-matt-pocock-skills/SKILL.md +3 -73
- package/template/.codex/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
- package/template/.codex/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
- package/template/.codex/skills/to-spec/SKILL.md +9 -62
- package/template/.codex/skills/to-tickets/SKILL.md +20 -86
- package/template/.codex/skills/using-git-worktrees/SKILL.md +5 -122
- package/template/.codex/skills/using-git-worktrees/references/git-fallback.md +46 -0
- package/template/.codex/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
- package/template/.codex/skills/using-git-worktrees/references/troubleshooting.md +47 -0
- package/template/.codex/skills/wayfinder/SKILL.md +7 -86
- package/template/.codex/skills/wayfinder/references/chart-map.md +14 -0
- package/template/.codex/skills/wayfinder/references/map-format.md +49 -0
- package/template/.codex/skills/wayfinder/references/scope-and-frontier.md +24 -0
- package/template/.codex/skills/wayfinder/references/ticket-types.md +12 -0
- package/template/.codex/skills/wayfinder/references/work-map.md +15 -0
- package/template/.codex/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
- package/template/.codex/skills/yedit-table-usage/SKILL.md +5 -172
- package/template/.codex/skills/yedit-table-usage/references/editable-table-example.md +141 -0
- package/template/.codex/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
- package/template/.codex/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
- package/template/.codex/skills/yss-design-system/SKILL.md +13 -3
- package/template/.codex/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
- package/template/.codex/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
- package/template/.codex/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
- package/template/.codex/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
- package/template/.codex/skills/yss-design-system/references/data-quality-theme.md +2 -2
- package/template/.codex/skills/yss-design-system/references/design-qa-theme.md +1 -1
- package/template/.codex/skills/yss-design-system/references/design-system.md +3 -3
- package/template/.codex/skills/yss-design-system/references/enterprise-craft.md +33 -0
- package/template/.codex/skills/yss-design-system/references/page-composition.md +24 -0
- package/template/.codex/skills/yss-design-system/references/prototype-default-theme.md +26 -0
- package/template/.codex/skills/yss-design-system/references/search-date-theme.md +19 -0
- package/template/.codex/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
- package/template/.codex/skills/yss-hook/SKILL.md +8 -102
- package/template/.codex/skills/yss-hook/references/async-actions.md +49 -0
- package/template/.codex/skills/yss-hook/references/list-pagination.md +46 -0
- package/template/.codex/skills/yss-hook/references/polling.md +20 -0
- package/template/.codex/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
- package/template/.codex/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
- package/template/.codex/skills/yss-openapi-draft-review/SKILL.md +2 -49
- package/template/.codex/skills/yss-openapi-draft-review/references/review-output.md +45 -0
- package/template/.codex/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
- package/template/.codex/skills/yss-openapi-governance/SKILL.md +2 -48
- package/template/.codex/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
- package/template/.codex/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
- package/template/.codex/skills/yss-product-lifecycle/SKILL.md +20 -16
- package/template/.codex/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
- package/template/.codex/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
- package/template/.codex/skills/yss-product-lifecycle/references/state-model.md +2 -2
- package/template/.codex/skills/yss-prototype-stage/SKILL.md +27 -8
- package/template/.codex/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
- package/template/.codex/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
- package/template/.codex/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
- package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
- package/template/.codex/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
- package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
- package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
- package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
- package/template/.codex/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
- package/template/.codex/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
- package/template/.codex/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
- package/template/.codex/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
- package/template/.codex/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
- package/template/.codex/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
- package/template/.codex/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
- package/template/.codex/skills/yss-prototype-stage/references/business-patterns.md +42 -0
- package/template/.codex/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
- package/template/.codex/skills/yss-prototype-stage/references/component-recipes.md +41 -0
- package/template/.codex/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
- package/template/.codex/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
- package/template/.codex/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
- package/template/.codex/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
- package/template/.codex/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
- package/template/.codex/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
- package/template/.codex/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
- package/template/.codex/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
- package/template/.codex/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
- package/template/.codex/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
- package/template/.codex/skills/yss-prototype-stage/references/usability-research.md +26 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
- package/template/.codex/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
- package/template/.codex/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
- package/template/.codex/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
- package/template/.codex/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
- package/template/.codex/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
- package/template/.codex/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
- package/template/.codex/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
- package/template/.codex/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
- package/template/.codex/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
- package/template/.codex/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
- package/template/.codex/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
- package/template/.codex/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
- package/template/.codex/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
- package/template/.codex/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
- package/template/.codex/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
- package/template/.codex/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
- package/template/.codex/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
- package/template/.codex/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
- package/template/.codex/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
- package/template/.codex/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
- package/template/.codex/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
- package/template/.codex/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
- package/template/.codex/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
- package/template/.codex/skills/yss-stage-decision/SKILL.md +2 -0
- package/template/.codex/skills/yss-technical-design/SKILL.md +4 -0
- package/template/.codex/skills/yss-ui-business-page-generation/SKILL.md +4 -61
- package/template/.codex/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
- package/template/.codex/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
- package/template/.codex/skills/ytable-usage/SKILL.md +3 -191
- package/template/.codex/skills/ytable-usage/references/selection-and-batch.md +30 -0
- package/template/.codex/skills/ytable-usage/references/table-pagination-examples.md +170 -0
- package/template/.cursor/skills/archify/SKILL.md +4 -52
- package/template/.cursor/skills/archify/references/authoring-notes.md +12 -0
- package/template/.cursor/skills/archify/references/authoring-workflow.md +25 -0
- package/template/.cursor/skills/archify/references/delivery-workflow.md +25 -0
- package/template/.cursor/skills/archify/references/upstream-updates.md +12 -0
- package/template/.cursor/skills/code-review/SKILL.md +3 -34
- package/template/.cursor/skills/code-review/references/legacy-convergence.md +5 -0
- package/template/.cursor/skills/code-review/references/review-axis-checklists.md +18 -0
- package/template/.cursor/skills/code-review/references/smell-baseline.md +23 -0
- package/template/.cursor/skills/diagnosing-bugs/SKILL.md +3 -91
- package/template/.cursor/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
- package/template/.cursor/skills/diagnosing-bugs/references/investigation.md +49 -0
- package/template/.cursor/skills/git-commit-core/agents/openai.yaml +2 -0
- package/template/.cursor/skills/maintaining-skills/references/authoring.md +6 -0
- package/template/.cursor/skills/prototype-review/SKILL.md +11 -0
- package/template/.cursor/skills/prototype-review/references/component-qa.md +32 -0
- package/template/.cursor/skills/setup-matt-pocock-skills/SKILL.md +3 -73
- package/template/.cursor/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
- package/template/.cursor/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
- package/template/.cursor/skills/to-spec/SKILL.md +9 -62
- package/template/.cursor/skills/to-tickets/SKILL.md +20 -86
- package/template/.cursor/skills/using-git-worktrees/SKILL.md +5 -122
- package/template/.cursor/skills/using-git-worktrees/references/git-fallback.md +46 -0
- package/template/.cursor/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
- package/template/.cursor/skills/using-git-worktrees/references/troubleshooting.md +47 -0
- package/template/.cursor/skills/wayfinder/SKILL.md +7 -86
- package/template/.cursor/skills/wayfinder/references/chart-map.md +14 -0
- package/template/.cursor/skills/wayfinder/references/map-format.md +49 -0
- package/template/.cursor/skills/wayfinder/references/scope-and-frontier.md +24 -0
- package/template/.cursor/skills/wayfinder/references/ticket-types.md +12 -0
- package/template/.cursor/skills/wayfinder/references/work-map.md +15 -0
- package/template/.cursor/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
- package/template/.cursor/skills/yedit-table-usage/SKILL.md +5 -172
- package/template/.cursor/skills/yedit-table-usage/references/editable-table-example.md +141 -0
- package/template/.cursor/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
- package/template/.cursor/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
- package/template/.cursor/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
- package/template/.cursor/skills/yss-design-system/SKILL.md +13 -3
- package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
- package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
- package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
- package/template/.cursor/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
- package/template/.cursor/skills/yss-design-system/references/data-quality-theme.md +2 -2
- package/template/.cursor/skills/yss-design-system/references/design-qa-theme.md +1 -1
- package/template/.cursor/skills/yss-design-system/references/design-system.md +3 -3
- package/template/.cursor/skills/yss-design-system/references/enterprise-craft.md +33 -0
- package/template/.cursor/skills/yss-design-system/references/page-composition.md +24 -0
- package/template/.cursor/skills/yss-design-system/references/prototype-default-theme.md +26 -0
- package/template/.cursor/skills/yss-design-system/references/search-date-theme.md +19 -0
- package/template/.cursor/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
- package/template/.cursor/skills/yss-hook/SKILL.md +8 -102
- package/template/.cursor/skills/yss-hook/references/async-actions.md +49 -0
- package/template/.cursor/skills/yss-hook/references/list-pagination.md +46 -0
- package/template/.cursor/skills/yss-hook/references/polling.md +20 -0
- package/template/.cursor/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
- package/template/.cursor/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
- package/template/.cursor/skills/yss-openapi-draft-review/SKILL.md +2 -49
- package/template/.cursor/skills/yss-openapi-draft-review/references/review-output.md +45 -0
- package/template/.cursor/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
- package/template/.cursor/skills/yss-openapi-governance/SKILL.md +2 -48
- package/template/.cursor/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
- package/template/.cursor/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
- package/template/.cursor/skills/yss-product-lifecycle/SKILL.md +20 -16
- package/template/.cursor/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
- package/template/.cursor/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
- package/template/.cursor/skills/yss-product-lifecycle/references/state-model.md +2 -2
- package/template/.cursor/skills/yss-prototype-stage/SKILL.md +27 -8
- package/template/.cursor/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
- package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
- package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
- package/template/.cursor/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
- package/template/.cursor/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
- package/template/.cursor/skills/yss-prototype-stage/references/business-patterns.md +42 -0
- package/template/.cursor/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
- package/template/.cursor/skills/yss-prototype-stage/references/component-recipes.md +41 -0
- package/template/.cursor/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
- package/template/.cursor/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
- package/template/.cursor/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
- package/template/.cursor/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
- package/template/.cursor/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
- package/template/.cursor/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
- package/template/.cursor/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
- package/template/.cursor/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
- package/template/.cursor/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
- package/template/.cursor/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
- package/template/.cursor/skills/yss-prototype-stage/references/usability-research.md +26 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
- package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
- package/template/.cursor/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
- package/template/.cursor/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
- package/template/.cursor/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
- package/template/.cursor/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
- package/template/.cursor/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
- package/template/.cursor/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
- package/template/.cursor/skills/yss-stage-decision/SKILL.md +2 -0
- package/template/.cursor/skills/yss-technical-design/SKILL.md +4 -0
- package/template/.cursor/skills/yss-ui-business-page-generation/SKILL.md +4 -61
- package/template/.cursor/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
- package/template/.cursor/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
- package/template/.cursor/skills/ytable-usage/SKILL.md +3 -191
- package/template/.cursor/skills/ytable-usage/references/selection-and-batch.md +30 -0
- package/template/.cursor/skills/ytable-usage/references/table-pagination-examples.md +170 -0
- package/template/.pi/skills/archify/SKILL.md +4 -52
- package/template/.pi/skills/archify/references/authoring-notes.md +12 -0
- package/template/.pi/skills/archify/references/authoring-workflow.md +25 -0
- package/template/.pi/skills/archify/references/delivery-workflow.md +25 -0
- package/template/.pi/skills/archify/references/upstream-updates.md +12 -0
- package/template/.pi/skills/code-review/SKILL.md +3 -34
- package/template/.pi/skills/code-review/references/legacy-convergence.md +5 -0
- package/template/.pi/skills/code-review/references/review-axis-checklists.md +18 -0
- package/template/.pi/skills/code-review/references/smell-baseline.md +23 -0
- package/template/.pi/skills/diagnosing-bugs/SKILL.md +3 -91
- package/template/.pi/skills/diagnosing-bugs/references/feedback-loop.md +53 -0
- package/template/.pi/skills/diagnosing-bugs/references/investigation.md +49 -0
- package/template/.pi/skills/git-commit-core/agents/openai.yaml +2 -0
- package/template/.pi/skills/maintaining-skills/references/authoring.md +6 -0
- package/template/.pi/skills/prototype-review/SKILL.md +11 -0
- package/template/.pi/skills/prototype-review/references/component-qa.md +32 -0
- package/template/.pi/skills/setup-matt-pocock-skills/SKILL.md +3 -73
- package/template/.pi/skills/setup-matt-pocock-skills/references/configuration-decisions.md +42 -0
- package/template/.pi/skills/setup-matt-pocock-skills/references/write-configuration.md +42 -0
- package/template/.pi/skills/to-spec/SKILL.md +9 -62
- package/template/.pi/skills/to-tickets/SKILL.md +20 -86
- package/template/.pi/skills/using-git-worktrees/SKILL.md +5 -122
- package/template/.pi/skills/using-git-worktrees/references/git-fallback.md +46 -0
- package/template/.pi/skills/using-git-worktrees/references/setup-and-baseline.md +45 -0
- package/template/.pi/skills/using-git-worktrees/references/troubleshooting.md +47 -0
- package/template/.pi/skills/wayfinder/SKILL.md +7 -86
- package/template/.pi/skills/wayfinder/references/chart-map.md +14 -0
- package/template/.pi/skills/wayfinder/references/map-format.md +49 -0
- package/template/.pi/skills/wayfinder/references/scope-and-frontier.md +24 -0
- package/template/.pi/skills/wayfinder/references/ticket-types.md +12 -0
- package/template/.pi/skills/wayfinder/references/work-map.md +15 -0
- package/template/.pi/skills/writing-for-agents/SKILL-MECHANICS.md +20 -11
- package/template/.pi/skills/yedit-table-usage/SKILL.md +5 -172
- package/template/.pi/skills/yedit-table-usage/references/editable-table-example.md +141 -0
- package/template/.pi/skills/yedit-table-usage/references/select-and-filter-examples.md +38 -0
- package/template/.pi/skills/yss-ddd-scaffold-generator/SKILL.md +4 -25
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/engineering-checks.md +11 -0
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/generation-workflow.md +14 -0
- package/template/.pi/skills/yss-ddd-scaffold-generator/references/platform-selection.md +16 -0
- package/template/.pi/skills/yss-design-system/SKILL.md +13 -3
- package/template/.pi/skills/yss-design-system/assets/enterprise-craft/app.js +53 -0
- package/template/.pi/skills/yss-design-system/assets/enterprise-craft/index.html +2 -0
- package/template/.pi/skills/yss-design-system/assets/enterprise-craft/scenarios.js +14 -0
- package/template/.pi/skills/yss-design-system/assets/enterprise-craft/styles.css +32 -0
- package/template/.pi/skills/yss-design-system/references/data-quality-theme.md +2 -2
- package/template/.pi/skills/yss-design-system/references/design-qa-theme.md +1 -1
- package/template/.pi/skills/yss-design-system/references/design-system.md +3 -3
- package/template/.pi/skills/yss-design-system/references/enterprise-craft.md +33 -0
- package/template/.pi/skills/yss-design-system/references/page-composition.md +24 -0
- package/template/.pi/skills/yss-design-system/references/prototype-default-theme.md +26 -0
- package/template/.pi/skills/yss-design-system/references/search-date-theme.md +19 -0
- package/template/.pi/skills/yss-design-system/scripts/export-craft-examples.mjs +30 -0
- package/template/.pi/skills/yss-hook/SKILL.md +8 -102
- package/template/.pi/skills/yss-hook/references/async-actions.md +49 -0
- package/template/.pi/skills/yss-hook/references/list-pagination.md +46 -0
- package/template/.pi/skills/yss-hook/references/polling.md +20 -0
- package/template/.pi/skills/yss-implementation-contract-compiler/SKILL.md +6 -3
- package/template/.pi/skills/yss-implementation-contract-compiler/references/scaffold-compilation.md +7 -0
- package/template/.pi/skills/yss-openapi-draft-review/SKILL.md +2 -49
- package/template/.pi/skills/yss-openapi-draft-review/references/review-output.md +45 -0
- package/template/.pi/skills/yss-openapi-draft-review/references/semantic-review.md +16 -0
- package/template/.pi/skills/yss-openapi-governance/SKILL.md +2 -48
- package/template/.pi/skills/yss-openapi-governance/references/governance-workflow.md +38 -0
- package/template/.pi/skills/yss-openapi-governance/references/locked-toolchain.md +22 -0
- package/template/.pi/skills/yss-product-lifecycle/SKILL.md +20 -16
- package/template/.pi/skills/yss-product-lifecycle/references/orchestration-contract.yaml +415 -386
- package/template/.pi/skills/yss-product-lifecycle/references/plan-requirements.md +2 -0
- package/template/.pi/skills/yss-product-lifecycle/references/state-model.md +2 -2
- package/template/.pi/skills/yss-prototype-stage/SKILL.md +27 -8
- package/template/.pi/skills/yss-prototype-stage/assets/comparison/comparison.css +12 -0
- package/template/.pi/skills/yss-prototype-stage/assets/comparison/comparison.js +52 -0
- package/template/.pi/skills/yss-prototype-stage/assets/comparison/index.html +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/comparison/review-ready.js +2 -0
- package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/app.js +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/index.html +1 -0
- package/template/.pi/skills/yss-prototype-stage/assets/low-fidelity-exercise/styles.css +1 -0
- package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/app.js +12 -6
- package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/index.html +1 -1
- package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/scenarios.json +297 -0
- package/template/.pi/skills/yss-prototype-stage/assets/native-workbench/styles.css +2 -0
- package/template/.pi/skills/yss-prototype-stage/assets/offline-html/app.js +7 -5
- package/template/.pi/skills/yss-prototype-stage/assets/offline-html/scenarios.json +297 -0
- package/template/.pi/skills/yss-prototype-stage/assets/prototype-theme.css +92 -0
- package/template/.pi/skills/yss-prototype-stage/assets/scenario-runtime.js +22 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/SHADCN-LICENSE.txt +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/package.json +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/pnpm-lock.yaml +1278 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/registry-manifest.json +936 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/theme.css +107 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/Alert.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertDescription.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/AlertTitle.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert/index.ts +24 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialog.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogAction.vue +18 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogCancel.vue +25 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogContent.vue +44 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogDescription.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogFooter.vue +22 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogHeader.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTitle.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/AlertDialogTrigger.vue +12 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/alert-dialog/index.ts +9 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/Badge.vue +26 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/badge/index.ts +26 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/Breadcrumb.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbEllipsis.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbItem.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbLink.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbList.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbPage.vue +20 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/BreadcrumbSeparator.vue +22 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/breadcrumb/index.ts +7 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/Button.vue +31 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/button/index.ts +40 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/Card.vue +22 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardAction.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardContent.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardDescription.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardFooter.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardHeader.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/CardTitle.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/card/index.ts +7 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/Checkbox.vue +35 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/checkbox/index.ts +1 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/Combobox.vue +19 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxAnchor.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxEmpty.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxGroup.vue +27 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxInput.vue +42 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItem.vue +24 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxItemIndicator.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxList.vue +33 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxSeparator.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxTrigger.vue +24 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/ComboboxViewport.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/combobox/index.ts +13 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/Dialog.vue +19 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogClose.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogContent.vue +53 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogDescription.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogFooter.vue +27 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogHeader.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogOverlay.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogScrollContent.vue +59 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTitle.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/DialogTrigger.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dialog/index.ts +10 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenu.vue +19 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuCheckboxItem.vue +39 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuContent.vue +39 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuGroup.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuItem.vue +31 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuLabel.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioGroup.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuRadioItem.vue +40 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSeparator.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuShortcut.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSub.vue +18 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubContent.vue +27 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuSubTrigger.vue +31 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/DropdownMenuTrigger.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/dropdown-menu/index.ts +16 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/Empty.vue +20 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyContent.vue +20 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyDescription.vue +20 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyHeader.vue +20 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyMedia.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/EmptyTitle.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/empty/index.ts +26 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/Field.vue +25 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldContent.vue +20 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldDescription.vue +22 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldError.vue +53 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldGroup.vue +20 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLabel.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldLegend.vue +24 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSeparator.vue +29 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldSet.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/FieldTitle.vue +20 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/field/index.ts +39 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/Input.vue +33 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input/index.ts +1 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroup.vue +35 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupAddon.vue +36 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupButton.vue +29 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupInput.vue +19 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupText.vue +19 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/InputGroupTextarea.vue +19 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/input-group/index.ts +51 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/Label.vue +26 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/label/index.ts +1 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/Pagination.vue +26 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationContent.vue +22 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationEllipsis.vue +25 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationFirst.vue +33 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationItem.vue +34 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationLast.vue +33 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationNext.vue +33 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/PaginationPrevious.vue +33 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/pagination/index.ts +8 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/Popover.vue +19 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverAnchor.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverContent.vue +45 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/PopoverTrigger.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/popover/index.ts +4 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendar.vue +62 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCell.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarCellTrigger.vue +41 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGrid.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridBody.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridHead.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarGridRow.vue +22 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeadCell.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeader.vue +23 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarHeading.vue +30 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarNextButton.vue +32 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/RangeCalendarPrevButton.vue +32 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/range-calendar/index.ts +12 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/Select.vue +19 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectContent.vue +51 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectGroup.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItem.vue +44 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectItemText.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectLabel.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollDownButton.vue +26 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectScrollUpButton.vue +26 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectSeparator.vue +19 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectTrigger.vue +33 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/SelectValue.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/select/index.ts +11 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/Separator.vue +29 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/separator/index.ts +1 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/Sheet.vue +19 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetClose.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetContent.vue +62 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetDescription.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetFooter.vue +16 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetHeader.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetOverlay.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTitle.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/SheetTrigger.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/sheet/index.ts +8 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/Skeleton.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/skeleton/index.ts +1 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/Spinner.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/spinner/index.ts +1 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/Table.vue +16 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableBody.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCaption.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableCell.vue +22 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableEmpty.vue +34 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableFooter.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHead.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableHeader.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/TableRow.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/table/index.ts +9 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/Tabs.vue +24 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsContent.vue +21 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsList.vue +24 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/TabsTrigger.vue +26 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tabs/index.ts +4 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/Textarea.vue +28 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/textarea/index.ts +1 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/Tooltip.vue +19 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipContent.vue +34 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipProvider.vue +14 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/TooltipTrigger.vue +15 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/ui/tooltip/index.ts +4 -0
- package/template/.pi/skills/yss-prototype-stage/assets/shadcn-vue-authoring/utils.ts +7 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Analysis.vue +16 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Approval.vue +14 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/CombinedQuery.vue +17 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/ComponentStates.vue +41 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Conflict.vue +33 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/DateRange.vue +29 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Frame.vue +7 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/ListDetail.vue +47 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/MultiStep.vue +24 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Notice.vue +5 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/OwnerValidity.vue +26 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/SearchSelect.vue +32 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/Workspace.vue +174 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis-standard.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/analysis.scenarios.json +276 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval-standard.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/approval.scenarios.json +207 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.css +14 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/business-controls.js +24 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query-standard.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/combined-query.scenarios.json +298 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/component-states-standard.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict-standard.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/conflict.scenarios.json +229 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-glass.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail-standard.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/list-detail.scenarios.json +185 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/mount.ts +4 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-glass.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step-standard.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/multi-step.scenarios.json +188 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity-standard.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/owner-validity.scenarios.json +298 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/patterns.css +26 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/refinement.css +129 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workbench.ts +1 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-definition.ts +40 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-glass.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-model.js +75 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-page.ts +18 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.config.json +6 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace-standard.ts +3 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.css +101 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.scenarios.json +2015 -0
- package/template/.pi/skills/yss-prototype-stage/assets/vue-business-patterns/workspace.ts +26 -0
- package/template/.pi/skills/yss-prototype-stage/references/business-patterns.md +42 -0
- package/template/.pi/skills/yss-prototype-stage/references/comparison-tool.md +48 -0
- package/template/.pi/skills/yss-prototype-stage/references/component-recipes.md +41 -0
- package/template/.pi/skills/yss-prototype-stage/references/concept-comparison.md +26 -0
- package/template/.pi/skills/yss-prototype-stage/references/enterprise-workspace.md +53 -0
- package/template/.pi/skills/yss-prototype-stage/references/low-fidelity-exercise.md +32 -0
- package/template/.pi/skills/yss-prototype-stage/references/product-design-adapter.md +11 -5
- package/template/.pi/skills/yss-prototype-stage/references/prototype-profile-routing.md +10 -6
- package/template/.pi/skills/yss-prototype-stage/references/prototype-verification.md +25 -0
- package/template/.pi/skills/yss-prototype-stage/references/resource-lifecycle.md +20 -0
- package/template/.pi/skills/yss-prototype-stage/references/search-date-patterns.md +28 -0
- package/template/.pi/skills/yss-prototype-stage/references/shadcn-integration.md +5 -0
- package/template/.pi/skills/yss-prototype-stage/references/shadcn-vue-integration.md +46 -0
- package/template/.pi/skills/yss-prototype-stage/references/usability-research.md +26 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/browser-session.mjs +57 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/build-shadcn-vue-prototype.mjs +137 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/compose-workspace-scenarios.mjs +22 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/export-business-patterns.mjs +7 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/export-low-fidelity-exercise.mjs +18 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/export-vue-patterns.mjs +21 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/offline-html.mjs +60 -23
- package/template/.pi/skills/yss-prototype-stage/scripts/prototype-comparison.mjs +208 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/prototype-contract.mjs +19 -14
- package/template/.pi/skills/yss-prototype-stage/scripts/scenario-contract.mjs +31 -0
- package/template/.pi/skills/yss-prototype-stage/scripts/verify-prototype-design.mjs +97 -0
- package/template/.pi/skills/yss-prototype-stage/tests/antd-reference.test.mjs +4 -24
- package/template/.pi/skills/yss-prototype-stage/tests/browser-harness.mjs +37 -0
- package/template/.pi/skills/yss-prototype-stage/tests/browser-visual.mjs +22 -0
- package/template/.pi/skills/yss-prototype-stage/tests/business-controls-browser.mjs +43 -0
- package/template/.pi/skills/yss-prototype-stage/tests/business-controls.test.mjs +20 -0
- package/template/.pi/skills/yss-prototype-stage/tests/compact-theme-browser.mjs +53 -0
- package/template/.pi/skills/yss-prototype-stage/tests/comparison-browser-smoke.mjs +77 -0
- package/template/.pi/skills/yss-prototype-stage/tests/comparison-fixture.mjs +16 -0
- package/template/.pi/skills/yss-prototype-stage/tests/comparison.test.mjs +46 -0
- package/template/.pi/skills/yss-prototype-stage/tests/components-browser.mjs +60 -0
- package/template/.pi/skills/yss-prototype-stage/tests/patterns-browser.mjs +84 -0
- package/template/.pi/skills/yss-prototype-stage/tests/reliability.test.mjs +34 -0
- package/template/.pi/skills/yss-prototype-stage/tests/retirement.test.mjs +8 -0
- package/template/.pi/skills/yss-prototype-stage/tests/run-scenarios.mjs +19 -2
- package/template/.pi/skills/yss-prototype-stage/tests/shadcn-vue.test.mjs +43 -0
- package/template/.pi/skills/yss-prototype-stage/tests/verification-entry.test.mjs +16 -0
- package/template/.pi/skills/yss-prototype-stage/tests/workbench-smoke.mjs +36 -21
- package/template/.pi/skills/yss-prototype-stage/tests/workspace-browser.mjs +50 -0
- package/template/.pi/skills/yss-prototype-stage/tests/workspace.test.mjs +70 -0
- package/template/.pi/skills/yss-prototype-stage/tests/zoom-browser.mjs +26 -0
- package/template/.pi/skills/yss-stage-decision/SKILL.md +2 -0
- package/template/.pi/skills/yss-technical-design/SKILL.md +4 -0
- package/template/.pi/skills/yss-ui-business-page-generation/SKILL.md +4 -61
- package/template/.pi/skills/yss-ui-business-page-generation/references/page-composition-example.md +50 -0
- package/template/.pi/skills/yss-ui-business-page-generation/references/page-layout-example.md +19 -0
- package/template/.pi/skills/ytable-usage/SKILL.md +3 -191
- package/template/.pi/skills/ytable-usage/references/selection-and-batch.md +30 -0
- package/template/.pi/skills/ytable-usage/references/table-pagination-examples.md +170 -0
- package/template/.template-spec/agents/digital-human-roles.yaml +2 -2
- package/template/.template-spec/agents/issue-tracker.md +10 -1
- package/template/.template-spec/agents/yss-skill-registry.yaml +41 -0
- package/template/.template-spec/design/README.md +7 -2
- package/template/.template-spec/design/design.md +30 -35
- package/template/.template-spec/design/templates/examples/model-publishing-interaction.example.md +2 -2
- package/template/.template-spec/design/templates/interaction-spec-template.md +24 -0
- package/template/.template-spec/design/templates/prototype-evidence-template.yaml +18 -5
- package/template/.template-spec/design/templates/prototype-review-checklist.md +8 -0
- package/template/.template-spec/design/tokens/.design-md-projection.json +2 -2
- package/template/.template-spec/design/tokens/variables.css +162 -0
- package/template/.template-spec/plan/templates/plan-template.md +25 -1
- package/template/.template-spec/process/business-tickets.md +48 -0
- package/template/.template-spec/process/checkpoint-boundary.yaml +73 -0
- package/template/.template-spec/process/contract-reading.md +35 -0
- package/template/.template-spec/process/document-writing.md +2 -0
- package/template/.template-spec/process/feature-assets.md +38 -0
- package/template/.template-spec/process/lifecycle-artifact-map.md +1 -0
- package/template/.template-spec/process/lifecycle-registry-baseline.json +9 -5
- package/template/.template-spec/process/lifecycle-registry.yaml +15 -5
- package/template/.template-spec/process/plan-spec-quality.md +69 -0
- package/template/.template-spec/process/project-ci.md +21 -0
- package/template/.template-spec/process/reading-policy.yaml +4 -0
- package/template/.template-spec/process/schemas/business-tickets-v1.schema.json +449 -0
- package/template/.template-spec/process/schemas/domain-strategy-reading.schema.json +216 -0
- package/template/.template-spec/process/schemas/lifecycle-checkpoint.schema.json +203 -11
- package/template/.template-spec/process/schemas/reading-manifest.schema.json +14 -0
- package/template/.template-spec/process/schemas/reading-policy.schema.json +10 -0
- package/template/.template-spec/process/schemas/stage-decision-package-reading.schema.json +148 -0
- package/template/.template-spec/process/stage-tracking.md +8 -0
- package/template/.template-spec/process/strategic-handoff-package.md +3 -1
- package/template/.template-spec/process/templates/stage-checkpoint-template.md +6 -1
- package/template/.template-spec/templates/business-ticket-review-template.yaml +11 -0
- package/template/.template-spec/templates/business-ticket-set-template.yaml +16 -0
- package/template/.template-spec/templates/business-ticket-template.md +38 -0
- package/template/.template-spec/templates/examples/lifecycle-writing-examples.md +16 -0
- package/template/.template-spec/templates/examples/plan-spec/complex-defective.md +38 -0
- package/template/.template-spec/templates/examples/plan-spec/complex-source.md +12 -0
- package/template/.template-spec/templates/examples/plan-spec/complex-valid.md +38 -0
- package/template/.template-spec/templates/examples/plan-spec/expectations.json +46 -0
- package/template/.template-spec/templates/examples/plan-spec/high-risk-before.md +32 -0
- package/template/.template-spec/templates/examples/plan-spec/high-risk-defective.md +39 -0
- package/template/.template-spec/templates/examples/plan-spec/high-risk-source.md +11 -0
- package/template/.template-spec/templates/examples/plan-spec/high-risk-valid.md +39 -0
- package/template/.template-spec/templates/examples/plan-spec/ordinary-defective.md +36 -0
- package/template/.template-spec/templates/examples/plan-spec/ordinary-plan.md +27 -0
- package/template/.template-spec/templates/examples/plan-spec/ordinary-source.md +14 -0
- package/template/.template-spec/templates/examples/plan-spec/ordinary-valid.md +36 -0
- package/template/.template-spec/templates/local-parent-ticket-template.md +23 -15
- package/template/.template-spec/templates/spec-delta-template.md +7 -5
- package/template/.template-spec/templates/spec-template.md +31 -15
- package/template/.template-spec/templates/vertical-slice-ticket-template.md +4 -0
- package/template/AGENTS.md +1 -1
- package/template/CONTEXT.md +1 -0
- package/template/DESIGN.md +23 -4
- package/template/scripts/contract +14 -2
- package/template/scripts/feature-assets +23 -0
- package/template/scripts/inspect-plan-spec +32 -0
- package/template/scripts/inspect-skill-discovery +24 -0
- package/template/scripts/lib/business-ticket-lifecycle.mjs +34 -0
- package/template/scripts/lib/business-tickets.mjs +273 -0
- package/template/scripts/lib/checkpoint-boundary.mjs +40 -0
- package/template/scripts/lib/contract-views.mjs +21 -8
- package/template/scripts/lib/feature-assets.mjs +274 -0
- package/template/scripts/lib/governance-io.mjs +40 -0
- package/template/scripts/lib/lifecycle-status.mjs +17 -1
- package/template/scripts/lib/lifecycle-transition.mjs +12 -3
- package/template/scripts/lib/plan-spec-markdown.mjs +97 -0
- package/template/scripts/lib/plan-spec-quality.mjs +289 -0
- package/template/scripts/lib/project-ci-install.mjs +98 -0
- package/template/scripts/lib/project-governance.mjs +189 -0
- package/template/scripts/lib/reading-view-adapters.mjs +62 -0
- package/template/scripts/lib/reading-view-bundle.mjs +201 -0
- package/template/scripts/lib/reading-view-diff.mjs +29 -0
- package/template/scripts/lib/reading-view-markdown.mjs +39 -0
- package/template/scripts/lib/reading-view-model.mjs +13 -0
- package/template/scripts/lib/reading-view-policy.mjs +16 -0
- package/template/scripts/lib/skill-discovery.mjs +150 -0
- package/template/scripts/lib/skill-registry.mjs +41 -1
- package/template/scripts/lib/skill-supply-chain.mjs +1 -1
- package/template/scripts/lib/slice-contract-preparation.mjs +8 -2
- package/template/scripts/lib/slice-contract.mjs +15 -1
- package/template/scripts/lib/stage-tracking-migration.mjs +9 -1
- package/template/scripts/lib/stage-tracking.mjs +10 -5
- package/template/scripts/lib/strategic-handoff-consumption.mjs +14 -2
- package/template/scripts/lib/strategic-handoff-io.mjs +6 -2
- package/template/scripts/lib/strategic-handoff.mjs +26 -5
- package/template/scripts/lib/task-package.mjs +14 -3
- package/template/scripts/lib/testing/user-decision-fixture.mjs +33 -0
- package/template/scripts/lib/user-decision-reuse.mjs +1 -1
- package/template/scripts/lifecycle-status +12 -2
- package/template/scripts/project-ci +20 -0
- package/template/scripts/project-ci-transition +13 -0
- package/template/scripts/query-lifecycle-context +4 -0
- package/template/scripts/stage-tracking +1 -0
- package/template/scripts/vendor/NOTICES.md +237 -0
- package/template/scripts/vendor/manifest.json +1216 -65
- package/template/scripts/vendor/markdown.mjs +11783 -0
- package/template/scripts/verify-approval-record +4 -1
- package/template/scripts/verify-business-tickets +11 -0
- package/template/scripts/verify-context-contract +4 -1
- package/template/scripts/verify-digital-human-task-package +4 -1
- package/template/scripts/verify-lifecycle-checkpoint +17 -2
- package/template/scripts/verify-prototype-design +3 -0
- package/template/skills-lock.json +34 -34
- package/template.manifest.json +2 -1
- package/template.snapshot.json +5 -5
- package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
- package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
- package/template/.agents/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
- package/template/.agents/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
- package/template/.agents/skills/yss-prototype-stage/references/antd-integration.md +0 -61
- package/template/.agents/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
- package/template/.agents/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
- package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
- package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
- package/template/.codex/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
- package/template/.codex/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
- package/template/.codex/skills/yss-prototype-stage/references/antd-integration.md +0 -61
- package/template/.codex/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
- package/template/.codex/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
- package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
- package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
- package/template/.cursor/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
- package/template/.cursor/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
- package/template/.cursor/skills/yss-prototype-stage/references/antd-integration.md +0 -61
- package/template/.cursor/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
- package/template/.cursor/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
- package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/package.json +0 -16
- package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/pnpm-lock.yaml +0 -1678
- package/template/.pi/skills/yss-prototype-stage/assets/antd-authoring/workbench.jsx +0 -23
- package/template/.pi/skills/yss-prototype-stage/references/antd-component-catalog.json +0 -736
- package/template/.pi/skills/yss-prototype-stage/references/antd-integration.md +0 -61
- package/template/.pi/skills/yss-prototype-stage/scripts/build-antd-prototype.mjs +0 -71
- package/template/.pi/skills/yss-prototype-stage/scripts/collect-antd-reference.mjs +0 -26
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { parseMarkdown } from '../vendor/markdown.mjs';
|
|
2
|
+
import { parseDocument } from '../vendor/yaml.mjs';
|
|
3
|
+
|
|
4
|
+
export const PROFILE = 'plan-spec-v1';
|
|
5
|
+
export const ID_PATTERN = /^(?:FR|NFR|AC|Q|SC)-[A-Za-z0-9][A-Za-z0-9._-]*$|^success-criterion\.[A-Za-z0-9][A-Za-z0-9._-]*$/;
|
|
6
|
+
const sectionKinds = new Map([
|
|
7
|
+
['功能需求', 'FR'], ['Functional Requirements', 'FR'],
|
|
8
|
+
['非功能需求', 'NFR'], ['Non-functional Requirements', 'NFR'],
|
|
9
|
+
['验收标准', 'AC'], ['Acceptance Criteria', 'AC'],
|
|
10
|
+
['未决项', 'Q'], ['Open Questions', 'Q'], ['成功标准', 'SC']
|
|
11
|
+
]);
|
|
12
|
+
export const requiredFields = {
|
|
13
|
+
FR: ['需求', '优先级', '来源引用', '验收引用', '未决项'],
|
|
14
|
+
NFR: ['需求', '适用条件/负载', '指标及单位', '目标', '确认状态', '验证方法', '来源引用', '验收引用', '未决项'],
|
|
15
|
+
AC: ['需求引用', '前提', '触发', '可观察结果', '场景类型', '未决项'],
|
|
16
|
+
Q: ['问题', '判断依据', '责任人', '解决时点', '接收方 / 解决证据'],
|
|
17
|
+
SC: ['指标定义', '基线或未知原因', '目标', '确认状态', '观测窗口', '数据来源', '验证方式', '未决项']
|
|
18
|
+
};
|
|
19
|
+
export function plain(node) {
|
|
20
|
+
if (node.value !== undefined) return node.value;
|
|
21
|
+
return (node.children ?? []).map(plain).join('');
|
|
22
|
+
}
|
|
23
|
+
export function ids(value, kinds = ['FR', 'NFR', 'AC', 'Q', 'SC']) {
|
|
24
|
+
return [...new Set((value ?? '').match(/\b(?:FR|NFR|AC|Q|SC)-[A-Za-z0-9][A-Za-z0-9._-]*\b/g) ?? [])].filter(id => kinds.includes(id.split('-')[0]));
|
|
25
|
+
}
|
|
26
|
+
export function yamlValue(text) {
|
|
27
|
+
const doc = parseDocument(text, { uniqueKeys: true });
|
|
28
|
+
if (doc.errors.length) throw new Error(doc.errors.map(e => e.message).join('; '));
|
|
29
|
+
return doc.toJS({ maxAliasCount: 0 });
|
|
30
|
+
}
|
|
31
|
+
export function parseContent(text, file) {
|
|
32
|
+
let frontmatter = {}, body = text;
|
|
33
|
+
if (/^\uFEFF?---\r?\n/.test(text)) {
|
|
34
|
+
const match = text.match(/^\uFEFF?---\r?\n([\s\S]*?)\r?\n(?:---|\.\.\.)(?:\r?\n|$)/);
|
|
35
|
+
if (!match) throw new Error('frontmatter 未闭合');
|
|
36
|
+
frontmatter = yamlValue(match[1]);
|
|
37
|
+
if (!frontmatter || Array.isArray(frontmatter) || typeof frontmatter !== 'object') throw new Error('frontmatter 必须为 mapping');
|
|
38
|
+
body = match[0].replace(/[^\r\n]/g, ' ') + text.slice(match[0].length);
|
|
39
|
+
}
|
|
40
|
+
const tree = parseMarkdown(body), entries = [], sections = [], locators = [], headings = [], conditions = [];
|
|
41
|
+
let section = null, exampleDepth = null;
|
|
42
|
+
for (const node of tree.children) {
|
|
43
|
+
if (node.type === 'heading') {
|
|
44
|
+
const title = plain(node).trim();
|
|
45
|
+
if (exampleDepth !== null && node.depth <= exampleDepth) exampleDepth = null;
|
|
46
|
+
if (/示例|虚构|example/i.test(title)) exampleDepth = node.depth;
|
|
47
|
+
if (exampleDepth !== null) { section = null; continue; }
|
|
48
|
+
headings.push({ value: title, position: node.position });
|
|
49
|
+
const kind = sectionKinds.get(title.replace(/^\d+[.、]\s*/, ''));
|
|
50
|
+
if (kind) {
|
|
51
|
+
section = { kind, position: node.position, count: 0, depth: node.depth, text: '' };
|
|
52
|
+
sections.push(section);
|
|
53
|
+
} else if (section && node.depth <= section.depth) section = null;
|
|
54
|
+
continue;
|
|
55
|
+
}
|
|
56
|
+
if (exampleDepth !== null) continue;
|
|
57
|
+
// Root tables only: quoted, fenced and nested examples are not requirements.
|
|
58
|
+
if (node.type === 'paragraph') {
|
|
59
|
+
conditions.push({ value: plain(node).trim(), position: node.position });
|
|
60
|
+
if (section) section.text += `${plain(node)}\n`;
|
|
61
|
+
}
|
|
62
|
+
if (node.type !== 'table') continue;
|
|
63
|
+
const headers = node.children[0].children.map(cell => plain(cell).trim());
|
|
64
|
+
for (const row of node.children.slice(1)) {
|
|
65
|
+
const values = row.children.map(cell => plain(cell).trim());
|
|
66
|
+
row.children.forEach((cell, index) => conditions.push({ value: values[index], position: cell.position, id: values[0] }));
|
|
67
|
+
if (values[0]) locators.push({ value: values[0], position: row.position });
|
|
68
|
+
if (!section || headers[0] !== 'ID') continue;
|
|
69
|
+
const cells = Object.fromEntries(headers.map((header, i) => [header, {
|
|
70
|
+
text: values[i] ?? '',
|
|
71
|
+
raw: row.children[i]?.children.length ? text.slice(row.children[i].children[0].position.start.offset, row.children[i].children.at(-1).position.end.offset).trim() : '',
|
|
72
|
+
position: row.children[i]?.position ?? row.position
|
|
73
|
+
}]));
|
|
74
|
+
section.count++;
|
|
75
|
+
entries.push({ id: values[0] ?? '', kind: section.kind, fields: Object.fromEntries(headers.map((header, i) => [header, values[i] ?? ''])), cells, file, position: row.position });
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return { file, frontmatter, supported: frontmatter.content_profile === PROFILE, entries, sections, headings, locators, conditions };
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
// Explicit references only; paths here are relative to --root, never discovered by scanning.
|
|
82
|
+
export function sourceRefs(value) {
|
|
83
|
+
if (!value?.trim()) return [];
|
|
84
|
+
return value.split(/\s*[;;]\s*/).map(part => {
|
|
85
|
+
const explicit = part.match(/^`?(.+?)`?\s*::\s*(id|heading):(.+)$/);
|
|
86
|
+
if (explicit) return { path: explicit[1].replace(/^`|`$/g, '').trim(), type: explicit[2], locator: explicit[3].replace(/^`|`$/g, '').trim() };
|
|
87
|
+
const link = part.match(/^\[([^\]]+)\]\(([^\s)]+)\)$/);
|
|
88
|
+
if (link) {
|
|
89
|
+
const [target, ...fragment] = link[2].split('#');
|
|
90
|
+
let locator;
|
|
91
|
+
try { locator = decodeURIComponent(fragment.join('#') || link[1]); } catch { return { invalid: part }; }
|
|
92
|
+
const kind = locator.startsWith('heading:') ? 'heading' : 'id';
|
|
93
|
+
return { path: target, type: kind, locator: locator.replace(/^(?:id|heading):/, '') };
|
|
94
|
+
}
|
|
95
|
+
return { invalid: part };
|
|
96
|
+
});
|
|
97
|
+
}
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
import { readFile, realpath, stat } from 'node:fs/promises';
|
|
2
|
+
import { createHash } from 'node:crypto';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { PROFILE, ID_PATTERN, requiredFields, ids, parseContent, sourceRefs, yamlValue } from './plan-spec-markdown.mjs';
|
|
5
|
+
|
|
6
|
+
export const TOOL_VERSION = '1.0.0';
|
|
7
|
+
const digest = bytes => `sha256:${createHash('sha256').update(bytes).digest('hex')}`;
|
|
8
|
+
const noValue = value => !value || /^(?:[-—]|TBD|TODO|待填写|<[^>]*>)$/i.test(value.trim());
|
|
9
|
+
const placeholder = value => /<[^>\n]+>|\b(?:TODO|TBD)\b|待填写/.test(value);
|
|
10
|
+
const unknown = value => /未知|待确认|待定|unknown|TBD/i.test(value ?? '');
|
|
11
|
+
const notApplicable = value => /^(?:not-applicable|不适用|N\/A)(?:\s|[::]|$)/i.test(value ?? '');
|
|
12
|
+
const naReason = value => /^(?:not-applicable|不适用|N\/A)\s*[::]\s*\S.+/i.test(value ?? '') && !placeholder(value);
|
|
13
|
+
const field = (entry, name) => entry.fields[name] ?? '';
|
|
14
|
+
const location = (file, position) => ({ file, line: position?.start?.line ?? 1, column: position?.start?.column ?? 1 });
|
|
15
|
+
|
|
16
|
+
export async function inspectPlanSpec(options, hooks = {}) {
|
|
17
|
+
const report = {
|
|
18
|
+
tool: 'inspect-plan-spec', tool_version: TOOL_VERSION, content_profile: PROFILE,
|
|
19
|
+
mode: options.command, diagnostic_only: true, execution: 'completed', inputs: [],
|
|
20
|
+
scope: { documents: [], sources: ['来源引用', '数据来源', '权威引用'], slices: options.slices ?? [], network: '不读取', state_changes: '无', prose: '正文语义未自动评估,需保留全文人工审阅' },
|
|
21
|
+
findings: [], unevaluated: [], manual_review: [
|
|
22
|
+
'问题真实性、方案优劣、目标合理性、场景充分性和规则语义等价性需人工审查。',
|
|
23
|
+
'诊断不改变生命周期批准、就绪状态或验证范围。'
|
|
24
|
+
]
|
|
25
|
+
};
|
|
26
|
+
const cache = new Map(), parsed = new Map();
|
|
27
|
+
let root;
|
|
28
|
+
function issue(code, file, position, item_id, message, recovery, incomplete = false) {
|
|
29
|
+
report.findings.push({ code, location: location(file, position), item_id: item_id || null, message, recovery });
|
|
30
|
+
if (incomplete) report.execution = 'incomplete';
|
|
31
|
+
}
|
|
32
|
+
function unassessed(code, file, message, item_id = null, position = null) {
|
|
33
|
+
report.unevaluated.push({ code, location: location(file, position), item_id, message, recovery: '人工审阅原文;按需明确选择范围并补齐可定位输入后重跑。' });
|
|
34
|
+
}
|
|
35
|
+
try { root = await realpath(path.resolve(options.root ?? '.')); }
|
|
36
|
+
catch (error) { issue('INPUT_ROOT', options.root ?? '.', null, null, error.message, '提供可读项目根目录。', true); }
|
|
37
|
+
function target(ref) {
|
|
38
|
+
const absolute = path.resolve(root, ref), relative = path.relative(root, absolute);
|
|
39
|
+
if (relative === '..' || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)) throw new Error('路径越过项目根目录');
|
|
40
|
+
return { absolute, relative: relative.replaceAll(path.sep, '/') };
|
|
41
|
+
}
|
|
42
|
+
async function load(ref, role, caller = {}) {
|
|
43
|
+
if (!root) return null;
|
|
44
|
+
try {
|
|
45
|
+
const { absolute, relative } = target(ref);
|
|
46
|
+
if (cache.has(relative)) { cache.get(relative).roles.add(role); return cache.get(relative); }
|
|
47
|
+
const resolved = await realpath(absolute);
|
|
48
|
+
target(resolved);
|
|
49
|
+
const info = await stat(absolute);
|
|
50
|
+
if (!info.isFile()) throw new Error('输入不是普通文件');
|
|
51
|
+
if (info.size > 8 * 1024 * 1024) throw new Error('输入超过 8 MiB,需显式提供较小快照');
|
|
52
|
+
const bytes = await readFile(absolute);
|
|
53
|
+
const text = new TextDecoder('utf-8', { fatal: true }).decode(bytes);
|
|
54
|
+
const item = { absolute, resolved, file: relative, bytes, text, sha256: digest(bytes), roles: new Set([role]) };
|
|
55
|
+
cache.set(relative, item);
|
|
56
|
+
return item;
|
|
57
|
+
} catch (error) {
|
|
58
|
+
issue('INPUT_UNREADABLE', caller.file ?? ref, caller.position, caller.id, `无法读取 ${ref}: ${error.message}`, '补齐或修正显式输入路径;不得猜测替代来源。', true);
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function markdown(input) {
|
|
63
|
+
if (!input) return null;
|
|
64
|
+
if (parsed.has(input.file)) return parsed.get(input.file);
|
|
65
|
+
try { const doc = parseContent(input.text, input.file); parsed.set(input.file, doc); return doc; }
|
|
66
|
+
catch (error) {
|
|
67
|
+
issue('PARSE_ERROR', input.file, null, null, error.message, '修复 Markdown frontmatter / YAML 解析问题后重跑。', true);
|
|
68
|
+
parsed.set(input.file, null); return null;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
async function resolveSource(reference, entry, name) {
|
|
72
|
+
if (reference.invalid) {
|
|
73
|
+
issue('SOURCE_FORMAT', entry.file, entry.cells[name]?.position ?? entry.position, entry.id, `来源缺少可定位表达:${reference.invalid}`, '使用 项目根相对路径 :: id:已有ID 或 :: heading:准确章节名。'); return null;
|
|
74
|
+
}
|
|
75
|
+
if (/^[a-z][a-z0-9+.-]*:/i.test(reference.path)) {
|
|
76
|
+
unassessed('EXTERNAL_SOURCE', entry.file, `未联网读取外部来源 ${reference.path};需要可审阅的本地证据快照。`, entry.id); return null;
|
|
77
|
+
}
|
|
78
|
+
const input = await load(reference.path, 'source', entry);
|
|
79
|
+
if (!input) return null;
|
|
80
|
+
let matches;
|
|
81
|
+
try {
|
|
82
|
+
if (/\.(?:ya?ml|json)$/i.test(input.file)) {
|
|
83
|
+
const value = /\.json$/i.test(input.file) ? JSON.parse(input.text) : yamlValue(input.text);
|
|
84
|
+
matches = [];
|
|
85
|
+
const walk = node => {
|
|
86
|
+
if (!node || typeof node !== 'object') return;
|
|
87
|
+
if (node.id === reference.locator && reference.type === 'id') matches.push(node);
|
|
88
|
+
for (const [key, child] of Object.entries(node)) {
|
|
89
|
+
if (key === reference.locator && reference.type === 'id') matches.push(child);
|
|
90
|
+
walk(child);
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
walk(value);
|
|
94
|
+
} else if (/\.md$/i.test(input.file)) {
|
|
95
|
+
const doc = markdown(input);
|
|
96
|
+
if (!doc) return null;
|
|
97
|
+
matches = (reference.type === 'heading' ? doc.headings : doc.locators).filter(x => x.value === reference.locator);
|
|
98
|
+
} else { unassessed('SOURCE_FORMAT_UNSUPPORTED', input.file, '来源格式不支持条目定位,只绑定原始摘要。', entry.id); return null; }
|
|
99
|
+
} catch (error) {
|
|
100
|
+
issue('PARSE_ERROR', input.file, null, entry.id, error.message, '修复显式来源解析后重跑。', true); return null;
|
|
101
|
+
}
|
|
102
|
+
if (matches.length !== 1) {
|
|
103
|
+
issue('SOURCE_LOCATOR', entry.file, entry.cells[name]?.position ?? entry.position, entry.id, `来源 ${input.file} 的 ${reference.type}:${reference.locator} 匹配 ${matches.length} 处`, '修正已有条目 ID 或准确章节名;歧义定位不能自动选择。'); return null;
|
|
104
|
+
}
|
|
105
|
+
return { file: input.file, type: reference.type, locator: reference.locator, sha256: input.sha256 };
|
|
106
|
+
}
|
|
107
|
+
async function checkDocument(input, role) {
|
|
108
|
+
const doc = markdown(input);
|
|
109
|
+
if (!doc) return null;
|
|
110
|
+
report.scope.documents.push({ file: input.file, role, profile: doc.frontmatter.content_profile ?? null, extracted_items: doc.entries.length });
|
|
111
|
+
if (!doc.supported) unassessed('LEGACY_OR_UNKNOWN_PROFILE', input.file, '未声明支持的 content_profile;仅尽力检查已识别 ID 与显式引用,缺字段不解释为缺陷或内容合格。');
|
|
112
|
+
if (doc.supported) for (const condition of doc.conditions) {
|
|
113
|
+
if (notApplicable(condition.value) && !naReason(condition.value)) issue('NA_REASON', input.file, condition.position, condition.id, '条件项声明不适用但缺少原因', '补充 not-applicable:具体原因。');
|
|
114
|
+
}
|
|
115
|
+
const groups = new Map();
|
|
116
|
+
for (const entry of doc.entries) {
|
|
117
|
+
const group = groups.get(entry.id) ?? []; group.push(entry); groups.set(entry.id, group);
|
|
118
|
+
if (!ID_PATTERN.test(entry.id) || !(entry.id.startsWith(`${entry.kind}-`) || entry.kind === 'SC' && entry.id.startsWith('success-criterion.'))) {
|
|
119
|
+
if (doc.supported) issue('INVALID_ID', entry.file, entry.position, entry.id, 'ID 与所属条目类型不一致或尚未填写。', '使用功能内稳定 ID,重排不改号,删除不复用。');
|
|
120
|
+
}
|
|
121
|
+
if (!doc.supported) continue;
|
|
122
|
+
const required = entry.kind === 'SC' && '权威引用' in entry.fields ? ['权威引用'] : requiredFields[entry.kind];
|
|
123
|
+
for (const name of required) {
|
|
124
|
+
const value = field(entry, name);
|
|
125
|
+
if (noValue(value)) issue('REQUIRED_FIELD', entry.file, entry.cells[name]?.position ?? entry.position, entry.id, `${name} 为空或占位符`, '填写已有依据;未知值关联未决项及补齐动作。');
|
|
126
|
+
else if (placeholder(value)) issue('PLACEHOLDER', entry.file, entry.cells[name]?.position, entry.id, `${name} 尚有占位符`, '替换为真实输入或明确未决项。');
|
|
127
|
+
}
|
|
128
|
+
if ((entry.kind === 'NFR' || entry.kind === 'SC') && !('权威引用' in entry.fields)) {
|
|
129
|
+
if (unknown(field(entry, '目标')) && !ids(field(entry, '未决项'), ['Q']).length) issue('UNKNOWN_TARGET', entry.file, entry.position, entry.id, '目标未知且未关联未决项', '关联 Q ID,保留候选状态、负责人和补齐动作。');
|
|
130
|
+
if (unknown(field(entry, '目标')) && field(entry, '确认状态') === '已确认') issue('TARGET_STATUS', entry.file, entry.position, entry.id, '未知目标标记为已确认', '核对真实决定;未知目标保持候选状态。');
|
|
131
|
+
if (entry.kind === 'SC' && unknown(field(entry, '基线或未知原因')) && !ids(field(entry, '未决项'), ['Q']).length) issue('UNKNOWN_BASELINE', entry.file, entry.position, entry.id, '基线未知且没有补齐项', '关联 Q ID,说明未知原因、负责人和补齐动作。');
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
for (const [id, entries] of groups) if (entries.length > 1) for (const entry of entries) issue('DUPLICATE_ID', entry.file, entry.position, id, `ID 重复 ${entries.length} 次`, '消除重复并修复所有关联;不要因排序重编号。');
|
|
135
|
+
if (doc.supported) {
|
|
136
|
+
for (const kind of role === 'spec' ? ['FR', 'NFR', 'AC'] : ['SC']) {
|
|
137
|
+
if (!doc.sections.some(section => section.kind === kind)) issue('SECTION_MISSING', input.file, null, null, `${kind} 缺少可识别章节`, '使用权威模板;未命中条件项注明不适用及原因。');
|
|
138
|
+
}
|
|
139
|
+
for (const section of doc.sections) if (!section.count && section.kind !== 'Q') {
|
|
140
|
+
if (notApplicable(section.text.trim())) {
|
|
141
|
+
// The paragraph-level condition check records missing reasons once.
|
|
142
|
+
} else {
|
|
143
|
+
issue('SECTION_UNPARSED', input.file, section.position, null, `${section.kind} 未提取到 ID 表`, '使用权威模板中的 ID 表,或为条件项明确不适用原因。');
|
|
144
|
+
unassessed('SECTION_UNPARSED', input.file, `${section.kind} 正文未进行结构诊断。`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
for (const entry of doc.entries) {
|
|
149
|
+
const refFields = { '验收引用': ['AC', 'Q'], '需求引用': ['FR', 'NFR'], '未决项': ['Q'] };
|
|
150
|
+
for (const [name, allowed] of Object.entries(refFields)) {
|
|
151
|
+
const refs = ids(field(entry, name));
|
|
152
|
+
for (const id of refs) {
|
|
153
|
+
if (!allowed.includes(id.split('-')[0])) issue('REFERENCE_KIND', entry.file, entry.cells[name]?.position, entry.id, `${name} 引用了不支持的类型 ${id}`, '修正字段中的关联类型。');
|
|
154
|
+
else if (!groups.has(id)) issue('DANGLING_REFERENCE', entry.file, entry.cells[name]?.position, entry.id, `${name} 指向不存在的 ${id}`, '恢复条目或修正引用;不得猜测映射。');
|
|
155
|
+
else if (groups.get(id).length > 1) unassessed('AMBIGUOUS_REFERENCE', entry.file, `引用 ${id} 重复,无法唯一追溯。`, entry.id);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (['FR', 'NFR'].includes(entry.kind)) {
|
|
159
|
+
const ac = ids(field(entry, '验收引用'), ['AC']);
|
|
160
|
+
const pending = ids(field(entry, '验收引用'), ['Q']);
|
|
161
|
+
if (!ac.length && !pending.length && (doc.supported || '验收引用' in entry.fields)) issue('AC_MISSING', entry.file, entry.position, entry.id, '需求没有验收引用或明确待补项', '关联 AC 或待补 Q,并由原有门禁处理未决项。');
|
|
162
|
+
if (pending.length) unassessed('AC_DEFERRED', entry.file, `验收待补 ${pending.join(', ')},尚未评估验收覆盖。`, entry.id);
|
|
163
|
+
for (const id of ac) {
|
|
164
|
+
const targetEntry = groups.get(id)?.length === 1 ? groups.get(id)[0] : null;
|
|
165
|
+
if (targetEntry && !ids(field(targetEntry, '需求引用')).includes(entry.id)) issue('REFERENCE_MISMATCH', entry.file, entry.position, entry.id, `${id} 没有反向关联本需求`, '核对需求与验收引用并同时修正。');
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
if (entry.kind === 'AC') {
|
|
169
|
+
const requirements = ids(field(entry, '需求引用'), ['FR', 'NFR']);
|
|
170
|
+
if (!requirements.length && (doc.supported || '需求引用' in entry.fields)) issue('REQUIREMENT_MISSING', entry.file, entry.position, entry.id, '验收缺少需求来源', '关联已有 FR/NFR,不由验收示例反推新规则。');
|
|
171
|
+
for (const id of requirements) {
|
|
172
|
+
const requirement = groups.get(id)?.length === 1 ? groups.get(id)[0] : null;
|
|
173
|
+
if (requirement && !ids(field(requirement, '验收引用')).includes(entry.id)) issue('REFERENCE_MISMATCH', entry.file, entry.position, entry.id, `${id} 未引用本验收`, '核对双向关联。');
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
for (const name of ['来源引用', '数据来源', '权威引用']) {
|
|
177
|
+
if (!(name in entry.fields)) continue;
|
|
178
|
+
const value = entry.cells[name].raw;
|
|
179
|
+
if (noValue(field(entry, name)) || placeholder(field(entry, name))) continue;
|
|
180
|
+
for (const ref of sourceRefs(value)) await resolveSource(ref, entry, name);
|
|
181
|
+
if (name === '权威引用') unassessed('STATEMENT_MANUAL_REVIEW', entry.file, '成功标准复用权威 statement;指标、窗口、未知原因等语义完整性由人工逐项审查。', entry.id);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return doc;
|
|
185
|
+
}
|
|
186
|
+
async function trace(doc) {
|
|
187
|
+
if (!doc) return;
|
|
188
|
+
const requirements = doc.entries.filter(e => ['FR', 'NFR'].includes(e.kind));
|
|
189
|
+
const acs = new Map(doc.entries.filter(e => e.kind === 'AC').map(e => [e.id, e]));
|
|
190
|
+
report.trace = { links: [], gaps: [], scope: '仅显式 --slice;未提供的依赖未知,不推断未受影响' };
|
|
191
|
+
for (const ref of options.slices ?? []) {
|
|
192
|
+
const input = await load(ref, 'slice'); if (!input) continue;
|
|
193
|
+
let slice;
|
|
194
|
+
try { slice = yamlValue(input.text); }
|
|
195
|
+
catch (error) { issue('PARSE_ERROR', input.file, null, null, error.message, '修复显式 Slice YAML 解析问题后重跑。', true); continue; }
|
|
196
|
+
if (slice?.schema_version !== 3 || !slice.acceptance || typeof slice.acceptance !== 'object' || Array.isArray(slice.acceptance)) {
|
|
197
|
+
unassessed('SLICE_UNSUPPORTED', input.file, '仅支持现有 Slice schema v3 acceptance mapping'); continue;
|
|
198
|
+
}
|
|
199
|
+
for (const [id, acceptance] of Object.entries(slice.acceptance)) {
|
|
200
|
+
if (!acceptance || typeof acceptance.source !== 'string' || typeof acceptance.locator !== 'string') { unassessed('SLICE_LOCATOR_UNSUPPORTED', input.file, `acceptance ${id} 结构不支持。`); continue; }
|
|
201
|
+
const locator = acceptance.locator.replace(/^id:/, '');
|
|
202
|
+
const resolved = await resolveSource({ path: acceptance.source, type: 'id', locator }, { file: input.file, id, cells: {} }, 'source');
|
|
203
|
+
if (!resolved || resolved.file !== doc.file || !acs.has(locator)) { report.trace.gaps.push({ slice: input.file, acceptance: id, reason: '定位未映射到本次 Spec 的 AC,影响未知' }); continue; }
|
|
204
|
+
if (doc.entries.filter(e => e.id === locator).length !== 1) { report.trace.gaps.push({ slice: input.file, acceptance: id, reason: 'Spec ID 重复,无法映射' }); continue; }
|
|
205
|
+
const referring = collection => Object.entries(collection ?? {}).filter(([, item]) => Array.isArray(item?.acceptance_refs) && item.acceptance_refs.includes(id));
|
|
206
|
+
report.trace.links.push({ spec: doc.file, ac: locator, requirements: ids(field(acs.get(locator), '需求引用'), ['FR', 'NFR']), slice: input.file, acceptance: id,
|
|
207
|
+
verification: referring(slice.verification).map(([key, value]) => ({ id: key, command: value.command ?? null, expected_evidence: value.expected_evidence ?? null })),
|
|
208
|
+
work_units: referring(slice.work_units).map(([key]) => key), evidence_status: '引用可见;未执行命令、未验证证据内容或批准' });
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
for (const requirement of requirements) if (!report.trace.links.some(link => link.requirements.includes(requirement.id))) report.trace.gaps.push({ requirement: requirement.id, reason: '显式输入内没有下游映射;依赖未知' });
|
|
212
|
+
for (const link of report.trace.links) if (!link.verification.length) report.trace.gaps.push({ ac: link.ac, slice: link.slice, reason: '未找到 acceptance_refs 对应的 verification' });
|
|
213
|
+
}
|
|
214
|
+
if (root && options.command === 'check') {
|
|
215
|
+
if (!options.plan && !options.spec) issue('INPUT_REQUIRED', '.', null, null, 'check 至少需要 --plan 或 --spec', '显式指定要诊断的文档。', true);
|
|
216
|
+
if (options.plan) { const input = await load(options.plan, 'plan'); if (input) await checkDocument(input, 'plan'); }
|
|
217
|
+
if (options.spec) { const input = await load(options.spec, 'spec'); if (input) await trace(await checkDocument(input, 'spec')); }
|
|
218
|
+
else if (options.slices?.length) issue('INPUT_REQUIRED', '.', null, null, '--slice 需要 --spec', '提供用于追溯的 Spec。', true);
|
|
219
|
+
} else if (root && options.command === 'diff') {
|
|
220
|
+
const before = options.before ? await load(options.before, 'before') : null;
|
|
221
|
+
const after = options.after ? await load(options.after, 'after') : null;
|
|
222
|
+
report.diff = { status: '无法比较旧内容', entries: [], raw_difference: null };
|
|
223
|
+
if (!options.before || !options.after) issue('BASELINE_MISSING', options.before ?? '.', null, null, '旧基线或新文档缺失,无法比较', '提供可读的显式 --before 和 --after。', true);
|
|
224
|
+
if (before && after) {
|
|
225
|
+
const oldDoc = markdown(before), newDoc = markdown(after);
|
|
226
|
+
let prefix = 0, suffix = 0;
|
|
227
|
+
while (prefix < Math.min(before.bytes.length, after.bytes.length) && before.bytes[prefix] === after.bytes[prefix]) prefix++;
|
|
228
|
+
while (suffix < Math.min(before.bytes.length, after.bytes.length) - prefix && before.bytes[before.bytes.length - 1 - suffix] === after.bytes[after.bytes.length - 1 - suffix]) suffix++;
|
|
229
|
+
report.diff.raw_difference = { encoding: 'base64', common_prefix_bytes: prefix, common_suffix_bytes: suffix, before_sha256: before.sha256, after_sha256: after.sha256, removed: before.bytes.subarray(prefix, before.bytes.length - suffix).toString('base64'), added: after.bytes.subarray(prefix, after.bytes.length - suffix).toString('base64') };
|
|
230
|
+
if (oldDoc && newDoc) {
|
|
231
|
+
report.diff.status = 'compared';
|
|
232
|
+
const unparsedKinds = new Set();
|
|
233
|
+
for (const [doc, role] of [[oldDoc, 'before'], [newDoc, 'after']]) {
|
|
234
|
+
report.scope.documents.push({ file: doc.file, role, profile: doc.frontmatter.content_profile ?? null, extracted_items: doc.entries.length });
|
|
235
|
+
if (!doc.supported) continue;
|
|
236
|
+
for (const kind of ['FR', 'NFR', 'AC']) if (!doc.sections.some(section => section.kind === kind)) {
|
|
237
|
+
unparsedKinds.add(kind);
|
|
238
|
+
unassessed('SECTION_MISSING', doc.file, `${kind} 缺少可识别章节;该类条目无法可靠比较增删。`);
|
|
239
|
+
}
|
|
240
|
+
for (const section of doc.sections) if (!section.count && !notApplicable(section.text.trim()) && section.kind !== 'Q') {
|
|
241
|
+
unparsedKinds.add(section.kind);
|
|
242
|
+
unassessed('SECTION_UNPARSED', doc.file, `${section.kind} 未提取到 ID 表;该类条目无法可靠比较增删。`, null, section.position);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
if (!oldDoc.supported || !newDoc.supported || unparsedKinds.size) {
|
|
246
|
+
report.diff.status = 'partially-compared';
|
|
247
|
+
unassessed('PARTIAL_DIFF', after.file, '格式或章节存在提取缺口;只比较可识别范围,缺口不判为条目增删。原始字节差异覆盖全部内容。');
|
|
248
|
+
}
|
|
249
|
+
const allIds = [...new Set([...oldDoc.entries, ...newDoc.entries].map(e => e.id))].sort();
|
|
250
|
+
for (const id of allIds) {
|
|
251
|
+
const oldItems = oldDoc.entries.filter(e => e.id === id), newItems = newDoc.entries.filter(e => e.id === id);
|
|
252
|
+
if (oldItems.length > 1 || newItems.length > 1) { issue('DUPLICATE_ID', after.file, newItems[0]?.position, id, '差异中的 ID 不唯一,无法比较该条目', '消除歧义,保留原始字节证据。'); report.diff.entries.push({ id, change: 'unassessed' }); continue; }
|
|
253
|
+
const left = oldItems[0], right = newItems[0];
|
|
254
|
+
if (unparsedKinds.has(left?.kind) || unparsedKinds.has(right?.kind) || (!left || !right) && (!oldDoc.supported || !newDoc.supported)) {
|
|
255
|
+
report.diff.entries.push({ id, change: 'unassessed', reason: '所属章节提取不完整,不能据此判断新增或删除', location: location(right ? after.file : before.file, (right ?? left).position) });
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
const values = item => item && Object.fromEntries(Object.entries(item.cells).map(([key, cell]) => [key, cell.raw]));
|
|
259
|
+
const oldFields = values(left), newFields = values(right);
|
|
260
|
+
if (JSON.stringify(oldFields) === JSON.stringify(newFields)) continue;
|
|
261
|
+
const referenceChanges = ['来源引用', '验收引用', '需求引用', '未决项', '权威引用', '数据来源'].filter(key => oldFields?.[key] !== newFields?.[key]);
|
|
262
|
+
report.diff.entries.push({ id, change: !left ? 'added' : !right ? 'removed' : 'modified', before: oldFields ?? null, after: newFields ?? null, reference_changes: referenceChanges, location: location(right ? after.file : before.file, (right ?? left).position) });
|
|
263
|
+
}
|
|
264
|
+
report.diff.note = '重排无重新编号;未按 ID 展示的变化见原始字节差异。语义等价、ID 历史复用、批准与下游影响未自动判定。';
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
} else if (root) issue('COMMAND_INVALID', '.', null, null, '命令必须为 check 或 diff', '查看 --help。', true);
|
|
268
|
+
// Test hook exercises an actual read/re-read race without changing runtime CLI behavior.
|
|
269
|
+
if (hooks.beforeFreshnessCheck) await hooks.beforeFreshnessCheck();
|
|
270
|
+
for (const input of cache.values()) {
|
|
271
|
+
report.inputs.push({ file: input.file, roles: [...input.roles].sort(), bytes: input.bytes.length, sha256: input.sha256 });
|
|
272
|
+
try {
|
|
273
|
+
if (await realpath(input.absolute) !== input.resolved || digest(await readFile(input.absolute)) !== input.sha256) throw new Error('读取期间内容或真实路径变化');
|
|
274
|
+
} catch (error) { issue('INPUT_DRIFT', input.file, null, null, error.message, '冻结输入并重新运行;本报告不得作为当前证据。', true); }
|
|
275
|
+
}
|
|
276
|
+
report.inputs.sort((a, b) => a.file.localeCompare(b.file));
|
|
277
|
+
report.summary = { findings: report.findings.length, unevaluated: report.unevaluated.length, result: '诊断证据,不是内容合格或流转许可' };
|
|
278
|
+
return { report, exitCode: report.execution === 'completed' ? 0 : 2 };
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
export function renderReport(report) {
|
|
282
|
+
const lines = [`inspect-plan-spec ${report.tool_version} · ${report.mode} · ${report.execution}`, report.summary.result];
|
|
283
|
+
for (const input of report.inputs) lines.push(`输入 ${input.file} ${input.sha256}`);
|
|
284
|
+
for (const item of [...report.findings, ...report.unevaluated]) lines.push(`${item.code} ${item.location.file}:${item.location.line}:${item.location.column}${item.item_id ? ` [${item.item_id}]` : ''} ${item.message}\n 恢复:${item.recovery}`);
|
|
285
|
+
for (const item of report.manual_review) lines.push(`人工审查:${item}`);
|
|
286
|
+
if (report.diff) { lines.push(`差异:${report.diff.status}`, JSON.stringify(report.diff, null, 2)); }
|
|
287
|
+
if (report.trace) lines.push(`追溯:${JSON.stringify(report.trace, null, 2)}`);
|
|
288
|
+
return `${lines.join('\n')}\n`;
|
|
289
|
+
}
|
|
@@ -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&¤t!==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
|
+
}
|