@qijenchen/design-system 0.1.0-beta.8 → 0.1.0-beta.80
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/CLAUDE.md +200 -0
- package/README.md +10 -9
- package/cli-init.mjs +90 -0
- package/dist/components/Accordion/accordion.d.ts +1 -1
- package/dist/components/Accordion/accordion.d.ts.map +1 -1
- package/dist/components/Accordion/accordion.js +4 -1
- package/dist/components/Accordion/accordion.js.map +1 -1
- package/dist/components/Accordion/index.d.ts +2 -0
- package/dist/components/Accordion/index.d.ts.map +1 -0
- package/dist/components/Accordion/index.js +9 -0
- package/dist/components/Accordion/index.js.map +1 -0
- package/dist/components/Alert/alert.d.ts +2 -2
- package/dist/components/Alert/alert.d.ts.map +1 -1
- package/dist/components/Alert/alert.js +8 -7
- package/dist/components/Alert/alert.js.map +1 -1
- package/dist/components/Alert/index.d.ts +2 -0
- package/dist/components/Alert/index.d.ts.map +1 -0
- package/dist/components/Alert/index.js +7 -0
- package/dist/components/Alert/index.js.map +1 -0
- package/dist/components/AppShell/_demo-helpers.d.ts +3 -1
- package/dist/components/AppShell/_demo-helpers.d.ts.map +1 -1
- package/dist/components/AppShell/app-shell.d.ts +2 -2
- package/dist/components/AppShell/app-shell.d.ts.map +1 -1
- package/dist/components/AppShell/app-shell.js +9 -8
- package/dist/components/AppShell/app-shell.js.map +1 -1
- package/dist/components/AppShell/index.d.ts +2 -0
- package/dist/components/AppShell/index.d.ts.map +1 -0
- package/dist/components/AppShell/index.js +7 -0
- package/dist/components/AppShell/index.js.map +1 -0
- package/dist/components/AspectRatio/aspect-ratio.d.ts +1 -1
- package/dist/components/AspectRatio/aspect-ratio.d.ts.map +1 -1
- package/dist/components/AspectRatio/aspect-ratio.js +4 -2
- package/dist/components/AspectRatio/aspect-ratio.js.map +1 -1
- package/dist/components/AspectRatio/index.d.ts +2 -0
- package/dist/components/AspectRatio/index.d.ts.map +1 -0
- package/dist/components/AspectRatio/index.js +6 -0
- package/dist/components/AspectRatio/index.js.map +1 -0
- package/dist/components/Avatar/avatar.d.ts +12 -6
- package/dist/components/Avatar/avatar.d.ts.map +1 -1
- package/dist/components/Avatar/avatar.js +12 -23
- package/dist/components/Avatar/avatar.js.map +1 -1
- package/dist/components/Avatar/index.d.ts +2 -0
- package/dist/components/Avatar/index.d.ts.map +1 -0
- package/dist/components/Avatar/index.js +6 -0
- package/dist/components/Avatar/index.js.map +1 -0
- package/dist/components/Badge/badge.d.ts +20 -8
- package/dist/components/Badge/badge.d.ts.map +1 -1
- package/dist/components/Badge/badge.js +7 -5
- package/dist/components/Badge/badge.js.map +1 -1
- package/dist/components/Badge/index.d.ts +2 -0
- package/dist/components/Badge/index.d.ts.map +1 -0
- package/dist/components/Badge/index.js +7 -0
- package/dist/components/Badge/index.js.map +1 -0
- package/dist/components/Breadcrumb/breadcrumb.d.ts +1 -1
- package/dist/components/Breadcrumb/breadcrumb.js.map +1 -1
- package/dist/components/Breadcrumb/index.d.ts +2 -0
- package/dist/components/Breadcrumb/index.d.ts.map +1 -0
- package/dist/components/Breadcrumb/index.js +12 -0
- package/dist/components/Breadcrumb/index.js.map +1 -0
- package/dist/components/BulkActionBar/bulk-action-bar.d.ts +2 -2
- package/dist/components/BulkActionBar/bulk-action-bar.d.ts.map +1 -1
- package/dist/components/BulkActionBar/bulk-action-bar.js +3 -3
- package/dist/components/BulkActionBar/bulk-action-bar.js.map +1 -1
- package/dist/components/BulkActionBar/index.d.ts +2 -0
- package/dist/components/BulkActionBar/index.d.ts.map +1 -0
- package/dist/components/BulkActionBar/index.js +7 -0
- package/dist/components/BulkActionBar/index.js.map +1 -0
- package/dist/components/Button/button.d.ts +7 -7
- package/dist/components/Button/button.d.ts.map +1 -1
- package/dist/components/Button/button.js +13 -10
- package/dist/components/Button/button.js.map +1 -1
- package/dist/components/Button/index.d.ts +2 -0
- package/dist/components/Button/index.d.ts.map +1 -0
- package/dist/components/Button/index.js +8 -0
- package/dist/components/Button/index.js.map +1 -0
- package/dist/components/Calendar/calendar.d.ts +9 -5
- package/dist/components/Calendar/calendar.d.ts.map +1 -1
- package/dist/components/Calendar/calendar.js +88 -76
- package/dist/components/Calendar/calendar.js.map +1 -1
- package/dist/components/Calendar/index.d.ts +2 -0
- package/dist/components/Calendar/index.d.ts.map +1 -0
- package/dist/components/Calendar/index.js +6 -0
- package/dist/components/Calendar/index.js.map +1 -0
- package/dist/components/Carousel/carousel.d.ts.map +1 -1
- package/dist/components/Carousel/carousel.js +11 -6
- package/dist/components/Carousel/carousel.js.map +1 -1
- package/dist/components/Carousel/index.d.ts +2 -0
- package/dist/components/Carousel/index.d.ts.map +1 -0
- package/dist/components/Carousel/index.js +11 -0
- package/dist/components/Carousel/index.js.map +1 -0
- package/dist/components/Chart/chart.d.ts +2 -2
- package/dist/components/Chart/chart.d.ts.map +1 -1
- package/dist/components/Chart/chart.js +3 -1
- package/dist/components/Chart/chart.js.map +1 -1
- package/dist/components/Chart/index.d.ts +2 -0
- package/dist/components/Chart/index.d.ts.map +1 -0
- package/dist/components/Chart/index.js +11 -0
- package/dist/components/Chart/index.js.map +1 -0
- package/dist/components/Checkbox/checkbox-group.d.ts +2 -1
- package/dist/components/Checkbox/checkbox-group.d.ts.map +1 -1
- package/dist/components/Checkbox/checkbox-group.js.map +1 -1
- package/dist/components/Checkbox/checkbox.d.ts +13 -7
- package/dist/components/Checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/Checkbox/checkbox.js +49 -15
- package/dist/components/Checkbox/checkbox.js.map +1 -1
- package/dist/components/Checkbox/index.d.ts +2 -0
- package/dist/components/Checkbox/index.d.ts.map +1 -0
- package/dist/components/Checkbox/index.js +7 -0
- package/dist/components/Checkbox/index.js.map +1 -0
- package/dist/components/Chip/chip.d.ts +6 -6
- package/dist/components/Chip/chip.js +4 -3
- package/dist/components/Chip/chip.js.map +1 -1
- package/dist/components/Chip/index.d.ts +2 -0
- package/dist/components/Chip/index.d.ts.map +1 -0
- package/dist/components/Chip/index.js +8 -0
- package/dist/components/Chip/index.js.map +1 -0
- package/dist/components/CircularProgress/circular-progress.d.ts +2 -3
- package/dist/components/CircularProgress/circular-progress.d.ts.map +1 -1
- package/dist/components/CircularProgress/circular-progress.js +4 -3
- package/dist/components/CircularProgress/circular-progress.js.map +1 -1
- package/dist/components/CircularProgress/index.d.ts +2 -0
- package/dist/components/CircularProgress/index.d.ts.map +1 -0
- package/dist/components/CircularProgress/index.js +6 -0
- package/dist/components/CircularProgress/index.js.map +1 -0
- package/dist/components/Coachmark/coachmark-story-helpers.d.ts +22 -0
- package/dist/components/Coachmark/coachmark-story-helpers.d.ts.map +1 -0
- package/dist/components/Coachmark/coachmark.d.ts +4 -4
- package/dist/components/Coachmark/coachmark.d.ts.map +1 -1
- package/dist/components/Coachmark/coachmark.js +9 -4
- package/dist/components/Coachmark/coachmark.js.map +1 -1
- package/dist/components/Coachmark/index.d.ts +2 -0
- package/dist/components/Coachmark/index.d.ts.map +1 -0
- package/dist/components/Coachmark/index.js +6 -0
- package/dist/components/Coachmark/index.js.map +1 -0
- package/dist/components/Combobox/combobox.d.ts +16 -7
- package/dist/components/Combobox/combobox.d.ts.map +1 -1
- package/dist/components/Combobox/combobox.js +74 -39
- package/dist/components/Combobox/combobox.js.map +1 -1
- package/dist/components/Combobox/index.d.ts +2 -0
- package/dist/components/Combobox/index.d.ts.map +1 -0
- package/dist/components/Combobox/index.js +6 -0
- package/dist/components/Combobox/index.js.map +1 -0
- package/dist/components/Command/command.d.ts +5 -1
- package/dist/components/Command/command.d.ts.map +1 -1
- package/dist/components/Command/command.js +6 -6
- package/dist/components/Command/command.js.map +1 -1
- package/dist/components/Command/index.d.ts +2 -0
- package/dist/components/Command/index.d.ts.map +1 -0
- package/dist/components/Command/index.js +14 -0
- package/dist/components/Command/index.js.map +1 -0
- package/dist/components/DataTable/cell-registry.d.ts.map +1 -1
- package/dist/components/DataTable/cell-registry.js +6 -5
- package/dist/components/DataTable/cell-registry.js.map +1 -1
- package/dist/components/DataTable/data-table.d.ts +29 -8
- package/dist/components/DataTable/data-table.d.ts.map +1 -1
- package/dist/components/DataTable/data-table.js +69 -39
- package/dist/components/DataTable/data-table.js.map +1 -1
- package/dist/components/DataTable/filter-operators.d.ts +1 -1
- package/dist/components/DataTable/filter-tree.d.ts +1 -1
- package/dist/components/DataTable/index.d.ts +2 -0
- package/dist/components/DataTable/index.d.ts.map +1 -0
- package/dist/components/DataTable/index.js +8 -0
- package/dist/components/DataTable/index.js.map +1 -0
- package/dist/components/DateGrid/date-grid.d.ts +21 -17
- package/dist/components/DateGrid/date-grid.d.ts.map +1 -1
- package/dist/components/DateGrid/date-grid.js +2 -2
- package/dist/components/DateGrid/date-grid.js.map +1 -1
- package/dist/components/DateGrid/index.d.ts +2 -0
- package/dist/components/DateGrid/index.d.ts.map +1 -0
- package/dist/components/DateGrid/index.js +6 -0
- package/dist/components/DateGrid/index.js.map +1 -0
- package/dist/components/DatePicker/date-picker.d.ts.map +1 -1
- package/dist/components/DatePicker/date-picker.js +29 -18
- package/dist/components/DatePicker/date-picker.js.map +1 -1
- package/dist/components/DatePicker/index.d.ts +2 -0
- package/dist/components/DatePicker/index.d.ts.map +1 -0
- package/dist/components/DatePicker/index.js +8 -0
- package/dist/components/DatePicker/index.js.map +1 -0
- package/dist/components/DescriptionList/description-list.d.ts +3 -3
- package/dist/components/DescriptionList/description-list.js +4 -3
- package/dist/components/DescriptionList/description-list.js.map +1 -1
- package/dist/components/DescriptionList/index.d.ts +2 -0
- package/dist/components/DescriptionList/index.d.ts.map +1 -0
- package/dist/components/DescriptionList/index.js +7 -0
- package/dist/components/DescriptionList/index.js.map +1 -0
- package/dist/components/Dialog/dialog.d.ts.map +1 -1
- package/dist/components/Dialog/dialog.js.map +1 -1
- package/dist/components/Dialog/index.d.ts +2 -0
- package/dist/components/Dialog/index.d.ts.map +1 -0
- package/dist/components/Dialog/index.js +16 -0
- package/dist/components/Dialog/index.js.map +1 -0
- package/dist/components/DropdownMenu/dropdown-menu.d.ts +3 -2
- package/dist/components/DropdownMenu/dropdown-menu.d.ts.map +1 -1
- package/dist/components/DropdownMenu/dropdown-menu.js +3 -4
- package/dist/components/DropdownMenu/dropdown-menu.js.map +1 -1
- package/dist/components/DropdownMenu/index.d.ts +2 -0
- package/dist/components/DropdownMenu/index.d.ts.map +1 -0
- package/dist/components/DropdownMenu/index.js +21 -0
- package/dist/components/DropdownMenu/index.js.map +1 -0
- package/dist/components/Empty/empty.d.ts +11 -3
- package/dist/components/Empty/empty.d.ts.map +1 -1
- package/dist/components/Empty/empty.js +6 -6
- package/dist/components/Empty/empty.js.map +1 -1
- package/dist/components/Empty/index.d.ts +2 -0
- package/dist/components/Empty/index.d.ts.map +1 -0
- package/dist/components/Empty/index.js +6 -0
- package/dist/components/Empty/index.js.map +1 -0
- package/dist/components/Field/field-context.d.ts +49 -0
- package/dist/components/Field/field-context.d.ts.map +1 -1
- package/dist/components/Field/field-context.js +42 -0
- package/dist/components/Field/field-context.js.map +1 -1
- package/dist/components/Field/field-types.js.map +1 -1
- package/dist/components/Field/field-wrapper.js +5 -5
- package/dist/components/Field/field-wrapper.js.map +1 -1
- package/dist/components/Field/field.d.ts +4 -2
- package/dist/components/Field/field.d.ts.map +1 -1
- package/dist/components/Field/field.js +1 -0
- package/dist/components/Field/field.js.map +1 -1
- package/dist/components/Field/index.d.ts +2 -0
- package/dist/components/Field/index.d.ts.map +1 -0
- package/dist/components/Field/index.js +12 -0
- package/dist/components/Field/index.js.map +1 -0
- package/dist/components/Field/use-form-validation.d.ts +88 -0
- package/dist/components/Field/use-form-validation.d.ts.map +1 -0
- package/dist/components/Field/use-form-validation.js +127 -0
- package/dist/components/Field/use-form-validation.js.map +1 -0
- package/dist/components/FieldControlGroup/field-control-group.d.ts +5 -5
- package/dist/components/FieldControlGroup/field-control-group.d.ts.map +1 -1
- package/dist/components/FieldControlGroup/field-control-group.js +1 -1
- package/dist/components/FieldControlGroup/field-control-group.js.map +1 -1
- package/dist/components/FieldControlGroup/index.d.ts +2 -0
- package/dist/components/FieldControlGroup/index.d.ts.map +1 -0
- package/dist/components/FieldControlGroup/index.js +6 -0
- package/dist/components/FieldControlGroup/index.js.map +1 -0
- package/dist/components/FileItem/file-item.d.ts +12 -2
- package/dist/components/FileItem/file-item.d.ts.map +1 -1
- package/dist/components/FileItem/file-item.js +20 -6
- package/dist/components/FileItem/file-item.js.map +1 -1
- package/dist/components/FileItem/index.d.ts +2 -0
- package/dist/components/FileItem/index.d.ts.map +1 -0
- package/dist/components/FileItem/index.js +6 -0
- package/dist/components/FileItem/index.js.map +1 -0
- package/dist/components/FileUpload/file-upload.d.ts +32 -13
- package/dist/components/FileUpload/file-upload.d.ts.map +1 -1
- package/dist/components/FileUpload/file-upload.js +62 -18
- package/dist/components/FileUpload/file-upload.js.map +1 -1
- package/dist/components/FileUpload/index.d.ts +2 -0
- package/dist/components/FileUpload/index.d.ts.map +1 -0
- package/dist/components/FileUpload/index.js +6 -0
- package/dist/components/FileUpload/index.js.map +1 -0
- package/dist/components/FileViewer/file-viewer.d.ts +2 -2
- package/dist/components/FileViewer/file-viewer.d.ts.map +1 -1
- package/dist/components/FileViewer/file-viewer.js +28 -19
- package/dist/components/FileViewer/file-viewer.js.map +1 -1
- package/dist/components/FileViewer/index.d.ts +2 -0
- package/dist/components/FileViewer/index.d.ts.map +1 -0
- package/dist/components/FileViewer/index.js +7 -0
- package/dist/components/FileViewer/index.js.map +1 -0
- package/dist/components/HoverCard/hover-card.d.ts +7 -3
- package/dist/components/HoverCard/hover-card.d.ts.map +1 -1
- package/dist/components/HoverCard/hover-card.js +4 -3
- package/dist/components/HoverCard/hover-card.js.map +1 -1
- package/dist/components/HoverCard/index.d.ts +2 -0
- package/dist/components/HoverCard/index.d.ts.map +1 -0
- package/dist/components/HoverCard/index.js +8 -0
- package/dist/components/HoverCard/index.js.map +1 -0
- package/dist/components/Input/index.d.ts +2 -0
- package/dist/components/Input/index.d.ts.map +1 -0
- package/dist/components/Input/index.js +6 -0
- package/dist/components/Input/index.js.map +1 -0
- package/dist/components/Input/input.d.ts +5 -2
- package/dist/components/Input/input.d.ts.map +1 -1
- package/dist/components/Input/input.js +10 -8
- package/dist/components/Input/input.js.map +1 -1
- package/dist/components/LinkInput/index.d.ts +2 -0
- package/dist/components/LinkInput/index.d.ts.map +1 -0
- package/dist/components/LinkInput/index.js +6 -0
- package/dist/components/LinkInput/index.js.map +1 -0
- package/dist/components/LinkInput/link-input.d.ts.map +1 -1
- package/dist/components/LinkInput/link-input.js +8 -8
- package/dist/components/LinkInput/link-input.js.map +1 -1
- package/dist/components/Menu/index.d.ts +2 -0
- package/dist/components/Menu/index.d.ts.map +1 -0
- package/dist/components/Menu/index.js +9 -0
- package/dist/components/Menu/index.js.map +1 -0
- package/dist/components/Menu/menu-item.d.ts +6 -2
- package/dist/components/Menu/menu-item.d.ts.map +1 -1
- package/dist/components/Menu/menu-item.js +2 -1
- package/dist/components/Menu/menu-item.js.map +1 -1
- package/dist/components/Notice/index.d.ts +2 -0
- package/dist/components/Notice/index.d.ts.map +1 -0
- package/dist/components/Notice/index.js +8 -0
- package/dist/components/Notice/index.js.map +1 -0
- package/dist/components/Notice/notice.d.ts +13 -6
- package/dist/components/Notice/notice.d.ts.map +1 -1
- package/dist/components/Notice/notice.js +16 -6
- package/dist/components/Notice/notice.js.map +1 -1
- package/dist/components/NumberInput/index.d.ts +2 -0
- package/dist/components/NumberInput/index.d.ts.map +1 -0
- package/dist/components/NumberInput/index.js +7 -0
- package/dist/components/NumberInput/index.js.map +1 -0
- package/dist/components/NumberInput/number-input.d.ts.map +1 -1
- package/dist/components/NumberInput/number-input.js +8 -7
- package/dist/components/NumberInput/number-input.js.map +1 -1
- package/dist/components/OverflowIndicator/index.d.ts +2 -0
- package/dist/components/OverflowIndicator/index.d.ts.map +1 -0
- package/dist/components/OverflowIndicator/index.js +6 -0
- package/dist/components/OverflowIndicator/index.js.map +1 -0
- package/dist/components/OverflowIndicator/overflow-indicator.d.ts +5 -1
- package/dist/components/OverflowIndicator/overflow-indicator.d.ts.map +1 -1
- package/dist/components/OverflowIndicator/overflow-indicator.js +13 -6
- package/dist/components/OverflowIndicator/overflow-indicator.js.map +1 -1
- package/dist/components/PeoplePicker/index.d.ts +2 -0
- package/dist/components/PeoplePicker/index.d.ts.map +1 -0
- package/dist/components/PeoplePicker/index.js +9 -0
- package/dist/components/PeoplePicker/index.js.map +1 -0
- package/dist/components/PeoplePicker/people-picker-helpers.d.ts.map +1 -1
- package/dist/components/PeoplePicker/people-picker-helpers.js +2 -2
- package/dist/components/PeoplePicker/people-picker-helpers.js.map +1 -1
- package/dist/components/PeoplePicker/people-picker.d.ts.map +1 -1
- package/dist/components/PeoplePicker/people-picker.js +21 -17
- package/dist/components/PeoplePicker/people-picker.js.map +1 -1
- package/dist/components/PeoplePicker/person-display.d.ts +7 -7
- package/dist/components/PeoplePicker/person-display.d.ts.map +1 -1
- package/dist/components/PeoplePicker/person-display.js +9 -9
- package/dist/components/PeoplePicker/person-display.js.map +1 -1
- package/dist/components/Popover/index.d.ts +2 -0
- package/dist/components/Popover/index.d.ts.map +1 -0
- package/dist/components/Popover/index.js +14 -0
- package/dist/components/Popover/index.js.map +1 -0
- package/dist/components/Popover/popover.d.ts +2 -2
- package/dist/components/Popover/popover.d.ts.map +1 -1
- package/dist/components/Popover/popover.js +12 -12
- package/dist/components/Popover/popover.js.map +1 -1
- package/dist/components/ProfileCard/index.d.ts +2 -0
- package/dist/components/ProfileCard/index.d.ts.map +1 -0
- package/dist/components/ProfileCard/index.js +8 -0
- package/dist/components/ProfileCard/index.js.map +1 -0
- package/dist/components/{NameCard/name-card.d.ts → ProfileCard/profile-card.d.ts} +26 -20
- package/dist/components/ProfileCard/profile-card.d.ts.map +1 -0
- package/dist/components/{NameCard/name-card.js → ProfileCard/profile-card.js} +11 -10
- package/dist/components/ProfileCard/profile-card.js.map +1 -0
- package/dist/components/ProgressBar/index.d.ts +2 -0
- package/dist/components/ProgressBar/index.d.ts.map +1 -0
- package/dist/components/ProgressBar/index.js +6 -0
- package/dist/components/ProgressBar/index.js.map +1 -0
- package/dist/components/ProgressBar/progress-bar.d.ts +2 -2
- package/dist/components/ProgressBar/progress-bar.js +3 -3
- package/dist/components/ProgressBar/progress-bar.js.map +1 -1
- package/dist/components/RadioGroup/index.d.ts +2 -0
- package/dist/components/RadioGroup/index.d.ts.map +1 -0
- package/dist/components/RadioGroup/index.js +8 -0
- package/dist/components/RadioGroup/index.js.map +1 -0
- package/dist/components/RadioGroup/radio-group.d.ts +15 -9
- package/dist/components/RadioGroup/radio-group.d.ts.map +1 -1
- package/dist/components/RadioGroup/radio-group.js +71 -33
- package/dist/components/RadioGroup/radio-group.js.map +1 -1
- package/dist/components/Rating/index.d.ts +2 -0
- package/dist/components/Rating/index.d.ts.map +1 -0
- package/dist/components/Rating/index.js +6 -0
- package/dist/components/Rating/index.js.map +1 -0
- package/dist/components/Rating/rating.d.ts +6 -2
- package/dist/components/Rating/rating.d.ts.map +1 -1
- package/dist/components/Rating/rating.js +10 -7
- package/dist/components/Rating/rating.js.map +1 -1
- package/dist/components/ScrollArea/index.d.ts +2 -0
- package/dist/components/ScrollArea/index.d.ts.map +1 -0
- package/dist/components/ScrollArea/index.js +7 -0
- package/dist/components/ScrollArea/index.js.map +1 -0
- package/dist/components/ScrollArea/scroll-area.d.ts +1 -1
- package/dist/components/ScrollArea/scroll-area.js +2 -2
- package/dist/components/ScrollArea/scroll-area.js.map +1 -1
- package/dist/components/SegmentedControl/index.d.ts +2 -0
- package/dist/components/SegmentedControl/index.d.ts.map +1 -0
- package/dist/components/SegmentedControl/index.js +9 -0
- package/dist/components/SegmentedControl/index.js.map +1 -0
- package/dist/components/SegmentedControl/segmented-control.d.ts +2 -2
- package/dist/components/SegmentedControl/segmented-control.d.ts.map +1 -1
- package/dist/components/SegmentedControl/segmented-control.js +8 -10
- package/dist/components/SegmentedControl/segmented-control.js.map +1 -1
- package/dist/components/Select/index.d.ts +2 -0
- package/dist/components/Select/index.d.ts.map +1 -0
- package/dist/components/Select/index.js +6 -0
- package/dist/components/Select/index.js.map +1 -0
- package/dist/components/Select/select.d.ts.map +1 -1
- package/dist/components/Select/select.js +30 -18
- package/dist/components/Select/select.js.map +1 -1
- package/dist/components/SelectMenu/index.d.ts +2 -0
- package/dist/components/SelectMenu/index.d.ts.map +1 -0
- package/dist/components/SelectMenu/index.js +6 -0
- package/dist/components/SelectMenu/index.js.map +1 -0
- package/dist/components/SelectMenu/select-menu.d.ts +10 -5
- package/dist/components/SelectMenu/select-menu.d.ts.map +1 -1
- package/dist/components/SelectMenu/select-menu.js +12 -4
- package/dist/components/SelectMenu/select-menu.js.map +1 -1
- package/dist/components/SelectionControl/index.d.ts +2 -0
- package/dist/components/SelectionControl/index.d.ts.map +1 -0
- package/dist/components/SelectionControl/index.js +7 -0
- package/dist/components/SelectionControl/index.js.map +1 -0
- package/dist/components/SelectionControl/selection-item.d.ts +5 -1
- package/dist/components/SelectionControl/selection-item.d.ts.map +1 -1
- package/dist/components/SelectionControl/selection-item.js +3 -1
- package/dist/components/SelectionControl/selection-item.js.map +1 -1
- package/dist/components/Separator/index.d.ts +2 -0
- package/dist/components/Separator/index.d.ts.map +1 -0
- package/dist/components/Separator/index.js +6 -0
- package/dist/components/Separator/index.js.map +1 -0
- package/dist/components/Separator/separator.d.ts +2 -2
- package/dist/components/Separator/separator.js +4 -3
- package/dist/components/Separator/separator.js.map +1 -1
- package/dist/components/Sheet/index.d.ts +2 -0
- package/dist/components/Sheet/index.d.ts.map +1 -0
- package/dist/components/Sheet/index.js +17 -0
- package/dist/components/Sheet/index.js.map +1 -0
- package/dist/components/Sheet/sheet.d.ts +6 -5
- package/dist/components/Sheet/sheet.d.ts.map +1 -1
- package/dist/components/Sheet/sheet.js +1 -1
- package/dist/components/Sheet/sheet.js.map +1 -1
- package/dist/components/Sidebar/index.d.ts +2 -0
- package/dist/components/Sidebar/index.d.ts.map +1 -0
- package/dist/components/Sidebar/index.js +24 -0
- package/dist/components/Sidebar/index.js.map +1 -0
- package/dist/components/Sidebar/sidebar.d.ts +2 -2
- package/dist/components/Sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/Sidebar/sidebar.js +9 -5
- package/dist/components/Sidebar/sidebar.js.map +1 -1
- package/dist/components/Skeleton/index.d.ts +2 -0
- package/dist/components/Skeleton/index.d.ts.map +1 -0
- package/dist/components/Skeleton/index.js +6 -0
- package/dist/components/Skeleton/index.js.map +1 -0
- package/dist/components/Skeleton/skeleton.d.ts +1 -1
- package/dist/components/Skeleton/skeleton.js +2 -1
- package/dist/components/Skeleton/skeleton.js.map +1 -1
- package/dist/components/Slider/index.d.ts +2 -0
- package/dist/components/Slider/index.d.ts.map +1 -0
- package/dist/components/Slider/index.js +7 -0
- package/dist/components/Slider/index.js.map +1 -0
- package/dist/components/Slider/slider.d.ts +6 -6
- package/dist/components/Slider/slider.d.ts.map +1 -1
- package/dist/components/Slider/slider.js +25 -10
- package/dist/components/Slider/slider.js.map +1 -1
- package/dist/components/Steps/index.d.ts +2 -0
- package/dist/components/Steps/index.d.ts.map +1 -0
- package/dist/components/Steps/index.js +12 -0
- package/dist/components/Steps/index.js.map +1 -0
- package/dist/components/Steps/steps.d.ts +2 -2
- package/dist/components/Steps/steps.d.ts.map +1 -1
- package/dist/components/Steps/steps.js +48 -23
- package/dist/components/Steps/steps.js.map +1 -1
- package/dist/components/Switch/index.d.ts +2 -0
- package/dist/components/Switch/index.d.ts.map +1 -0
- package/dist/components/Switch/index.js +7 -0
- package/dist/components/Switch/index.js.map +1 -0
- package/dist/components/Switch/switch.d.ts +16 -14
- package/dist/components/Switch/switch.d.ts.map +1 -1
- package/dist/components/Switch/switch.js +46 -17
- package/dist/components/Switch/switch.js.map +1 -1
- package/dist/components/Tabs/index.d.ts +2 -0
- package/dist/components/Tabs/index.d.ts.map +1 -0
- package/dist/components/Tabs/index.js +10 -0
- package/dist/components/Tabs/index.js.map +1 -0
- package/dist/components/Tabs/tabs.d.ts +5 -5
- package/dist/components/Tabs/tabs.d.ts.map +1 -1
- package/dist/components/Tabs/tabs.js +14 -7
- package/dist/components/Tabs/tabs.js.map +1 -1
- package/dist/components/Tag/index.d.ts +2 -0
- package/dist/components/Tag/index.d.ts.map +1 -0
- package/dist/components/Tag/index.js +7 -0
- package/dist/components/Tag/index.js.map +1 -0
- package/dist/components/Tag/tag.d.ts +37 -23
- package/dist/components/Tag/tag.d.ts.map +1 -1
- package/dist/components/Tag/tag.js +39 -44
- package/dist/components/Tag/tag.js.map +1 -1
- package/dist/components/Textarea/index.d.ts +2 -0
- package/dist/components/Textarea/index.d.ts.map +1 -0
- package/dist/components/Textarea/index.js +7 -0
- package/dist/components/Textarea/index.js.map +1 -0
- package/dist/components/Textarea/textarea.d.ts +5 -10
- package/dist/components/Textarea/textarea.d.ts.map +1 -1
- package/dist/components/Textarea/textarea.js +14 -12
- package/dist/components/Textarea/textarea.js.map +1 -1
- package/dist/components/TimePicker/index.d.ts +2 -0
- package/dist/components/TimePicker/index.d.ts.map +1 -0
- package/dist/components/TimePicker/index.js +6 -0
- package/dist/components/TimePicker/index.js.map +1 -0
- package/dist/components/TimePicker/time-columns.d.ts.map +1 -1
- package/dist/components/TimePicker/time-columns.js +4 -1
- package/dist/components/TimePicker/time-columns.js.map +1 -1
- package/dist/components/TimePicker/time-picker.d.ts +2 -1
- package/dist/components/TimePicker/time-picker.d.ts.map +1 -1
- package/dist/components/TimePicker/time-picker.js +33 -32
- package/dist/components/TimePicker/time-picker.js.map +1 -1
- package/dist/components/Toast/index.d.ts +2 -0
- package/dist/components/Toast/index.d.ts.map +1 -0
- package/dist/components/Toast/index.js +7 -0
- package/dist/components/Toast/index.js.map +1 -0
- package/dist/components/Toast/toast.d.ts +1 -1
- package/dist/components/Toast/toast.js +2 -2
- package/dist/components/Toast/toast.js.map +1 -1
- package/dist/components/Tooltip/index.d.ts +2 -0
- package/dist/components/Tooltip/index.d.ts.map +1 -0
- package/dist/components/Tooltip/index.js +9 -0
- package/dist/components/Tooltip/index.js.map +1 -0
- package/dist/components/Tooltip/tooltip.d.ts +1 -1
- package/dist/components/Tooltip/tooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/tooltip.js +2 -1
- package/dist/components/Tooltip/tooltip.js.map +1 -1
- package/dist/components/TreeView/index.d.ts +2 -0
- package/dist/components/TreeView/index.d.ts.map +1 -0
- package/dist/components/TreeView/index.js +8 -0
- package/dist/components/TreeView/index.js.map +1 -0
- package/dist/components/TreeView/tree-view.d.ts +11 -11
- package/dist/components/TreeView/tree-view.d.ts.map +1 -1
- package/dist/components/TreeView/tree-view.js +36 -9
- package/dist/components/TreeView/tree-view.js.map +1 -1
- package/dist/hooks/use-overflow-items.d.ts +10 -6
- package/dist/hooks/use-overflow-items.d.ts.map +1 -1
- package/dist/hooks/use-overflow-items.js.map +1 -1
- package/dist/index.d.ts +57 -67
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -59
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +3 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/node_modules/react-hook-form/dist/index.esm.js +1950 -0
- package/dist/node_modules/react-hook-form/dist/index.esm.js.map +1 -0
- package/dist/patterns/element-anatomy/index.d.ts +2 -0
- package/dist/patterns/element-anatomy/index.d.ts.map +1 -0
- package/dist/patterns/element-anatomy/index.js +20 -0
- package/dist/patterns/element-anatomy/index.js.map +1 -0
- package/dist/patterns/element-anatomy/item-anatomy.d.ts +9 -5
- package/dist/patterns/element-anatomy/item-anatomy.d.ts.map +1 -1
- package/dist/patterns/element-anatomy/item-anatomy.js +1 -1
- package/dist/patterns/element-anatomy/item-anatomy.js.map +1 -1
- package/dist/patterns/header-canonical/chrome-header.d.ts +13 -4
- package/dist/patterns/header-canonical/chrome-header.d.ts.map +1 -1
- package/dist/patterns/header-canonical/chrome-header.js +4 -2
- package/dist/patterns/header-canonical/chrome-header.js.map +1 -1
- package/dist/patterns/header-canonical/index.d.ts +2 -0
- package/dist/patterns/header-canonical/index.d.ts.map +1 -0
- package/dist/patterns/header-canonical/index.js +6 -0
- package/dist/patterns/header-canonical/index.js.map +1 -0
- package/dist/patterns/horizontal-overflow/index.d.ts +2 -0
- package/dist/patterns/horizontal-overflow/index.d.ts.map +1 -0
- package/dist/patterns/horizontal-overflow/index.js +14 -0
- package/dist/patterns/horizontal-overflow/index.js.map +1 -0
- package/dist/patterns/overlay-surface/index.d.ts +2 -0
- package/dist/patterns/overlay-surface/index.d.ts.map +1 -0
- package/dist/patterns/overlay-surface/index.js +8 -0
- package/dist/patterns/overlay-surface/index.js.map +1 -0
- package/dist/patterns/overlay-surface/overlay-surface.d.ts +11 -2
- package/dist/patterns/overlay-surface/overlay-surface.d.ts.map +1 -1
- package/dist/patterns/overlay-surface/overlay-surface.js +5 -2
- package/dist/patterns/overlay-surface/overlay-surface.js.map +1 -1
- package/dist/patterns/resize-handle/index.d.ts +2 -0
- package/dist/patterns/resize-handle/index.d.ts.map +1 -0
- package/dist/patterns/resize-handle/index.js +5 -0
- package/dist/patterns/resize-handle/index.js.map +1 -0
- package/dist/story-governance/category-matrix.d.ts +35 -0
- package/dist/story-governance/category-matrix.d.ts.map +1 -0
- package/dist/tokens/categorical-color.d.ts +60 -0
- package/dist/tokens/categorical-color.d.ts.map +1 -0
- package/dist/tokens/categorical-color.js +110 -0
- package/dist/tokens/categorical-color.js.map +1 -0
- package/dist/tokens/motion/motion.d.ts +1 -1
- package/dist/tokens/motion/motion.d.ts.map +1 -1
- package/dist/tokens/motion/motion.js.map +1 -1
- package/dist/tokens/uiSize/icon-size.d.ts +1 -2
- package/dist/tokens/uiSize/icon-size.d.ts.map +1 -1
- package/ds-canonical/commands/README.md +26 -0
- package/ds-canonical/commands/gov-status.md +79 -0
- package/ds-canonical/fork/governance.lock +222 -0
- package/ds-canonical/fork/hooks/block_prototype_imports.py +111 -0
- package/ds-canonical/fork/hooks/check_chrome_header_avatar_canonical.sh +95 -0
- package/ds-canonical/fork/hooks/check_consumer_app_invariants.sh +349 -0
- package/ds-canonical/fork/hooks/check_ds_anchor_preflight.sh +132 -0
- package/ds-canonical/fork/hooks/check_escape_marker_abuse.sh +140 -0
- package/ds-canonical/fork/hooks/check_field_family_invariants.sh +250 -0
- package/ds-canonical/fork/hooks/check_fork_product_quality.sh +36 -0
- package/ds-canonical/fork/hooks/check_item_list_gap.sh +54 -0
- package/ds-canonical/fork/hooks/check_layout_space_magic_numbers.sh +96 -0
- package/ds-canonical/fork/hooks/check_opacity_token_usage.sh +149 -0
- package/ds-canonical/fork/hooks/check_pattern_invariants.sh +196 -0
- package/ds-canonical/fork/hooks/check_sidebar_menu_button_implicit_wrap.sh +86 -0
- package/ds-canonical/fork/hooks/check_tabs_content_chrome_body_double_gap.sh +183 -0
- package/ds-canonical/fork/hooks/check_tailwind_wildcard_in_docs.sh +79 -0
- package/ds-canonical/fork/hooks/inject_deploy_url_after_push.sh +238 -0
- package/ds-canonical/fork/launchers/fork-governance-dispatcher.sh +44 -0
- package/ds-canonical/fork/launchers/inject_fork_governance_preamble.sh +54 -0
- package/ds-canonical/fork/launchers/settings-hooks.json +58 -0
- package/ds-canonical/fork/manifest.json +98 -0
- package/ds-canonical/fork/preamble.md +495 -0
- package/ds-canonical/fork/skills/bug-fix-rhythm/SKILL.md +183 -0
- package/ds-canonical/fork/skills/code-quality-audit/SKILL.md +65 -0
- package/ds-canonical/fork/skills/delivery-handoff/SKILL.md +229 -0
- package/ds-canonical/fork/skills/delivery-handoff/references/flow-diagram.md +180 -0
- package/ds-canonical/fork/skills/delivery-handoff/references/handoff-template.md +177 -0
- package/ds-canonical/fork/skills/delivery-handoff/references/inventory-checklist.md +196 -0
- package/ds-canonical/fork/skills/performance-audit/SKILL.md +107 -0
- package/ds-canonical/fork/skills/product-ui-audit/SKILL.md +232 -0
- package/ds-canonical/fork/skills/product-ui-audit/references/audit-checks.md +246 -0
- package/ds-canonical/fork/skills/product-ui-audit/references/common-misuses.md +329 -0
- package/ds-canonical/fork/skills/product-ui-audit/references/report-template.md +159 -0
- package/ds-canonical/fork/skills/propose-options/SKILL.md +177 -0
- package/ds-canonical/fork/skills/prototype/SKILL.md +244 -0
- package/ds-canonical/fork/skills/prototype/references/audit-checks.md +38 -0
- package/ds-canonical/fork/skills/prototype/references/benchmark-sources.md +94 -0
- package/ds-canonical/fork/skills/prototype/references/checkpoints.md +191 -0
- package/ds-canonical/fork/skills/prototype/references/evaluation-matrix.md +141 -0
- package/ds-canonical/fork/skills/prototype/references/ooux-template.md +198 -0
- package/ds-canonical/fork/skills/prototype/references/proposal-template.md +229 -0
- package/ds-canonical/fork/skills/scan-similar-bugs/SKILL.md +200 -0
- package/ds-canonical/fork/skills/ux-audit/SKILL.md +130 -0
- package/ds-canonical/fork/skills/visual-audit/SKILL.md +247 -0
- package/ds-canonical/fork/skills/visual-audit/output/.gitkeep +0 -0
- package/ds-canonical/fork/skills/visual-audit/references/audit-architecture.md +101 -0
- package/ds-canonical/fork/skills/visual-audit/references/visual-checklist.md +297 -0
- package/ds-canonical/fork/skills/visual-audit/references/world-class-benchmarks.md +198 -0
- package/ds-canonical/hooks/README.md +145 -0
- package/ds-canonical/hooks/_log-fire.sh +46 -0
- package/ds-canonical/hooks/auto_regen_ds_barrel.sh +58 -0
- package/ds-canonical/hooks/block_prototype_imports.py +111 -0
- package/ds-canonical/hooks/check_audit_post_report_validator.sh +156 -0
- package/ds-canonical/hooks/check_audit_sample_escape.sh +76 -0
- package/ds-canonical/hooks/check_benchmark_citation.sh +106 -0
- package/ds-canonical/hooks/check_canonical_propagation.sh +189 -0
- package/ds-canonical/hooks/check_chrome_header_avatar_canonical.sh +95 -0
- package/ds-canonical/hooks/check_codex_brief_invariants.sh +115 -0
- package/ds-canonical/hooks/check_codex_collab_5step.sh +108 -0
- package/ds-canonical/hooks/check_consumer_app_invariants.sh +349 -0
- package/ds-canonical/hooks/check_datatable_invariants.sh +180 -0
- package/ds-canonical/hooks/check_dim_count_drift.sh +72 -0
- package/ds-canonical/hooks/check_ds_anchor_preflight.sh +132 -0
- package/ds-canonical/hooks/check_escape_marker_abuse.sh +140 -0
- package/ds-canonical/hooks/check_field_controls_contracts.sh +137 -0
- package/ds-canonical/hooks/check_field_family_invariants.sh +250 -0
- package/ds-canonical/hooks/check_file_size_budget.sh +60 -0
- package/ds-canonical/hooks/check_full_story_visual_interaction_sweep.sh +71 -0
- package/ds-canonical/hooks/check_item_list_gap.sh +54 -0
- package/ds-canonical/hooks/check_layout_space_magic_numbers.sh +96 -0
- package/ds-canonical/hooks/check_main_branch_workbench.sh +93 -0
- package/ds-canonical/hooks/check_naming_and_abstraction.sh +165 -0
- package/ds-canonical/hooks/check_opacity_token_usage.sh +149 -0
- package/ds-canonical/hooks/check_orphan_ds_css.sh +66 -0
- package/ds-canonical/hooks/check_overlay_open_focus_escape_probe.sh +75 -0
- package/ds-canonical/hooks/check_pattern_invariants.sh +196 -0
- package/ds-canonical/hooks/check_peoplepicker_ssot_drift.sh +56 -0
- package/ds-canonical/hooks/check_pixel_quantified_audit.sh +53 -0
- package/ds-canonical/hooks/check_plugin_fork_health.sh +137 -0
- package/ds-canonical/hooks/check_post_main_ssot_propagate.sh +90 -0
- package/ds-canonical/hooks/check_propose_discipline.sh +147 -0
- package/ds-canonical/hooks/check_propose_pre_grep_verify.sh +70 -0
- package/ds-canonical/hooks/check_propose_without_benchmark.sh +63 -0
- package/ds-canonical/hooks/check_select_all_canonical.sh +58 -0
- package/ds-canonical/hooks/check_sidebar_menu_button_implicit_wrap.sh +86 -0
- package/ds-canonical/hooks/check_solo_workflow.sh +317 -0
- package/ds-canonical/hooks/check_spec_class_drift.sh +88 -0
- package/ds-canonical/hooks/check_story_invariants.sh +748 -0
- package/ds-canonical/hooks/check_storybook_addon_packaging.sh +151 -0
- package/ds-canonical/hooks/check_substantive_edit_approval_preflight.sh +110 -0
- package/ds-canonical/hooks/check_tabs_content_chrome_body_double_gap.sh +183 -0
- package/ds-canonical/hooks/check_tailwind_wildcard_in_docs.sh +79 -0
- package/ds-canonical/hooks/check_wrapper_primitive_schema_drift.sh +104 -0
- package/ds-canonical/hooks/chrome_header_dispatcher.sh +56 -0
- package/ds-canonical/hooks/enforce_home_charter.sh +44 -0
- package/ds-canonical/hooks/inject_deploy_url_after_push.sh +238 -0
- package/ds-canonical/hooks/inject_pending_self_audit.sh +248 -0
- package/ds-canonical/hooks/lib/_app_shell_primary_header_consistency.sh +100 -0
- package/ds-canonical/hooks/lib/_approval_re.sh +33 -0
- package/ds-canonical/hooks/lib/_chrome_header_handcraft.sh +75 -0
- package/ds-canonical/hooks/lib/_code_quality.sh +73 -0
- package/ds-canonical/hooks/lib/_cva_default_sync.sh +69 -0
- package/ds-canonical/hooks/lib/_governance_coverage_check.sh +49 -0
- package/ds-canonical/hooks/lib/_hardcoded_strings.sh +163 -0
- package/ds-canonical/hooks/lib/_header_with_tabs_border.sh +87 -0
- package/ds-canonical/hooks/lib/_layout_space_canonical.sh +56 -0
- package/ds-canonical/hooks/lib/_overlay_handcraft.sh +162 -0
- package/ds-canonical/hooks/lib/_person_data_richness.sh +42 -0
- package/ds-canonical/hooks/lib/_story_compile_drift.sh +48 -0
- package/ds-canonical/hooks/lib/_tab_lg_chrome_header_equal.sh +70 -0
- package/ds-canonical/hooks/lib/_token_hygiene.sh +104 -0
- package/ds-canonical/hooks/log_governance_fires.sh +50 -0
- package/ds-canonical/hooks/log_skill_invokes.sh +41 -0
- package/ds-canonical/hooks/post_edit_dispatcher.sh +62 -0
- package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_addon_subdir_ship.sh +76 -0
- package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_consumer_app_story_title.sh +81 -0
- package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_consumer_ds_primitive_misuse.sh +120 -0
- package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_consumer_no_ds_catalog.sh +101 -0
- package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_consumer_story_baseline.sh +76 -0
- package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_data_table_size_num_to_meta_width.sh +68 -0
- package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_fork_user_plugin_install.sh +79 -0
- package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_plugin_freshness.sh +68 -0
- package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_propose_cite_required.sh +88 -0
- package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_propose_plain_chinese.sh +74 -0
- package/ds-canonical/hooks/retired/2026-06-11-prune-merge/check_storybook_addon_preset_cjs.sh +87 -0
- package/ds-canonical/hooks/retired/check_anatomy_section_numbering.sh +106 -0
- package/ds-canonical/hooks/retired/check_avatar_hovercard.sh +90 -0
- package/ds-canonical/hooks/retired/check_button_icon_literal.sh.retired-2026-04-28 +38 -0
- package/ds-canonical/hooks/retired/check_container_breathing.sh +142 -0
- package/ds-canonical/hooks/retired/check_governance_compliance.sh +61 -0
- package/ds-canonical/hooks/retired/check_icon_only_padding_formula.sh +104 -0
- package/ds-canonical/hooks/retired/check_item_content_primitive.sh +150 -0
- package/ds-canonical/hooks/retired/check_item_list_gap.sh +153 -0
- package/ds-canonical/hooks/retired/check_sideoffset_canonical.sh +65 -0
- package/ds-canonical/hooks/retired/check_spec_iteration_tag.sh +87 -0
- package/ds-canonical/hooks/retired/check_ssot_consultation.sh +88 -0
- package/ds-canonical/hooks/retired/check_sync_update.sh +20 -0
- package/ds-canonical/hooks/retired/check_third_party_dom_verified.sh +95 -0
- package/ds-canonical/hooks/retired/enforce_home_charter.sh +125 -0
- package/ds-canonical/hooks/retired/post_edit_canonical_interrogate.sh +109 -0
- package/ds-canonical/hooks/retired/pre_edit_spec_check.sh +68 -0
- package/ds-canonical/hooks/retired/pre_new_component_spec.sh +39 -0
- package/ds-canonical/hooks/retired/pre_write_subsumption_check.sh +112 -0
- package/ds-canonical/hooks/retired/stop_meta_self_audit.sh.retired-2026-05-13 +76 -0
- package/ds-canonical/hooks/retired/tests/test_check_anatomy_section_numbering.sh +14 -0
- package/ds-canonical/hooks/retired/tests/test_check_avatar_hovercard.sh +15 -0
- package/ds-canonical/hooks/retired/tests/test_check_container_breathing.sh +15 -0
- package/ds-canonical/hooks/retired/tests/test_check_governance_compliance.sh +15 -0
- package/ds-canonical/hooks/retired/tests/test_check_icon_only_padding_formula.sh +79 -0
- package/ds-canonical/hooks/retired/tests/test_check_item_content_primitive.sh +15 -0
- package/ds-canonical/hooks/retired/tests/test_check_item_list_gap.sh +163 -0
- package/ds-canonical/hooks/retired/tests/test_check_sideoffset_canonical.sh +15 -0
- package/ds-canonical/hooks/retired/tests/test_check_spec_iteration_tag.sh +15 -0
- package/ds-canonical/hooks/retired/tests/test_check_ssot_consultation.sh +15 -0
- package/ds-canonical/hooks/retired/tests/test_check_sync_update.sh +14 -0
- package/ds-canonical/hooks/retired/tests/test_check_third_party_dom_verified.sh +15 -0
- package/ds-canonical/hooks/retired/tests/test_enforce_home_charter.sh +15 -0
- package/ds-canonical/hooks/retired/tests/test_pre_edit_spec_check.sh +15 -0
- package/ds-canonical/hooks/retired/tests/test_pre_new_component_spec.sh +15 -0
- package/ds-canonical/hooks/retired/tests/test_pre_write_subsumption_check.sh +63 -0
- package/ds-canonical/hooks/session_start_governance_check.sh +310 -0
- package/ds-canonical/hooks/stop_passive_logging.sh +322 -0
- package/ds-canonical/hooks/stop_self_audit.sh +516 -0
- package/ds-canonical/hooks/tests/KNOWN-BROKEN.md +15 -0
- package/ds-canonical/hooks/tests/run-all.sh +76 -0
- package/ds-canonical/hooks/tests/test_auto_regen_ds_barrel.sh +180 -0
- package/ds-canonical/hooks/tests/test_block_prototype_imports.sh +143 -0
- package/ds-canonical/hooks/tests/test_check_addon_subdir_ship.sh +171 -0
- package/ds-canonical/hooks/tests/test_check_app_shell_primary_header_consistency.sh +196 -0
- package/ds-canonical/hooks/tests/test_check_audit_post_report_validator.sh +127 -0
- package/ds-canonical/hooks/tests/test_check_audit_sample_escape.sh +93 -0
- package/ds-canonical/hooks/tests/test_check_benchmark_citation.sh +115 -0
- package/ds-canonical/hooks/tests/test_check_canonical_propagation.sh +133 -0
- package/ds-canonical/hooks/tests/test_check_chrome_header_avatar_canonical.sh +198 -0
- package/ds-canonical/hooks/tests/test_check_chrome_header_handcraft.sh +146 -0
- package/ds-canonical/hooks/tests/test_check_code_quality.sh +15 -0
- package/ds-canonical/hooks/tests/test_check_codex_brief_invariants.sh +208 -0
- package/ds-canonical/hooks/tests/test_check_codex_collab_5step.sh +96 -0
- package/ds-canonical/hooks/tests/test_check_consumer_app_invariants.sh +12 -0
- package/ds-canonical/hooks/tests/test_check_consumer_app_story_title.sh +164 -0
- package/ds-canonical/hooks/tests/test_check_consumer_ds_primitive_misuse.sh +240 -0
- package/ds-canonical/hooks/tests/test_check_consumer_no_ds_catalog.sh +214 -0
- package/ds-canonical/hooks/tests/test_check_consumer_story_baseline.sh +202 -0
- package/ds-canonical/hooks/tests/test_check_cva_default_sync.sh +15 -0
- package/ds-canonical/hooks/tests/test_check_data_table_size_num_to_meta_width.sh +53 -0
- package/ds-canonical/hooks/tests/test_check_datatable_invariants.sh +122 -0
- package/ds-canonical/hooks/tests/test_check_dim_count_drift.sh +98 -0
- package/ds-canonical/hooks/tests/test_check_ds_anchor_preflight.sh +104 -0
- package/ds-canonical/hooks/tests/test_check_escape_marker_abuse.sh +192 -0
- package/ds-canonical/hooks/tests/test_check_field_controls_contracts.sh +126 -0
- package/ds-canonical/hooks/tests/test_check_field_family_invariants.sh +203 -0
- package/ds-canonical/hooks/tests/test_check_file_size_budget.sh +32 -0
- package/ds-canonical/hooks/tests/test_check_fork_user_plugin_install.sh +46 -0
- package/ds-canonical/hooks/tests/test_check_full_story_visual_interaction_sweep.sh +190 -0
- package/ds-canonical/hooks/tests/test_check_hardcoded_strings.sh +14 -0
- package/ds-canonical/hooks/tests/test_check_header_with_tabs_border.sh +110 -0
- package/ds-canonical/hooks/tests/test_check_item_list_gap.sh +44 -0
- package/ds-canonical/hooks/tests/test_check_layout_space_canonical.sh +73 -0
- package/ds-canonical/hooks/tests/test_check_layout_space_magic_numbers.sh +206 -0
- package/ds-canonical/hooks/tests/test_check_main_branch_workbench.sh +147 -0
- package/ds-canonical/hooks/tests/test_check_naming_and_abstraction.sh +136 -0
- package/ds-canonical/hooks/tests/test_check_opacity_token_usage.sh +110 -0
- package/ds-canonical/hooks/tests/test_check_orphan_ds_css.sh +212 -0
- package/ds-canonical/hooks/tests/test_check_overlay_handcraft.sh +126 -0
- package/ds-canonical/hooks/tests/test_check_overlay_open_focus_escape_probe.sh +191 -0
- package/ds-canonical/hooks/tests/test_check_pattern_invariants.sh +148 -0
- package/ds-canonical/hooks/tests/test_check_peoplepicker_ssot_drift.sh +108 -0
- package/ds-canonical/hooks/tests/test_check_person_data_richness.sh +58 -0
- package/ds-canonical/hooks/tests/test_check_pixel_quantified_audit.sh +142 -0
- package/ds-canonical/hooks/tests/test_check_plugin_fork_health.sh +9 -0
- package/ds-canonical/hooks/tests/test_check_propose_cite_required.sh +181 -0
- package/ds-canonical/hooks/tests/test_check_propose_discipline.sh +10 -0
- package/ds-canonical/hooks/tests/test_check_propose_plain_chinese.sh +127 -0
- package/ds-canonical/hooks/tests/test_check_propose_pre_grep_verify.sh +117 -0
- package/ds-canonical/hooks/tests/test_check_propose_without_benchmark.sh +55 -0
- package/ds-canonical/hooks/tests/test_check_select_all_canonical.sh +125 -0
- package/ds-canonical/hooks/tests/test_check_sidebar_menu_button_implicit_wrap.sh +224 -0
- package/ds-canonical/hooks/tests/test_check_solo_workflow.sh +201 -0
- package/ds-canonical/hooks/tests/test_check_spec_class_drift.sh +135 -0
- package/ds-canonical/hooks/tests/test_check_story_anatomy.sh.broken +197 -0
- package/ds-canonical/hooks/tests/test_check_story_category.sh.broken +187 -0
- package/ds-canonical/hooks/tests/test_check_story_compile_drift.sh +15 -0
- package/ds-canonical/hooks/tests/test_check_story_invariants.sh +384 -0
- package/ds-canonical/hooks/tests/test_check_story_name_jargon.sh.broken +53 -0
- package/ds-canonical/hooks/tests/test_check_story_slot_split.sh +156 -0
- package/ds-canonical/hooks/tests/test_check_storybook_addon_packaging.sh +10 -0
- package/ds-canonical/hooks/tests/test_check_storybook_addon_preset_cjs.sh +200 -0
- package/ds-canonical/hooks/tests/test_check_substantive_edit_approval_preflight.sh +176 -0
- package/ds-canonical/hooks/tests/test_check_tab_lg_chrome_header_equal.sh +141 -0
- package/ds-canonical/hooks/tests/test_check_tailwind_wildcard_in_docs.sh +182 -0
- package/ds-canonical/hooks/tests/test_check_token_hygiene.sh +21 -0
- package/ds-canonical/hooks/tests/test_check_wrapper_primitive_schema_drift.sh +169 -0
- package/ds-canonical/hooks/tests/test_enforce_home_charter.sh +77 -0
- package/ds-canonical/hooks/tests/test_inject_deploy_url_after_push.sh +193 -0
- package/ds-canonical/hooks/tests/test_inject_pending_self_audit.sh +125 -0
- package/ds-canonical/hooks/tests/test_log_governance_fires.sh +10 -0
- package/ds-canonical/hooks/tests/test_log_skill_invokes.sh +7 -0
- package/ds-canonical/hooks/tests/test_post_edit_dispatcher.sh +108 -0
- package/ds-canonical/hooks/tests/test_session_start_governance_check.sh +154 -0
- package/ds-canonical/hooks/tests/test_stop_capture_metrics.sh +95 -0
- package/ds-canonical/hooks/tests/test_stop_governance_drift_check.sh.broken +125 -0
- package/ds-canonical/hooks/tests/test_stop_harvest_corrections.sh +10 -0
- package/ds-canonical/hooks/tests/test_stop_passive_logging.sh +100 -0
- package/ds-canonical/hooks/tests/test_stop_self_audit.sh +98 -0
- package/ds-canonical/hooks/tests/test_stop_tsc_sanity.sh +10 -0
- package/ds-canonical/references/README.md +46 -0
- package/ds-canonical/references/audit-coverage-vs-24-checklist.md +74 -0
- package/ds-canonical/references/build-ui-canonicals.md +72 -0
- package/ds-canonical/references/composition-fidelity.md +47 -0
- package/ds-canonical/references/cva-patterns.md +41 -0
- package/ds-canonical/references/drag-canonical.md +331 -0
- package/ds-canonical/references/item-anatomy-recipe.md +225 -0
- package/ds-canonical/references/naming-conventions.md +57 -0
- package/ds-canonical/references/principle-dim-map.json +513 -0
- package/ds-canonical/references/props-naming.md +59 -0
- package/ds-canonical/references/scenario-definition.md +146 -0
- package/ds-canonical/references/spec-rules.md +58 -0
- package/ds-canonical/references/ssot-consultation.md +63 -0
- package/ds-canonical/references/ssot-index.md +40 -0
- package/ds-canonical/references/story-baseline-registry.json +107 -0
- package/ds-canonical/references/structural-token-retention.md +42 -0
- package/ds-canonical/references/tailwind-gotchas.md +87 -0
- package/ds-canonical/references/ui-dev-rules.md +81 -0
- package/ds-canonical/rules/README.md +34 -0
- package/ds-canonical/rules/meta-patterns.md +87 -0
- package/ds-canonical/rules/self-verify.md +56 -0
- package/ds-canonical/rules/spec-rules.md +25 -0
- package/ds-canonical/rules/story-rules.md +67 -0
- package/ds-canonical/rules/ui-development.md +92 -0
- package/ds-canonical/skills/README.md +88 -0
- package/ds-canonical/skills/bug-fix-rhythm/SKILL.md +181 -0
- package/ds-canonical/skills/code-quality-audit/SKILL.md +63 -0
- package/ds-canonical/skills/codex-collab/SKILL.md +249 -0
- package/ds-canonical/skills/codex-collab/references/brief-template.md +48 -0
- package/ds-canonical/skills/codex-collab/references/transport.md +58 -0
- package/ds-canonical/skills/codify-corrections/SKILL.md +184 -0
- package/ds-canonical/skills/codify-principle/SKILL.md +151 -0
- package/ds-canonical/skills/component-quality-gate/SKILL.md +102 -0
- package/ds-canonical/skills/component-quality-gate/references/checklist.md +79 -0
- package/ds-canonical/skills/deep-audit-cross-codex/SKILL.md +254 -0
- package/ds-canonical/skills/deep-audit-cross-codex/references/phase-a-workflow.md +123 -0
- package/ds-canonical/skills/deep-audit-cross-codex/references/phase-b-codex-brief.md +186 -0
- package/ds-canonical/skills/deep-audit-cross-codex/references/skill-relationships-antipatterns-benchmarks.md +30 -0
- package/ds-canonical/skills/deep-audit-cross-codex/references/triage-rubric.md +69 -0
- package/ds-canonical/skills/deep-audit-cross-codex/references/upstream-directives-r-mapping.md +33 -0
- package/ds-canonical/skills/delivery-handoff/SKILL.md +229 -0
- package/ds-canonical/skills/delivery-handoff/references/flow-diagram.md +180 -0
- package/ds-canonical/skills/delivery-handoff/references/handoff-template.md +177 -0
- package/ds-canonical/skills/delivery-handoff/references/inventory-checklist.md +196 -0
- package/ds-canonical/skills/design-system-audit/SKILL.md +386 -0
- package/ds-canonical/skills/design-system-audit/references/audit-prompts.md +1325 -0
- package/ds-canonical/skills/design-system-audit/references/checkpoints.md +240 -0
- package/ds-canonical/skills/design-system-audit/references/historical-bugs.md +240 -0
- package/ds-canonical/skills/design-system-audit/references/principle-audit-protocol.md +378 -0
- package/ds-canonical/skills/design-system-audit/references/rule-placement.md +175 -0
- package/ds-canonical/skills/ensure-canonical/SKILL.md +196 -0
- package/ds-canonical/skills/governance-health/SKILL.md +147 -0
- package/ds-canonical/skills/knowledge-prune/SKILL.md +250 -0
- package/ds-canonical/skills/knowledge-prune/references/phase-z-cross-repo-ssot-propagation.md +11 -0
- package/ds-canonical/skills/knowledge-prune/references/prune-dimensions-d5-d10.md +55 -0
- package/ds-canonical/skills/knowledge-prune/references/world-class-prune-alignment.md +7 -0
- package/ds-canonical/skills/new-component/SKILL.md +170 -0
- package/ds-canonical/skills/new-component/references/new-component-checklist.md +85 -0
- package/ds-canonical/skills/performance-audit/SKILL.md +107 -0
- package/ds-canonical/skills/product-ui-audit/SKILL.md +230 -0
- package/ds-canonical/skills/product-ui-audit/references/audit-checks.md +246 -0
- package/ds-canonical/skills/product-ui-audit/references/common-misuses.md +329 -0
- package/ds-canonical/skills/product-ui-audit/references/report-template.md +159 -0
- package/ds-canonical/skills/propose-options/SKILL.md +177 -0
- package/ds-canonical/skills/prototype/SKILL.md +244 -0
- package/ds-canonical/skills/prototype/references/audit-checks.md +37 -0
- package/ds-canonical/skills/prototype/references/benchmark-sources.md +94 -0
- package/ds-canonical/skills/prototype/references/checkpoints.md +191 -0
- package/ds-canonical/skills/prototype/references/evaluation-matrix.md +141 -0
- package/ds-canonical/skills/prototype/references/ooux-template.md +198 -0
- package/ds-canonical/skills/prototype/references/proposal-template.md +229 -0
- package/ds-canonical/skills/scan-similar-bugs/SKILL.md +198 -0
- package/ds-canonical/skills/story-auto-compile-migrate/SKILL.md +159 -0
- package/ds-canonical/skills/story-writing/SKILL.md +122 -0
- package/ds-canonical/skills/story-writing/references/anatomy-standard.md +217 -0
- package/ds-canonical/skills/story-writing/references/category-templates.md +174 -0
- package/ds-canonical/skills/story-writing/references/example-selection.md +70 -0
- package/ds-canonical/skills/story-writing/references/self-check.md +20 -0
- package/ds-canonical/skills/ux-audit/SKILL.md +130 -0
- package/ds-canonical/skills/visual-audit/SKILL.md +245 -0
- package/ds-canonical/skills/visual-audit/output/.gitkeep +0 -0
- package/ds-canonical/skills/visual-audit/references/audit-architecture.md +100 -0
- package/ds-canonical/skills/visual-audit/references/visual-checklist.md +297 -0
- package/ds-canonical/skills/visual-audit/references/world-class-benchmarks.md +198 -0
- package/ds-canonical/templates/_README.md +23 -0
- package/ds-canonical/templates/dashboard-app.tsx +161 -0
- package/ds-story-manifest.json +1684 -0
- package/llms-full.txt +414 -0
- package/llms.txt +70 -0
- package/package.json +31 -8
- package/src/components/Accordion/accordion.anatomy.stories.tsx +496 -0
- package/src/components/Accordion/accordion.principles.stories.tsx +360 -0
- package/src/components/Accordion/accordion.spec.md +131 -0
- package/src/components/Accordion/accordion.stories.tsx +190 -0
- package/src/components/Accordion/accordion.tsx +4 -1
- package/src/components/Accordion/index.ts +5 -0
- package/src/components/Alert/alert.anatomy.stories.tsx +238 -0
- package/src/components/Alert/alert.principles.stories.tsx +220 -0
- package/src/components/Alert/alert.spec.md +202 -0
- package/src/components/Alert/alert.stories.tsx +139 -0
- package/src/components/Alert/alert.tsx +9 -6
- package/src/components/Alert/index.ts +5 -0
- package/src/components/AppShell/_demo-helpers.tsx +87 -11
- package/src/components/AppShell/app-shell.anatomy.stories.tsx +176 -0
- package/src/components/AppShell/app-shell.principles.stories.tsx +140 -0
- package/src/components/AppShell/app-shell.spec.md +357 -0
- package/src/components/AppShell/app-shell.stories.tsx +442 -0
- package/src/components/AppShell/app-shell.tsx +15 -9
- package/src/components/AppShell/index.ts +5 -0
- package/src/components/AspectRatio/aspect-ratio.anatomy.stories.tsx +208 -0
- package/src/components/AspectRatio/aspect-ratio.principles.stories.tsx +303 -0
- package/src/components/AspectRatio/aspect-ratio.spec.md +148 -0
- package/src/components/AspectRatio/aspect-ratio.stories.tsx +170 -0
- package/src/components/AspectRatio/aspect-ratio.tsx +4 -2
- package/src/components/AspectRatio/index.ts +5 -0
- package/src/components/Avatar/avatar.anatomy.stories.tsx +701 -0
- package/src/components/Avatar/avatar.principles.stories.tsx +245 -0
- package/src/components/Avatar/avatar.spec.md +312 -0
- package/src/components/Avatar/avatar.stories.tsx +135 -0
- package/src/components/Avatar/avatar.tsx +45 -46
- package/src/components/Avatar/index.ts +5 -0
- package/src/components/Badge/badge.anatomy.stories.tsx +591 -0
- package/src/components/Badge/badge.principles.stories.tsx +391 -0
- package/src/components/Badge/badge.spec.md +398 -0
- package/src/components/Badge/badge.stories.tsx +80 -0
- package/src/components/Badge/badge.tsx +34 -13
- package/src/components/Badge/index.ts +5 -0
- package/src/components/Breadcrumb/breadcrumb.anatomy.stories.tsx +458 -0
- package/src/components/Breadcrumb/breadcrumb.principles.stories.tsx +343 -0
- package/src/components/Breadcrumb/breadcrumb.spec.md +268 -0
- package/src/components/Breadcrumb/breadcrumb.stories.tsx +307 -0
- package/src/components/Breadcrumb/breadcrumb.tsx +2 -2
- package/src/components/Breadcrumb/index.ts +5 -0
- package/src/components/BulkActionBar/bulk-action-bar.anatomy.stories.tsx +224 -0
- package/src/components/BulkActionBar/bulk-action-bar.principles.stories.tsx +242 -0
- package/src/components/BulkActionBar/bulk-action-bar.spec.md +226 -0
- package/src/components/BulkActionBar/bulk-action-bar.stories.tsx +136 -0
- package/src/components/BulkActionBar/bulk-action-bar.tsx +13 -11
- package/src/components/BulkActionBar/index.ts +5 -0
- package/src/components/Button/button.anatomy.stories.tsx +710 -0
- package/src/components/Button/button.principles.stories.tsx +370 -0
- package/src/components/Button/button.spec.md +463 -0
- package/src/components/Button/button.stories.tsx +362 -0
- package/src/components/Button/button.tsx +25 -28
- package/src/components/Button/index.ts +5 -0
- package/src/components/Calendar/calendar.anatomy.stories.tsx +218 -0
- package/src/components/Calendar/calendar.principles.stories.tsx +143 -0
- package/src/components/Calendar/calendar.spec.md +264 -0
- package/src/components/Calendar/calendar.stories.tsx +88 -0
- package/src/components/Calendar/calendar.tsx +54 -40
- package/src/components/Calendar/index.ts +5 -0
- package/src/components/Carousel/carousel.anatomy.stories.tsx +516 -0
- package/src/components/Carousel/carousel.principles.stories.tsx +330 -0
- package/src/components/Carousel/carousel.spec.md +273 -0
- package/src/components/Carousel/carousel.stories.tsx +121 -0
- package/src/components/Carousel/carousel.tsx +26 -7
- package/src/components/Carousel/index.ts +5 -0
- package/src/components/Chart/chart.anatomy.stories.tsx +307 -0
- package/src/components/Chart/chart.principles.stories.tsx +436 -0
- package/src/components/Chart/chart.spec.md +174 -0
- package/src/components/Chart/chart.stories.tsx +268 -0
- package/src/components/Chart/chart.tsx +5 -2
- package/src/components/Chart/index.ts +5 -0
- package/src/components/Checkbox/checkbox-group.tsx +2 -1
- package/src/components/Checkbox/checkbox.anatomy.stories.tsx +626 -0
- package/src/components/Checkbox/checkbox.principles.stories.tsx +216 -0
- package/src/components/Checkbox/checkbox.spec.md +372 -0
- package/src/components/Checkbox/checkbox.stories.tsx +114 -0
- package/src/components/Checkbox/checkbox.tsx +80 -22
- package/src/components/Checkbox/index.ts +5 -0
- package/src/components/Chip/chip.anatomy.stories.tsx +422 -0
- package/src/components/Chip/chip.principles.stories.tsx +228 -0
- package/src/components/Chip/chip.spec.md +237 -0
- package/src/components/Chip/chip.stories.tsx +88 -0
- package/src/components/Chip/chip.tsx +6 -6
- package/src/components/Chip/index.ts +5 -0
- package/src/components/CircularProgress/circular-progress.anatomy.stories.tsx +176 -0
- package/src/components/CircularProgress/circular-progress.principles.stories.tsx +258 -0
- package/src/components/CircularProgress/circular-progress.spec.md +267 -0
- package/src/components/CircularProgress/circular-progress.stories.tsx +153 -0
- package/src/components/CircularProgress/circular-progress.tsx +4 -5
- package/src/components/CircularProgress/index.ts +5 -0
- package/src/components/Coachmark/coachmark-story-helpers.tsx +39 -0
- package/src/components/Coachmark/coachmark.anatomy.stories.tsx +356 -0
- package/src/components/Coachmark/coachmark.principles.stories.tsx +355 -0
- package/src/components/Coachmark/coachmark.spec.md +238 -0
- package/src/components/Coachmark/coachmark.stories.tsx +214 -0
- package/src/components/Coachmark/coachmark.tsx +16 -7
- package/src/components/Coachmark/index.ts +5 -0
- package/src/components/Combobox/combobox.anatomy.stories.tsx +919 -0
- package/src/components/Combobox/combobox.principles.stories.tsx +239 -0
- package/src/components/Combobox/combobox.spec.md +202 -0
- package/src/components/Combobox/combobox.stories.tsx +184 -0
- package/src/components/Combobox/combobox.tsx +86 -39
- package/src/components/Combobox/index.ts +5 -0
- package/src/components/Command/command.anatomy.stories.tsx +107 -0
- package/src/components/Command/command.principles.stories.tsx +88 -0
- package/src/components/Command/command.spec.md +181 -0
- package/src/components/Command/command.stories.tsx +280 -0
- package/src/components/Command/command.tsx +13 -8
- package/src/components/Command/index.ts +5 -0
- package/src/components/DataTable/cell-registry.tsx +19 -6
- package/src/components/DataTable/data-table-filter-panel.tsx +8 -8
- package/src/components/DataTable/data-table-sort-manager.tsx +4 -4
- package/src/components/DataTable/data-table.anatomy.stories.tsx +519 -0
- package/src/components/DataTable/data-table.css +1 -1
- package/src/components/DataTable/data-table.principles.stories.tsx +265 -0
- package/src/components/DataTable/data-table.spec.md +540 -0
- package/src/components/DataTable/data-table.stories.tsx +1941 -0
- package/src/components/DataTable/data-table.tsx +121 -53
- package/src/components/DataTable/filter-operators.spec.md +267 -0
- package/src/components/DataTable/filter-operators.ts +1 -1
- package/src/components/DataTable/filter-tree.ts +2 -2
- package/src/components/DataTable/index.ts +5 -0
- package/src/components/DateGrid/date-grid.anatomy.stories.tsx +583 -0
- package/src/components/DateGrid/date-grid.principles.stories.tsx +338 -0
- package/src/components/DateGrid/date-grid.spec.md +218 -0
- package/src/components/DateGrid/date-grid.stories.tsx +195 -0
- package/src/components/DateGrid/date-grid.tsx +22 -18
- package/src/components/DateGrid/index.ts +5 -0
- package/src/components/DatePicker/date-picker.anatomy.stories.tsx +952 -0
- package/src/components/DatePicker/date-picker.principles.stories.tsx +205 -0
- package/src/components/DatePicker/date-picker.spec.md +337 -0
- package/src/components/DatePicker/date-picker.stories.tsx +323 -0
- package/src/components/DatePicker/date-picker.tsx +46 -22
- package/src/components/DatePicker/index.ts +5 -0
- package/src/components/DescriptionList/description-list.anatomy.stories.tsx +252 -0
- package/src/components/DescriptionList/description-list.principles.stories.tsx +309 -0
- package/src/components/DescriptionList/description-list.spec.md +220 -0
- package/src/components/DescriptionList/description-list.stories.tsx +112 -0
- package/src/components/DescriptionList/description-list.tsx +3 -3
- package/src/components/DescriptionList/index.ts +5 -0
- package/src/components/Dialog/dialog.anatomy.stories.tsx +484 -0
- package/src/components/Dialog/dialog.principles.stories.tsx +313 -0
- package/src/components/Dialog/dialog.spec.md +216 -0
- package/src/components/Dialog/dialog.stories.tsx +483 -0
- package/src/components/Dialog/dialog.tsx +9 -9
- package/src/components/Dialog/index.ts +5 -0
- package/src/components/DropdownMenu/dropdown-menu.anatomy.stories.tsx +969 -0
- package/src/components/DropdownMenu/dropdown-menu.principles.stories.tsx +339 -0
- package/src/components/DropdownMenu/dropdown-menu.spec.md +260 -0
- package/src/components/DropdownMenu/dropdown-menu.stories.tsx +286 -0
- package/src/components/DropdownMenu/dropdown-menu.tsx +29 -7
- package/src/components/DropdownMenu/index.ts +5 -0
- package/src/components/Empty/empty.anatomy.stories.tsx +275 -0
- package/src/components/Empty/empty.principles.stories.tsx +314 -0
- package/src/components/Empty/empty.spec.md +216 -0
- package/src/components/Empty/empty.stories.tsx +80 -0
- package/src/components/Empty/empty.tsx +16 -7
- package/src/components/Empty/index.ts +5 -0
- package/src/components/Field/field-context.ts +98 -0
- package/src/components/Field/field-controls.spec.md +382 -0
- package/src/components/Field/field-types.ts +1 -1
- package/src/components/Field/field-wrapper.tsx +6 -6
- package/src/components/Field/field.anatomy.stories.tsx +544 -0
- package/src/components/Field/field.principles.stories.tsx +278 -0
- package/src/components/Field/field.spec.md +460 -0
- package/src/components/Field/field.stories.tsx +716 -0
- package/src/components/Field/field.tsx +12 -5
- package/src/components/Field/form-validation.spec.md +172 -0
- package/src/components/Field/index.ts +5 -0
- package/src/components/Field/use-form-validation.ts +242 -0
- package/src/components/FieldControlGroup/field-control-group.anatomy.stories.tsx +118 -0
- package/src/components/FieldControlGroup/field-control-group.principles.stories.tsx +121 -0
- package/src/components/FieldControlGroup/field-control-group.spec.md +195 -0
- package/src/components/FieldControlGroup/field-control-group.stories.tsx +161 -0
- package/src/components/FieldControlGroup/field-control-group.tsx +9 -8
- package/src/components/FieldControlGroup/index.ts +5 -0
- package/src/components/FileItem/file-item.anatomy.stories.tsx +344 -0
- package/src/components/FileItem/file-item.principles.stories.tsx +276 -0
- package/src/components/FileItem/file-item.spec.md +491 -0
- package/src/components/FileItem/file-item.stories.tsx +265 -0
- package/src/components/FileItem/file-item.tsx +37 -13
- package/src/components/FileItem/index.ts +5 -0
- package/src/components/FileUpload/file-upload.anatomy.stories.tsx +446 -0
- package/src/components/FileUpload/file-upload.principles.stories.tsx +312 -0
- package/src/components/FileUpload/file-upload.spec.md +163 -0
- package/src/components/FileUpload/file-upload.stories.tsx +167 -0
- package/src/components/FileUpload/file-upload.tsx +78 -27
- package/src/components/FileUpload/index.ts +5 -0
- package/src/components/FileViewer/file-viewer.anatomy.stories.tsx +1127 -0
- package/src/components/FileViewer/file-viewer.principles.stories.tsx +636 -0
- package/src/components/FileViewer/file-viewer.spec.md +368 -0
- package/src/components/FileViewer/file-viewer.stories.tsx +407 -0
- package/src/components/FileViewer/file-viewer.tsx +58 -28
- package/src/components/FileViewer/index.ts +5 -0
- package/src/components/HoverCard/hover-card.anatomy.stories.tsx +145 -0
- package/src/components/HoverCard/hover-card.principles.stories.tsx +222 -0
- package/src/components/HoverCard/hover-card.spec.md +167 -0
- package/src/components/HoverCard/hover-card.stories.tsx +304 -0
- package/src/components/HoverCard/hover-card.tsx +15 -4
- package/src/components/HoverCard/index.ts +5 -0
- package/src/components/Input/index.ts +5 -0
- package/src/components/Input/input.anatomy.stories.tsx +763 -0
- package/src/components/Input/input.principles.stories.tsx +265 -0
- package/src/components/Input/input.spec.md +207 -0
- package/src/components/Input/input.stories.tsx +133 -0
- package/src/components/Input/input.tsx +17 -14
- package/src/components/LinkInput/index.ts +5 -0
- package/src/components/LinkInput/link-input.anatomy.stories.tsx +746 -0
- package/src/components/LinkInput/link-input.principles.stories.tsx +182 -0
- package/src/components/LinkInput/link-input.spec.md +144 -0
- package/src/components/LinkInput/link-input.stories.tsx +132 -0
- package/src/components/LinkInput/link-input.tsx +9 -8
- package/src/components/Menu/index.ts +5 -0
- package/src/components/Menu/menu-item.anatomy.stories.tsx +780 -0
- package/src/components/Menu/menu-item.principles.stories.tsx +81 -0
- package/src/components/Menu/menu-item.spec.md +304 -0
- package/src/components/Menu/menu-item.stories.tsx +214 -0
- package/src/components/Menu/menu-item.tsx +8 -3
- package/src/components/Notice/index.ts +5 -0
- package/src/components/Notice/notice.anatomy.stories.tsx +610 -0
- package/src/components/Notice/notice.principles.stories.tsx +102 -0
- package/src/components/Notice/notice.spec.md +158 -0
- package/src/components/Notice/notice.stories.tsx +257 -0
- package/src/components/Notice/notice.tsx +26 -10
- package/src/components/NumberInput/index.ts +5 -0
- package/src/components/NumberInput/number-input.anatomy.stories.tsx +787 -0
- package/src/components/NumberInput/number-input.principles.stories.tsx +199 -0
- package/src/components/NumberInput/number-input.spec.md +144 -0
- package/src/components/NumberInput/number-input.stories.tsx +142 -0
- package/src/components/NumberInput/number-input.tsx +9 -10
- package/src/components/OverflowIndicator/index.ts +5 -0
- package/src/components/OverflowIndicator/overflow-indicator.anatomy.stories.tsx +549 -0
- package/src/components/OverflowIndicator/overflow-indicator.principles.stories.tsx +77 -0
- package/src/components/OverflowIndicator/overflow-indicator.spec.md +127 -0
- package/src/components/OverflowIndicator/overflow-indicator.stories.tsx +238 -0
- package/src/components/OverflowIndicator/overflow-indicator.tsx +19 -6
- package/src/components/PeoplePicker/index.ts +5 -0
- package/src/components/PeoplePicker/people-picker-helpers.ts +5 -5
- package/src/components/PeoplePicker/people-picker.anatomy.stories.tsx +427 -0
- package/src/components/PeoplePicker/people-picker.principles.stories.tsx +192 -0
- package/src/components/PeoplePicker/people-picker.spec.md +292 -0
- package/src/components/PeoplePicker/people-picker.stories.tsx +162 -0
- package/src/components/PeoplePicker/people-picker.tsx +31 -22
- package/src/components/PeoplePicker/person-display.tsx +30 -29
- package/src/components/Popover/index.ts +5 -0
- package/src/components/Popover/popover.anatomy.stories.tsx +279 -0
- package/src/components/Popover/popover.principles.stories.tsx +295 -0
- package/src/components/Popover/popover.spec.md +209 -0
- package/src/components/Popover/popover.stories.tsx +116 -0
- package/src/components/Popover/popover.tsx +17 -14
- package/src/components/ProfileCard/index.ts +5 -0
- package/src/components/ProfileCard/profile-card.anatomy.stories.tsx +504 -0
- package/src/components/ProfileCard/profile-card.principles.stories.tsx +225 -0
- package/src/components/ProfileCard/profile-card.spec.md +191 -0
- package/src/components/ProfileCard/profile-card.stories.tsx +53 -0
- package/src/components/{NameCard/name-card.tsx → ProfileCard/profile-card.tsx} +36 -30
- package/src/components/ProgressBar/index.ts +5 -0
- package/src/components/ProgressBar/progress-bar.anatomy.stories.tsx +438 -0
- package/src/components/ProgressBar/progress-bar.principles.stories.tsx +339 -0
- package/src/components/ProgressBar/progress-bar.spec.md +240 -0
- package/src/components/ProgressBar/progress-bar.stories.tsx +119 -0
- package/src/components/ProgressBar/progress-bar.tsx +4 -4
- package/src/components/RadioGroup/index.ts +5 -0
- package/src/components/RadioGroup/radio-group.anatomy.stories.tsx +681 -0
- package/src/components/RadioGroup/radio-group.principles.stories.tsx +163 -0
- package/src/components/RadioGroup/radio-group.spec.md +149 -0
- package/src/components/RadioGroup/radio-group.stories.tsx +101 -0
- package/src/components/RadioGroup/radio-group.tsx +114 -57
- package/src/components/Rating/index.ts +5 -0
- package/src/components/Rating/rating.anatomy.stories.tsx +495 -0
- package/src/components/Rating/rating.principles.stories.tsx +296 -0
- package/src/components/Rating/rating.spec.md +214 -0
- package/src/components/Rating/rating.stories.tsx +133 -0
- package/src/components/Rating/rating.tsx +29 -14
- package/src/components/ScrollArea/index.ts +5 -0
- package/src/components/ScrollArea/scroll-area.anatomy.stories.tsx +451 -0
- package/src/components/ScrollArea/scroll-area.principles.stories.tsx +331 -0
- package/src/components/ScrollArea/scroll-area.spec.md +143 -0
- package/src/components/ScrollArea/scroll-area.stories.tsx +243 -0
- package/src/components/ScrollArea/scroll-area.tsx +2 -2
- package/src/components/SegmentedControl/index.ts +5 -0
- package/src/components/SegmentedControl/segmented-control.anatomy.stories.tsx +295 -0
- package/src/components/SegmentedControl/segmented-control.principles.stories.tsx +281 -0
- package/src/components/SegmentedControl/segmented-control.spec.md +297 -0
- package/src/components/SegmentedControl/segmented-control.stories.tsx +33 -0
- package/src/components/SegmentedControl/segmented-control.tsx +9 -10
- package/src/components/Select/index.ts +5 -0
- package/src/components/Select/select.anatomy.stories.tsx +828 -0
- package/src/components/Select/select.principles.stories.tsx +311 -0
- package/src/components/Select/select.spec.md +337 -0
- package/src/components/Select/select.stories.tsx +198 -0
- package/src/components/Select/select.tsx +37 -16
- package/src/components/SelectMenu/index.ts +5 -0
- package/src/components/SelectMenu/select-menu.anatomy.stories.tsx +812 -0
- package/src/components/SelectMenu/select-menu.principles.stories.tsx +107 -0
- package/src/components/SelectMenu/select-menu.spec.md +229 -0
- package/src/components/SelectMenu/select-menu.stories.tsx +155 -0
- package/src/components/SelectMenu/select-menu.tsx +34 -9
- package/src/components/SelectionControl/index.ts +5 -0
- package/src/components/SelectionControl/selection-item.anatomy.stories.tsx +571 -0
- package/src/components/SelectionControl/selection-item.principles.stories.tsx +77 -0
- package/src/components/SelectionControl/selection-item.spec.md +141 -0
- package/src/components/SelectionControl/selection-item.stories.tsx +137 -0
- package/src/components/SelectionControl/selection-item.tsx +8 -2
- package/src/components/Separator/index.ts +5 -0
- package/src/components/Separator/separator.anatomy.stories.tsx +125 -0
- package/src/components/Separator/separator.principles.stories.tsx +141 -0
- package/src/components/Separator/separator.spec.md +115 -0
- package/src/components/Separator/separator.stories.tsx +127 -0
- package/src/components/Separator/separator.tsx +2 -2
- package/src/components/Sheet/index.ts +5 -0
- package/src/components/Sheet/sheet.anatomy.stories.tsx +269 -0
- package/src/components/Sheet/sheet.principles.stories.tsx +351 -0
- package/src/components/Sheet/sheet.spec.md +146 -0
- package/src/components/Sheet/sheet.stories.tsx +168 -0
- package/src/components/Sheet/sheet.tsx +7 -6
- package/src/components/Sidebar/index.ts +5 -0
- package/src/components/Sidebar/sidebar.anatomy.stories.tsx +772 -0
- package/src/components/Sidebar/sidebar.principles.stories.tsx +505 -0
- package/src/components/Sidebar/sidebar.spec.md +724 -0
- package/src/components/Sidebar/sidebar.stories.tsx +498 -0
- package/src/components/Sidebar/sidebar.tsx +20 -9
- package/src/components/Skeleton/index.ts +5 -0
- package/src/components/Skeleton/skeleton.anatomy.stories.tsx +145 -0
- package/src/components/Skeleton/skeleton.principles.stories.tsx +234 -0
- package/src/components/Skeleton/skeleton.spec.md +106 -0
- package/src/components/Skeleton/skeleton.stories.tsx +137 -0
- package/src/components/Skeleton/skeleton.tsx +1 -1
- package/src/components/Slider/index.ts +5 -0
- package/src/components/Slider/slider.anatomy.stories.tsx +236 -0
- package/src/components/Slider/slider.principles.stories.tsx +250 -0
- package/src/components/Slider/slider.spec.md +358 -0
- package/src/components/Slider/slider.stories.tsx +99 -0
- package/src/components/Slider/slider.tsx +54 -16
- package/src/components/Steps/index.ts +5 -0
- package/src/components/Steps/steps.anatomy.stories.tsx +448 -0
- package/src/components/Steps/steps.principles.stories.tsx +300 -0
- package/src/components/Steps/steps.spec.md +479 -0
- package/src/components/Steps/steps.stories.tsx +335 -0
- package/src/components/Steps/steps.tsx +56 -26
- package/src/components/Switch/index.ts +5 -0
- package/src/components/Switch/switch.anatomy.stories.tsx +227 -0
- package/src/components/Switch/switch.principles.stories.tsx +174 -0
- package/src/components/Switch/switch.spec.md +238 -0
- package/src/components/Switch/switch.stories.tsx +107 -0
- package/src/components/Switch/switch.tsx +69 -32
- package/src/components/Tabs/index.ts +5 -0
- package/src/components/Tabs/tabs.anatomy.stories.tsx +414 -0
- package/src/components/Tabs/tabs.principles.stories.tsx +257 -0
- package/src/components/Tabs/tabs.spec.md +331 -0
- package/src/components/Tabs/tabs.stories.tsx +155 -0
- package/src/components/Tabs/tabs.tsx +17 -10
- package/src/components/Tag/index.ts +5 -0
- package/src/components/Tag/tag.anatomy.stories.tsx +664 -0
- package/src/components/Tag/tag.principles.stories.tsx +270 -0
- package/src/components/Tag/tag.spec.md +324 -0
- package/src/components/Tag/tag.stories.tsx +69 -0
- package/src/components/Tag/tag.tsx +55 -57
- package/src/components/Textarea/index.ts +5 -0
- package/src/components/Textarea/textarea.anatomy.stories.tsx +304 -0
- package/src/components/Textarea/textarea.principles.stories.tsx +175 -0
- package/src/components/Textarea/textarea.spec.md +162 -0
- package/src/components/Textarea/textarea.stories.tsx +53 -0
- package/src/components/Textarea/textarea.tsx +20 -18
- package/src/components/TimePicker/index.ts +5 -0
- package/src/components/TimePicker/time-columns.tsx +8 -1
- package/src/components/TimePicker/time-picker.anatomy.stories.tsx +281 -0
- package/src/components/TimePicker/time-picker.principles.stories.tsx +140 -0
- package/src/components/TimePicker/time-picker.spec.md +290 -0
- package/src/components/TimePicker/time-picker.stories.tsx +193 -0
- package/src/components/TimePicker/time-picker.tsx +41 -23
- package/src/components/Toast/index.ts +5 -0
- package/src/components/Toast/toast.anatomy.stories.tsx +324 -0
- package/src/components/Toast/toast.principles.stories.tsx +217 -0
- package/src/components/Toast/toast.spec.md +181 -0
- package/src/components/Toast/toast.stories.tsx +125 -0
- package/src/components/Toast/toast.tsx +2 -2
- package/src/components/Tooltip/index.ts +5 -0
- package/src/components/Tooltip/tooltip.anatomy.stories.tsx +413 -0
- package/src/components/Tooltip/tooltip.principles.stories.tsx +204 -0
- package/src/components/Tooltip/tooltip.spec.md +142 -0
- package/src/components/Tooltip/tooltip.stories.tsx +116 -0
- package/src/components/Tooltip/tooltip.tsx +4 -1
- package/src/components/TreeView/index.ts +5 -0
- package/src/components/TreeView/tree-view.anatomy.stories.tsx +426 -0
- package/src/components/TreeView/tree-view.principles.stories.tsx +190 -0
- package/src/components/TreeView/tree-view.spec.md +390 -0
- package/src/components/TreeView/tree-view.stories.tsx +299 -0
- package/src/components/TreeView/tree-view.tsx +63 -26
- package/src/hooks/use-overflow-items.ts +10 -6
- package/src/index.ts +73 -69
- package/src/lib/utils.ts +2 -1
- package/src/patterns/README.md +15 -11
- package/src/patterns/action-bar/action-bar.spec.md +465 -0
- package/src/patterns/action-bar/action-bar.stories.tsx +612 -0
- package/src/patterns/element-anatomy/element-anatomy.spec.md +217 -0
- package/src/patterns/element-anatomy/index.ts +5 -0
- package/src/patterns/element-anatomy/inline-action.spec.md +320 -0
- package/src/patterns/element-anatomy/item-anatomy.spec.md +1051 -0
- package/src/patterns/element-anatomy/item-anatomy.stories.tsx +1622 -0
- package/src/patterns/element-anatomy/item-anatomy.tsx +9 -5
- package/src/patterns/header-canonical/chrome-header.tsx +16 -5
- package/src/patterns/header-canonical/header-canonical.css +2 -2
- package/src/patterns/header-canonical/header-canonical.spec.md +326 -0
- package/src/patterns/header-canonical/header-canonical.stories.tsx +150 -0
- package/src/patterns/header-canonical/index.ts +5 -0
- package/src/patterns/horizontal-overflow/horizontal-overflow.spec.md +211 -0
- package/src/patterns/horizontal-overflow/index.ts +5 -0
- package/src/patterns/overlay-surface/index.ts +5 -0
- package/src/patterns/overlay-surface/overlay-surface.spec.md +442 -0
- package/src/patterns/overlay-surface/overlay-surface.tsx +26 -11
- package/src/patterns/resize-handle/index.ts +5 -0
- package/src/patterns/resize-handle/resize-handle.spec.md +120 -0
- package/src/patterns/resize-handle/resize-handle.stories.tsx +71 -0
- package/src/story-governance/category-matrix.json +132 -0
- package/src/story-governance/category-matrix.ts +55 -0
- package/src/styles/base.css +92 -0
- package/src/styles/tokens.css +11 -0
- package/src/tokens/README.md +7 -2
- package/src/tokens/categorical-color.ts +164 -0
- package/src/tokens/color/color.spec.md +801 -0
- package/src/tokens/color/color.stories.tsx +363 -0
- package/src/tokens/color/primitives.css +7 -0
- package/src/tokens/color/semantic.css +28 -13
- package/src/tokens/density/density.spec.md +128 -0
- package/src/tokens/density/density.stories.tsx +240 -0
- package/src/tokens/elevation/elevation.spec.md +78 -0
- package/src/tokens/elevation/elevation.stories.tsx +98 -0
- package/src/tokens/layoutSpace/layoutSpace.css +1 -1
- package/src/tokens/layoutSpace/layoutSpace.spec.md +324 -0
- package/src/tokens/layoutSpace/layoutSpace.stories.tsx +75 -0
- package/src/tokens/motion/motion.css +2 -2
- package/src/tokens/motion/motion.spec.md +105 -0
- package/src/tokens/motion/motion.ts +1 -1
- package/src/tokens/opacity/opacity.spec.md +73 -0
- package/src/tokens/opacity/opacity.stories.tsx +69 -0
- package/src/tokens/orphan-tokens.spec.md +128 -0
- package/src/tokens/radius/radius.spec.md +126 -0
- package/src/tokens/radius/radius.stories.tsx +86 -0
- package/src/tokens/token-system.spec.md +240 -0
- package/src/tokens/typography/typography.spec.md +204 -0
- package/src/tokens/typography/typography.stories.tsx +133 -0
- package/src/tokens/uiSize/icon-size.ts +1 -2
- package/src/tokens/uiSize/uiSize.css +21 -0
- package/src/tokens/uiSize/uiSize.spec.md +465 -0
- package/src/tokens/utility-registry.json +124 -0
- package/dist/components/NameCard/name-card.d.ts.map +0 -1
- package/dist/components/NameCard/name-card.js.map +0 -1
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deep-audit-cross-codex
|
|
3
|
+
description: Phase A Claude solo 完整深度進階稽核 → Phase B codex 同流程稽核 + 比稿辯論共識 → Phase C 落地。SSOT-UI/UX 中文人話 propose / 其他 autonomous。對齊 M14/M18/M19/M20/M22/M23/M26/M29/M31/M32 + audit dim list 全集(SSOT = design-system-audit/SKILL.md)+ codex-collab 5-step。
|
|
4
|
+
arguments: scope?=full|changed focus?=「ssot|visual|behavior|all」
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Deep Audit Cross-Codex — 雙 model adversarial 完整 DS 稽核
|
|
8
|
+
|
|
9
|
+
上游 context / 框架(SSOT integrity invariant + 生態位 + canonical 全繼承)+ user-verbatim directives(2026-05-18 + 2026-05-29)+ 機械強制 R18-R26 對齊清單 詳 references/upstream-directives-r-mapping.md
|
|
10
|
+
|
|
11
|
+
## When to invoke
|
|
12
|
+
|
|
13
|
+
- User 明確 trigger:「跑深度稽核 + codex 比稿」「完整盤查 with codex」「dual-pass audit」「/deep-audit-cross-codex」
|
|
14
|
+
- **Solo mode**(2026-07-02 codify,user 主要入口):「深度稽核不用 codex」「/deep-audit-cross-codex solo」→ 跳過 Phase B,**其餘全跑**(Phase 0 + A.0 全盤閱讀 + A.1 全 dim + A.1b 對抗驗證 + A.2-4 + Phase C 含 C.0a prune)— 品質底盤不打折,唯失 codex 第二對眼(mitigation:A.1b multi-agent adversarial 仍在)。**禁**為此另開 skill(Rule-of-3;本 mode = B.0 fallback 路徑升 first-class)
|
|
15
|
+
- 重大 release / SSOT 大改 / 季度健檢
|
|
16
|
+
- 多輪修正後想雙 model verify
|
|
17
|
+
|
|
18
|
+
**不該 invoke**:single 元件小修(用 `/design-system-audit --scope=component`)/ 已知 surgical bug fix(用 `/bug-fix-rhythm`)/ 日常 dev(`visual-audit --scope=changed`)。
|
|
19
|
+
|
|
20
|
+
## Non-goals
|
|
21
|
+
|
|
22
|
+
- 不取代 `/design-system-audit --deep`(本 skill **chain** 它 Phase A.1)
|
|
23
|
+
- 不取代 `/codex-collab`(本 skill **chain** 它 Phase B)
|
|
24
|
+
- 不動 audit 觸發以外的 PR / branch ops(M28 由 user 拍板)
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## Phase 0 — Cwd context detection(2-mode branching,2026-05-29 加)
|
|
29
|
+
|
|
30
|
+
Skill 必能跑在 **DS repo + fork user repo** 兩處(per user 2026-05-29「fork user 在自己獨立環境下 infra 仍正確運行」directive)。Phase 0 自動偵測 cwd 切 scope:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
detect_mode() {
|
|
34
|
+
if [ -d "packages/design-system/src" ]; then echo "ds-repo"
|
|
35
|
+
elif grep -q '"@qijenchen/design-system"' package.json 2>/dev/null; then echo "fork-user-repo"
|
|
36
|
+
else echo "non-ds"; exit 0; fi
|
|
37
|
+
}
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
**為何 2-mode 不是 3-mode**(per user「避免原則無限膨脹」):「template SSOT」實際上是 ds-repo 內 `template/ds-product-template/` 子目錄;DS owner 編 template scaffold 仍在 ds-repo cwd 跑,**無 semantic 區隔**。Published `ds-product-template` GitHub repo 跟 fork user new repo 在 file structure 上一致(都消費 DS via npm + plugin),統一 fork-user-repo mode 處理。3-mode 設計 dead code:`ds-template-ssot` 永不 trigger 因 `packages/design-system/src` 條件先 win。
|
|
41
|
+
|
|
42
|
+
| Mode | A.0 全盤閱讀 scope | A.1 audit dim scope | Phase B codex scope |
|
|
43
|
+
|---|---|---|---|
|
|
44
|
+
| **ds-repo**(DS owner workflow,含 template SSOT 編輯)| full DS canonical + spec + token + pattern + memory + `template/ds-product-template/` scaffold | 全 dim per `/design-system-audit --deep` SSOT(含 dim 83 cross-3-repo runtime audit)**+ chain `/product-ui-audit` 對 `apps/template`**(DS owner dogfood 自家消費端 surface,用 fork user 同等產品標準把關)| 全 dim parallel verify |
|
|
45
|
+
| **fork-user-repo**(published template repo / fork user product repo)| `node_modules/@qijenchen/design-system/CLAUDE.md` + `ds-canonical/rules/meta-patterns.md` + `apps/**` + 本 repo `CLAUDE.md` | dim 83 fork-side runtime checks(plugin hook fire / **fork-committed bootstrap hooks fire〔check_plugin_bootstrap SessionStart + block_production_edit_without_plugin PreToolUse〕** / cross-load / setup-netlify smoke / **deploy URL hook 每次 push 吐 URL live** / **環境建置斷點清單通暢 + 無法自動的斷點有 plain-中文引導**)+ **完整 consumer/fork enforcement dim 集(2026-05-30 補,原僅 62-67 漏掉 bootstrap 等)**:58(plugin install + bootstrap chicken-egg gate)/ 59(approval-preflight `apps/**`)/ 62(Netlify onboarding + 斷點清單 + ≥6 條中文引導話術)/ 63(deploy URL auto-reply 每次必吐)/ 64(post-main-push SSOT propagation)/ 69-71(consumer no-catalog / @story-baseline / DS primitive misuse)/ 73-74(full-story sweep / overlay probe)/ 75(plugin freshness)/ 76(escape marker abuse)/ 82(consumer app story title)| 同 dim,fork-side verify;**禁** propose DS source change |
|
|
46
|
+
|
|
47
|
+
### Fork-mode safety invariants(2026-05-29 加)
|
|
48
|
+
|
|
49
|
+
當 cwd = `fork-user-repo`:
|
|
50
|
+
- A.2 propose scope 限 fork user's product code(`apps/**`,可選 `packages/<consumer-utils>/**`)
|
|
51
|
+
- **禁** propose DS source 改動(`node_modules/@qijenchen/design-system/**` read-only;要改 file PR 回 DS repo)
|
|
52
|
+
- A.3 autonomous batch fix scope 同上
|
|
53
|
+
- Commit / push 仍走 M28 working branch + user push trigger
|
|
54
|
+
- Hooks fire 信任 plugin 機制(skill 不重複實作 hook logic)
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## Phase A — Claude solo full audit(必先 NO-SAMPLE 跑完才進 Phase B)
|
|
59
|
+
|
|
60
|
+
### A.0 — 全盤閱讀 preflight(M29 升級,**禁止憑記憶**)
|
|
61
|
+
|
|
62
|
+
**強制 read sweep**(不可 sample,不可挑):
|
|
63
|
+
1. `CLAUDE.md` 全文
|
|
64
|
+
2. `.claude/rules/{meta-patterns,spec-rules,ui-development,story-rules,self-verify}.md` 全文
|
|
65
|
+
3. `.claude/references/{ssot-index,ssot-consultation,build-ui-canonicals,naming-conventions}.md`
|
|
66
|
+
4. `packages/design-system/src/**/*.spec.md` 全部(83 file,通過 Glob 列舉 + Read)
|
|
67
|
+
5. `packages/design-system/src/tokens/**/*.spec.md` + `packages/design-system/src/patterns/**/*.spec.md` 全部
|
|
68
|
+
6. 本 session 對話脈絡 + memory `~/.claude/.../memory/MEMORY.md` index + active project memory files
|
|
69
|
+
|
|
70
|
+
**完成 gate**:Phase A.0 output = `phaseA-preflight-checklist.md`(session-local,列出讀過的 N file + 任何 spec 漂移嫌疑點)。**禁** skip / sample / 「先看標題判斷」。
|
|
71
|
+
|
|
72
|
+
### A.1 — 跑全 dim NO-SAMPLE deep audit(chain `/design-system-audit --deep` SSOT)
|
|
73
|
+
|
|
74
|
+
**Dispatch plan auto-pickup**(2026-05-23 ship per user verbatim「infra 增刪改 audit 自動跟最新」):
|
|
75
|
+
必先跑 `node scripts/dispatch-audit-dims.mjs --summary` 取**動態 dim 列**(non-hardcoded),從 `.claude/logs/audit-dims-dispatch.json` 讀 sub-agent batch 分組。Heavy dims 自動標,新加 dim 自動 included,retire 自動排除。
|
|
76
|
+
|
|
77
|
+
**禁** hardcode dim range numbers(eg.「Dims 1-15」/「Dims 34-56」)在 sub-agent prompt — 用 dispatch-audit-dims.mjs output 的 `dispatchPlan.suggestedBatches[].dimNumbers` 動態填。
|
|
78
|
+
|
|
79
|
+
完整跑,**no sample / no escape**(對齊 `feedback_audit_full_sweep_not_sample.md` + `check_audit_sample_escape.sh` BLOCKER)。
|
|
80
|
+
每 dim sub-agent prompt 必含「DS-wide 全盤,禁 sample top N」。
|
|
81
|
+
|
|
82
|
+
**DETERMINISTIC dim 必驗「mode 真的有跑」(2026-06-11 加)**:script exit 0 ≠ 該 dim 宣稱的模式真的執行了 — 必看輸出證據(per-mode 計數 / cell label / scenario 數)確認 flag 真生效。Anchor:dim 51 `--matrix` flag 接受後 `MATRIX_CELLS` 定義但 main loop 從未消費(dead code),跑出來是無 matrix 的普通 scan + exit 0 = 連續假綠;另 cell 清單含 Storybook 不認識的 globals(hc/rtl)= 注入後靜默 fallback = 假覆蓋。兩層都要驗:flag→行為、行為→真值。
|
|
83
|
+
|
|
84
|
+
**PURE-JUDGMENT dim 真跑證據強制(2026-05-30 generalize,user 問「包括所有 infra 稽核?」)**:judgment dim(無 deterministic script / write-time hook 兜底者,含 infra 62/66/68/72 fork-onboarding/runtime/API-surface)report 必逐 dim show「DS-wide N files scanned + file:line findings / 或『0 after 全掃』」真跑證據,**禁只 mention dim 號**。report-validator `check_audit_post_report_validator.sh` Validator G 機械強制(evidence marker 數 < judgment dim 數 = BLOCKER)。DETERMINISTIC(22)+ HOOK(42)dim 由 CI / write-time hook 兜底(含 22/26 infra dim),不在此 risk。
|
|
85
|
+
|
|
86
|
+
**🚨 反抽樣鐵律 — 「機械涵蓋」必先 breadth-verify(2026-06-05 user 抓 story-title 又抽樣,verbatim「這個問題已經問你一百次了結果你還是抽樣」)**:把某 judgment dim 標為「DETERMINISTIC/HOOK 已兜底、不在 judgment risk」**= 一種抽樣**,除非該 gate 的偵測廣度被**證明**對齊 canonical。**強制兩步,缺一即視同抽樣**:
|
|
87
|
+
1. **Breadth-test**:對該 gate 注入一個「已知違規」樣本 → 跑 gate → 確認被抓(exit 1)→ revert。沒通過 = 該 gate **不算**涵蓋該 dim,退回 PURE-JUDGMENT 跑完整枚舉。
|
|
88
|
+
2. **完整枚舉 + partition-review**(judgment dim sample-proof 跑法):deterministic 腳本枚舉**全部單元**(eg. `gen-ds-story-manifest.mjs` 全 926 name)→ 機械 auto-pass 明確合規者 → 剩餘 candidate **切 N chunk,每 chunk agent 審它每一個**(chunk 互斥涵蓋全集 → 每單元剛好審一次,數學上不可能漏)。**禁** agent 自選 top N。
|
|
89
|
+
- **錨例**:dim 40/41/43 被當「story-quality:check 已涵蓋」排除 NO-SAMPLE → 但 gate 有 detection gap(只抓 100%-English,漏中英混雜)+ scope gap(漏 anatomy/principles)→ 放過 84 違規,還回報「0 violations」假綠燈。修:gate 補 `name_mixed_english`(Dim 41b)+ 全 storyFiles scope + breadth-verified(注入 `Hover Compact 測試` 確認抓到)。對齊 M7 子規則 M34「spec broad + hook narrow = gap 必補」。
|
|
90
|
+
|
|
91
|
+
### A.1b — Claim-vs-code + docblock + spec-internal adversarial verification(MANDATORY,NO-SAMPLE,per-component)
|
|
92
|
+
|
|
93
|
+
**2026-05-30 anchor(user verbatim 質問「之前他媽都在偷懶?」)**:獨立 adversarial 再審抓到 **403 findings / 64 單元 / 0 全乾淨**,其中 **202 個 FALSE_CLAIM**(anatomy/a11y/principles/spec 系統性記載 code 根本沒有的行為:Calendar 宣稱方向鍵導覽 / Tooltip·HoverCard 宣稱 focus trap / Alert 記不存在的 `actions` prop / Select 宣稱「用原生 select」但桌機自建 cmdk / AspectRatio spec 說「無 wrapper」但 code wrap)。**根因**:前期 audit 把 story-content dim(12/24/25/30/43 等)當「散文層 looks-fine 掃」跑,**沒 adversarial 讀 .tsx(+ wrap 的 lib)逐句比對宣稱**。這是「偷懶」的具體 failure mode。
|
|
94
|
+
|
|
95
|
+
**為何不能只靠 deterministic grep**:2026-05-30 嘗試建 `audit-anatomy-prop-existence.mjs`(已刪除不存在)機械驗 prop-existence,但 **prop passthrough(元件 `...props` 轉發 Radix/react-day-picker)使 naive grep 必 over-flag 合法 prop** → 不可靠 → 刪除。**結論:FALSE_CLAIM 驗證本質需 LLM 讀 source 判斷,無法純 grep gate → 故必用「強制 + 報告驗證確認真跑」的機制保證**。
|
|
96
|
+
|
|
97
|
+
**強制流程**(deep-audit 每次必跑,no skip):
|
|
98
|
+
0. **機械 gate 先跑(deterministic,2026-06-02 加)**:`npm run typecheck:stories`(deterministic 抓 stories 的 `{var}`-undefined / prop 型別錯 —— **這是 SizeMatrix `{size}` crash 的真防線**;主 tsc -b exclude stories 故必跑此)+ `node scripts/storybook-smoke-test.mjs --full`(runtime crash render 掃)。先過才進 adversarial read。Anchor:2026-06-02 Field SizeMatrix `{size}` JSX-undefined crash 隨 beta.44 ship。**注**:smoke 全覆蓋 coverage-gate(防靜默-skip 假綠燈)attempted 但 CI server 規模化降級(~60 story 後 timeout 撞 20-min budget)→ **defer**(需 robust-server / browser-recycle + 可靠測試環境);故 typecheck:stories 是目前 deterministic 主防線。
|
|
99
|
+
1. **per-component(NO-SAMPLE,全 62 component + 全 pattern)** dispatch adversarial agent。
|
|
100
|
+
2. 每 agent 必 **Read 元件 .tsx + 其 wrap 的 lib(Radix/cmdk/react-day-picker/sonner 等)source**,對該元件**所有** anatomy / a11y / principles / spec 宣稱**逐句**比對:鍵盤 map / ARIA role / focus 行為 / prop 存在性 / 視覺 token / 預設值 / native-vs-custom。
|
|
101
|
+
**+ 2026-06-04 補兩 lens(Dim 15 cross-doc 明文涵蓋但前期被「散文 skim」漏的同 class failure;非抽樣、非無覆蓋,是「有 dim 淺跑」)**:
|
|
102
|
+
- **(a) 元件 `.tsx` 自己的 docblock / inline 註解 vs 同檔 code**:A.1b 原設計把 `.tsx` 當「真相來源」去驗別人(story/spec),**從不反驗它自己的註解** → docblock claim 的 padding / typography mode / hover / 行為 vs code 真實值,逐行比。
|
|
103
|
+
- **(b) spec 段落間描述性一致(spec-internal cross-section)**:A.1b 原驗 claim-vs-code,**不驗 spec-段-vs-段** → 同一 spec 內 Mode 表 typography 標籤 / padding 值 / gap 值 / surface 行為,跨 section 不可打架。
|
|
104
|
+
- **(c) token / pattern spec 的 cross-file consumer-list claims(2026-06-11 加)**:token spec 常有「消費者清單」宣稱**其他檔案**的行為(如 motion.spec「hover-card.tsx Provider 預設 override 為 --hover-delay-rich」)— per-component A.1b 只驗「該元件自己的 spec vs 自己的 code」,**cross-file 宣稱兩邊都不在誰的 claim set 裡 = 系統性盲區**。每個 token / pattern spec 的消費者清單必逐檔開 code 驗。Anchor:2026-06-11 hover delay 雙 drift(HoverCard 沒接 token / OverflowIndicator 誤 tier)連續多輪 deep-audit 漏抓,正是此 lens 缺;現另有 `scripts/audit-motion-delay-invariants.mjs` 機械凍結 motion 域。
|
|
105
|
+
- **Anchor**:2026-06-04 user 抓「deep-audit 多次沒發現」—— tsx docblock(`閱讀模式 1.5` / `hover:bg-neutral-hover`,自 2026-04-23 stale)+ spec Mode 表 typography stale,全是 Dim 15 該抓、卻被當散文掃漏。納入此強制 adversarial(Validator F per-component 覆蓋率閘一併保證),不再可 skim。
|
|
106
|
+
3. **「自上次 audit 無 code 改動」≠ 可跳過** —— content 宣稱可在 code 沒變下就是假的(前期正是用此藉口跳過 = 違規)。
|
|
107
|
+
4. output per-component:`{component, claimsVerified: N, falseClaims: [{fileLine, 宣稱, 真實 code 行為}]}`。
|
|
108
|
+
5. findings 併入 A.2 triage(FALSE_CLAIM 對齊 doc-to-code = autonomous;substantive design-language tension = HOLD propose)。
|
|
109
|
+
|
|
110
|
+
**完成 gate**:report 必含**每個** component 的 story-vs-code verdict(claimsVerified count + falseClaims list)。report-validator hook `check_audit_post_report_validator.sh` Validator F 檢查此 per-component coverage,缺 = BLOCKER(見 Mechanical enforcement)。
|
|
111
|
+
|
|
112
|
+
### A.2 — Triage findings → 中文人話 propose SSOT-UI/UX / autonomous non-SSOT
|
|
113
|
+
|
|
114
|
+
**Scope classifier**(critical,先過):
|
|
115
|
+
- **SSOT-UI/UX substantive 增刪改** = 動 component / token / spec.md 視覺結構 / 跨元件 design language / 新 API contract → **STOP propose**
|
|
116
|
+
- **Non-SSOT**(bug fix / clean / refactor / 命名一致 / test / audit / verify / hook regex 加廣 / pointer 補 / spec typo / 漂移 mechanical 對齊)→ **AUTO 整批做完**
|
|
117
|
+
|
|
118
|
+
**SSOT-UI/UX propose 必過 gate + 中文人話 format**(SSOT 在主檔,不在此重述以免多處抄寫漂移):
|
|
119
|
+
- **Propose 前必過 7-Q gate**(Q0 先驗「問題是否真存在」/ Q1 cite / Q1' DS canonical 優先 / Q2 SSOT consume / Q3 Rule-of-3 / Q4 下游吸收 / Q5 issue 100% mapped)→ SSOT `.claude/skills/propose-options/SKILL.md`(hook `check_propose_pre_grep_verify.sh` 機械強制 Q0);M18 為 meta anchor
|
|
120
|
+
- **中文人話 propose format + 禁用 jargon 對照表** → SSOT `.claude/memory/feedback_propose_discipline.md`(hook `check_propose_discipline.sh(r1,2026-06-11 merge)` 機械強制)
|
|
121
|
+
- **Triage 分流 + format 細則** → `references/triage-rubric.md`
|
|
122
|
+
|
|
123
|
+
### A.3 — Autonomous batch execute(non-SSOT,M33 anti-defer)
|
|
124
|
+
|
|
125
|
+
7 軸 simultaneous optimize 操作清單 → `references/phase-a-workflow.md` A.3(SSOT `CLAUDE.md` `# 自主執行 canonical`)。
|
|
126
|
+
|
|
127
|
+
**禁defer keyword**:「下次再做 / 下個 session / 省工 / 等等」(M33 BLOCKER)。
|
|
128
|
+
|
|
129
|
+
### A.4 — Verify-to-perfection(per self-verify.md 4 階段)
|
|
130
|
+
|
|
131
|
+
- Post-edit:`npx tsc -b` / 相關 invariant 腳本 / `audit-content-quality.mjs --check` / `extract-canonical-rules.mjs`
|
|
132
|
+
- Visual:`/visual-audit --scope=changed`(UI 改動)+ playwright pixel-quantified(M32)
|
|
133
|
+
- M14 5-layer pipeline:spec / hook / SKILL / CLAUDE.md / memory 同步
|
|
134
|
+
|
|
135
|
+
**Phase A complete gate**:全部 verify PASS + commit on working branch + 報 user「Phase A 完成,N 項 SSOT-UI/UX 等你拍板」。**禁** skip Phase A 直接 Phase B。
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Phase B — Codex parallel audit + 比稿辯論共識
|
|
140
|
+
|
|
141
|
+
**Solo mode 先判**:user invoke 含「solo / 不用 codex / 不要 codex」→ **整個 Phase B 跳過**(明文 opt-out,非故障 fallback;不跑 B.0 transport discovery),直接進 Phase C。Report 標注「撤回 codex:solo mode(user opt-out),Phase B skipped」——此句同時滿足 codex-transport stop hook 的 (b) 顯式撤回選項(該 hook 機械 grep turn 內容,solo 跑仍可能 fire,用撤回聲明過閘,勿被迫跑 discovery)。
|
|
142
|
+
|
|
143
|
+
### B.0 — Codex transport discovery(per codex-collab/SKILL.md Step 0.4)
|
|
144
|
+
|
|
145
|
+
3-test 順序固定(local 優先):`node_modules/.bin/codex` → `which codex` → `~/.codex/auth.json`。**禁 Explore agent 替身**(M31)。
|
|
146
|
+
|
|
147
|
+
**Auto-fallback policy(2026-05-29 加,fork-user 友善)**:
|
|
148
|
+
- 全 ❌ **且** cwd = `fork-user-repo` → **auto-fallback Phase A only**(不 interactive ASK),印中文:`「Codex 未裝(@openai/codex 不在你的 fork repo deps),skip Phase B 比稿。Phase A solo audit 已完整跑完。若要 dual-track 比稿請 npm i --save-dev @openai/codex 後重跑」`(2026-05-29 verified:`/tmp/ds-product-template/node_modules/.bin/codex` 不存在 = fork user 預設無 codex,此 fallback 為正常路徑)
|
|
149
|
+
- 全 ❌ **且** cwd = `ds-repo` → 報 user(DS owner config issue,需 fix)
|
|
150
|
+
- **禁** Explore 替身 / 嘗試 `sudo npm i -g` / 繞 M28 開 PR(per `memory/feedback_codex_exec_transport_canonical.md` Anti-pattern)
|
|
151
|
+
- **大型 brief 死局 fix**:r1-r4 anchor — 用 `--dangerously-bypass-approvals-and-sandbox` + `-c model_reasoning_effort=low` + 拆 N 個 single-axis focused brief 並行(每 brief 25k tokens 真完成)
|
|
152
|
+
|
|
153
|
+
### B.1 — Brief codex 跑相同 Phase A 完整流程
|
|
154
|
+
|
|
155
|
+
Brief 必含 4 段(完整 template SSOT → `references/phase-b-codex-brief.md`,per codex-collab Step 0.05 user-verbatim faithful relay + Step 0.5 own-version invariant):**(1)** user 原話 verbatim(中英符號圖文全保)**(2)** Claude Phase A 結果摘要(P0/P1/P2 count + propose N 項 + landed M 項 file:line)**(3)** 請 codex 獨立跑相同 Phase A(全盤閱讀 + 全 dim NO-SAMPLE + 完整報告 + 不 frame 答案)**(4)** 回「你抓 Claude 漏 / Claude 抓你不同意 / 兩邊都漏」。Send via `codex exec`(local CLI per M31 Step 0.4)或 cloud `@codex`。
|
|
156
|
+
|
|
157
|
+
### B.2 — Receive codex report + Step 4 self-check + Step 4.5 verify
|
|
158
|
+
|
|
159
|
+
**禁 pass-through**(per M31 + `feedback_codex_dual_track_synthesizer.md`):
|
|
160
|
+
- Step 4:M22/M23/M27/M8 4 題自檢
|
|
161
|
+
- **Step 4.5 verify each claim**:grep / WebFetch / run invariant script / counter-example scan
|
|
162
|
+
- 每 codex claim 標 `✅ verified` / `❌ FALSE` / `⚠️ partial`
|
|
163
|
+
|
|
164
|
+
### B.3 — Step 5 比稿(matrix per claim)
|
|
165
|
+
|
|
166
|
+
不可只「pick A/B/C」(round-7 trap)。對每 finding 4 axis:
|
|
167
|
+
- **接受 codex**:codex 抓 + verified + Claude 漏
|
|
168
|
+
- **接受 Claude**:Claude 抓 + codex 漏 / codex verified FALSE
|
|
169
|
+
- **修正 = synthesize**:兩邊各補對方缺漏 → final 比兩 v1 都強
|
|
170
|
+
- **重啟**:兩邊都不對 → 重做
|
|
171
|
+
|
|
172
|
+
### B.4 — Disagreement → cite battle(M31 Step 4 / 5)
|
|
173
|
+
|
|
174
|
+
任何 disagreement **禁** vote / 直覺;走 cite battle:
|
|
175
|
+
- 各自提 spec.md path:line + 引文
|
|
176
|
+
- WebFetch ≥ 3 家 world-class DS 對照
|
|
177
|
+
- evidence stronger 勝;evidence 對等 → STOP 給 user 拍板
|
|
178
|
+
|
|
179
|
+
### B.5 — 共識 triage → 中文人話 propose / autonomous
|
|
180
|
+
|
|
181
|
+
跟 Phase A.2 同 format,但 finding source = 共識(Claude + codex 兩邊都認 + verify PASS)。
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Phase C — Final report + commit + push trigger gate
|
|
186
|
+
|
|
187
|
+
### C.0a — Governance prune auto-chain(2026-06-11 user verbatim 糾正 codify)
|
|
188
|
+
|
|
189
|
+
Deep-audit 收尾**必自動跑** `/knowledge-prune` deep — **前提鐵律:確保產出不打折、以產出完美為前提**(quality-first,= knowledge-prune SKILL 2026-06-02 核心前提:只清真冗餘提升 signal,每一條真實 invariant / 機械防線必完整保留,retire 前必確認保護已被別處覆蓋;2026-06-11 user verbatim「請確保有確保產出不打折且產出完美,且未來也必須要確保產出不打折以產出為完美的前提跑 knowledge prune deep」)。governance headroom / session-start trigger 命中時 scope 聚焦觸發點,否則 quarterly scope。**禁問 user「要不要跑」**(anchor:2026-06-11 user verbatim「deep audit cross codex不是會自動…跑 knowledge prune deep?為何每次都要問我是否要跑?」)。分權不變:P0+P1(表達層對齊/清 stale)AUTO 執行;**P2(retire 機械防線 / 動 canonical)整理成候選表進 C.1 拍板清單** — user 只拍板 P2 內容,不拍板「跑不跑」。
|
|
190
|
+
|
|
191
|
+
### C.0 — 收斂判準(rerun stop gate,2026-06-01)
|
|
192
|
+
|
|
193
|
+
決定「**再 rerun 嗎**」必過此 gate:deep-audit = LLM 對抗式 non-deterministic + 高假陽性,**追零 = 跑步機 + 誘發 regression**。STOP 判準 = **某輪 adversarial 二次驗證後真 material/regression = 0(只剩 marginal + false-positive)**——不追零、不過早收。收斂靠 CI gate + 寫入時紀律,非 audit loop。三分類表 + 「改一處看 N 處」→ `references/triage-rubric.md`「收斂判準」。
|
|
194
|
+
|
|
195
|
+
### C.1 — Final report(送 user)
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
## Deep Audit Cross-Codex 完整報告(N 日期)
|
|
199
|
+
|
|
200
|
+
### Phase A 結果
|
|
201
|
+
- 全 dim findings: <P0 N / P1 M / P2 K>
|
|
202
|
+
- Autonomous landed: <N 項> commit <hash>
|
|
203
|
+
- SSOT-UI/UX 已拍板: <M 項>
|
|
204
|
+
- SSOT-UI/UX 待拍板: <列出 + 簡述>
|
|
205
|
+
|
|
206
|
+
### Phase B 結果
|
|
207
|
+
- Codex 抓 + Claude 漏: <N 項>
|
|
208
|
+
- Claude 抓 + Codex 漏: <M 項>
|
|
209
|
+
- Cite battle: <K 題,各題 verdict + evidence>
|
|
210
|
+
- 共識 SSOT-UI/UX 待拍板: <列出 + 簡述>
|
|
211
|
+
- 共識 autonomous landed: <N 項> commit <hash>
|
|
212
|
+
|
|
213
|
+
### 待你拍板(中文人話)
|
|
214
|
+
<決策 1-N(per A.2 format)>
|
|
215
|
+
|
|
216
|
+
**每題必附「SSOT 理由:」一句**(= 為何這是「會影響 SSOT 的 UI/UX 增刪改」:新 API contract / 改 canonical 語意 / 新視覺 design language,三類之一,具體指出)。**寫不出 SSOT 理由 = 該題不是拍板題,移回 AUTO 自己做**(2026-06-11 user 第 3 次糾正 codify:bug fix / a11y 對齊 W3C / 對齊 spec 既有意圖 / story 內容 / 治理 / 補 rationale 文件 / dead code 清除,全部 AUTO 不問)。Hook \`check_audit_post_report_validator.sh\` Validator H 機械強制。
|
|
217
|
+
|
|
218
|
+
### Verify artifact
|
|
219
|
+
- tsc PASS / invariant PASS / content-quality PASS / visual probe PASS
|
|
220
|
+
- file:line + before / after diff link
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
### C.2 — Push trigger gate(M28 solo-work canonical)
|
|
224
|
+
|
|
225
|
+
**禁** AI 自決 merge main / push origin main。等 user 「Push 到 main」trigger。
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Mechanical enforcement
|
|
230
|
+
|
|
231
|
+
- Pre-edit:`check_substantive_edit_approval_preflight.sh` + `check_ds_anchor_preflight.sh`(SSOT-UI/UX 必先 approval)
|
|
232
|
+
- Mid:`check_audit_sample_escape.sh`(Agent dispatch 攔 sample escape)+ `check_codex_collab_5step.sh`(Layer A/B/C cite verdict)
|
|
233
|
+
- Post:`stop_self_audit.sh` Mechanism 1 claim-verify-gap BLOCKER + `audit-content-quality.mjs --check`
|
|
234
|
+
- Commit gate:`check_solo_workflow.sh`(no PR / 1 chat 1 branch / 等 user push trigger)
|
|
235
|
+
|
|
236
|
+
## Checkpoints(禁止跳)
|
|
237
|
+
|
|
238
|
+
| Checkpoint | 在哪 | What |
|
|
239
|
+
|---|---|---|
|
|
240
|
+
| **CP-P0** | Phase 0 結束 | Print detected mode(ds-repo / fork-user-repo),mode = non-ds 直接 exit;確認 user 跑對 repo |
|
|
241
|
+
| **CP-A0** | A.0 結束 | 全盤閱讀清單給 user 看(列 N file read,per detected mode 切 scope),禁未讀就進 A.1 |
|
|
242
|
+
| **CP-A1b** | A.1b 結束 | **每個** component/pattern 都有 story-vs-code adversarial verdict(讀 .tsx + wrap lib 逐句比對宣稱);**禁** 用「無 code 改動」跳過任一單元。缺任一 component verdict = 不可進 A.2(2026-05-30 403-finding 偷懶 anchor)|
|
|
243
|
+
| **CP-A2** | A.2 SSOT-UI/UX propose | 中文人話 + 4-Q gate;**STOP** 等 user A/B 才動 code(fork-user-repo mode:propose scope 限 `apps/**`,禁 DS source)|
|
|
244
|
+
| **CP-B0** | B.0 codex transport | **solo mode(user opt-out)→ 整個 Phase B 跳過不進此 CP**;3-test 全 ❌ + cwd=fork → **auto-fallback Phase A only 印中文**,不 interactive ASK;cwd=ds-repo → 報 user;禁 Explore 替身 |
|
|
245
|
+
| **CP-B4** | B.4 cite battle | evidence 對等 → STOP 等 user 拍板,**禁** AI 自決誰勝 |
|
|
246
|
+
| **CP-C2** | C.2 push gate | 等 user「Push 到 main」trigger;禁 AI 自決 merge |
|
|
247
|
+
|
|
248
|
+
## References
|
|
249
|
+
|
|
250
|
+
- `references/phase-a-workflow.md` — A.0 全盤閱讀 file list canonical + A.1 全 dim sub-agent dispatch template
|
|
251
|
+
- `references/phase-b-codex-brief.md` — codex brief template(B.1)+ Step 4.5 verify checklist + Step 5 比稿 matrix template
|
|
252
|
+
- `references/triage-rubric.md` — Scope classifier(SSOT-UI/UX vs non-SSOT)+ 中文人話 propose format + 7 autonomous 目標 expansion
|
|
253
|
+
- `references/upstream-directives-r-mapping.md` — 上游 context / 框架(SSOT integrity invariant + 生態位 + canonical 全繼承)+ user-verbatim directives(2026-05-18 + 2026-05-29)+ 機械強制 R18-R26 對齊清單
|
|
254
|
+
- `references/skill-relationships-antipatterns-benchmarks.md` — 與其他 skill 分工 + Anti-pattern(永久 ban)+ 世界級對照
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Phase A — Claude solo full audit workflow
|
|
2
|
+
|
|
3
|
+
## A.0 全盤閱讀 file list canonical(禁 sample)
|
|
4
|
+
|
|
5
|
+
### 治理 home(always-load + path-scoped)
|
|
6
|
+
- `CLAUDE.md` 全文
|
|
7
|
+
- `.claude/rules/meta-patterns.md`(31 active M-rules,M1-M32 with M27/M33/M34/M35 retired)
|
|
8
|
+
- `.claude/rules/spec-rules.md`
|
|
9
|
+
- `.claude/rules/ui-development.md`
|
|
10
|
+
- `.claude/rules/story-rules.md`
|
|
11
|
+
- `.claude/rules/self-verify.md`
|
|
12
|
+
- `.claude/rules/README.md`
|
|
13
|
+
|
|
14
|
+
### Reference SSOT(快速索引)
|
|
15
|
+
- `.claude/references/ssot-index.md`
|
|
16
|
+
- `.claude/references/ssot-consultation.md`
|
|
17
|
+
- `.claude/references/build-ui-canonicals.md`
|
|
18
|
+
- `.claude/references/naming-conventions.md`
|
|
19
|
+
- `.claude/references/ui-dev-rules.md`(若存在)
|
|
20
|
+
- `.claude/references/props-naming.md`
|
|
21
|
+
- `.claude/references/tailwind-gotchas.md`
|
|
22
|
+
|
|
23
|
+
### DS spec.md(全部)
|
|
24
|
+
```bash
|
|
25
|
+
# 列舉所有 spec.md
|
|
26
|
+
find packages/design-system/src -name "*.spec.md" -type f
|
|
27
|
+
# 預期 ~83 file:components/* + patterns/* + tokens/*
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
每個必 Read 全文(spec ≤ 300 lines budget,foundational SSOT ≤ 800-1200)。
|
|
31
|
+
|
|
32
|
+
### 記憶
|
|
33
|
+
- `~/.claude/.../memory/MEMORY.md`(index)
|
|
34
|
+
- 對 MEMORY.md 列的每個 active project memory file Read 全文(`project_*.md`)
|
|
35
|
+
- 對 feedback memory(`feedback_*.md`)只讀 description 比對 user 提的 topic 是否觸及 → 觸及才 Read 全文
|
|
36
|
+
|
|
37
|
+
### Output gate
|
|
38
|
+
|
|
39
|
+
A.0 結束時 output `.claude/planning/<date>-phaseA-preflight.md`(session-local,不 commit):
|
|
40
|
+
|
|
41
|
+
```markdown
|
|
42
|
+
# Phase A.0 全盤閱讀清單
|
|
43
|
+
|
|
44
|
+
## 讀完
|
|
45
|
+
- CLAUDE.md(<N> lines)
|
|
46
|
+
- meta-patterns.md(31 active M-rules verify list)
|
|
47
|
+
- spec.md ×<N>(file list)
|
|
48
|
+
- tokens spec.md ×<N>
|
|
49
|
+
- patterns spec.md ×<N>
|
|
50
|
+
- memory active files: <list>
|
|
51
|
+
|
|
52
|
+
## 預警點(讀過程發現的疑似漂移 / TODO)
|
|
53
|
+
- <spec X 提到 Y 但 src/ 沒實作>
|
|
54
|
+
- <token Z 0 consumer>
|
|
55
|
+
- ...
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## A.1 全 dim deep audit chain(per design-system-audit SSOT)
|
|
59
|
+
|
|
60
|
+
直接 invoke `/design-system-audit --deep`。每 dim sub-agent dispatch prompt 必含:
|
|
61
|
+
|
|
62
|
+
```
|
|
63
|
+
你是 dim <N> sub-agent。NO-SAMPLE STRICT NO-ESCAPE — 必 DS-wide 全盤掃,
|
|
64
|
+
禁 sample top N / 禁 heavy agent skip。觸發 `check_audit_sample_escape.sh`
|
|
65
|
+
BLOCKER 字串(「sample」「top N」「heavy agent skip」「為節省」「先抽樣」
|
|
66
|
+
「pick representative」)= 立刻撤回 dispatch。
|
|
67
|
+
|
|
68
|
+
每 finding 必 cite: <file:line> + <引文 quote> + <為何違反 spec / rule>
|
|
69
|
+
|
|
70
|
+
不確定 → STOP propose,別假答案。
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## A.2 Triage rubric
|
|
74
|
+
|
|
75
|
+
詳 `triage-rubric.md`(scope classifier + propose format)。
|
|
76
|
+
|
|
77
|
+
## A.3 Autonomous batch 7 軸 optimize 清單
|
|
78
|
+
|
|
79
|
+
對齊 CLAUDE.md `# 自主執行 canonical`:
|
|
80
|
+
|
|
81
|
+
1. **言簡意賅** — comment / spec / prop name 短而精
|
|
82
|
+
2. **效率 + 效能** — 避 unnecessary re-render / memoization gap / O(N²) algorithm(可 chain `/performance-audit`)
|
|
83
|
+
3. **SSOT 鐵律** — M17 token / primitive / pattern consume;M23 既有 canonical 優先;M29 anchor preflight;M30 wrapper extends primitive
|
|
84
|
+
4. **易懂 + 維護 + 擴充** — file ≤ budget;function ≤ 80;naming 一致(`# 命名與語言一致性`)
|
|
85
|
+
5. **世界級 + 一致設計語言** — mindset #1 + M8 ≥3 家 cite + M22 inline cite + M26 propose 前 WebFetch
|
|
86
|
+
6. **完整 self-verify** — M20 score / M31 dual-track 5-step / M32 pixel-quantified audit
|
|
87
|
+
7. **自動 self-improve** — M14 5-layer pipeline / M20 best-practice scoring
|
|
88
|
+
|
|
89
|
+
## A.4 Verify gate(per self-verify.md 4 階段)
|
|
90
|
+
|
|
91
|
+
| Layer | Cmd | PASS criteria |
|
|
92
|
+
|---|---|---|
|
|
93
|
+
| TypeScript | `npx tsc -b` | 0 errors |
|
|
94
|
+
| Content | `node scripts/audit-content-quality.mjs --check` | ✅ No content drift |
|
|
95
|
+
| Canonical | `node scripts/extract-canonical-rules.mjs` | ✅ All extracted rule keywords covered |
|
|
96
|
+
| Component invariants | `node scripts/data-table-invariants.mjs`(若觸動 DataTable)| PASS |
|
|
97
|
+
| Visual | `/visual-audit --scope=changed` | playwright snapshot diff Δ < 0.1% |
|
|
98
|
+
| Pixel-quantified | M32 audit(若動 alignment / spacing)| `rect.top / left / height` numeric verify |
|
|
99
|
+
|
|
100
|
+
任一 FAIL → STOP,不可進 Phase B。
|
|
101
|
+
|
|
102
|
+
## A complete output
|
|
103
|
+
|
|
104
|
+
```markdown
|
|
105
|
+
# Phase A 完成
|
|
106
|
+
|
|
107
|
+
## Findings(全 dim per design-system-audit SSOT)
|
|
108
|
+
- P0: <N> 項
|
|
109
|
+
- P1: <M> 項
|
|
110
|
+
- P2: <K> 項
|
|
111
|
+
|
|
112
|
+
## SSOT-UI/UX(待 user 拍板,中文人話 propose)
|
|
113
|
+
<決策 1-N per triage-rubric.md format>
|
|
114
|
+
|
|
115
|
+
## Autonomous landed(commit <hash>)
|
|
116
|
+
- <N> 項 spec / hook / story / code 修正
|
|
117
|
+
- file:line diff link
|
|
118
|
+
|
|
119
|
+
## 不 verify 但 Phase A 結論
|
|
120
|
+
- <列出僅 grep 看到但未跑 visual 的 case>
|
|
121
|
+
|
|
122
|
+
→ 等 user 拍板 SSOT-UI/UX 後 → 進 Phase B
|
|
123
|
+
```
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Phase B — Codex parallel audit + 比稿辯論
|
|
2
|
+
|
|
3
|
+
## B.0 Transport discovery(per codex-collab/SKILL.md Step 0.4)
|
|
4
|
+
|
|
5
|
+
3-test 順序固定:
|
|
6
|
+
```bash
|
|
7
|
+
ls -la node_modules/.bin/codex && node_modules/.bin/codex --version # 1 Local CLI(canonical)
|
|
8
|
+
which codex 2>/dev/null && codex --version 2>/dev/null # 2 Global(罕見)
|
|
9
|
+
ls -la ~/.codex/auth.json # 3 Auth(sanity)
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
**Decision**:1 ✅ → local CLI / 1 ❌ + 2 ✅ → global / 1+2 ❌ + 3 ✅ → `npm install` / 全 ❌ → 報 user。**禁 Explore agent 替身**(M31)。
|
|
13
|
+
|
|
14
|
+
## B.0.1 — Exec invocation(2026-05-30 bypass-parity,user-authorized;取代 audit-verify 場景的舊 `exec -s read-only`)
|
|
15
|
+
|
|
16
|
+
**Why**:`-s read-only` 只能 grep/read,跑不了 tsc/playwright/.mjs → verify 不對稱(Claude 機械驗、codex 只目測)違反 M31 Step 2「不可只一方 verify」。bypass 讓 codex 做**跟 Claude 一模一樣**的機械驗證。
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
node_modules/.bin/codex exec \
|
|
20
|
+
--dangerously-bypass-approvals-and-sandbox \ # user-authorized;codex shell 可跑 audit script
|
|
21
|
+
--skip-git-repo-check -C "$PWD" \ # 同 repo root → 同 spec.md / scripts / node_modules
|
|
22
|
+
-c model_reasoning_effort=low \ # 避大 brief plan-turn 燒 budget(per memory Rule 3)
|
|
23
|
+
--output-last-message /tmp/codex-phaseB.md \ # 截 verdict artifact 供 Step 4.5 diff
|
|
24
|
+
< brief.md > /tmp/codex-phaseB.log 2>&1 &
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**安全護欄(bypass 解鎖 shell 但仍禁寫源)**:
|
|
28
|
+
- Brief 必含「**禁 edit / delete / write `packages/design-system/src/**` 及任何 DS 源**;只跑唯讀 audit script + grep + Playwright screenshot」。
|
|
29
|
+
- **每次 bypass 需 user explicit authorize**(anti-pattern:AI 自動 bypass 不問,per `memory/feedback_codex_exec_transport_canonical`)。
|
|
30
|
+
- codex 截圖寫 `/tmp/codex-screenshots/`(不污染 repo)。
|
|
31
|
+
- 純讀 / cite-only 場景(非 audit-verify)仍用 `-s read-only`(bypass 只給「需跑 script 才能機械驗」的 Phase B verify)。
|
|
32
|
+
|
|
33
|
+
## B.1 Brief template
|
|
34
|
+
|
|
35
|
+
⚠️ **Faithful relay invariant**(M31 Step 0.05,user-verbatim,不可只送 paraphrase):
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
## User 原話(verbatim)
|
|
39
|
+
「<user 在本 session 對 deep audit 的原話 quote,中英 / 符號 / 圖文 ref 全保>」
|
|
40
|
+
|
|
41
|
+
## Claude Phase A 結果摘要
|
|
42
|
+
|
|
43
|
+
### 全盤閱讀
|
|
44
|
+
- 讀完:CLAUDE.md / 31 active M-rules / spec.md ×<N> / tokens / patterns / memory active
|
|
45
|
+
|
|
46
|
+
### 全 dim NO-SAMPLE deep audit findings
|
|
47
|
+
- P0: <列具體 file:line + 違反 spec / rule>
|
|
48
|
+
- P1: <同>
|
|
49
|
+
- P2: <同>
|
|
50
|
+
|
|
51
|
+
### SSOT-UI/UX 已 ASK user
|
|
52
|
+
- <列 N 項>
|
|
53
|
+
|
|
54
|
+
### Autonomous landed
|
|
55
|
+
- <列 N 項 file:line + commit hash>
|
|
56
|
+
|
|
57
|
+
### Phase A 結論(不 verify 但抓到)
|
|
58
|
+
- <列 grep 看到 / suspect drift / 未跑 visual>
|
|
59
|
+
|
|
60
|
+
## 你的任務(Phase B,獨立)
|
|
61
|
+
|
|
62
|
+
1. **全盤閱讀**(per A.0 file list,不 sample):
|
|
63
|
+
- CLAUDE.md / `.claude/rules/*` / `.claude/references/*`
|
|
64
|
+
- `packages/design-system/src/**/*.spec.md` 全部(brief-gen 時跑 `find packages/design-system/src -name '*.spec.md' | wc -l` 取真數,當前 ~83,禁硬寫)
|
|
65
|
+
- `packages/design-system/src/tokens/**/*.spec.md` + `packages/design-system/src/patterns/**/*.spec.md`
|
|
66
|
+
- `~/.claude/.../memory/MEMORY.md` index + active project memory
|
|
67
|
+
|
|
68
|
+
2. **全 dim deep audit NO-SAMPLE**(對齊 `.claude/skills/design-system-audit/SKILL.md` Group A-Q 全 dim):
|
|
69
|
+
- **live dim 清單由 Claude brief-gen 時注入**:跑 `node scripts/dispatch-audit-dims.mjs --summary` 把編號 / batch 貼進 brief,並要求 codex **自己再跑一次自確認**(read-only 跑不了 → 用 bypass 跑;禁硬寫 dim 數字,per SKILL.md SSOT-integrity invariant)
|
|
70
|
+
- 每 dim 全 DS-wide 掃,禁 sample top N
|
|
71
|
+
- **機械維度 codex 自己跑**(bypass sandbox,做跟 Claude 一樣的事):`npx tsc -b` / `node scripts/audit-content-quality.mjs --check` / 相關 `node scripts/*-invariants.mjs` / Playwright screenshot(sequential navigate→wait→screenshot→evaluate,per memory Rule 2,禁 batch unsafe)。**貼每個 command 的 literal stdout 當 cite**;真跑不了的(帳號 / 網路 scoped)明標「mechanical-uncoverable, eyeball-only」讓 Claude B.2 補跑
|
|
72
|
+
- 每 finding 必 cite: <file:line> + <quote> + <違反 spec / rule>
|
|
73
|
+
|
|
74
|
+
3. **整理完整報告**(P0 / P1 / P2 分類):
|
|
75
|
+
```
|
|
76
|
+
### Codex Phase B audit
|
|
77
|
+
- P0: <list>
|
|
78
|
+
- P1: <list>
|
|
79
|
+
- P2: <list>
|
|
80
|
+
|
|
81
|
+
### 跟 Claude Phase A 對照
|
|
82
|
+
- Claude 抓 + 你不同意:<list + cite>
|
|
83
|
+
- 你抓 + Claude 漏:<list + cite>
|
|
84
|
+
- 兩邊都漏的盲區:<list + cite>
|
|
85
|
+
|
|
86
|
+
### 真理由 disagreement(必 cite battle)
|
|
87
|
+
- <題 1>: Claude 立場 / 你立場 / spec.md path:line 引文 / world-class ≥3 家對照
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
4. **禁**:
|
|
91
|
+
- frame 答案進 Claude 思路(不可 paraphrase Claude 結論)
|
|
92
|
+
- sample / heavy agent skip(NO-SAMPLE STRICT)
|
|
93
|
+
- pass-through 共識(必獨立 own report)
|
|
94
|
+
- 直接給 user verdict(共識由 Claude Phase B.5 synthesize)
|
|
95
|
+
|
|
96
|
+
## 請獨立解讀 user 原話(per M31 Step 0.05)
|
|
97
|
+
|
|
98
|
+
User 原話可能跟我 paraphrase 不同。請以「你直接看 user 原話該怎麼解讀」為主,
|
|
99
|
+
不要被 Claude 結論 frame。如果 user 想要的方向你判斷跟我不同,直接寫出來。
|
|
100
|
+
|
|
101
|
+
## Cite invariant(M22)
|
|
102
|
+
|
|
103
|
+
每 claim 必附 inline cite:URL / GitHub source path + line / screenshot ref。
|
|
104
|
+
無 cite = unverified rumor,自動降 P2 「pending verification」。
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## B.2 Step 4 self-check 必過(M22/M23/M27→M23(c)/M8)
|
|
108
|
+
|
|
109
|
+
對 codex reply 跑 4 題:
|
|
110
|
+
|
|
111
|
+
| # | Check | 失敗 → |
|
|
112
|
+
|---|---|---|
|
|
113
|
+
| 1 | M22 cite check — codex 引的 benchmark 有 inline URL / GitHub line? | reply 要求補 cite |
|
|
114
|
+
| 2 | M23 DS-first — codex 建議是否覆蓋 DS 既有 canonical(spec.md / token / variant)? | 必 grep verify DS 既有,有命中 → 拒絕 codex / 修正 |
|
|
115
|
+
| 3 | M23(c) prop namespace — codex prop name 是否撞 DS 既有? | wrap-and-rename |
|
|
116
|
+
| 4 | M8 ≥3 source — codex 只引 1 家? | reply 要求補到 3 家 |
|
|
117
|
+
|
|
118
|
+
## B.3 Step 4.5 Verify each claim(anti-pass-through)
|
|
119
|
+
|
|
120
|
+
逐條 codex finding 過:
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
Finding N: <codex claim 一句話>
|
|
124
|
+
|
|
125
|
+
Verify:
|
|
126
|
+
1. Grep DS-internal: rg "<keyword>" src/ → <hit / miss + 行號>
|
|
127
|
+
2. WebFetch external(若 cite world-class): URL → <真 quote 對照>
|
|
128
|
+
3. Run invariant script(若 codex 給數字): bash <script> → <實 value vs codex value>
|
|
129
|
+
4. Counter-example scan: grep <pattern> DS-wide → <反例 / 無>
|
|
130
|
+
|
|
131
|
+
Verdict: ✅ verified / ❌ FALSE / ⚠️ partial
|
|
132
|
+
Reasoning: <一句話>
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
## B.4 Cite battle template
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
Disagreement N: <topic>
|
|
139
|
+
|
|
140
|
+
| Side | Position | Cite | Quote |
|
|
141
|
+
|---|---|---|---|
|
|
142
|
+
| Claude Phase A | <stance> | <file:line / URL> | 「<quote>」 |
|
|
143
|
+
| Codex Phase B | <stance> | <file:line / URL> | 「<quote>」 |
|
|
144
|
+
|
|
145
|
+
WebFetch external:
|
|
146
|
+
- Polaris: <URL> → 「<quote>」
|
|
147
|
+
- Material: <URL> → 「<quote>」
|
|
148
|
+
- Atlassian: <URL> → 「<quote>」
|
|
149
|
+
|
|
150
|
+
Verdict: <Claude / Codex / Both / STOP-ask-user>
|
|
151
|
+
Reasoning: <cite + world-class consensus + DS internal canonical alignment>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
## B.5 Step 5 比稿 matrix(per finding)
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
| Finding | Claude v1 | Codex v1 | Verdict | Final synthesized |
|
|
158
|
+
|---|---|---|---|---|
|
|
159
|
+
| <N> | <stance> | <stance> | ✅ accept C / ✅ accept C+ / ✅ accept Claude / 修正 = synthesize / 重啟 | <final 方案> |
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
**禁** pass-through 直接 paste codex / 「兩邊都對」打太極 / vote without cite。
|
|
163
|
+
|
|
164
|
+
## Phase B complete output
|
|
165
|
+
|
|
166
|
+
```markdown
|
|
167
|
+
# Phase B 完成
|
|
168
|
+
|
|
169
|
+
## Codex independent findings(NO-SAMPLE)
|
|
170
|
+
- P0: <N> / P1: <M> / P2: <K>
|
|
171
|
+
|
|
172
|
+
## 比稿結果
|
|
173
|
+
- Claude 抓 + Codex 漏: <list>
|
|
174
|
+
- Codex 抓 + Claude 漏: <list>(這些是 Phase A 漏掉的盲區!)
|
|
175
|
+
- Cite battle resolved: <K 題,各題 verdict>
|
|
176
|
+
- Cite battle deferred(evidence 對等): <N 題,STOP 等 user>
|
|
177
|
+
|
|
178
|
+
## 共識 SSOT-UI/UX(中文人話 propose)
|
|
179
|
+
<決策 1-N per triage-rubric.md format>
|
|
180
|
+
|
|
181
|
+
## 共識 autonomous landed(commit <hash>)
|
|
182
|
+
- <N> 項
|
|
183
|
+
- file:line + diff link
|
|
184
|
+
|
|
185
|
+
→ 進 Phase C
|
|
186
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Skill 分工 + Anti-pattern + 世界級對照(deep-audit-cross-codex SKILL.md 抽出)
|
|
2
|
+
|
|
3
|
+
## 與其他 skill 分工
|
|
4
|
+
|
|
5
|
+
| Skill | Scope | 不重疊 |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| `/design-system-audit --deep` | 全 dim Claude solo audit | 本 skill chain 為 Phase A.1,額外 Phase B + 全盤閱讀 preflight + 比稿辯論 |
|
|
8
|
+
| `/codex-collab` | M31 5-step dual-track for **任意題目** | 本 skill chain 為 Phase B,額外 Phase A 前置 + 全 dim 完整覆蓋(per design-system-audit SSOT) + Phase C 共識 commit |
|
|
9
|
+
| `/propose-options` | M18 4-Q gate single propose | 本 skill A.2 / B.5 chain 用它格式化 propose |
|
|
10
|
+
| `/ensure-canonical` | M19 5-layer auto-pipeline | 本 skill A.3 / B.5 chain 用它落地 canonical |
|
|
11
|
+
| `/knowledge-prune` | 治理文件冗贅清 | **Transitively chained**:Phase A.1 chain `/design-system-audit --deep` → Phase 4.5 auto-chain `/knowledge-prune`(per `design-system-audit/SKILL.md:334-340` 9-trigger 條件)。SSOT 透過 `Skill` tool 直接 invoke,**不**重寫 prune logic / **不**複製 phase。Mechanical signal:`check_audit_post_report_validator.sh:81` emit `prune-chain-trigger` → `inject_pending_self_audit.sh` parse `.claude/logs/audit-post-report-validator.jsonl` → next-turn inject directive |
|
|
12
|
+
| `/bug-fix-rhythm` | surgical visual bug 修 | 正交,本 skill 是 broad sweep;surgical bug 不該觸發本 skill |
|
|
13
|
+
|
|
14
|
+
## Anti-pattern(永久 ban)
|
|
15
|
+
|
|
16
|
+
- ❌ Skip A.0 全盤閱讀(憑記憶判斷哪些 spec 該讀)
|
|
17
|
+
- ❌ A.1 sub-agent prompt 含「sample top N」/「heavy agent skip」escape
|
|
18
|
+
- ❌ A.2 propose 用 jargon(L1-L7 / SSOT / canonical 在 propose 內裸用)
|
|
19
|
+
- ❌ 跳 Phase B 只跑 Phase A(除非 codex transport 全失敗 + user 同意)
|
|
20
|
+
- ❌ B.2 收 codex reply 直接 paste 給 user(pass-through,M31 Step 4.5 verify 跳)
|
|
21
|
+
- ❌ B.4 disagreement 用直覺 vote / 「兩邊都對」打太極(cite battle invariant)
|
|
22
|
+
- ❌ C.2 AI 自決 merge main(M28 violation)
|
|
23
|
+
- ❌ Phase A 完成沒等 user 拍板 SSOT-UI/UX 就進 Phase B(scope 跑掉)
|
|
24
|
+
|
|
25
|
+
## 世界級對照
|
|
26
|
+
|
|
27
|
+
- **RFC 學術同儕審查**:作者 v1 + reviewer v2(獨立)+ public cite battle 收斂共識
|
|
28
|
+
- **Linux kernel patch review**:Maintainer first-pass + lkml mailing list 二 review + cite source 比稿
|
|
29
|
+
- **Google ML eng-design-review**:proposer + adversarial reviewer + structured disagreement protocol
|
|
30
|
+
- **Anthropic constitutional AI critic + revise**:同 model 不同 prompt 互審 → 本 skill 升級成跨 model
|