create-yss-spec 3.5.3 → 3.5.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -0
- package/cli-core.lock.json +130 -0
- package/package.json +7 -3
- package/resources/upgrade-skill/SKILL.md +26 -0
- package/resources/upgrade-skill/protocol.md +40 -0
- package/resources/upgrade-skill/references/cli-families.md +14 -0
- package/src/cli/help.js +1 -0
- package/src/cli/index.js +12 -0
- package/src/filesystem/transaction-runner.js +27 -0
- package/src/template/asset-runtime.js +26 -5
- package/src/template/verification-runtime.js +9 -1
- 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-harness-upgrade/SKILL.md +26 -0
- package/template/.agents/skills/yss-harness-upgrade/references/cli-families.md +14 -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/boundaries.md +1 -0
- 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 +29 -29
- 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 +5 -0
- package/template/.agents/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
- package/template/.agents/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
- package/template/.agents/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
- 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-harness-upgrade/SKILL.md +26 -0
- package/template/.codex/skills/yss-harness-upgrade/references/cli-families.md +14 -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/boundaries.md +1 -0
- 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 +29 -29
- 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 +5 -0
- package/template/.codex/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
- package/template/.codex/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
- package/template/.codex/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
- 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-harness-upgrade/SKILL.md +26 -0
- package/template/.cursor/skills/yss-harness-upgrade/references/cli-families.md +14 -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/boundaries.md +1 -0
- 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 +29 -29
- 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 +5 -0
- package/template/.cursor/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
- package/template/.cursor/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
- package/template/.cursor/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
- 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-harness-upgrade/SKILL.md +26 -0
- package/template/.pi/skills/yss-harness-upgrade/references/cli-families.md +14 -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/boundaries.md +1 -0
- 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 +29 -29
- 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 +5 -0
- package/template/.pi/skills/yss-stage-decision/scripts/validate-domain-strategy.mjs +8 -4
- package/template/.pi/skills/yss-stage-decision/scripts/validate-stage-decision-package.mjs +8 -4
- package/template/.pi/skills/yss-stage-decision/tests/run-scenarios.mjs +13 -1
- 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 +50 -1
- 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 +36 -1
- package/template/.template-spec/process/document-writing.md +14 -0
- package/template/.template-spec/process/feature-assets.md +38 -0
- package/template/.template-spec/process/harness-upgrade.md +40 -0
- package/template/.template-spec/process/lifecycle-artifact-map.md +3 -2
- package/template/.template-spec/process/lifecycle-registry-baseline.json +9 -5
- package/template/.template-spec/process/lifecycle-registry.yaml +18 -6
- 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/approval-record.schema.json +23 -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 +10 -2
- package/template/.template-spec/process/strategic-handoff-package.md +3 -1
- package/template/.template-spec/process/structured-assets.md +35 -0
- package/template/.template-spec/process/templates/lifecycle-checkpoint-template.json +48 -0
- package/template/.template-spec/process/templates/stage-checkpoint-template.md +6 -1
- package/template/.template-spec/templates/approval-record-template.json +23 -0
- 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/check-plan-stage-coverage +12 -0
- package/template/scripts/contract +20 -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/approval-record.mjs +4 -3
- package/template/scripts/lib/asset-command.mjs +35 -0
- package/template/scripts/lib/asset-migration.mjs +101 -0
- package/template/scripts/lib/asset-transactions.mjs +235 -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 +43 -0
- package/template/scripts/lib/contract-views.mjs +27 -8
- package/template/scripts/lib/feature-assets.mjs +274 -0
- package/template/scripts/lib/governance-io.mjs +40 -0
- package/template/scripts/lib/json-schema.mjs +43 -4
- package/template/scripts/lib/lifecycle-context-query.mjs +7 -0
- package/template/scripts/lib/lifecycle-presentation.mjs +77 -0
- package/template/scripts/lib/lifecycle-status.mjs +33 -2
- 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/plan-stage-coverage.mjs +40 -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 +202 -0
- package/template/scripts/lib/reading-view-diff.mjs +29 -0
- package/template/scripts/lib/reading-view-markdown.mjs +41 -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 +20 -4
- 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/structured-assets.mjs +81 -0
- package/template/scripts/lib/task-package.mjs +18 -4
- 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 +16 -3
- 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 +24 -6
- package/template/scripts/verify-prototype-design +3 -0
- package/template/skills-lock.json +46 -34
- package/template.manifest.json +3 -1
- package/template.snapshot.json +5 -5
- package/vendor/cli-core/build.mjs +302 -0
- package/vendor/cli-core/bundle.mjs +198 -0
- package/vendor/cli-core/cli.mjs +182 -0
- package/vendor/cli-core/command-runner.mjs +107 -0
- package/vendor/cli-core/engine.mjs +239 -0
- package/vendor/cli-core/family.mjs +28 -0
- package/vendor/cli-core/gitignore.mjs +15 -0
- package/vendor/cli-core/identity.mjs +274 -0
- package/vendor/cli-core/io.mjs +153 -0
- package/vendor/cli-core/layout-migration.mjs +64 -0
- package/vendor/cli-core/legacy.mjs +19 -0
- package/vendor/cli-core/migrate.mjs +237 -0
- package/vendor/cli-core/migration-adapter.mjs +19 -0
- package/vendor/cli-core/package.json +13 -0
- package/vendor/cli-core/scaffold.mjs +117 -0
- package/vendor/cli-core/spec-migration-adapter.mjs +83 -0
- package/vendor/cli-core/tests/build.test.mjs +40 -0
- package/vendor/cli-core/tests/cli.test.mjs +1065 -0
- package/vendor/cli-core/tests/migration-version.test.mjs +8 -0
- package/vendor/cli-core/tests/package-contract.mjs +75 -0
- package/vendor/cli-core/transaction.mjs +529 -0
- package/vendor/cli-core/update.mjs +79 -0
- package/vendor/cli-core/vendor/NOTICES.md +6 -0
- package/vendor/cli-core/vendor/yaml.LICENSE +13 -0
- package/vendor/cli-core/vendor/yaml.mjs +6311 -0
- package/vendor/cli-core/verification.mjs +131 -0
- 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,41 @@
|
|
|
1
|
+
// Presentation only: labels never change identifiers or decision values.
|
|
2
|
+
export const readingLabels=Object.freeze({
|
|
3
|
+
'domain-strategy':'领域战略审阅','stage-decision-package':'阶段决策审阅',checkpoint:'阶段状态快照','tracking-migration':'跟踪迁移审阅',
|
|
4
|
+
contexts:'业务责任区',subdomains:'业务板块',relationships:'协作与交接关系',rule_catalog:'业务规则',scenarios:'业务场景',concept_candidates:'关键业务对象候选',invariants:'不可违反的规则',downstream_mapping:'下游传播',context_snapshot:'术语来源',evidence_refs:'证据来源',approval:'批准记录',
|
|
5
|
+
responsibilities:'负责事项',non_responsibilities:'不负责事项',owner:'负责人',status:'声明状态',statement:'规则内容',responsible_context:'责任区',preconditions:'前提条件',commands:'操作',rules:'适用规则',events:'业务事件',success_results:'成功结果',failure_results:'失败结果',consumers:'消费方',rule_refs:'规则引用',critical:'关键场景',
|
|
6
|
+
problem_statement:'问题与目标',target_users:'目标用户',mvp:'本期范围',non_goals:'非目标',success_criteria:'成功标准',test_seams:'测试边界',confirmed_decisions:'已确认决定',assumptions:'假设',constraints:'约束',unresolved_items:'未决事项',domain_strategy_ref:'领域战略来源',impact_assessment:'影响面',
|
|
7
|
+
stage:'当前阶段',next_work_unit:'下一工作单元',blockers:'已登记阻塞',stage_tracking:'阶段工作',items:'工作项',progress:'工作项进度',acceptance:'验收条件',dependencies:'依赖',completion:'完成证据',recheck_required:'需要重新检查',deferred:'延期安排',cancellation_reason:'取消原因',
|
|
8
|
+
artifacts:'阶段资产',gates:'门禁登记',checks:'检查范围',verification:'验证记录',human_review:'人工审阅',context_reconciliation:'术语对账',ticket_sync:'Ticket 同步',git_checkpoint:'Git 授权记录',rollback:'回滚',
|
|
9
|
+
changes:'文件变化',before:'修改前',after:'修改后',changed_refs:'变更文件',source_operation:'源操作结果',reading_update:'阅读材料更新',
|
|
10
|
+
name:'名称',title:'标题',description:'说明',rationale:'依据',scope:'范围',type:'类型',next_action:'下一动作',target_version:'目标版本',semantic_upstream:'规则提供方',semantic_downstream:'规则使用方',business_authority:'业务决策权',transport_direction:'信息方向',translation_responsibility:'口径转换负责人',model_change_impact:'模型变更影响',direction_explanation:'方向说明',
|
|
11
|
+
});
|
|
12
|
+
export const escapeMarkdown=value=>String(value).replace(/&/g,'&').replace(/</g,'<').replace(/>/g,'>').replace(/([\\`*_\[\]|])/g,'\\$1');
|
|
13
|
+
const scalar=value=>value===null?'null':String(value);
|
|
14
|
+
function textLines(value,indent=''){
|
|
15
|
+
return scalar(value).split(/\r?\n/).map((line,index)=>`${index?'\n'+indent+'> ':''}${escapeMarkdown(line)}`).join('');
|
|
16
|
+
}
|
|
17
|
+
export function renderReadingValue(value,depth=0,names={}){
|
|
18
|
+
const named=value=>typeof value==='string'&&Object.hasOwn(names,value)?`${names[value].name}(${value})`:value;
|
|
19
|
+
if(value===null||typeof value!=='object')return textLines(named(value));
|
|
20
|
+
const entries=Object.entries(value);
|
|
21
|
+
if(!entries.length)return Array.isArray(value)?'[](来源明确为空)':'{}(来源明确为空)';
|
|
22
|
+
return entries.map(([key,child])=>{
|
|
23
|
+
if(Array.isArray(value)&&(child===null||typeof child!=='object'))return '- '+textLines(named(child)).replace(/\n/g,'\n ');
|
|
24
|
+
const label=Array.isArray(value)?`第 ${Number(key)+1} 项`:escapeMarkdown(Object.hasOwn(readingLabels,key)?readingLabels[key]:named(key));
|
|
25
|
+
const rendered=renderReadingValue(child,depth+1,names).split('\n');
|
|
26
|
+
return child!==null&&typeof child==='object'&&Object.keys(child).length?`- **${label}**:\n${rendered.map(line=>' '+line).join('\n')}`:`- **${label}**:${rendered[0]}${rendered.slice(1).map(line=>'\n '+line).join('')}`;
|
|
27
|
+
}).join('\n');
|
|
28
|
+
}
|
|
29
|
+
export function renderReadingMarkdown(view){
|
|
30
|
+
const lines=[`# ${readingLabels[view.kind]||view.kind} · ${escapeMarkdown(view.binding.id||view.binding.ref)}`,
|
|
31
|
+
`版本:${escapeMarkdown(view.binding.version||'源资产未声明')};权威文件:${escapeMarkdown(view.binding.ref)}`,
|
|
32
|
+
`来源 SHA-256:${view.binding.digest}`,
|
|
33
|
+
'本页为来源快照;当前有效性需重新检查。批准有效性未核验;本视图不授予执行权限。',
|
|
34
|
+
`检查范围:${view.checks.map(escapeMarkdown).join(';')}`];
|
|
35
|
+
for(const [key,value]of Object.entries(view.content))if(value!==undefined){
|
|
36
|
+
lines.push(`## ${readingLabels[key]||escapeMarkdown(key)}`,key==='正文'&&typeof value==='string'?value:renderReadingValue(value,0,view.presentation?.names));
|
|
37
|
+
}
|
|
38
|
+
if(view.presentation?.warnings.length)lines.push('## 名称来源提示',...view.presentation.warnings.map(escapeMarkdown));
|
|
39
|
+
if(view.blockers.length)lines.push('## 阻断与未决检查',...view.blockers.map(item=>`- ${escapeMarkdown(item)}`));
|
|
40
|
+
return lines.join('\n\n')+'\n';
|
|
41
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const readingIdFields=Object.freeze({contexts:'context_id',subdomains:'subdomain_id',relationships:'relationship_id',rule_catalog:'rule_id',scenarios:'scenario_id',concept_candidates:'concept_id',invariants:'invariant_id',downstream_mapping:'mapping_id',items:'id'});
|
|
2
|
+
// A lossless presentation index, never another editable contract.
|
|
3
|
+
const pointerPart=key=>String(key).replace(/~/g,'~0').replace(/\//g,'~1');
|
|
4
|
+
export function readingViewModel(view,raw){
|
|
5
|
+
const locations=[];
|
|
6
|
+
const walk=(value,pointer)=>{
|
|
7
|
+
if(value===null||typeof value!=='object'||Object.keys(value).length===0){locations.push({content_pointer:pointer,pointer_kind:'view-content',...(view.kind!=='tracking-migration'&&Object.hasOwn(raw||{},pointer.split('/')[1])?{source_pointer:pointer}:{}),source_ref:view.binding.ref,source_digest:view.binding.digest});return;}
|
|
8
|
+
for(const [key,child]of Object.entries(value))walk(child,`${pointer}/${pointerPart(key)}`);
|
|
9
|
+
};
|
|
10
|
+
walk(view.content,'');
|
|
11
|
+
return {view_schema_version:1,kind:view.kind,profile:view.profile,binding:view.binding,read_only:true,execution_allowed:false,approval_validity:'not-checked',
|
|
12
|
+
declared_state:{status:raw?.status??null,stage:raw?.stage??null},checks:view.checks,sections:Object.keys(view.content),diagnostics:view.blockers,source_locations:locations,coverage:{rendered_leaf_count:locations.length,scope:'presented-content; owner verification remains required'}};
|
|
13
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {existsSync,readFileSync} from './validation-phase.mjs';
|
|
2
|
+
import {safe,schema} from './strategic-handoff-io.mjs';
|
|
3
|
+
import {parseSliceYaml} from './slice-contract.mjs';
|
|
4
|
+
export const READING_POLICY='.template-spec/process/reading-policy.yaml';
|
|
5
|
+
export function readingPolicy(root){
|
|
6
|
+
const file=safe(root,READING_POLICY,{missing:true});
|
|
7
|
+
if(!existsSync(file))return {schema_version:1,mode:'manual',checkpoints:[]};
|
|
8
|
+
const value=parseSliceYaml(readFileSync(file));schema(value,'.template-spec/process/schemas/reading-policy.schema.json');
|
|
9
|
+
return value;
|
|
10
|
+
}
|
|
11
|
+
export function managedReading(root,checkpoint){const policy=readingPolicy(root);return policy.mode==='managed'&&policy.checkpoints.includes(checkpoint);}
|
|
12
|
+
export function readingLocation(checkpoint){
|
|
13
|
+
const match=/^docs\/\.scratch\/([a-z0-9][a-z0-9-]*)\/[^/]+\.(yaml|json)$/.exec(checkpoint);
|
|
14
|
+
if(!match)throw Error('reading-checkpoint-path-invalid');
|
|
15
|
+
return {feature:match[1],base:`docs/.scratch/${match[1]}`,directory:`docs/.scratch/${match[1]}/reading`};
|
|
16
|
+
}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
import { existsSync, lstatSync, readFileSync, readdirSync, realpathSync } from 'node:fs';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { spawn, spawnSync } from 'node:child_process';
|
|
5
|
+
import { StringDecoder } from 'node:string_decoder';
|
|
6
|
+
import { parseDocument } from '../vendor/yaml.mjs';
|
|
7
|
+
|
|
8
|
+
const digest = (value) => createHash('sha256').update(value).digest('hex');
|
|
9
|
+
|
|
10
|
+
// Hash the complete resource tree, including executable bits. Never follow an
|
|
11
|
+
// escaping resource link or a cycle; an incomplete digest cannot establish equality.
|
|
12
|
+
export function resourceIdentity(directory) {
|
|
13
|
+
const root = realpathSync(directory), files = [], active = new Set();
|
|
14
|
+
function walk(file, relative) {
|
|
15
|
+
const real = realpathSync(file);
|
|
16
|
+
if (real !== root && !real.startsWith(root + path.sep)) throw new Error(`resource link escapes skill: ${relative}`);
|
|
17
|
+
if (active.has(real)) throw new Error(`resource cycle: ${relative}`);
|
|
18
|
+
const stat = lstatSync(real);
|
|
19
|
+
if (stat.isDirectory()) {
|
|
20
|
+
active.add(real);
|
|
21
|
+
for (const name of readdirSync(real).sort()) {
|
|
22
|
+
if (['.DS_Store', '__pycache__', '.git'].includes(name)) continue;
|
|
23
|
+
walk(path.join(real, name), relative ? `${relative}/${name}` : name);
|
|
24
|
+
}
|
|
25
|
+
active.delete(real);
|
|
26
|
+
} else if (stat.isFile()) files.push({ path: relative, executable: Boolean(stat.mode & 0o111), sha256: digest(readFileSync(real)) });
|
|
27
|
+
else throw new Error(`unsupported resource: ${relative}`);
|
|
28
|
+
}
|
|
29
|
+
walk(root, '');
|
|
30
|
+
return { sha256: digest(JSON.stringify(files)), files };
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function yaml(source) {
|
|
34
|
+
const doc = parseDocument(source, { uniqueKeys: true, maxAliasCount: 0 });
|
|
35
|
+
if (doc.errors.length) throw new Error(doc.errors[0].message);
|
|
36
|
+
return doc.toJS({ maxAliasCount: 0 });
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function inspectSkill(file) {
|
|
40
|
+
try {
|
|
41
|
+
const source = readFileSync(file, 'utf8');
|
|
42
|
+
const match = source.match(/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/);
|
|
43
|
+
if (!match) throw new Error('missing frontmatter');
|
|
44
|
+
const header = yaml(match[1]);
|
|
45
|
+
if (!header || typeof header.name !== 'string') throw new Error('missing name');
|
|
46
|
+
const metadataPath = path.join(path.dirname(file), 'agents/openai.yaml');
|
|
47
|
+
const metadata = existsSync(metadataPath) ? yaml(readFileSync(metadataPath, 'utf8')) : {};
|
|
48
|
+
return { name: header.name, path: path.resolve(file), real_path: realpathSync(file), resource: resourceIdentity(path.dirname(file)),
|
|
49
|
+
declared_policy: { codex_allow_implicit_invocation: metadata?.policy?.allow_implicit_invocation ?? null, disable_model_invocation: header['disable-model-invocation'] ?? null }, status: 'observed-filesystem' };
|
|
50
|
+
} catch (error) { return { path: path.resolve(file), status: 'unknown', reason: error.message }; }
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function assessDiscovery({ registered, observation, required = [], selections = [], expected }) {
|
|
54
|
+
const findings = [];
|
|
55
|
+
const bound = observation.runtime === expected.runtime && observation.version === expected.version && observation.cwd === expected.cwd;
|
|
56
|
+
if (!bound) findings.push({ severity: 'block', code: 'observation-binding-mismatch' });
|
|
57
|
+
const entries = bound && observation.status === 'observed' ? observation.entries : [];
|
|
58
|
+
for (const name of required) {
|
|
59
|
+
if (!registered.some((item) => item.name === name)) findings.push({ name, severity: 'block', code: 'required-skill-unregistered' });
|
|
60
|
+
if (observation.status !== 'observed') findings.push({ name, severity: 'block', code: 'required-catalog-unknown' });
|
|
61
|
+
}
|
|
62
|
+
for (const selection of selections) {
|
|
63
|
+
if (!registered.some((item) => item.name === selection.name)) findings.push({ name: selection.name, severity: 'block', code: 'selected-skill-unregistered' });
|
|
64
|
+
}
|
|
65
|
+
for (const wanted of registered) {
|
|
66
|
+
const matches = entries.filter((entry) => entry.name === wanted.name && entry.enabled !== false);
|
|
67
|
+
const identities = matches.map((entry) => ({ entry, identity: inspectSkill(entry.path) }));
|
|
68
|
+
if (identities.length > 1) findings.push({ name: wanted.name, severity: 'warning', code: identities.every(({ identity }) => identity.resource?.sha256 && identity.resource.sha256 === wanted.resource?.sha256) ? 'equivalent-resource-duplicates' : 'catalog-source-conflict', scope: 'resource bytes only; dependency and effective-policy equality are not established' });
|
|
69
|
+
const selected = selections.filter((entry) => entry.name === wanted.name);
|
|
70
|
+
if (!required.includes(wanted.name) && !selected.length) continue;
|
|
71
|
+
if (!selected.length) { findings.push({ name: wanted.name, severity: 'block', code: 'required-selection-unknown' }); continue; }
|
|
72
|
+
for (const selection of selected) {
|
|
73
|
+
// Selection must be supplied by a trace with the same host, version and cwd.
|
|
74
|
+
if (!bound || selection.runtime !== expected.runtime || selection.version !== expected.version || selection.cwd !== expected.cwd || !selection.evidence) {
|
|
75
|
+
findings.push({ name: wanted.name, severity: 'block', code: 'selection-binding-mismatch' }); continue;
|
|
76
|
+
}
|
|
77
|
+
const actual = inspectSkill(selection.path);
|
|
78
|
+
if (!actual.resource?.sha256 || actual.resource.sha256 !== wanted.resource?.sha256) findings.push({ name: wanted.name, severity: 'block', code: 'selected-unregistered-source' });
|
|
79
|
+
else if (selection.dependency_digest !== wanted.dependency_digest || !wanted.dependency_digest || selection.effective_policy_digest !== wanted.effective_policy_digest || !wanted.effective_policy_digest) findings.push({ name: wanted.name, severity: 'block', code: 'effective-environment-unknown-or-different' });
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return { status: findings.some((item) => item.severity === 'block') ? 'blocked' : (bound && observation.status === 'observed' ? 'catalog-observed-only' : 'unknown'), findings };
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export async function codexCatalog(binary, cwd, timeout = 30000) {
|
|
86
|
+
return new Promise((resolve, reject) => {
|
|
87
|
+
const process = spawn(binary, ['app-server', '--stdio'], { cwd, stdio: ['pipe', 'pipe', 'pipe'] });
|
|
88
|
+
let buffer = '', bytes = 0, settled = false;
|
|
89
|
+
const decoder = new StringDecoder('utf8');
|
|
90
|
+
const finish = (error, result) => {
|
|
91
|
+
if (settled) return;
|
|
92
|
+
settled = true; clearTimeout(timer); process.kill('SIGTERM');
|
|
93
|
+
const kill = setTimeout(() => process.kill('SIGKILL'), 1000); kill.unref();
|
|
94
|
+
error ? reject(error) : resolve(result);
|
|
95
|
+
};
|
|
96
|
+
const timer = setTimeout(() => finish(new Error('skills/list timed out')), timeout);
|
|
97
|
+
const send = (value) => process.stdin.write(JSON.stringify(value) + '\n');
|
|
98
|
+
process.on('error', (error) => finish(error));
|
|
99
|
+
process.stdin.on('error', (error) => finish(error));
|
|
100
|
+
process.on('close', () => finish(new Error('app-server exited before skills/list')));
|
|
101
|
+
process.stderr.on('data', () => {}); // No user config, credentials or diagnostics dumped.
|
|
102
|
+
process.stdout.on('data', (chunk) => {
|
|
103
|
+
bytes += chunk.length;
|
|
104
|
+
if (bytes > 16 * 1024 * 1024) return finish(new Error('skills/list response exceeds limit'));
|
|
105
|
+
buffer += decoder.write(chunk);
|
|
106
|
+
let index;
|
|
107
|
+
while ((index = buffer.indexOf('\n')) >= 0) {
|
|
108
|
+
const line = buffer.slice(0, index); buffer = buffer.slice(index + 1);
|
|
109
|
+
if (!line.trim()) continue;
|
|
110
|
+
try {
|
|
111
|
+
const event = JSON.parse(line);
|
|
112
|
+
if (event.id === 1) {
|
|
113
|
+
if (event.error) throw new Error('app-server initialization rejected');
|
|
114
|
+
send({ method: 'initialized', params: {} });
|
|
115
|
+
send({ id: 2, method: 'skills/list', params: { cwds: [cwd], forceReload: true } });
|
|
116
|
+
}
|
|
117
|
+
if (event.id === 2) {
|
|
118
|
+
const row = event.result?.data?.find((item) => item.cwd === cwd);
|
|
119
|
+
if (!row || !Array.isArray(row.skills) || !Array.isArray(row.errors)) throw new Error('invalid skills/list response');
|
|
120
|
+
if (row.skills.some((item) => typeof item.name !== 'string' || typeof item.path !== 'string' || !path.isAbsolute(item.path))) throw new Error('invalid skill identity');
|
|
121
|
+
finish(null, { entries: row.skills.map((item) => ({ name: item.name, path: item.path, enabled: item.enabled, scope: item.scope, effective_policy: 'unknown' })), errors: row.errors, method: 'codex-app-server/skills-list', scope: 'configured catalog; selection and truncation unknown' });
|
|
122
|
+
}
|
|
123
|
+
} catch (error) { finish(error); }
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
send({ id: 1, method: 'initialize', params: { clientInfo: { name: 'yss-skill-discovery', version: '1' }, capabilities: { experimentalApi: true } } });
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export async function observeRuntime({ runtime, binary, cwd, piLoader, piAgentDir }) {
|
|
131
|
+
cwd = path.resolve(cwd);
|
|
132
|
+
const result = spawnSync(binary, ['--version'], { encoding: 'utf8', timeout: 10000, maxBuffer: 1024 * 1024 });
|
|
133
|
+
const version = result.status === 0 ? result.stdout.trim() : null;
|
|
134
|
+
const base = { runtime, version, cwd, observed_at: new Date().toISOString(), entries: [], status: 'unknown', selection: 'unknown', truncation: 'unknown', configuration: 'not-inspected' };
|
|
135
|
+
if (!version) return { ...base, reason: 'runtime-version-unavailable' };
|
|
136
|
+
try {
|
|
137
|
+
if (runtime === 'codex') return { ...base, ...await codexCatalog(binary, cwd), status: 'observed', configuration: 'current host configuration used by app-server' };
|
|
138
|
+
if (runtime === 'pi') {
|
|
139
|
+
if (!piLoader || !piAgentDir) throw new Error('Pi requires its installed core/skills.js and explicit agent directory');
|
|
140
|
+
// Use the installed loader without package resolution, extension execution or writes.
|
|
141
|
+
const probe = "import {pathToFileURL} from 'node:url'; const {loadSkills}=await import(pathToFileURL(process.argv[1]).href); process.stdout.write(JSON.stringify(loadSkills(JSON.parse(process.argv[2]))));";
|
|
142
|
+
const loaded = spawnSync(process.execPath, ['--input-type=module', '-e', probe, path.resolve(piLoader), JSON.stringify({ cwd, agentDir: path.resolve(piAgentDir), skillPaths: [], includeDefaults: true })], { encoding: 'utf8', timeout: 30000, maxBuffer: 16 * 1024 * 1024 });
|
|
143
|
+
if (loaded.status !== 0) throw new Error('Pi loader failed or exceeded its observation limit');
|
|
144
|
+
const found = JSON.parse(loaded.stdout);
|
|
145
|
+
return { ...base, status: 'observed', method: 'installed-pi-core/loadSkills', scope: 'default directories only; configured packages/extensions and CLI session unknown', loader_sha256: digest(readFileSync(piLoader)), entries: found.skills.map((item) => ({ name: item.name, path: item.filePath, enabled: true, scope: item.source, effective_policy: { allow_implicit: !item.disableModelInvocation, provenance: 'observed-loader' } })), errors: found.diagnostics };
|
|
146
|
+
}
|
|
147
|
+
if (runtime === 'cursor') return { ...base, reason: 'No read-only catalog API verified; use a version-bound actual invocation trace for required skills' };
|
|
148
|
+
throw new Error('unsupported runtime');
|
|
149
|
+
} catch (error) { return { ...base, reason: error.message }; }
|
|
150
|
+
}
|
|
@@ -156,6 +156,9 @@ function sameStringSet(left, right) {
|
|
|
156
156
|
function validateInvocationContract(registry, skill) {
|
|
157
157
|
const contract = registry.invocation_contract;
|
|
158
158
|
requireObject(contract, "invocation_contract");
|
|
159
|
+
if (contract.runtime_metadata_version !== undefined && contract.runtime_metadata_version !== 1) {
|
|
160
|
+
fail('invocation_contract.runtime_metadata_version 必须为 1;省略时保持历史声明校验');
|
|
161
|
+
}
|
|
159
162
|
if (contract.schema_version !== 2) fail("invocation_contract.schema_version 必须为 2;v1 已停止支持");
|
|
160
163
|
if (contract.scope !== "discovery-only") fail("invocation_contract.scope 必须限定为 discovery-only");
|
|
161
164
|
requireStringArray(contract.required_fields, "invocation_contract.required_fields", { nonEmpty: true });
|
|
@@ -205,6 +208,38 @@ function validateInvocationContract(registry, skill) {
|
|
|
205
208
|
}
|
|
206
209
|
}
|
|
207
210
|
|
|
211
|
+
function validateInvocationMetadata(registry, skill, source, skillMd) {
|
|
212
|
+
// Opt in through the registry so existing instances keep their declared contract.
|
|
213
|
+
if (registry.invocation_contract.runtime_metadata_version !== 1) return;
|
|
214
|
+
let metadata = {};
|
|
215
|
+
if (source !== null && source !== undefined) {
|
|
216
|
+
const document = parseDocument(source, { maxAliasCount: 0, uniqueKeys: true });
|
|
217
|
+
if (document.errors.length) fail(`${skill.id} 的 agents/openai.yaml 无效: ${document.errors[0].message}`);
|
|
218
|
+
metadata = document.toJS({ maxAliasCount: 0 });
|
|
219
|
+
requireObject(metadata, `${skill.id}.agents/openai.yaml`);
|
|
220
|
+
}
|
|
221
|
+
if (metadata.policy !== undefined) requireObject(metadata.policy, `${skill.id}.policy`);
|
|
222
|
+
const declared = metadata.policy?.allow_implicit_invocation;
|
|
223
|
+
if (declared !== undefined && typeof declared !== 'boolean') {
|
|
224
|
+
fail(`${skill.id}.allow_implicit_invocation 必须为布尔值`);
|
|
225
|
+
}
|
|
226
|
+
const expected = effectiveInvocationContract(registry, skill).invocation_mode !== 'user';
|
|
227
|
+
if (skillMd !== undefined) {
|
|
228
|
+
const match = skillMd.match(/^---\r?\n([\s\S]*?)\r?\n---(?:\r?\n|$)/);
|
|
229
|
+
if (!match) fail(`${skill.id} 的 SKILL.md 缺少 frontmatter`);
|
|
230
|
+
const document = parseDocument(match[1], { maxAliasCount: 0, uniqueKeys: true });
|
|
231
|
+
if (document.errors.length) fail(`${skill.id} 的 frontmatter 无效`);
|
|
232
|
+
const header = document.toJS({ maxAliasCount: 0 });
|
|
233
|
+
requireObject(header, `${skill.id}.frontmatter`);
|
|
234
|
+
const disabled = header['disable-model-invocation'];
|
|
235
|
+
if (disabled !== undefined && typeof disabled !== 'boolean') fail(`${skill.id}.disable-model-invocation 必须为布尔值`);
|
|
236
|
+
if ((disabled ?? false) === expected) fail(`${skill.id}.disable-model-invocation 与注册表调用意图不一致`);
|
|
237
|
+
}
|
|
238
|
+
if ((declared ?? true) !== expected) {
|
|
239
|
+
fail(`${skill.id}.allow_implicit_invocation 与注册表调用意图不一致,应为 ${expected}`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
|
|
208
243
|
function requireStringSet(value, expected, field) {
|
|
209
244
|
if (!Array.isArray(value)) fail(`${field} 必须是数组`);
|
|
210
245
|
const missing = expected.filter((item) => !value.includes(item));
|
|
@@ -296,7 +331,7 @@ function validateCodeReviewRoute(route, resolve) {
|
|
|
296
331
|
validateFindingDisposition(standards.finding_disposition);
|
|
297
332
|
}
|
|
298
333
|
|
|
299
|
-
export function validateSkillRegistry(registry, { lock, compilerContract, lifecycleContract, skillSource, externalSkillSource, nestedSkillSources, backendPlatforms } = {}) {
|
|
334
|
+
export function validateSkillRegistry(registry, { lock, compilerContract, lifecycleContract, skillSource, skillMetadata, externalSkillSource, nestedSkillSources, backendPlatforms } = {}) {
|
|
300
335
|
if (!registry || typeof registry !== "object" || Array.isArray(registry)) fail("技能路由注册表必须是对象");
|
|
301
336
|
if (registry.schema_version !== 3) fail("schema_version 必须为 3;v1/v2 已停止支持,请迁移 provider 与两阶段退役合同");
|
|
302
337
|
if (registry.registry_id !== "yss.skill-routing") fail("registry_id 必须为 yss.skill-routing");
|
|
@@ -366,6 +401,7 @@ export function validateSkillRegistry(registry, { lock, compilerContract, lifecy
|
|
|
366
401
|
fail(`${skill.id} impacts 不能为空`);
|
|
367
402
|
}
|
|
368
403
|
validateInvocationContract(registry, skill);
|
|
404
|
+
if (skillMetadata) validateInvocationMetadata(registry, skill, skillMetadata(skill.id), skillSource?.(skill.id));
|
|
369
405
|
}
|
|
370
406
|
for (const skill of skills) {
|
|
371
407
|
if (skill.maturity === "deprecated") {
|
|
@@ -701,6 +737,10 @@ export function validateDefaultSkillRegistry() {
|
|
|
701
737
|
compilerContract,
|
|
702
738
|
lifecycleContract: yamlFromFile(LIFECYCLE_CONTRACT, "生命周期编排合同"),
|
|
703
739
|
skillSource: (id) => readFileSync(path.join(ROOT, ".agents/skills", id, "SKILL.md"), "utf8"),
|
|
740
|
+
skillMetadata: (id) => {
|
|
741
|
+
const file = path.join(ROOT, '.agents/skills', id, 'agents/openai.yaml');
|
|
742
|
+
return existsSync(file) ? readFileSync(file, 'utf8') : null;
|
|
743
|
+
},
|
|
704
744
|
externalSkillSource: (source) => readFileSync(path.join(ROOT, source), "utf8"),
|
|
705
745
|
nestedSkillSources: nestedSkillPaths().map((source) => `.agents/skills/${source}`)
|
|
706
746
|
});
|
|
@@ -148,7 +148,7 @@ function loadStrategicDesignSkillManifest() {
|
|
|
148
148
|
}
|
|
149
149
|
function git(args) { return spawnSync("git", args, { cwd: ROOT, encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }); }
|
|
150
150
|
function trackedPaths() {
|
|
151
|
-
const result = git(["ls-files", "-z"]);
|
|
151
|
+
const result = git(["ls-files", "-z", "--", ...PROJECTION_ROOTS]);
|
|
152
152
|
if (result.status !== 0) throw new TypeError("无法读取 Git 受跟踪路径");
|
|
153
153
|
const paths = new Set();
|
|
154
154
|
for (const file of result.stdout.split("\0").filter(Boolean)) {
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertImplementationTicket, assertSliceBusinessSources } from './business-tickets.mjs';
|
|
1
2
|
import {readContractSource,contractSourceMetadata} from './contract-source.mjs';
|
|
2
3
|
import {sliceRepositories} from './slice-repositories.mjs';
|
|
3
4
|
import { sliceCheckApplicability } from './slice-applicability.mjs';
|
|
@@ -57,6 +58,7 @@ function prepare({root=process.cwd(),ticket_ref,checkpoint_ref,sources={},refine
|
|
|
57
58
|
try {
|
|
58
59
|
let ticketText='',ticket={},saved={};
|
|
59
60
|
try {ticketText=read(ticket_ref).toString('utf8');ticket=metadata(ticketText);}catch(error){report.blockers.push({code:'SLICE_SOURCE_UNREADABLE',field:'basis.ticket',source_ref:ticket_ref,reason:error.message});}
|
|
61
|
+
try { assertImplementationTicket(ticketText,ticket_ref); } catch(error) { report.blockers.push({code:'TICKET_NOT_IMPLEMENTABLE',field:'basis.ticket',reason:error.message}); }
|
|
60
62
|
if (ticket.kind === 'stage-work-item' || /\/work-items\//.test(ticket_ref || '')) report.blockers.push({code:'STAGE_WORK_ITEM_NOT_IMPLEMENTABLE',field:'basis.ticket',reason:'stage-work-item 不能作为实现 Ticket'});
|
|
61
63
|
if(checkpoint_ref)try {saved=parseSliceYaml(read(checkpoint_ref));}catch(error){report.blockers.push({code:'SLICE_SOURCE_UNREADABLE',field:'checkpoint',source_ref:checkpoint_ref,reason:error.message});}
|
|
62
64
|
const fromTicket=ticket.slice_implementation || {};
|
|
@@ -72,6 +74,7 @@ function prepare({root=process.cwd(),ticket_ref,checkpoint_ref,sources={},refine
|
|
|
72
74
|
const selected=mergeFacts(lifecycleSources(saved,report),mergeFacts(input.sources || {},sources,'sources',report),'sources',report);
|
|
73
75
|
if(selected.ticket && (typeof selected.ticket==='string'?selected.ticket:selected.ticket.ref)!==ticket_ref)throw new TypeError('Ticket 来源冲突');
|
|
74
76
|
selected.ticket=selected.ticket || {ref:ticket_ref};
|
|
77
|
+
if (ticket.business_ticket_set_ref) selected.business_ticket_set ??= {ref:ticket.business_ticket_set_ref};
|
|
75
78
|
if(input.scope?.risk_level){selected.lifecycle_registry??={ref:'.template-spec/process/lifecycle-registry.yaml'};selected.process_tailoring??={ref:'.template-spec/process/harness-process-tailoring.md'};}
|
|
76
79
|
if(!selected.context&&fs.existsSync(safe(root,'CONTEXT.md',{missing:true})))selected.context={ref:'CONTEXT.md'};
|
|
77
80
|
const basis={},seen=new Map();
|
|
@@ -94,6 +97,7 @@ function prepare({root=process.cwd(),ticket_ref,checkpoint_ref,sources={},refine
|
|
|
94
97
|
for(const key of ['spec','ticket','engineering_baseline','implementation_repository','build_architecture_checklist',...extraRequired,...(!input.scope?.risk_level?['architecture_review']:[])])if(!selected[key])report.blockers.push({code:'SLICE_SOURCE_MISSING',field:`basis.${key}`,reason:'缺少必要来源',responsibility:'agent',recovery:'绑定已有当前资产;不能用空文档替代'});
|
|
95
98
|
contract.basis=basis;
|
|
96
99
|
if(report.blockers.length){report.checks.push({check:'dependent-compilation',result:'not-executed',reason:'来源或输入存在独立阻断'});throw Object.assign(new Error('依赖未就绪'),{code:'SLICE_DEPENDENCIES_UNAVAILABLE'});}
|
|
100
|
+
try { assertSliceBusinessSources({root,ticketText,setBinding:basis.business_ticket_set}); } catch(error) { report.blockers.push({code:'BUSINESS_SOURCE_BLOCKED',field:'basis.business_ticket_set',reason:error.message}); }
|
|
97
101
|
const sourceDoc=key=>basis[key]?metadata(read(resolveSliceBasis({basis},key).ref).toString('utf8')):{};
|
|
98
102
|
const registration=sourceDoc('implementation_repository'),baseline=sourceDoc('engineering_baseline');
|
|
99
103
|
const registeredRoot=registration.local_worktree?(registration.project_root&®istration.project_root!=='.'?path.resolve(registration.local_worktree,registration.project_root):registration.local_worktree):undefined;
|
|
@@ -131,7 +135,9 @@ function prepare({root=process.cwd(),ticket_ref,checkpoint_ref,sources={},refine
|
|
|
131
135
|
} else compiled=compileDefaultImplementationContract({...compileBase,recipeIds:input.recipe_ids||[],requiredCapabilities:[...new Set([...(input.required_capabilities||[]),...componentCapabilities])],architecture_identity,architecture_evidence,technical_design:bound('technical_design'),...(bound('frontend_delivery')?{frontend_delivery:{acceptance_ref:bound('frontend_delivery').ref,digest:bound('frontend_delivery').digest}}:{}),...(approved_slice?{approved_slice}:{})});
|
|
132
136
|
if(compiled.compiler_contract_digest!==digest(compilerRules).slice(7))throw new TypeError('编译规则来源冲突:准备期间发生变化');
|
|
133
137
|
const resolution=Object.fromEntries(['required_capabilities','required_skills','recipe_ids','conditions','registry_digest','compiler_contract_digest','architecture_identity','component_bindings','component_bindings_digest'].filter(key=>compiled[key]!==undefined).map(key=>[key,compiled[key]]));
|
|
134
|
-
|
|
138
|
+
const businessAcceptance=basis.business_ticket_set&&Array.isArray(ticket.acceptance_refs)
|
|
139
|
+
? Object.fromEntries(ticket.acceptance_refs.map(id=>[id,{source:'spec',locator:id}])) : undefined;
|
|
140
|
+
contract={schema_version:3,ticket_policy:{mode:'frozen-requirements',state_owner:'tracker-or-task-package'},contract_id:input.contract_id,contract_version:input.contract_version,slice_id:input.slice_id,status:'draft',basis,scope,applicability,resolution,acceptance:input.acceptance||businessAcceptance||markdownAcceptance(ticketText),verification:input.verification,work_units:input.work_units,...(input.extensions?{extensions:input.extensions}:{})};
|
|
135
141
|
report.reason_chains=compiled.reason_chains;
|
|
136
142
|
for(const reason of compiled.readiness_blockers||[])report.blockers.push({reason});
|
|
137
143
|
normalizeSliceContract(contract,{root});
|
|
@@ -144,7 +150,7 @@ function prepare({root=process.cwd(),ticket_ref,checkpoint_ref,sources={},refine
|
|
|
144
150
|
if(refinements[field]!==undefined)origins.push({kind:'agent-refinement'});
|
|
145
151
|
if(field==='scope'&®isteredRoot&&!input.scope?.project_roots)origins.push({kind:'repository-registration',ref:resolveSliceBasis({basis},'implementation_repository').ref});
|
|
146
152
|
if(field==='scope'&&input.extensions?.cross_repo?.repository_bindings)for(const keys of Object.values(input.extensions.cross_repo.repository_bindings))origins.push({kind:'repository-registration',ref:resolveSliceBasis({basis},keys.implementation_repository).ref});
|
|
147
|
-
if(field==='acceptance'&&!input.acceptance)origins.push({kind:'ticket-acceptance',ref:ticket_ref});
|
|
153
|
+
if(field==='acceptance'&&!input.acceptance)origins.push(businessAcceptance?{kind:'business-spec-acceptance',ref:resolveSliceBasis({basis},'spec').ref,selection_ref:ticket_ref}:{kind:'ticket-acceptance',ref:ticket_ref});
|
|
148
154
|
if(field==='applicability'&&scope.risk_level)origins.push({kind:'lifecycle-rule',ref:resolveSliceBasis({basis},'lifecycle_registry').ref});
|
|
149
155
|
report.provenance.push({target:field,origins,requires_professional_review:true});
|
|
150
156
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assertImplementationTicket, assertSliceBusinessSources, businessTicketVersion } from './business-tickets.mjs';
|
|
1
2
|
import {validateExistingUiBaseline} from './existing-ui-baseline.mjs';
|
|
2
3
|
import {sliceRepositories} from './slice-repositories.mjs';
|
|
3
4
|
import { sliceCheckApplicability } from './slice-applicability.mjs';
|
|
@@ -5,6 +6,7 @@ import fs, {validationMemo} from './validation-phase.mjs';
|
|
|
5
6
|
import path from 'node:path';
|
|
6
7
|
import { parseDocument } from '../vendor/yaml.mjs';
|
|
7
8
|
import { safe, hash, digest, schema } from './strategic-handoff-io.mjs';
|
|
9
|
+
import { parseContent } from './plan-spec-markdown.mjs';
|
|
8
10
|
|
|
9
11
|
const parseCache=Symbol('slice-yaml');
|
|
10
12
|
const originals = new WeakMap();
|
|
@@ -86,6 +88,14 @@ function locate(text, locator) {
|
|
|
86
88
|
requireThat(start>=1&&end>=start&&end<=lines.length,`定位范围无效: ${locator}`);
|
|
87
89
|
return lines.slice(start-1,end).join('\n');
|
|
88
90
|
}
|
|
91
|
+
if (/^AC-[A-Za-z0-9][A-Za-z0-9._-]*$/.test(locator)) {
|
|
92
|
+
const parsed=parseContent(text);
|
|
93
|
+
if(parsed.supported) {
|
|
94
|
+
const matches=parsed.entries.filter(entry=>entry.kind==='AC'&&entry.id===locator);
|
|
95
|
+
requireThat(matches.length===1,`验收 ID 缺失或不唯一: ${locator}`);
|
|
96
|
+
return lines.slice(matches[0].position.start.line-1,matches[0].position.end.line).join('\n');
|
|
97
|
+
}
|
|
98
|
+
}
|
|
89
99
|
const body=text.replace(/^---\r?\n[\s\S]*?\r?\n---(?:\r?\n|$)/,'');
|
|
90
100
|
const matches=body.split('\n').filter(line=>line.includes(locator));
|
|
91
101
|
requireThat(matches.length===1, `定位缺失或不唯一: ${locator}`);
|
|
@@ -102,11 +112,13 @@ export function normalizeSliceContract(document, options = {}) {
|
|
|
102
112
|
const raw = sourceSliceContract(document);
|
|
103
113
|
requireThat(raw && [2,3].includes(raw.schema_version), 'Slice Implementation Contract schema v1 已停止支持;需要 schema v2 或 v3');
|
|
104
114
|
if (raw.schema_version === 2) {
|
|
115
|
+
requireThat(options.historicalReadOnly || businessTicketVersion(options.root || process.cwd())!==1,'BUSINESS_SLICE_V3_REQUIRED: 新业务拆分规则的实现必须使用 v3;v2 保留历史读取');
|
|
105
116
|
const ref = raw.lifecycle_refs?.ticket;
|
|
106
117
|
if (ref) {
|
|
107
118
|
requireThat(!/\/work-items\//.test(ref), 'stage-work-item 不能作为实现 Ticket');
|
|
108
119
|
const file = safe(options.root || process.cwd(), ref, { missing: true });
|
|
109
120
|
if (fs.existsSync(file)) {
|
|
121
|
+
assertImplementationTicket(fs.readFileSync(file,'utf8'),ref);
|
|
110
122
|
const header = fs.readFileSync(file, 'utf8').match(/^---\r?\n([\s\S]*?)\r?\n---/);
|
|
111
123
|
requireThat(!header || parseSliceYaml(header[1])?.kind !== 'stage-work-item', 'stage-work-item 不能作为实现 Ticket');
|
|
112
124
|
}
|
|
@@ -116,6 +128,8 @@ export function normalizeSliceContract(document, options = {}) {
|
|
|
116
128
|
schema(raw,'.template-spec/process/schemas/slice-implementation-contract-v3.schema.json');
|
|
117
129
|
const sources=readSliceSources(raw,options), refs=Object.fromEntries(Object.entries(sources).map(([key,item])=>[key,item.ref]));
|
|
118
130
|
requireKeys(refs,['spec','ticket','engineering_baseline','implementation_repository','build_architecture_checklist'],'依据');
|
|
131
|
+
assertImplementationTicket(sources.ticket.text,refs.ticket);
|
|
132
|
+
assertSliceBusinessSources({root:options.root || process.cwd(),ticketText:sources.ticket.text,setBinding:sources.business_ticket_set,acceptance:raw.acceptance,specBinding:sources.spec});
|
|
119
133
|
const ticketHeader = sources.ticket.text.match(/^---\r?\n([\s\S]*?)\r?\n---/);
|
|
120
134
|
requireThat(!/\/work-items\//.test(refs.ticket) && (!ticketHeader || parseSliceYaml(ticketHeader[1])?.kind !== 'stage-work-item'), 'stage-work-item 不能作为实现 Ticket');
|
|
121
135
|
if(!raw.applicability.checks)requireKeys(refs,['architecture_review'],'依据');
|
|
@@ -211,7 +225,7 @@ export function normalizeSliceContract(document, options = {}) {
|
|
|
211
225
|
}
|
|
212
226
|
export function readSliceContract(ref,{root=process.cwd(),diagnostic=false}={}) {
|
|
213
227
|
const bytes=fs.readFileSync(safe(root,ref)),raw=sourceSliceContract(parseSliceYaml(bytes));
|
|
214
|
-
const contract=diagnostic&&raw.status==='blocked'?null:normalizeSliceContract(raw,{root});
|
|
228
|
+
const contract=diagnostic&&raw.status==='blocked'?null:normalizeSliceContract(raw,{root,historicalReadOnly:diagnostic&&raw.schema_version===2});
|
|
215
229
|
return {contract,raw,sources:structuredClone(sourceSnapshots.get(contract)||{}),binding:{ref,id:raw.contract_id,version:raw.contract_version,digest:hash(bytes)}};
|
|
216
230
|
}
|
|
217
231
|
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import {finalizeReading} from './reading-view-bundle.mjs';
|
|
2
|
+
import {runAssetTransaction,assertAssetTransactionIdle,assertCurrentAssetReference} from './asset-transactions.mjs';
|
|
3
|
+
import {parseAsset} from './structured-assets.mjs';
|
|
1
4
|
import { existsSync, readFileSync, writeFileSync, mkdirSync, renameSync, unlinkSync, statSync, openSync, closeSync } from 'node:fs';
|
|
2
5
|
import path from 'node:path';
|
|
3
6
|
import { parseDocument, stringify } from '../vendor/yaml.mjs';
|
|
@@ -26,17 +29,20 @@ function definition(item, checkpointRef) {
|
|
|
26
29
|
return `---\n${stringify(fields)}---\n# ${item.title}\n\n负责人:${item.owner}\n\n${item.scope}\n\n## 验收\n\n${item.acceptance.map(x => `- ${x}`).join('\n')}\n\n当前进度、依赖与完成证据以 ${checkpointRef} 中的 ${item.id} 为准。\n`;
|
|
27
30
|
}
|
|
28
31
|
export function checkTracking(root, checkpointRef) {
|
|
32
|
+
assertAssetTransactionIdle(root);assertCurrentAssetReference(root,checkpointRef);
|
|
29
33
|
identity(root);
|
|
30
34
|
const feature = featureFrom(checkpointRef);
|
|
31
35
|
const config = trackerConfig(root);
|
|
32
36
|
if (!existsSync(safeTrackingPath(root, checkpointRef))) return { status: 'missing-checkpoint', feature_id: feature, enabled: config.lifecycle_tracking_version === 1 };
|
|
33
|
-
const checkpoint =
|
|
37
|
+
const checkpoint = parseAsset(readTracking(root, checkpointRef),checkpointRef);
|
|
34
38
|
try {
|
|
35
39
|
const result = assertStageTracking(checkpoint, { root, checkpointRef });
|
|
36
40
|
return { ...result, feature_id: checkpoint.feature_id || feature, enabled: config.lifecycle_tracking_version === 1, migration_required: !checkpoint.stage_tracking };
|
|
37
41
|
} catch (error) { return { status: 'blocked', feature_id: feature, enabled: config.lifecycle_tracking_version === 1, error: error.message, migration_required: !checkpoint.stage_tracking }; }
|
|
38
42
|
}
|
|
39
43
|
export function planTracking(root, { checkpoint_ref, items = [], refresh = false } = {}) {
|
|
44
|
+
assertAssetTransactionIdle(root);assertCurrentAssetReference(root,checkpoint_ref);
|
|
45
|
+
if (!checkpoint_ref?.endsWith('.json')) throw new Error('ASSET_MIGRATION_REQUIRED: stage-tracking writes require an explicit JSON checkpoint');
|
|
40
46
|
root = path.resolve(root); identity(root);
|
|
41
47
|
const feature = featureFrom(checkpoint_ref);
|
|
42
48
|
trackerConfig(root);
|
|
@@ -49,13 +55,15 @@ export function planTracking(root, { checkpoint_ref, items = [], refresh = false
|
|
|
49
55
|
for (const ref of ['yss-project.yaml', 'CONTEXT.md', TRACKER_REF, '.template-spec/process/lifecycle-registry.yaml', '.template-spec/process/schemas/stage-tracking.schema.json', '.template-spec/process/harness-profile.yaml', checkpoint_ref]) watch(ref);
|
|
50
56
|
const exists = observed[checkpoint_ref] !== null;
|
|
51
57
|
let checkpoint;
|
|
52
|
-
if (exists) checkpoint =
|
|
58
|
+
if (exists) checkpoint = parseAsset(readTracking(root, checkpoint_ref), checkpoint_ref);
|
|
53
59
|
else {
|
|
54
|
-
const
|
|
60
|
+
const preferred = '.template-spec/process/templates/lifecycle-checkpoint-template.json';
|
|
61
|
+
const template = existsSync(safeTrackingPath(root,preferred))?preferred:'.template-spec/process/templates/lifecycle-checkpoint-template.yaml'; watch(template);
|
|
55
62
|
checkpoint = parseYaml(readTracking(root, template));
|
|
56
63
|
checkpoint.feature_id = feature;
|
|
57
64
|
checkpoint.mode = 'orchestrate'; checkpoint.status = 'running';
|
|
58
65
|
checkpoint.stage = items[0]?.stage || 'stage.plan';
|
|
66
|
+
if(checkpoint.stage_trace)checkpoint.stage_trace.stage=checkpoint.stage;
|
|
59
67
|
checkpoint.next_work_unit = items[0]?.work_unit || 'work-unit.plan-requirements';
|
|
60
68
|
}
|
|
61
69
|
checkpoint.feature_id ??= feature;
|
|
@@ -116,7 +124,7 @@ export function planTracking(root, { checkpoint_ref, items = [], refresh = false
|
|
|
116
124
|
const payload = { schema_version: 1, root, input, gaps, observed, changes };
|
|
117
125
|
return { ...payload, plan_id: sha256(JSON.stringify(payload)).slice(7) };
|
|
118
126
|
}
|
|
119
|
-
|
|
127
|
+
function applyTrackingSources(root, plan, { afterWrite } = {}) {
|
|
120
128
|
root = path.resolve(root); identity(root);
|
|
121
129
|
if (plan.root !== root || plan.schema_version !== 1 || !/^[a-f0-9]{64}$/.test(plan.plan_id)) throw new Error('tracking-plan-identity-invalid');
|
|
122
130
|
const { plan_id, ...payload } = plan;
|
|
@@ -139,6 +147,7 @@ export function applyTracking(root, plan, { afterWrite } = {}) {
|
|
|
139
147
|
const backups = plan.changes.map(c => ({ ref: c.ref, before: c.before, bytes: c.before ? readFileSync(safeTrackingPath(root, c.ref)).toString('base64') : null }));
|
|
140
148
|
writeFileSync(path.join(transactionPath, 'backup.json'), json(backups), { flag: 'wx' });
|
|
141
149
|
writeFileSync(path.join(transactionPath, 'plan.json'), json(plan), { flag: 'wx' });
|
|
150
|
+
return runAssetTransaction(root,plan.changes,()=>{
|
|
142
151
|
const written = [], temporary = new Set();
|
|
143
152
|
try {
|
|
144
153
|
for (const [ref, before] of Object.entries(plan.observed)) if (JSON.stringify(descriptor(root, ref)) !== JSON.stringify(before)) throw new Error('tracking-concurrent-change');
|
|
@@ -173,4 +182,11 @@ export function applyTracking(root, plan, { afterWrite } = {}) {
|
|
|
173
182
|
writeFileSync(path.join(transactionPath, 'failure.json'), json({ error: error.message, recovery_conflicts: conflicts }));
|
|
174
183
|
throw new Error(`${error.message}; tracking-rollback-${conflicts.length ? `conflict:${conflicts.join(',')}` : 'complete'}`);
|
|
175
184
|
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// Finalize after the source transaction has committed; presentation failure never rolls it back.
|
|
189
|
+
export function applyTracking(root,plan,options={}){
|
|
190
|
+
const result=applyTrackingSources(root,plan,options);
|
|
191
|
+
return finalizeReading(root,plan.input.checkpoint_ref,result);
|
|
176
192
|
}
|
|
@@ -2,6 +2,7 @@ import { readFileSync, existsSync, lstatSync, realpathSync } from 'node:fs';
|
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { createHash } from 'node:crypto';
|
|
4
4
|
import { parseDocument } from '../vendor/yaml.mjs';
|
|
5
|
+
import { assertCheckpointBoundary } from './checkpoint-boundary.mjs';
|
|
5
6
|
import { validateJsonSchema } from './json-schema.mjs';
|
|
6
7
|
|
|
7
8
|
export const TRACKER_REF = '.template-spec/agents/issue-tracker.md';
|
|
@@ -12,6 +13,8 @@ export const STAGE_WORK_UNITS = Object.freeze({
|
|
|
12
13
|
'work-unit.stage-decision': 'stage.plan',
|
|
13
14
|
'work-unit.spec-synthesis': 'stage.spec-architecture',
|
|
14
15
|
'work-unit.prototype-design-v2': 'stage.product-design',
|
|
16
|
+
'work-unit.prototype-design': 'stage.product-design',
|
|
17
|
+
'work-unit.business-ticket-formalization': 'stage.product-design',
|
|
15
18
|
});
|
|
16
19
|
export const sha256 = bytes => `sha256:${createHash('sha256').update(bytes).digest('hex')}`;
|
|
17
20
|
export function parseYaml(bytes) {
|
|
@@ -72,11 +75,13 @@ export function refreshTracking(root, checkpoint) {
|
|
|
72
75
|
return { checkpoint: next, stale_item_ids: changed };
|
|
73
76
|
}
|
|
74
77
|
export function assertStageTracking(checkpoint, { root, checkpointRef, currentWorkUnit, nextWorkUnit, transition = false, entering = false, now = new Date() } = {}) {
|
|
78
|
+
const workUnits={...STAGE_WORK_UNITS,...(isDesign(root)?{'work-unit.business-ticket-formalization':'stage.ticket-formalization'}:{})};
|
|
75
79
|
const identity = parseYaml(readTracking(root, 'yss-project.yaml'));
|
|
76
80
|
if (identity?.schema_version !== 1 || !['template-source', 'project-instance'].includes(identity.repository_mode)) throw new Error('tracking-repository-identity-invalid');
|
|
81
|
+
if ((transition || entering) && checkpoint?.stage) assertCheckpointBoundary(checkpoint, { root });
|
|
77
82
|
const config = trackerConfig(root);
|
|
78
83
|
const tracking = checkpoint?.stage_tracking;
|
|
79
|
-
const relevant =
|
|
84
|
+
const relevant = workUnits[currentWorkUnit] || workUnits[nextWorkUnit] || ['stage.plan', 'stage.spec-architecture', 'stage.product-design'].includes(checkpoint?.stage);
|
|
80
85
|
if (!tracking) {
|
|
81
86
|
if (identity.repository_mode === 'project-instance' && config.lifecycle_tracking_version === 1 && relevant) throw new Error('stage-tracking-required');
|
|
82
87
|
return { status: 'not-applicable', stale_item_ids: [] };
|
|
@@ -104,7 +109,7 @@ export function assertStageTracking(checkpoint, { root, checkpointRef, currentWo
|
|
|
104
109
|
for (const item of tracking.items) {
|
|
105
110
|
if (index.has(item.id)) throw new Error(`tracking-duplicate-id: ${item.id}`);
|
|
106
111
|
index.set(item.id, item);
|
|
107
|
-
if (!stages.has(item.stage) || !units.has(item.work_unit) ||
|
|
112
|
+
if (!stages.has(item.stage) || !units.has(item.work_unit) || workUnits[item.work_unit] !== item.stage) throw new Error(`tracking-stage-work-unit-mismatch: ${item.id}`);
|
|
108
113
|
if (allowed && !allowed.includes(item.work_unit)) throw new Error(`tracking-profile-work-unit-forbidden: ${item.id}`);
|
|
109
114
|
if (item.split_reasons.length && !item.definition_ref) throw new Error(`tracking-independent-item-required: ${item.id}`);
|
|
110
115
|
if (item.definition_ref) {
|
|
@@ -143,12 +148,12 @@ export function assertStageTracking(checkpoint, { root, checkpointRef, currentWo
|
|
|
143
148
|
}
|
|
144
149
|
const stale = trackingDrift(root, tracking);
|
|
145
150
|
if (stale.some(id => ['running', 'completed'].includes(index.get(id).progress))) throw new Error(`tracking-stale-completion: ${stale.join(',')}`);
|
|
146
|
-
if (entering &&
|
|
147
|
-
if (transition &&
|
|
151
|
+
if (entering && workUnits[nextWorkUnit] && !tracking.items.some(i => i.work_unit === nextWorkUnit)) throw new Error('tracking-entry-work-item-required');
|
|
152
|
+
if (transition && workUnits[currentWorkUnit]) {
|
|
148
153
|
const items = tracking.items.filter(i => i.work_unit === currentWorkUnit);
|
|
149
154
|
if (!items.length) throw new Error('tracking-current-work-item-required');
|
|
150
155
|
if (items.some(i => !['completed', 'cancelled'].includes(i.progress) && !i.deferred)) throw new Error('tracking-current-work-incomplete');
|
|
151
|
-
if (
|
|
156
|
+
if (workUnits[currentWorkUnit] !== workUnits[nextWorkUnit] && tracking.items.some(i => i.stage === workUnits[currentWorkUnit] && !['completed', 'cancelled'].includes(i.progress) && !i.deferred)) throw new Error('tracking-stage-incomplete');
|
|
152
157
|
}
|
|
153
158
|
return { status: 'valid', stale_item_ids: stale };
|
|
154
159
|
}
|
|
@@ -47,7 +47,7 @@ export async function verifyConsumption(data,{root=process.cwd(),sliceRef,consum
|
|
|
47
47
|
}
|
|
48
48
|
for(const term of current.handoff.context_delta.deprecated)ensure(!context.terms_by_ref.has(term.term_ref),`目标尚未处理废弃术语: ${term.term_ref}`);
|
|
49
49
|
ensure(Array.isArray(binding.rows),'缺少逐条承接 rows');
|
|
50
|
-
const known=new Map([...current.indexes.rules.map(x=>[x.rule_id,x]),...current.indexes.scenarios.filter(x=>x.critical).map(x=>[x.scenario_id,x])]);
|
|
50
|
+
const known=new Map([...current.indexes.rules.map(x=>[x.rule_id,x]),...current.indexes.scenarios.filter(x=>x.critical).map(x=>[x.scenario_id,x]),...(current.business?.tickets||[]).map(x=>[x.id,x])]);
|
|
51
51
|
const rows=new Map();for(const row of binding.rows){ensure(!rows.has(row.source_id),`重复承接: ${row.source_id}`);rows.set(row.source_id,row);}
|
|
52
52
|
const issues=[], blocked=new Set();let all=false;
|
|
53
53
|
const mark=(id,reason,row)=>{issues.push({source_id:id,reason});if(row?.dependency_status!=='known'||!list(row.dependent_slice_refs))all=true;else row.dependent_slice_refs.forEach(x=>blocked.add(x));};
|
|
@@ -75,8 +75,20 @@ export async function verifyConsumption(data,{root=process.cwd(),sliceRef,consum
|
|
|
75
75
|
ensure(present(row.reason)&&list(row.evidence_refs),`不适用缺少依据: ${id}`);row.evidence_refs.forEach(ref=>safe(root,ref));
|
|
76
76
|
}else {ensure(['pending','conflict'].includes(row.disposition),`非法承接状态: ${id}`);mark(id,row.disposition,row);}
|
|
77
77
|
}
|
|
78
|
+
for(const ticket of current.business?.tickets||[]) {
|
|
79
|
+
const row=rows.get(ticket.id);
|
|
80
|
+
for(const source of ticket.source_refs||[])if(known.has(source.locator)) {
|
|
81
|
+
const mapped=rows.get(source.locator);
|
|
82
|
+
if(!row||row.dependency_status!=='known'||!mapped||mapped.dependency_status!=='known'||!row.dependent_slice_refs?.every(ref=>mapped.dependent_slice_refs?.includes(ref)))mark(ticket.id,'business-rule-scenario-dependency-incomplete',row);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
78
85
|
for(const[id,row]of rows)if(!known.has(id))mark(id,'removed-or-unknown-source',row);
|
|
79
|
-
|
|
86
|
+
if(current.business && original.business) {
|
|
87
|
+
const before=new Map(original.business.tickets.map(t=>[t.id,t.source_digest]));
|
|
88
|
+
for(const ticket of current.business.tickets)if(before.get(ticket.id)!==ticket.source_digest)mark(ticket.id,'business-ticket-stale',rows.get(ticket.id));
|
|
89
|
+
if(digest(current.business.coverage_deferred)!==digest(original.business.coverage_deferred)){all=true;issues.push({source_id:'business-ticket-coverage',reason:'deferred-scope-stale'});}
|
|
90
|
+
}
|
|
91
|
+
for(const key of new Set(['spec_ref','business_ticket_set_ref',...uiBaselineSourceKeys(original.handoff),...uiBaselineSourceKeys(current.handoff)]))if(!(key==='business_ticket_set_ref'&¤t.business&&original.business)&&original.handoff.source[key]?.digest!==current.handoff.source[key]?.digest){all=true;issues.push({source_id:key,reason:'upstream-asset-stale'});}
|
|
80
92
|
// Rule changes can be scoped to declared dependencies. Boundary/decision or
|
|
81
93
|
// runnable-prototype changes need the tactical contract rebound as a whole.
|
|
82
94
|
const stageKeys=['package_version','approval','domain_strategy_ref'];
|