@cyberskill/design 1.0.0 → 1.1.0
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/DESIGN.md +10 -9
- package/README.md +31 -28
- package/SKILL.md +13 -9
- package/VERSION +1 -1
- package/_ds_bundle.js +660 -202
- package/_ds_manifest.json +1 -1
- package/_esm/cs.mjs +14 -8
- package/_esm/react.d.ts +216 -0
- package/_esm/react.mjs +114 -0
- package/base/collections.css +31 -0
- package/base/components.css +3 -0
- package/base/data.css +33 -0
- package/base/forms.css +8 -0
- package/base/interaction.css +1 -0
- package/base/typography.css +6 -0
- package/components/_i18n/strings.js +8 -4
- package/components/ai/ai-conversation.card.html +2 -2
- package/components/ai/ai-lumi.card.html +2 -2
- package/components/ai/ai.card.html +2 -2
- package/components/brand/brand.card.html +2 -2
- package/components/button/buttons.card.html +2 -2
- package/components/data/AspectRatio.d.ts +16 -0
- package/components/data/AspectRatio.figma.tsx +12 -0
- package/components/data/AspectRatio.jsx +16 -0
- package/components/data/AspectRatio.prompt.md +7 -0
- package/components/data/Collapsible.d.ts +21 -0
- package/components/data/Collapsible.figma.tsx +12 -0
- package/components/data/Collapsible.jsx +49 -0
- package/components/data/Collapsible.prompt.md +7 -0
- package/components/data/Image.d.ts +4 -0
- package/components/data/Image.prompt.md +2 -2
- package/components/data/Item.d.ts +26 -0
- package/components/data/Item.figma.tsx +12 -0
- package/components/data/Item.jsx +63 -0
- package/components/data/Item.prompt.md +10 -0
- package/components/data/ScrollArea.d.ts +16 -0
- package/components/data/ScrollArea.figma.tsx +12 -0
- package/components/data/ScrollArea.jsx +25 -0
- package/components/data/ScrollArea.prompt.md +7 -0
- package/components/data/collections.card.html +15 -4
- package/components/data/data.card.html +15 -4
- package/components/datatable/datatable.card.html +2 -2
- package/components/dialog/dialog.card.html +2 -2
- package/components/feedback/feedback-2.card.html +2 -2
- package/components/feedback/feedback.card.html +2 -2
- package/components/forms/Cascader.jsx +5 -3
- package/components/forms/Editor.prompt.md +1 -1
- package/components/forms/InputGroup.d.ts +4 -0
- package/components/forms/InputGroup.jsx +38 -8
- package/components/forms/InputGroup.prompt.md +3 -3
- package/components/forms/NativeSelect.d.ts +22 -0
- package/components/forms/NativeSelect.figma.tsx +12 -0
- package/components/forms/NativeSelect.jsx +56 -0
- package/components/forms/NativeSelect.prompt.md +10 -0
- package/components/forms/NumberField.d.ts +5 -0
- package/components/forms/NumberField.jsx +51 -7
- package/components/forms/NumberField.prompt.md +2 -2
- package/components/forms/SegmentedControl.jsx +1 -1
- package/components/forms/TagInput.d.ts +3 -0
- package/components/forms/TagInput.jsx +62 -20
- package/components/forms/TagInput.prompt.md +2 -2
- package/components/forms/forms-2.card.html +2 -2
- package/components/forms/forms.card.html +5 -4
- package/components/icon/Icon.prompt.md +1 -1
- package/components/icon/icon.card.html +2 -2
- package/components/logo/Logo.jsx +2 -1
- package/components/logo/logo.card.html +2 -2
- package/components/navigation/Menu.jsx +14 -1
- package/components/navigation/navigation.card.html +2 -2
- package/components/navigation/shell.card.html +2 -2
- package/components/overlays/AlertDialog.d.ts +29 -0
- package/components/overlays/AlertDialog.figma.tsx +12 -0
- package/components/overlays/AlertDialog.jsx +142 -0
- package/components/overlays/AlertDialog.prompt.md +12 -0
- package/components/overlays/Drawer.jsx +1 -1
- package/components/overlays/Popconfirm.jsx +14 -1
- package/components/overlays/Popover.jsx +14 -1
- package/components/overlays/alertdialog.card.html +42 -0
- package/components/overlays/overlays.card.html +2 -2
- package/components/textfield/textfield.card.html +2 -2
- package/docs/benchmark-rubric.md +46 -0
- package/docs/ci-cd.md +17 -11
- package/docs/consumer-grant.md +37 -0
- package/docs/consuming.md +45 -16
- package/docs/contrast-report.md +91 -103
- package/docs/conventions.md +12 -9
- package/docs/decisions.md +33 -10
- package/docs/deploy.md +1 -1
- package/docs/design-styles.md +26 -8
- package/docs/figma.md +3 -3
- package/docs/live-hub.md +5 -3
- package/docs/products.md +13 -11
- package/docs/quality-gates.md +35 -21
- package/docs/release-notes.md +13 -3
- package/docs/status/assets/favicon.svg +5 -0
- package/docs/status/assets/status-legacy.css +399 -0
- package/docs/status/assets/status-legacy.js +505 -0
- package/docs/status/assets/status.css +644 -0
- package/docs/status/assets/status.js +1308 -0
- package/docs/status/data/status-feed.json +1 -0
- package/docs/status/data/task/TASK-REL-001.js +1 -0
- package/docs/status/index.html +45 -0
- package/docs/status/roadmap.html +4 -0
- package/docs/status/status-legacy.html +121 -0
- package/docs/storybook.md +5 -4
- package/docs/sync.md +3 -2
- package/docs/tasks/BACKLOG.md +25 -0
- package/docs/tasks/release/TASK-REL-001-launch-1-1-0/spec.md +55 -0
- package/docs/template-schema-v2.md +15 -3
- package/docs/vi/benchmark-rubric.md +46 -0
- package/docs/vi/ci-cd.md +17 -11
- package/docs/vi/consumer-grant.md +37 -0
- package/docs/vi/consuming.md +45 -16
- package/docs/vi/contrast-report.md +94 -106
- package/docs/vi/conventions.md +12 -9
- package/docs/vi/decisions.md +33 -10
- package/docs/vi/deploy.md +1 -1
- package/docs/vi/design-styles.md +26 -8
- package/docs/vi/figma.md +3 -3
- package/docs/vi/live-hub.md +5 -3
- package/docs/vi/products.md +13 -11
- package/docs/vi/quality-gates.md +35 -21
- package/docs/vi/release-notes.md +18 -8
- package/docs/vi/storybook.md +5 -4
- package/docs/vi/sync.md +3 -2
- package/docs/vi/template-schema-v2.md +15 -3
- package/docs/viewer.html +2 -2
- package/fonts/spacegrotesk-var-latin-ext.woff2 +0 -0
- package/fonts/spacegrotesk-var-latin.woff2 +0 -0
- package/fonts/spacegrotesk-var-vietnamese.woff2 +0 -0
- package/guidelines/atomic-view.html +40 -27
- package/guidelines/elements-geometry.html +69 -0
- package/guidelines/elements-variants.html +17 -17
- package/guidelines/type-families.html +16 -10
- package/llms.txt +17 -11
- package/package.json +38 -16
- package/styles.css +1 -0
- package/templates/ai-cluster-demo.html +29 -14
- package/templates/app-shell/support.js +4 -4
- package/templates/article/content-schema.json +6 -0
- package/templates/article/support.js +4 -4
- package/templates/auth/support.js +4 -4
- package/templates/bod-deck/support.js +4 -4
- package/templates/bod-investor-update/support.js +4 -4
- package/templates/bod-memo/support.js +4 -4
- package/templates/bod-minutes/content-schema.json +12 -0
- package/templates/bod-minutes/support.js +4 -4
- package/templates/bod-report/support.js +4 -4
- package/templates/bod-resolution/support.js +4 -4
- package/templates/culture-event-invite/support.js +4 -4
- package/templates/dashboard/support.js +4 -4
- package/templates/delivery-change-note/support.js +4 -4
- package/templates/delivery-kickoff/support.js +4 -4
- package/templates/delivery-qbr-deck/support.js +4 -4
- package/templates/delivery-runbook/content-schema.json +6 -0
- package/templates/delivery-runbook/support.js +4 -4
- package/templates/delivery-status-email/support.js +4 -4
- package/templates/doc-style-guide/DocStyleGuide.dc.html +2 -2
- package/templates/doc-style-guide/support.js +4 -4
- package/templates/doc-suite-index/support.js +4 -4
- package/templates/doc-templates/DocTemplates.dc.html +1 -1
- package/templates/doc-templates/support.js +4 -4
- package/templates/email/support.js +4 -4
- package/templates/email-safe/README.md +17 -4
- package/templates/email-safe/email-launch.html +3 -3
- package/templates/email-safe/email-newsletter.html +1 -1
- package/templates/finance-dunning-email/support.js +4 -4
- package/templates/finance-expense-report/support.js +4 -4
- package/templates/finance-invoice/support.js +4 -4
- package/templates/finance-quote/support.js +4 -4
- package/templates/hr-announcement/support.js +4 -4
- package/templates/hr-interview-kit/content-schema.json +12 -0
- package/templates/hr-interview-kit/support.js +4 -4
- package/templates/hr-offboarding/content-schema.json +12 -0
- package/templates/hr-offboarding/support.js +4 -4
- package/templates/hr-performance-review/content-schema.json +12 -0
- package/templates/hr-performance-review/support.js +4 -4
- package/templates/hr-pip/content-schema.json +12 -0
- package/templates/hr-pip/support.js +4 -4
- package/templates/legal-msa/content-schema.json +16 -0
- package/templates/legal-msa/support.js +4 -4
- package/templates/legal-sow/support.js +4 -4
- package/templates/marketing-campaign-brief/support.js +4 -4
- package/templates/marketing-case-study/support.js +4 -4
- package/templates/marketing-launch/support.js +4 -4
- package/templates/marketing-newsletter/support.js +4 -4
- package/templates/marketing-page/content-schema.json +0 -1
- package/templates/marketing-page/support.js +4 -4
- package/templates/marketing-press-release/support.js +4 -4
- package/templates/marketing-social-kit/support.js +4 -4
- package/templates/playground.html +8 -4
- package/templates/sales-one-pager/support.js +4 -4
- package/templates/sales-proposal-deck/support.js +4 -4
- package/templates/settings/Settings.dc.html +26 -14
- package/templates/settings/content-schema.json +36 -0
- package/templates/settings/support.js +4 -4
- package/templates/slide-deck/support.js +4 -4
- package/templates/team-meeting-agenda/content-schema.json +16 -0
- package/templates/team-meeting-agenda/support.js +4 -4
- package/templates/tech-incident-report/support.js +4 -4
- package/templates/tech-release-notes/support.js +4 -4
- package/templates/tech-retro/content-schema.json +12 -0
- package/templates/tech-retro/support.js +4 -4
- package/templates/tech-rfc/content-schema.json +6 -0
- package/templates/tech-rfc/support.js +4 -4
- package/templates/vn-appointment-transfer/support.js +4 -4
- package/templates/vn-certificate-of-employment/support.js +4 -4
- package/templates/vn-code-of-conduct/support.js +4 -4
- package/templates/vn-compensation-regulation/support.js +4 -4
- package/templates/vn-contract-amendment/support.js +4 -4
- package/templates/vn-contractor-agreement/support.js +4 -4
- package/templates/vn-data-protection-policy/support.js +4 -4
- package/templates/vn-disciplinary-case-file/support.js +4 -4
- package/templates/vn-disciplinary-schedule/content-schema.json +15 -0
- package/templates/vn-disciplinary-schedule/support.js +4 -4
- package/templates/vn-employee-request/support.js +4 -4
- package/templates/vn-exit-handover/support.js +4 -4
- package/templates/vn-foreign-employee-pack/support.js +4 -4
- package/templates/vn-grassroots-democracy/support.js +4 -4
- package/templates/vn-infosec-policy/support.js +4 -4
- package/templates/vn-internal-labor-regulations/support.js +4 -4
- package/templates/vn-internship-agreement/support.js +4 -4
- package/templates/vn-job-description/support.js +4 -4
- package/templates/vn-labor-contract/support.js +4 -4
- package/templates/vn-labour-management-book/content-schema.json +15 -0
- package/templates/vn-labour-management-book/support.js +4 -4
- package/templates/vn-mutual-nda/support.js +4 -4
- package/templates/vn-ndnca-ip/support.js +4 -4
- package/templates/vn-offer-letter/support.js +4 -4
- package/templates/vn-onboarding-checklist/support.js +4 -4
- package/templates/vn-pdpl-consent/support.js +4 -4
- package/templates/vn-performance-evaluation-regulation/support.js +4 -4
- package/templates/vn-performance-review-form/support.js +4 -4
- package/templates/vn-phantom-stock/support.js +4 -4
- package/templates/vn-probation-contract/support.js +4 -4
- package/templates/vn-receipt-acknowledgement/content-schema.json +15 -0
- package/templates/vn-receipt-acknowledgement/support.js +4 -4
- package/templates/vn-remote-work-policy/support.js +4 -4
- package/templates/vn-resignation-letter/support.js +4 -4
- package/templates/vn-salary-scale/content-schema.json +15 -0
- package/templates/vn-salary-scale/support.js +4 -4
- package/templates/vn-sow-appendix/support.js +4 -4
- package/templates/vn-termination-decision/support.js +4 -4
- package/templates/vn-total-rewards-appendix/support.js +4 -4
- package/templates/vn-training-commitment/support.js +4 -4
- package/templates/vn-travel-expense-policy/support.js +4 -4
- package/tokens/element-seeds.json +112 -0
- package/tokens/elements.css +274 -187
- package/tokens/fonts.css +12 -3
- package/tokens/native/CSTokens.kt +84 -68
- package/tokens/native/CSTokens.swift +84 -68
- package/tokens/native/cs_tokens.dart +84 -68
- package/tokens/provenance.json +9 -9
- package/tokens/styles.css +15 -0
- package/tokens/tokens.dtcg.json +258 -233
- package/tokens/tokens.js +168 -167
- package/tokens/tokens.json +167 -166
- package/tokens/typography.css +9 -1
- package/ui_kits/status-hub/README.md +1 -2
- package/ui_kits/status-hub/index.html +2 -2
- package/ui_kits/status-hub/settings.html +6 -3
- package/ui_kits/website/chat.html +2 -2
- package/ui_kits/website/index.html +2 -2
- package/ui_kits/status-hub/identity-lab.html +0 -134
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"project":"design-system","version":"1.1.0","feed":1,"snapshot":"2026-07-27","head":"5dd1620","coverageAsOf":"5dd1620","branch":"main","repoUrl":"https://github.com/cyberskill-official/design-system","tags":["v1.5.0","v1.5.1"],"statuses":["draft","ready_to_implement","implementing","ready_to_review","reviewing","ready_to_test","testing","done","on_hold","closed","cannot_reproduce","duplicate"],"specBase":"../tasks/","rule":"Every change introduced by a commit must be linked to one or more tasks and reflected on the Status page and in the Release Notes. No exceptions.","enforcement":"Advisory today (commit-msg hook + CI range check). Ledger at docs/tasks/_state/commit-links.yaml for retroactive fixes.","tasks":[{"i":"TASK-REL-001","k":"release/TASK-REL-001-launch-1-1-0","t":"LAUNCH design system at VERSION 1.1.0","m":"release","c":"feature","p":"p0","s":"done","b":"done","ph":"","o":"","cr":"2026-07-27","sh":null,"e":null,"d":[],"bl":[],"rl":[],"sm":"Owner said LAUNCH and set the release to 1.1.0. The pre-LAUNCH pin at 1.0.0 is lifted for this cut only; further bumps still need an explicit owner instruction. No CHANGELOG.md — continuity stays tip SHA + curated…","pg":null}],"modules":[{"id":"release","kind":"","total":1,"done":1,"active":0,"hold":0,"draft":0,"r":18,"x":490,"y":315}],"medges":[],"phases":[],"releases":[{"v":"0.1.0","d":"2026-07-27","notes":{"features":[],"fixes":[],"improvements":[{"x":"CyberOS initialised: task workflow vendored to .cyberos/, backlog at docs/tasks/BACKLOG.md, status page at docs/status/.","ids":[]}]},"cov":{"commits":[],"linked":0,"exempt":0,"unlinked":0}}],"unreleased":{"notes":{"features":[],"fixes":[],"improvements":[]},"cov":{"commits":[{"h":"5dd1620","d":"2026-07-27","s":"chore(cyberos): upgrade to 1.12.0 - status v3 + traceability (TASK-DOCS-027)","ids":["TASK-DOCS-027"],"k":"linked"},{"h":"8d3fe6b","d":"2026-07-26","s":"Move host and CDN to React 19.2.8 via umd-react globals. (#62)","ids":[],"k":"unlinked"},{"h":"802ec29","d":"2026-07-26","s":"Bump GitHub Actions majors (checkout 7, setup-node 7, cache 6, upload-artifact 7). (#61)","ids":[],"k":"unlinked"},{"h":"3e2dd0e","d":"2026-07-26","s":"Behavior gate 53→78 — cover all interactive primaries (#60)","ids":[],"k":"unlinked"},{"h":"9c4be64","d":"2026-07-26","s":"Retune 30 element sets; deepen behavior, playground, and a11y gates (#59)","ids":[],"k":"unlinked"},{"h":"d37b362","d":"2026-07-26","s":"Retire Identity Lab; deepen variants, behavior, and open-state axe (#58)","ids":[],"k":"unlinked"},{"h":"9f5845a","d":"2026-07-26","s":"Harden CSF fixtures against .d.ts props the static contract missed. (#57)","ids":[],"k":"unlinked"},{"h":"7e1f121","d":"2026-07-26","s":"Harden CSF honesty: real props, args⊆argTypes, audit card counts. (#56)","ids":[],"k":"unlinked"},{"h":"6fbcada","d":"2026-07-26","s":"Merge pull request #55 from cyberskill-official/cursor/csf-counts-residual-8c7e","ids":[],"k":"exempt"},{"h":"e2a136c","d":"2026-07-26","s":"Fix StatusIndicator CSF honesty and residual count drift.","ids":[],"k":"unlinked"},{"h":"ddfe4ae","d":"2026-07-26","s":"Merge pull request #54 from cyberskill-official/cursor/element-packs-ci-wire-8c7e","ids":[],"k":"exempt"},{"h":"4d4c41c","d":"2026-07-26","s":"Wire element-pack generation into token regen CI.","ids":[],"k":"unlinked"},{"h":"20c6191","d":"2026-07-26","s":"Merge pull request #53 from cyberskill-official/cursor/storybook-react-10-5-4-8c7e","ids":[],"k":"exempt"},{"h":"2b970a8","d":"2026-07-26","s":"Align all Storybook packages to 10.5.4.","ids":[],"k":"unlinked"},{"h":"146b415","d":"2026-07-26","s":"chore(deps-dev): bump @storybook/react from 10.5.3 to 10.5.4","ids":[],"k":"unlinked"},{"h":"7053c5b","d":"2026-07-26","s":"Merge pull request #52 from cyberskill-official/cursor/axes-honesty-residual-8c7e","ids":[],"k":"exempt"},{"h":"b687286","d":"2026-07-26","s":"Note three-axis leftovers in audit index and README blacklist copy.","ids":[],"k":"unlinked"},{"h":"60db5cb","d":"2026-07-26","s":"Finish residual four-axis honesty and behavior-count drift.","ids":[],"k":"unlinked"},{"h":"fb87778","d":"2026-07-26","s":"Merge pull request #51 from cyberskill-official/cursor/release-notes-parity-polish-8c7e","ids":[],"k":"exempt"},{"h":"7ceea84","d":"2026-07-26","s":"Align four-axis honesty across docs, surfaces, and contracts.","ids":[],"k":"unlinked"},{"h":"b7aba05","d":"2026-07-26","s":"Merge pull request #50 from cyberskill-official/cursor/csf-honesty-system-theme-8c7e","ids":[],"k":"exempt"},{"h":"b21d044","d":"2026-07-26","s":"Fix dishonest CSF fixtures and add Storybook system theme.","ids":[],"k":"unlinked"},{"h":"494bef9","d":"2026-07-26","s":"Merge pull request #49 from cyberskill-official/cursor/waves-axe-fullmatrix-style-8c7e","ids":[],"k":"exempt"},{"h":"e325206","d":"2026-07-26","s":"Introduce Style axis (liquid-glass) and Identity Lab system theme.","ids":[],"k":"unlinked"},{"h":"2fd7e8a","d":"2026-07-26","s":"Docs: unit-tests job count is 10 after axe-coverage.","ids":[],"k":"unlinked"},{"h":"6dfe1d0","d":"2026-07-26","s":"Expand axe-smoke to every public primary with inventory lock.","ids":[],"k":"unlinked"},{"h":"018022a","d":"2026-07-26","s":"Require FullMatrix for every ≥1-axis Storybook primary.","ids":[],"k":"unlinked"},{"h":"b816ef9","d":"2026-07-26","s":"Harden Element colour geometry (OKLCH soft/middle/deep + benchmark rubric) (#48)","ids":[],"k":"unlinked"},{"h":"def9546","d":"2026-07-26","s":"Ship Wave 2: AlertDialog, Item, and NativeSelect end-to-end. (#47)","ids":[],"k":"unlinked"},{"h":"d18835c","d":"2026-07-26","s":"Ship Vite 8, harden token regen, and add ScrollArea/Collapsible/AspectRatio (#46)","ids":[],"k":"unlinked"},{"h":"ff9299d","d":"2026-07-25","s":"Refresh pixel baselines for Playwright 1.62 Chromium. (#45)","ids":[],"k":"unlinked"},{"h":"d30238c","d":"2026-07-25","s":"Merge pull request #35 from cyberskill-official/harden/inspection-backlog-batch-1-5","ids":[],"k":"exempt"},{"h":"727b14a","d":"2026-07-25","s":"Harden inspection backlog: pin VERSION in cs.mjs, expand axe, supply-chain hygiene.","ids":[],"k":"unlinked"},{"h":"3edeb13","d":"2026-07-25","s":"Display face: --cs-font-family-display + self-hosted Space Grotesk (#34)","ids":[],"k":"unlinked"},{"h":"49b7a4f","d":"2026-07-25","s":"Merge pull request #33 from cyberskill-official/cursor/phase-0-react-export","ids":[],"k":"exempt"},{"h":"aa5f197","d":"2026-07-25","s":"Address CodeRabbit review on React export contract docs and gates.","ids":[],"k":"unlinked"},{"h":"965e618","d":"2026-07-25","s":"Ship bundler-native React entry for Next/SSR consumers.","ids":[],"k":"unlinked"},{"h":"b85e8d5","d":"2026-07-24","s":"Merge pull request #32 from cyberskill-official/cursor/next-level-batches-2026-07-24","ids":[],"k":"exempt"},{"h":"c219a72","d":"2026-07-24","s":"Commit ubuntu-latest pixel baselines for newly anchored templates.","ids":[],"k":"unlinked"},{"h":"5adbf26","d":"2026-07-24","s":"Address CodeRabbit review on Compose wrapper docs and schema i18n.","ids":[],"k":"unlinked"},{"h":"5a58fd0","d":"2026-07-24","s":"Document Compose as Android Studio-first, not a fake CLI path.","ids":[],"k":"unlinked"},{"h":"3943c23","d":"2026-07-24","s":"Anchor app-shell, settings, and delivery-kickoff in pixel CI.","ids":[],"k":"unlinked"},{"h":"c40c92e","d":"2026-07-24","s":"Soft-skip Figma Variables CI when secrets are empty.","ids":[],"k":"unlinked"},{"h":"c0431be","d":"2026-07-24","s":"Cover remaining content-hole templates with schema sidecars.","ids":[],"k":"unlinked"},{"h":"98bffef","d":"2026-07-24","s":"Merge pull request #31 from cyberskill-official/cursor/deep-scan-next-steps","ids":[],"k":"exempt"},{"h":"5e8f464","d":"2026-07-24","s":"Prove registry consumer in CI and clear stale hub claims.","ids":[],"k":"unlinked"},{"h":"c8e8b23","d":"2026-07-24","s":"Merge pull request #30 from cyberskill-official/cursor/npm-first-consumer-release-notes","ids":[],"k":"exempt"},{"h":"f3db73f","d":"2026-07-24","s":"Document npm Trusted Publishing and ship first Lumi consumer.","ids":[],"k":"unlinked"},{"h":"6756734","d":"2026-07-24","s":"Merge pull request #29 from cyberskill-official/cursor/npm-disallow-tokens-docs-b2ec","ids":[],"k":"exempt"},{"h":"58fb29b","d":"2026-07-24","s":"Record npmjs disallow-tokens; treat CI publish as OIDC-only.","ids":[],"k":"unlinked"},{"h":"48f6648","d":"2026-07-24","s":"Merge pull request #28 from cyberskill-official/cursor/npm-consumer-grant-49c3","ids":[],"k":"exempt"},{"h":"1a1f4a4","d":"2026-07-24","s":"Record written npm consumer grant for CyberSkill portfolio.","ids":[],"k":"unlinked"},{"h":"b3df1f5","d":"2026-07-24","s":"Merge pull request #27 from cyberskill-official/cursor/npm-trusted-publishing-e530","ids":[],"k":"exempt"},{"h":"8154813","d":"2026-07-24","s":"Switch npm CI publish to Trusted Publishing (OIDC).","ids":[],"k":"unlinked"},{"h":"0e1890e","d":"2026-07-24","s":"Merge pull request #26 from cyberskill-official/cursor/next-steps-npm-unlock-e530","ids":[],"k":"exempt"},{"h":"0e2750b","d":"2026-07-23","s":"Document npm unlock progress and consumer grant template.","ids":[],"k":"unlinked"},{"h":"63c9fa1","d":"2026-07-24","s":"Merge pull request #25 from cyberskill-official/cursor/rename-package-cyberskill-design-e530","ids":[],"k":"exempt"},{"h":"e60f772","d":"2026-07-23","s":"Rename npm package to @cyberskill/design and defer Code Connect.","ids":[],"k":"unlinked"},{"h":"601430b","d":"2026-07-24","s":"Merge pull request #24 from cyberskill-official/fix/unit-tests-playwright-subtree","ids":[],"k":"exempt"},{"h":"756291a","d":"2026-07-24","s":"ci: install Playwright Chromium for unit-tests subtree smoke.","ids":[],"k":"unlinked"},{"h":"fb69503","d":"2026-07-24","s":"Merge pull request #22 from cyberskill-official/chore/next-steps-products-lock","ids":[],"k":"exempt"},{"h":"59bb7ec","d":"2026-07-23","s":"Merge pull request #23 from cyberskill-official/cursor/pr-22-merge-preparation-c0b8","ids":[],"k":"exempt"},{"h":"82480e2","d":"2026-07-23","s":"docs: soften template-schema coverage claim in audit README.","ids":[],"k":"unlinked"},{"h":"6ba9b9e","d":"2026-07-24","s":"docs: lock product → element registry and close next-steps backlog.","ids":[],"k":"unlinked"},{"h":"1705488","d":"2026-07-24","s":"Merge pull request #19 from cyberskill-official/feat/storybook-element-toolbar-15","ids":[],"k":"exempt"},{"h":"6e76003","d":"2026-07-24","s":"Merge pull request #20 from cyberskill-official/feat/subtree-consume-and-gate-pass","ids":[],"k":"exempt"},{"h":"7b552e8","d":"2026-07-24","s":"Merge pull request #21 from cyberskill-official/feat/agent-routing-stitch-claude","ids":[],"k":"exempt"},{"h":"1305d1d","d":"2026-07-24","s":"Document Claude Code vs Stitch routing and soft-skip honesty.","ids":[],"k":"unlinked"},{"h":"fb3f16f","d":"2026-07-24","s":"Add subtree-consume smoke and fix gate pass flags for CI runners.","ids":[],"k":"unlinked"},{"h":"78ee1b0","d":"2026-07-24","s":"Expose all 15 Ngũ Hành packs in the Storybook Element toolbar.","ids":[],"k":"unlinked"},{"h":"335c711","d":"2026-07-24","s":"Merge pull request #18 from cyberskill-official/hub-polish-storybook-root","ids":[],"k":"exempt"},{"h":"bd3662c","d":"2026-07-23","s":"Commit frozen-animation Pixel CI baselines from ubuntu-latest.","ids":[],"k":"unlinked"},{"h":"78562e2","d":"2026-07-23","s":"Stabilize hard Pixel CI against runner flake.","ids":[],"k":"unlinked"},{"h":"e600033","d":"2026-07-23","s":"Document that Pixel CI baselines must come from ubuntu-latest.","ids":[],"k":"unlinked"},{"h":"0c4f3a1","d":"2026-07-23","s":"Commit Pixel CI baselines captured on ubuntu-latest.","ids":[],"k":"unlinked"},{"h":"ff068cf","d":"2026-07-23","s":"Upload CI-native pixel baselines when Pixel CI drifts.","ids":[],"k":"unlinked"},{"h":"2777c2f","d":"2026-07-23","s":"Regenerate Pixel CI baselines on Linux amd64.","ids":[],"k":"unlinked"},{"h":"066240b","d":"2026-07-23","s":"Fix hard Pixel CI with Linux baselines and address review nits.","ids":[],"k":"unlinked"},{"h":"21033f8","d":"2026-07-23","s":"Ship Storybook as the product root and harden hub quality gates.","ids":[],"k":"unlinked"},{"h":"d40c42b","d":"2026-07-23","s":"Merge pull request #17 from cyberskill-official/chore/wiring-gates-package-backlog","ids":[],"k":"exempt"},{"h":"70cb97b","d":"2026-07-23","s":"chore: wire gate board, package.json publish path, and backlog close-out","ids":[],"k":"unlinked"},{"h":"2e2d5e2","d":"2026-07-23","s":"Merge pull request #15 from cyberskill-official/feat/ship-paths-code-connect-npm-native","ids":[],"k":"exempt"},{"h":"48e2217","d":"2026-07-23","s":"Merge pull request #16 from cyberskill-official/docs/vietnamese-mirrors-parity","ids":[],"k":"exempt"},{"h":"45db39e","d":"2026-07-23","s":"chore: nudge CI after rebase onto main","ids":[],"k":"unlinked"},{"h":"272f525","d":"2026-07-23","s":"feat(sync): Code Connect stubs, npm publish path, native store scaffolds","ids":[],"k":"unlinked"},{"h":"8cb5a0b","d":"2026-07-23","s":"docs(i18n): Vietnamese docs mirrors, viewer toggle, lang-parity gate","ids":[],"k":"unlinked"},{"h":"9b6731d","d":"2026-07-23","s":"Merge pull request #11 from cyberskill-official/chore/hygiene-cx-xs-axe","ids":[],"k":"exempt"},{"h":"c0a7523","d":"2026-07-23","s":"Merge pull request #14 from cyberskill-official/feat/pixel-diff-advisory","ids":[],"k":"exempt"},{"h":"48983e3","d":"2026-07-23","s":"Merge pull request #13 from cyberskill-official/chore/storybook-10-csf","ids":[],"k":"exempt"},{"h":"da996ec","d":"2026-07-23","s":"Merge pull request #12 from cyberskill-official/fix/dark-contrast-hard-gate","ids":[],"k":"exempt"},{"h":"2fcb63a","d":"2026-07-23","s":"feat(audit): real Playwright pixel compare (advisory only)","ids":[],"k":"unlinked"},{"h":"500f115","d":"2026-07-23","s":"chore(storybook): upgrade to 10.5.3 and add AllSizes/States CSF bar","ids":[],"k":"unlinked"},{"h":"56421b2","d":"2026-07-23","s":"fix(a11y): dark CTA contrast fixes and hard theme-overflow contrast","ids":[],"k":"unlinked"},{"h":"998addc","d":"2026-07-23","s":"chore: shared cx(), Button xs tokens, and hard axe-smoke gate","ids":[],"k":"unlinked"},{"h":"1e13187","d":"2026-07-23","s":"Merge pull request #10 from cyberskill-official/feat/quality-gates-designmd","ids":[],"k":"exempt"},{"h":"9c23853","d":"2026-07-23","s":"feat(gates): 8 deterministic gates, in-repo bundle build, DESIGN.md, CI hardening","ids":[],"k":"unlinked"},{"h":"aa5dc8b","d":"2026-07-23","s":"Merge pull request #9 from cyberskill-official/docs/drift-and-audit","ids":[],"k":"exempt"},{"h":"8dd56cb","d":"2026-07-23","s":"Merge pull request #8 from cyberskill-official/feat/storybook-hub","ids":[],"k":"exempt"},{"h":"4f5ea03","d":"2026-07-23","s":"Merge pull request #7 from cyberskill-official/fix/component-a11y-copy","ids":[],"k":"exempt"},{"h":"17ba11b","d":"2026-07-23","s":"Merge pull request #6 from cyberskill-official/fix/bilingual-template-copy","ids":[],"k":"exempt"},{"h":"33cd337","d":"2026-07-23","s":"Merge pull request #5 from cyberskill-official/fix/token-pipeline-parity","ids":[],"k":"exempt"},{"h":"bbd1c48","d":"2026-07-23","s":"Merge pull request #4 from cyberskill-official/chore/gitignore-audit-exports","ids":[],"k":"exempt"},{"h":"5a8a01d","d":"2026-07-23","s":"docs: correct drift against the compiler manifest and add the July 2026 audit report","ids":[],"k":"unlinked"},{"h":"9d82951","d":"2026-07-23","s":"feat(storybook): Foundations, Guidelines, A11y, I18n and Status hub pages","ids":[],"k":"unlinked"},{"h":"1f26455","d":"2026-07-23","s":"fix(components): Dialog a11y, React.useId adoption, prompt/card copy corrections","ids":[],"k":"unlinked"},{"h":"2a53e05","d":"2026-07-23","s":"fix(templates): close EN leaks in VN mode and sweep stale demo copy","ids":[],"k":"unlinked"},{"h":"8ec2328","d":"2026-07-23","s":"fix(tokens): restore real motion durations, add heading group, type all DTCG leaves","ids":[],"k":"unlinked"},{"h":"75d870b","d":"2026-07-23","s":"chore: fix .gitignore inline-comment parsing and untrack generated audit exports","ids":[],"k":"unlinked"},{"h":"df751f3","d":"2026-07-23","s":"Merge pull request #3 from cyberskill-official/worktree-figma-soft-skip","ids":[],"k":"exempt"},{"h":"920495f","d":"2026-07-23","s":"fix(ci): soft-skip 429/503/404 Figma API errors instead of hard-failing","ids":[],"k":"unlinked"},{"h":"e71055d","d":"2026-07-22","s":"feat: 1.0.0","ids":[],"k":"unlinked"},{"h":"47f46be","d":"2026-07-22","s":"fix(storybook): close CSF3 hollow {...args} class; repair Divider matrix","ids":[],"k":"unlinked"},{"h":"85c2e5f","d":"2026-07-22","s":"fix(storybook): CSF3 meta args so Matrix {...args} inherits fixtures","ids":[],"k":"unlinked"},{"h":"faebb87","d":"2026-07-22","s":"fix(storybook): real prop APIs and composition in CSF matrices","ids":[],"k":"unlinked"},{"h":"6b23a0e","d":"2026-07-22","s":"fix(storybook): honest deep CSF matrices (mount primary, real argTypes)","ids":[],"k":"unlinked"},{"h":"c0a06c4","d":"2026-07-22","s":"docs: point Identity Lab/axis expansion at Storybook Live","ids":[],"k":"unlinked"},{"h":"e631191","d":"2026-07-22","s":"feat(live): Storybook is the single Live hub; deep CSF control matrices","ids":[],"k":"unlinked"},{"h":"34baea1","d":"2026-07-22","s":"fix(native): use Compose modifier= parameter name in sample screens","ids":[],"k":"unlinked"},{"h":"38dfde2","d":"2026-07-22","s":"feat(pre-release): Storybook CSF for all components + multi-screen native samples","ids":[],"k":"unlinked"},{"h":"c0fc95c","d":"2026-07-22","s":"chore: decisions A/Figma, CI DX, keep Live View, dual tokens, host Storybook growth","ids":[],"k":"unlinked"},{"h":"cd335d1","d":"2026-07-22","s":"docs(ci): Figma Variables API is Enterprise-only; soft-skip non-Enterprise PATs","ids":[],"k":"unlinked"},{"h":"9da0565","d":"2026-07-22","s":"fix(ci): deterministic token regen, auth mobile stack, Figma variable scopes","ids":[],"k":"unlinked"},{"h":"9bb4670","d":"2026-07-22","s":"chore: regenerate tokens/native/* from tokens.dtcg.json [skip ci]","ids":[],"k":"exempt"},{"h":"167e531","d":"2026-07-22","s":"fix(ci): push regenerated tokens via DS_PUSH_TOKEN when org locks GITHUB_TOKEN","ids":[],"k":"unlinked"},{"h":"12ba273","d":"2026-07-22","s":"chore: regenerate tokens/native/* from tokens.dtcg.json [skip ci]","ids":[],"k":"exempt"},{"h":"44db79f","d":"2026-07-22","s":"fix(ci): install playwright package, write token for regen, clearer Figma secret errors","ids":[],"k":"unlinked"},{"h":"c4ed88d","d":"2026-07-22","s":"fix(ci): valid YAML for checkout ref expression","ids":[],"k":"unlinked"},{"h":"914328b","d":"2026-07-22","s":"feat: push DTCG colour tokens to Figma Variables via CI","ids":[],"k":"unlinked"},{"h":"4eb365a","d":"2026-07-22","s":"ci: run whole-set audits on every PR; record pixel advisory + Figma token guide","ids":[],"k":"unlinked"},{"h":"b59a518","d":"2026-07-22","s":"feat: Storybook host playground at /playground + hub/form backlog","ids":[],"k":"unlinked"},{"h":"bdf6e5c","d":"2026-07-22","s":"feat: 7.0.0","ids":[],"k":"unlinked"},{"h":"e4523e1","d":"2026-07-21","s":"Merge pull request #2 from cyberskill-official/vercel-agent/fix-docs-consistency-static-files","ids":[],"k":"exempt"},{"h":"f8fd5f7","d":"2026-07-20","s":"Fix Vercel static docs output","ids":[],"k":"unlinked"},{"h":"5af6b77","d":"2026-07-21","s":"Merge pull request #1 from cyberskill-official/vercel-agent/fix-vercel-build-config","ids":[],"k":"exempt"},{"h":"cf4b0be","d":"2026-07-20","s":"Fix Vercel build configuration","ids":[],"k":"unlinked"},{"h":"24af038","d":"2026-07-21","s":"feat: 5.0.0","ids":[],"k":"unlinked"},{"h":"fde98ae","d":"2026-07-21","s":"feat: 5.0.0","ids":[],"k":"unlinked"},{"h":"c2183ba","d":"2026-07-20","s":"feat: 4.0.2","ids":[],"k":"unlinked"},{"h":"6ac4c33","d":"2026-07-20","s":"feat: 4.0.0","ids":[],"k":"unlinked"},{"h":"55fdfff","d":"2026-07-20","s":"feat: 3.0.3","ids":[],"k":"unlinked"},{"h":"2a77bf6","d":"2026-07-20","s":"feat: 3.0.1","ids":[],"k":"unlinked"},{"h":"53bdbc2","d":"2026-07-19","s":"feat: v2.16.1","ids":[],"k":"unlinked"},{"h":"1509ff2","d":"2026-07-16","s":"chore(ci): upgrade Actions to Node-24 majors (checkout/setup-node@v7)","ids":[],"k":"unlinked"},{"h":"f6d6e6c","d":"2026-07-16","s":"chore(ci): pin Node 24.18.0; upgrade Actions to Node-24 majors","ids":[],"k":"unlinked"},{"h":"5d09735","d":"2026-07-16","s":"chore: require Node.js >=24; remove dangling agent skill links","ids":[],"k":"unlinked"},{"h":"9e660f5","d":"2026-07-16","s":"chore(cyberos): retire the FR vocabulary; adopt CyberOS 1.0.0 (rules_sha d9dbcc8a)","ids":[],"k":"unlinked"},{"h":"6f21c52","d":"2026-07-13","s":"chore(cyberos): adopt CyberOS 1.0.0 - status-hub@2 status page","ids":[],"k":"unlinked"},{"h":"5e80e72","d":"2026-07-13","s":"chore: adopt CyberOS 1.0 protocol - folder-per-FR layout, docs/status page, managed gitignore, status auto-sync","ids":[],"k":"unlinked"},{"h":"5682841","d":"2026-07-10","s":"cyberos: adopt unified feature-requests structure (init v0.1.0)","ids":[],"k":"unlinked"},{"h":"e4d4da1","d":"2026-07-06","s":"feat(audit): wire the CSAF auto-evolution loop + close AUTO findings","ids":[],"k":"unlinked"},{"h":"7231866","d":"2026-06-14","s":"test(style-packs): commit linux-x64 screenshot baselines (CI-seeded, 68)","ids":[],"k":"unlinked"},{"h":"63d11b9","d":"2026-06-14","s":"fix(react): core components consume --cs-font-family-ui (3a); standardize baselines on linux-x64 (v1.5.1)","ids":[],"k":"unlinked"},{"h":"bcdc0c7","d":"2026-06-14","s":"chore: add ready-to-apply patch for core font-token consumption (3a)","ids":[],"k":"unlinked"},{"h":"61de195","d":"2026-06-14","s":"feat(style-packs): add real APCA contrast check (S5) to verifier","ids":[],"k":"unlinked"},{"h":"7baa281","d":"2026-06-13","s":"docs(style-packs): record v1.5.0 deepening + font/texture authoring pattern; bump versions","ids":[],"k":"unlinked"},{"h":"ead9c9f","d":"2026-06-13","s":"feat(style-packs): deepen group 8 (wabi-sabi, western, nautical, rebus, glassmorphism, modular-type, neo-brutalism) — completes al","ids":[],"k":"unlinked"},{"h":"99e893a","d":"2026-06-13","s":"feat(style-packs): deepen group 7 (coquette, surrealism, utilitarian, mid-century, scrapbook, frutiger-aero, dark-academia, light-","ids":[],"k":"unlinked"},{"h":"db08f7f","d":"2026-06-13","s":"feat(style-packs): deepen group 6 (tenebrism, gothic, pointillism, mixed-media, steampunk, kawaii)","ids":[],"k":"unlinked"},{"h":"d15f638","d":"2026-06-13","s":"feat(style-packs): deepen group 5 (cybercore, synthwave, vaporwave, pop-art, bento, graffiti)","ids":[],"k":"unlinked"},{"h":"d87713d","d":"2026-06-13","s":"feat(style-packs): deepen group 4 (art-nouveau, western-occult, kitsch, y2k, bauhaus, brutalism)","ids":[],"k":"unlinked"},{"h":"10f9f51","d":"2026-06-13","s":"feat(style-packs): deepen group 3 (memphis, bohemian, shabby-chic, cottagecore, victorian, art-deco)","ids":[],"k":"unlinked"},{"h":"8aca247","d":"2026-06-13","s":"feat(style-packs): deepen group 2 (acanthus, anthropomorphic, pixel-art, sketch, luxury-typography, japandi)","ids":[],"k":"unlinked"},{"h":"a893c21","d":"2026-06-13","s":"feat(style-packs): deepen group 1 (classical/ambient) + fix font & texture pipeline","ids":[],"k":"unlinked"},{"h":"6ede4d1","d":"2026-06-13","s":"feat(style-packs): per-style light/dark/both mode policy + dark variants (v1.4.0)","ids":[],"k":"unlinked"},{"h":"8b0c698","d":"2026-06-13","s":"docs: record Liquid Glass implementation; refresh stale version info (v1.3.0)","ids":[],"k":"unlinked"},{"h":"b5a9c6c","d":"2026-06-13","s":"feat(glass): implement Part 21 Liquid Glass token + CSS layer","ids":[],"k":"unlinked"},{"h":"d6a78a0","d":"2026-06-13","s":"ci+test: platform-scoped visual baselines, CI workflow, pin Playwright","ids":[],"k":"unlinked"},{"h":"822b9c6","d":"2026-06-13","s":"chore: stop tracking .DS_Store (already gitignored)","ids":[],"k":"unlinked"},{"h":"d472a0a","d":"2026-06-13","s":"feat(style-packs): live 50-skin gallery + per-pack screenshot regression","ids":[],"k":"unlinked"},{"h":"0e56266","d":"2026-06-13","s":"feat(design-system): light default, spacing/responsive, exact logo, 50 style packs","ids":[],"k":"unlinked"},{"h":"cd9b7c8","d":"2026-06-09","s":"feat: udate libs","ids":[],"k":"unlinked"},{"h":"bcc537c","d":"2026-05-14","s":"feat: liquid glass","ids":[],"k":"unlinked"},{"h":"428e463","d":"2026-05-04","s":"feat: enhance","ids":[],"k":"unlinked"},{"h":"d8cb59a","d":"2026-05-04","s":"feat: enhance","ids":[],"k":"unlinked"},{"h":"bc0a358","d":"2026-05-04","s":"feat: combine into single DESIGN.md","ids":[],"k":"unlinked"},{"h":"e49d083","d":"2026-04-27","s":"chore: cleanup","ids":[],"k":"unlinked"},{"h":"09bd373","d":"2026-04-27","s":"feat: init project","ids":[],"k":"unlinked"}],"linked":1,"exempt":43,"unlinked":133}},"burnup":[],"fp":"fp-1b6a3e58e578"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
window.CS_SPEC=window.CS_SPEC||{};window.CS_SPEC["TASK-REL-001"]="<h1>TASK-REL-001: LAUNCH design system at VERSION 1.1.0</h1>\n<h2>1. Description (normative)</h2>\n<p>Owner said <strong>LAUNCH</strong> and set the release to <strong>1.1.0</strong>. The pre-LAUNCH pin at 1.0.0 is lifted for this cut only; further bumps still need an explicit owner instruction. No <code>CHANGELOG.md</code> — continuity stays tip SHA + curated Release Notes.</p>\n<ul><li>1.1 Root <code>VERSION</code> and every version stamp (<code>package.json</code>, token metas, DTCG <code>$extensions</code>, <code>provenance.json</code>, <code>DESIGN.md</code> front matter, <code>_esm/cs.mjs</code> <code>VERSION</code>, embedded token meta in <code>_ds_bundle.js</code>) SHALL equal <strong>1.1.0</strong>.</li><li>1.2 Hard gates that previously asserted the <strong>1.0.0</strong> pin (<code>docs-consistency</code>, <code>version-stamp</code>, <code>test-react-entry</code>, <code>npm-publish.mjs</code>) SHALL assert <strong>1.1.0</strong> (or equality with the root <code>VERSION</code> file) and SHALL NOT retain \"until LAUNCH\" blocking language that forbids this bump.</li><li>1.3 Operator-facing docs (EN + VI), SKILL/README/CONTRIBUTING, Release Notes, and Storybook Release Notes SHALL record LAUNCH at <strong>1.1.0</strong> and that further VERSION bumps require owner instruction; still no changelog file.</li><li>1.4 <code>examples/npm-hello</code> SHALL target <code>@cyberskill/design@1.1.0</code>. Until that version exists on the public registry, CI MAY soft-skip the registry install with an honest report and prove the local pack instead — soft-skip ≠ published.</li></ul>\n<h2>2. Acceptance criteria</h2>\n<ul><li>[ ] AC for 1.1 — <code>VERSION</code> and all stamps read <code>1.1.0</code> — test: <code>version-stamp</code> / <code>scripts/verify-local.sh</code></li><li>[ ] AC for 1.2 — docs-consistency + react-entry + npm-publish dry-run accept 1.1.0 — test: <code>_audit/docs-consistency.html</code>, <code>npm run test:react-entry</code>, <code>npm run npm:pack-dry-run</code></li><li>[ ] AC for 1.3 — grep for \"until LAUNCH\" / \"pinned at <strong>1.0.0</strong>\" in live operator docs is clean (archive may retain history) — test: docs-consistency + manual grep</li><li>[ ] AC for 1.4 — npm-hello expects 1.1.0; CI path documented — test: <code>examples/npm-hello/smoke.mjs</code></li></ul>\n<h2>3. Edge cases</h2>\n<ul><li>npm registry does not yet have 1.1.0 when CI runs — soft-skip registry path, pack local tarball, still smoke exports.</li><li>Historical <code>_audit/archive/</code> mentions of 1.0.0 must not be rewritten.</li><li>Native store scaffold \"until LAUNCH\" release-notes placeholders become post-LAUNCH scaffold copy (no product store submit).</li></ul>\n<h2>4. Protected invariants this task must not weaken</h2>\n<ul><li>No <code>CHANGELOG.md</code> surface.</li><li>License stays <strong>UNLICENSED</strong>; consumer grant unchanged except version references.</li><li>Expansion Rule and axis contracts unchanged.</li><li>Do not invent product → element mappings.</li></ul>";
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<meta name="color-scheme" content="light dark">
|
|
7
|
+
<title>design-system status</title>
|
|
8
|
+
<link rel="stylesheet" href="assets/status.css">
|
|
9
|
+
<link rel="icon" type="image/svg+xml" href="assets/favicon.svg">
|
|
10
|
+
</head>
|
|
11
|
+
<body data-template-id="status-hub@3" data-theme="paper">
|
|
12
|
+
<a class="skip" href="#pulse">Skip to content</a>
|
|
13
|
+
<p class="sr-only">VERSION <span class="code">1.1.0</span> · built from <span class="code">fp-05ef7886fd20</span> · 1 tasks · 1 releases</p>
|
|
14
|
+
|
|
15
|
+
<div id="app">
|
|
16
|
+
<noscript>
|
|
17
|
+
<div class="nojs wrap">
|
|
18
|
+
<p class="relnote">JavaScript is off, so the interactive canvas and the task drawer are unavailable.
|
|
19
|
+
Everything below is the same corpus, rendered statically.</p>
|
|
20
|
+
<div class="tbl-wrap"><table><thead><tr>
|
|
21
|
+
<th>id</th><th>title</th><th>module</th><th>class</th><th>priority</th><th>phase</th><th>status</th>
|
|
22
|
+
</tr></thead><tbody>
|
|
23
|
+
<tr><td class="code">TASK-REL-001</td><td>LAUNCH design system at VERSION 1.1.0</td><td>release</td><td>feature</td><td>p0</td><td></td><td>done</td></tr>
|
|
24
|
+
</tbody></table></div>
|
|
25
|
+
<h3 class="groupq">Releases</h3>
|
|
26
|
+
<article class="rel"><span class="tick">✓</span><div>
|
|
27
|
+
<div class="rel-h"><b>v0.1.0</b><span class="muted">2026-07-27</span></div>
|
|
28
|
+
|
|
29
|
+
<div class="rel-sec"><h4>Notes</h4><ul><li>CyberOS initialised: task workflow vendored to .cyberos/, backlog at docs/tasks/BACKLOG.md, status page at docs/status/.</li></ul></div>
|
|
30
|
+
</div></article></div>
|
|
31
|
+
</noscript>
|
|
32
|
+
</div>
|
|
33
|
+
|
|
34
|
+
<aside class="ops-reports" aria-label="Operator reports">
|
|
35
|
+
<section class="now" id="stuck-wip">
|
|
36
|
+
<h2>Stuck WIP (G13)</h2>
|
|
37
|
+
<p class="muted">As-of date unavailable (no CYBEROS_NOW / CYBEROS_HUB_ASOF and no dated CHANGELOG entry for VERSION 1.1.0) — age classification skipped. Detector stays report-only.</p>
|
|
38
|
+
</section></aside>
|
|
39
|
+
|
|
40
|
+
<footer class="gen-foot wrap">design-system — generated at 1.1.0 (fp-05ef7886fd20). Markdown is the record of truth; this page only renders it. · <a href="status-legacy.html">Legacy status page</a></footer>
|
|
41
|
+
|
|
42
|
+
<script type="application/json" id="sv3-data">{"project":"design-system","version":"1.1.0","feed":1,"snapshot":"2026-07-27","head":"5dd1620","coverageAsOf":"5dd1620","branch":"main","repoUrl":"https://github.com/cyberskill-official/design-system","tags":["v1.5.0","v1.5.1"],"statuses":["draft","ready_to_implement","implementing","ready_to_review","reviewing","ready_to_test","testing","done","on_hold","closed","cannot_reproduce","duplicate"],"specBase":"../tasks/","rule":"Every change introduced by a commit must be linked to one or more tasks and reflected on the Status page and in the Release Notes. No exceptions.","enforcement":"Advisory today (commit-msg hook + CI range check). Ledger at docs/tasks/_state/commit-links.yaml for retroactive fixes.","tasks":[{"i":"TASK-REL-001","k":"release/TASK-REL-001-launch-1-1-0","t":"LAUNCH design system at VERSION 1.1.0","m":"release","c":"feature","p":"p0","s":"done","b":"done","ph":"","o":"","cr":"2026-07-27","sh":null,"e":null,"d":[],"bl":[],"rl":[],"sm":"Owner said LAUNCH and set the release to 1.1.0. The pre-LAUNCH pin at 1.0.0 is lifted for this cut only; further bumps still need an explicit owner instruction. No CHANGELOG.md — continuity stays tip SHA + curated…","pg":null,"sp":1}],"modules":[{"id":"release","kind":"","total":1,"done":1,"active":0,"hold":0,"draft":0,"r":18,"x":490,"y":315}],"medges":[],"phases":[],"releases":[{"v":"0.1.0","d":"2026-07-27","notes":{"features":[],"fixes":[],"improvements":[{"x":"CyberOS initialised: task workflow vendored to .cyberos/, backlog at docs/tasks/BACKLOG.md, status page at docs/status/.","ids":[]}]},"cov":{"commits":[],"linked":0,"exempt":0,"unlinked":0}}],"unreleased":{"notes":{"features":[],"fixes":[],"improvements":[]},"cov":{"commits":[{"h":"5dd1620","d":"2026-07-27","s":"chore(cyberos): upgrade to 1.12.0 - status v3 + traceability (TASK-DOCS-027)","ids":["TASK-DOCS-027"],"k":"linked"},{"h":"8d3fe6b","d":"2026-07-26","s":"Move host and CDN to React 19.2.8 via umd-react globals. (#62)","ids":[],"k":"unlinked"},{"h":"802ec29","d":"2026-07-26","s":"Bump GitHub Actions majors (checkout 7, setup-node 7, cache 6, upload-artifact 7). (#61)","ids":[],"k":"unlinked"},{"h":"3e2dd0e","d":"2026-07-26","s":"Behavior gate 53→78 — cover all interactive primaries (#60)","ids":[],"k":"unlinked"},{"h":"9c4be64","d":"2026-07-26","s":"Retune 30 element sets; deepen behavior, playground, and a11y gates (#59)","ids":[],"k":"unlinked"},{"h":"d37b362","d":"2026-07-26","s":"Retire Identity Lab; deepen variants, behavior, and open-state axe (#58)","ids":[],"k":"unlinked"},{"h":"9f5845a","d":"2026-07-26","s":"Harden CSF fixtures against .d.ts props the static contract missed. (#57)","ids":[],"k":"unlinked"},{"h":"7e1f121","d":"2026-07-26","s":"Harden CSF honesty: real props, args⊆argTypes, audit card counts. (#56)","ids":[],"k":"unlinked"},{"h":"6fbcada","d":"2026-07-26","s":"Merge pull request #55 from cyberskill-official/cursor/csf-counts-residual-8c7e","ids":[],"k":"exempt"},{"h":"e2a136c","d":"2026-07-26","s":"Fix StatusIndicator CSF honesty and residual count drift.","ids":[],"k":"unlinked"},{"h":"ddfe4ae","d":"2026-07-26","s":"Merge pull request #54 from cyberskill-official/cursor/element-packs-ci-wire-8c7e","ids":[],"k":"exempt"},{"h":"4d4c41c","d":"2026-07-26","s":"Wire element-pack generation into token regen CI.","ids":[],"k":"unlinked"},{"h":"20c6191","d":"2026-07-26","s":"Merge pull request #53 from cyberskill-official/cursor/storybook-react-10-5-4-8c7e","ids":[],"k":"exempt"},{"h":"2b970a8","d":"2026-07-26","s":"Align all Storybook packages to 10.5.4.","ids":[],"k":"unlinked"},{"h":"146b415","d":"2026-07-26","s":"chore(deps-dev): bump @storybook/react from 10.5.3 to 10.5.4","ids":[],"k":"unlinked"},{"h":"7053c5b","d":"2026-07-26","s":"Merge pull request #52 from cyberskill-official/cursor/axes-honesty-residual-8c7e","ids":[],"k":"exempt"},{"h":"b687286","d":"2026-07-26","s":"Note three-axis leftovers in audit index and README blacklist copy.","ids":[],"k":"unlinked"},{"h":"60db5cb","d":"2026-07-26","s":"Finish residual four-axis honesty and behavior-count drift.","ids":[],"k":"unlinked"},{"h":"fb87778","d":"2026-07-26","s":"Merge pull request #51 from cyberskill-official/cursor/release-notes-parity-polish-8c7e","ids":[],"k":"exempt"},{"h":"7ceea84","d":"2026-07-26","s":"Align four-axis honesty across docs, surfaces, and contracts.","ids":[],"k":"unlinked"},{"h":"b7aba05","d":"2026-07-26","s":"Merge pull request #50 from cyberskill-official/cursor/csf-honesty-system-theme-8c7e","ids":[],"k":"exempt"},{"h":"b21d044","d":"2026-07-26","s":"Fix dishonest CSF fixtures and add Storybook system theme.","ids":[],"k":"unlinked"},{"h":"494bef9","d":"2026-07-26","s":"Merge pull request #49 from cyberskill-official/cursor/waves-axe-fullmatrix-style-8c7e","ids":[],"k":"exempt"},{"h":"e325206","d":"2026-07-26","s":"Introduce Style axis (liquid-glass) and Identity Lab system theme.","ids":[],"k":"unlinked"},{"h":"2fd7e8a","d":"2026-07-26","s":"Docs: unit-tests job count is 10 after axe-coverage.","ids":[],"k":"unlinked"},{"h":"6dfe1d0","d":"2026-07-26","s":"Expand axe-smoke to every public primary with inventory lock.","ids":[],"k":"unlinked"},{"h":"018022a","d":"2026-07-26","s":"Require FullMatrix for every ≥1-axis Storybook primary.","ids":[],"k":"unlinked"},{"h":"b816ef9","d":"2026-07-26","s":"Harden Element colour geometry (OKLCH soft/middle/deep + benchmark rubric) (#48)","ids":[],"k":"unlinked"},{"h":"def9546","d":"2026-07-26","s":"Ship Wave 2: AlertDialog, Item, and NativeSelect end-to-end. (#47)","ids":[],"k":"unlinked"},{"h":"d18835c","d":"2026-07-26","s":"Ship Vite 8, harden token regen, and add ScrollArea/Collapsible/AspectRatio (#46)","ids":[],"k":"unlinked"},{"h":"ff9299d","d":"2026-07-25","s":"Refresh pixel baselines for Playwright 1.62 Chromium. (#45)","ids":[],"k":"unlinked"},{"h":"d30238c","d":"2026-07-25","s":"Merge pull request #35 from cyberskill-official/harden/inspection-backlog-batch-1-5","ids":[],"k":"exempt"},{"h":"727b14a","d":"2026-07-25","s":"Harden inspection backlog: pin VERSION in cs.mjs, expand axe, supply-chain hygiene.","ids":[],"k":"unlinked"},{"h":"3edeb13","d":"2026-07-25","s":"Display face: --cs-font-family-display + self-hosted Space Grotesk (#34)","ids":[],"k":"unlinked"},{"h":"49b7a4f","d":"2026-07-25","s":"Merge pull request #33 from cyberskill-official/cursor/phase-0-react-export","ids":[],"k":"exempt"},{"h":"aa5f197","d":"2026-07-25","s":"Address CodeRabbit review on React export contract docs and gates.","ids":[],"k":"unlinked"},{"h":"965e618","d":"2026-07-25","s":"Ship bundler-native React entry for Next/SSR consumers.","ids":[],"k":"unlinked"},{"h":"b85e8d5","d":"2026-07-24","s":"Merge pull request #32 from cyberskill-official/cursor/next-level-batches-2026-07-24","ids":[],"k":"exempt"},{"h":"c219a72","d":"2026-07-24","s":"Commit ubuntu-latest pixel baselines for newly anchored templates.","ids":[],"k":"unlinked"},{"h":"5adbf26","d":"2026-07-24","s":"Address CodeRabbit review on Compose wrapper docs and schema i18n.","ids":[],"k":"unlinked"},{"h":"5a58fd0","d":"2026-07-24","s":"Document Compose as Android Studio-first, not a fake CLI path.","ids":[],"k":"unlinked"},{"h":"3943c23","d":"2026-07-24","s":"Anchor app-shell, settings, and delivery-kickoff in pixel CI.","ids":[],"k":"unlinked"},{"h":"c40c92e","d":"2026-07-24","s":"Soft-skip Figma Variables CI when secrets are empty.","ids":[],"k":"unlinked"},{"h":"c0431be","d":"2026-07-24","s":"Cover remaining content-hole templates with schema sidecars.","ids":[],"k":"unlinked"},{"h":"98bffef","d":"2026-07-24","s":"Merge pull request #31 from cyberskill-official/cursor/deep-scan-next-steps","ids":[],"k":"exempt"},{"h":"5e8f464","d":"2026-07-24","s":"Prove registry consumer in CI and clear stale hub claims.","ids":[],"k":"unlinked"},{"h":"c8e8b23","d":"2026-07-24","s":"Merge pull request #30 from cyberskill-official/cursor/npm-first-consumer-release-notes","ids":[],"k":"exempt"},{"h":"f3db73f","d":"2026-07-24","s":"Document npm Trusted Publishing and ship first Lumi consumer.","ids":[],"k":"unlinked"},{"h":"6756734","d":"2026-07-24","s":"Merge pull request #29 from cyberskill-official/cursor/npm-disallow-tokens-docs-b2ec","ids":[],"k":"exempt"},{"h":"58fb29b","d":"2026-07-24","s":"Record npmjs disallow-tokens; treat CI publish as OIDC-only.","ids":[],"k":"unlinked"},{"h":"48f6648","d":"2026-07-24","s":"Merge pull request #28 from cyberskill-official/cursor/npm-consumer-grant-49c3","ids":[],"k":"exempt"},{"h":"1a1f4a4","d":"2026-07-24","s":"Record written npm consumer grant for CyberSkill portfolio.","ids":[],"k":"unlinked"},{"h":"b3df1f5","d":"2026-07-24","s":"Merge pull request #27 from cyberskill-official/cursor/npm-trusted-publishing-e530","ids":[],"k":"exempt"},{"h":"8154813","d":"2026-07-24","s":"Switch npm CI publish to Trusted Publishing (OIDC).","ids":[],"k":"unlinked"},{"h":"0e1890e","d":"2026-07-24","s":"Merge pull request #26 from cyberskill-official/cursor/next-steps-npm-unlock-e530","ids":[],"k":"exempt"},{"h":"0e2750b","d":"2026-07-23","s":"Document npm unlock progress and consumer grant template.","ids":[],"k":"unlinked"},{"h":"63c9fa1","d":"2026-07-24","s":"Merge pull request #25 from cyberskill-official/cursor/rename-package-cyberskill-design-e530","ids":[],"k":"exempt"},{"h":"e60f772","d":"2026-07-23","s":"Rename npm package to @cyberskill/design and defer Code Connect.","ids":[],"k":"unlinked"},{"h":"601430b","d":"2026-07-24","s":"Merge pull request #24 from cyberskill-official/fix/unit-tests-playwright-subtree","ids":[],"k":"exempt"},{"h":"756291a","d":"2026-07-24","s":"ci: install Playwright Chromium for unit-tests subtree smoke.","ids":[],"k":"unlinked"},{"h":"fb69503","d":"2026-07-24","s":"Merge pull request #22 from cyberskill-official/chore/next-steps-products-lock","ids":[],"k":"exempt"},{"h":"59bb7ec","d":"2026-07-23","s":"Merge pull request #23 from cyberskill-official/cursor/pr-22-merge-preparation-c0b8","ids":[],"k":"exempt"},{"h":"82480e2","d":"2026-07-23","s":"docs: soften template-schema coverage claim in audit README.","ids":[],"k":"unlinked"},{"h":"6ba9b9e","d":"2026-07-24","s":"docs: lock product → element registry and close next-steps backlog.","ids":[],"k":"unlinked"},{"h":"1705488","d":"2026-07-24","s":"Merge pull request #19 from cyberskill-official/feat/storybook-element-toolbar-15","ids":[],"k":"exempt"},{"h":"6e76003","d":"2026-07-24","s":"Merge pull request #20 from cyberskill-official/feat/subtree-consume-and-gate-pass","ids":[],"k":"exempt"},{"h":"7b552e8","d":"2026-07-24","s":"Merge pull request #21 from cyberskill-official/feat/agent-routing-stitch-claude","ids":[],"k":"exempt"},{"h":"1305d1d","d":"2026-07-24","s":"Document Claude Code vs Stitch routing and soft-skip honesty.","ids":[],"k":"unlinked"},{"h":"fb3f16f","d":"2026-07-24","s":"Add subtree-consume smoke and fix gate pass flags for CI runners.","ids":[],"k":"unlinked"},{"h":"78ee1b0","d":"2026-07-24","s":"Expose all 15 Ngũ Hành packs in the Storybook Element toolbar.","ids":[],"k":"unlinked"},{"h":"335c711","d":"2026-07-24","s":"Merge pull request #18 from cyberskill-official/hub-polish-storybook-root","ids":[],"k":"exempt"},{"h":"bd3662c","d":"2026-07-23","s":"Commit frozen-animation Pixel CI baselines from ubuntu-latest.","ids":[],"k":"unlinked"},{"h":"78562e2","d":"2026-07-23","s":"Stabilize hard Pixel CI against runner flake.","ids":[],"k":"unlinked"},{"h":"e600033","d":"2026-07-23","s":"Document that Pixel CI baselines must come from ubuntu-latest.","ids":[],"k":"unlinked"},{"h":"0c4f3a1","d":"2026-07-23","s":"Commit Pixel CI baselines captured on ubuntu-latest.","ids":[],"k":"unlinked"},{"h":"ff068cf","d":"2026-07-23","s":"Upload CI-native pixel baselines when Pixel CI drifts.","ids":[],"k":"unlinked"},{"h":"2777c2f","d":"2026-07-23","s":"Regenerate Pixel CI baselines on Linux amd64.","ids":[],"k":"unlinked"},{"h":"066240b","d":"2026-07-23","s":"Fix hard Pixel CI with Linux baselines and address review nits.","ids":[],"k":"unlinked"},{"h":"21033f8","d":"2026-07-23","s":"Ship Storybook as the product root and harden hub quality gates.","ids":[],"k":"unlinked"},{"h":"d40c42b","d":"2026-07-23","s":"Merge pull request #17 from cyberskill-official/chore/wiring-gates-package-backlog","ids":[],"k":"exempt"},{"h":"70cb97b","d":"2026-07-23","s":"chore: wire gate board, package.json publish path, and backlog close-out","ids":[],"k":"unlinked"},{"h":"2e2d5e2","d":"2026-07-23","s":"Merge pull request #15 from cyberskill-official/feat/ship-paths-code-connect-npm-native","ids":[],"k":"exempt"},{"h":"48e2217","d":"2026-07-23","s":"Merge pull request #16 from cyberskill-official/docs/vietnamese-mirrors-parity","ids":[],"k":"exempt"},{"h":"45db39e","d":"2026-07-23","s":"chore: nudge CI after rebase onto main","ids":[],"k":"unlinked"},{"h":"272f525","d":"2026-07-23","s":"feat(sync): Code Connect stubs, npm publish path, native store scaffolds","ids":[],"k":"unlinked"},{"h":"8cb5a0b","d":"2026-07-23","s":"docs(i18n): Vietnamese docs mirrors, viewer toggle, lang-parity gate","ids":[],"k":"unlinked"},{"h":"9b6731d","d":"2026-07-23","s":"Merge pull request #11 from cyberskill-official/chore/hygiene-cx-xs-axe","ids":[],"k":"exempt"},{"h":"c0a7523","d":"2026-07-23","s":"Merge pull request #14 from cyberskill-official/feat/pixel-diff-advisory","ids":[],"k":"exempt"},{"h":"48983e3","d":"2026-07-23","s":"Merge pull request #13 from cyberskill-official/chore/storybook-10-csf","ids":[],"k":"exempt"},{"h":"da996ec","d":"2026-07-23","s":"Merge pull request #12 from cyberskill-official/fix/dark-contrast-hard-gate","ids":[],"k":"exempt"},{"h":"2fcb63a","d":"2026-07-23","s":"feat(audit): real Playwright pixel compare (advisory only)","ids":[],"k":"unlinked"},{"h":"500f115","d":"2026-07-23","s":"chore(storybook): upgrade to 10.5.3 and add AllSizes/States CSF bar","ids":[],"k":"unlinked"},{"h":"56421b2","d":"2026-07-23","s":"fix(a11y): dark CTA contrast fixes and hard theme-overflow contrast","ids":[],"k":"unlinked"},{"h":"998addc","d":"2026-07-23","s":"chore: shared cx(), Button xs tokens, and hard axe-smoke gate","ids":[],"k":"unlinked"},{"h":"1e13187","d":"2026-07-23","s":"Merge pull request #10 from cyberskill-official/feat/quality-gates-designmd","ids":[],"k":"exempt"},{"h":"9c23853","d":"2026-07-23","s":"feat(gates): 8 deterministic gates, in-repo bundle build, DESIGN.md, CI hardening","ids":[],"k":"unlinked"},{"h":"aa5dc8b","d":"2026-07-23","s":"Merge pull request #9 from cyberskill-official/docs/drift-and-audit","ids":[],"k":"exempt"},{"h":"8dd56cb","d":"2026-07-23","s":"Merge pull request #8 from cyberskill-official/feat/storybook-hub","ids":[],"k":"exempt"},{"h":"4f5ea03","d":"2026-07-23","s":"Merge pull request #7 from cyberskill-official/fix/component-a11y-copy","ids":[],"k":"exempt"},{"h":"17ba11b","d":"2026-07-23","s":"Merge pull request #6 from cyberskill-official/fix/bilingual-template-copy","ids":[],"k":"exempt"},{"h":"33cd337","d":"2026-07-23","s":"Merge pull request #5 from cyberskill-official/fix/token-pipeline-parity","ids":[],"k":"exempt"},{"h":"bbd1c48","d":"2026-07-23","s":"Merge pull request #4 from cyberskill-official/chore/gitignore-audit-exports","ids":[],"k":"exempt"},{"h":"5a8a01d","d":"2026-07-23","s":"docs: correct drift against the compiler manifest and add the July 2026 audit report","ids":[],"k":"unlinked"},{"h":"9d82951","d":"2026-07-23","s":"feat(storybook): Foundations, Guidelines, A11y, I18n and Status hub pages","ids":[],"k":"unlinked"},{"h":"1f26455","d":"2026-07-23","s":"fix(components): Dialog a11y, React.useId adoption, prompt/card copy corrections","ids":[],"k":"unlinked"},{"h":"2a53e05","d":"2026-07-23","s":"fix(templates): close EN leaks in VN mode and sweep stale demo copy","ids":[],"k":"unlinked"},{"h":"8ec2328","d":"2026-07-23","s":"fix(tokens): restore real motion durations, add heading group, type all DTCG leaves","ids":[],"k":"unlinked"},{"h":"75d870b","d":"2026-07-23","s":"chore: fix .gitignore inline-comment parsing and untrack generated audit exports","ids":[],"k":"unlinked"},{"h":"df751f3","d":"2026-07-23","s":"Merge pull request #3 from cyberskill-official/worktree-figma-soft-skip","ids":[],"k":"exempt"},{"h":"920495f","d":"2026-07-23","s":"fix(ci): soft-skip 429/503/404 Figma API errors instead of hard-failing","ids":[],"k":"unlinked"},{"h":"e71055d","d":"2026-07-22","s":"feat: 1.0.0","ids":[],"k":"unlinked"},{"h":"47f46be","d":"2026-07-22","s":"fix(storybook): close CSF3 hollow {...args} class; repair Divider matrix","ids":[],"k":"unlinked"},{"h":"85c2e5f","d":"2026-07-22","s":"fix(storybook): CSF3 meta args so Matrix {...args} inherits fixtures","ids":[],"k":"unlinked"},{"h":"faebb87","d":"2026-07-22","s":"fix(storybook): real prop APIs and composition in CSF matrices","ids":[],"k":"unlinked"},{"h":"6b23a0e","d":"2026-07-22","s":"fix(storybook): honest deep CSF matrices (mount primary, real argTypes)","ids":[],"k":"unlinked"},{"h":"c0a06c4","d":"2026-07-22","s":"docs: point Identity Lab/axis expansion at Storybook Live","ids":[],"k":"unlinked"},{"h":"e631191","d":"2026-07-22","s":"feat(live): Storybook is the single Live hub; deep CSF control matrices","ids":[],"k":"unlinked"},{"h":"34baea1","d":"2026-07-22","s":"fix(native): use Compose modifier= parameter name in sample screens","ids":[],"k":"unlinked"},{"h":"38dfde2","d":"2026-07-22","s":"feat(pre-release): Storybook CSF for all components + multi-screen native samples","ids":[],"k":"unlinked"},{"h":"c0fc95c","d":"2026-07-22","s":"chore: decisions A/Figma, CI DX, keep Live View, dual tokens, host Storybook growth","ids":[],"k":"unlinked"},{"h":"cd335d1","d":"2026-07-22","s":"docs(ci): Figma Variables API is Enterprise-only; soft-skip non-Enterprise PATs","ids":[],"k":"unlinked"},{"h":"9da0565","d":"2026-07-22","s":"fix(ci): deterministic token regen, auth mobile stack, Figma variable scopes","ids":[],"k":"unlinked"},{"h":"9bb4670","d":"2026-07-22","s":"chore: regenerate tokens/native/* from tokens.dtcg.json [skip ci]","ids":[],"k":"exempt"},{"h":"167e531","d":"2026-07-22","s":"fix(ci): push regenerated tokens via DS_PUSH_TOKEN when org locks GITHUB_TOKEN","ids":[],"k":"unlinked"},{"h":"12ba273","d":"2026-07-22","s":"chore: regenerate tokens/native/* from tokens.dtcg.json [skip ci]","ids":[],"k":"exempt"},{"h":"44db79f","d":"2026-07-22","s":"fix(ci): install playwright package, write token for regen, clearer Figma secret errors","ids":[],"k":"unlinked"},{"h":"c4ed88d","d":"2026-07-22","s":"fix(ci): valid YAML for checkout ref expression","ids":[],"k":"unlinked"},{"h":"914328b","d":"2026-07-22","s":"feat: push DTCG colour tokens to Figma Variables via CI","ids":[],"k":"unlinked"},{"h":"4eb365a","d":"2026-07-22","s":"ci: run whole-set audits on every PR; record pixel advisory + Figma token guide","ids":[],"k":"unlinked"},{"h":"b59a518","d":"2026-07-22","s":"feat: Storybook host playground at /playground + hub/form backlog","ids":[],"k":"unlinked"},{"h":"bdf6e5c","d":"2026-07-22","s":"feat: 7.0.0","ids":[],"k":"unlinked"},{"h":"e4523e1","d":"2026-07-21","s":"Merge pull request #2 from cyberskill-official/vercel-agent/fix-docs-consistency-static-files","ids":[],"k":"exempt"},{"h":"f8fd5f7","d":"2026-07-20","s":"Fix Vercel static docs output","ids":[],"k":"unlinked"},{"h":"5af6b77","d":"2026-07-21","s":"Merge pull request #1 from cyberskill-official/vercel-agent/fix-vercel-build-config","ids":[],"k":"exempt"},{"h":"cf4b0be","d":"2026-07-20","s":"Fix Vercel build configuration","ids":[],"k":"unlinked"},{"h":"24af038","d":"2026-07-21","s":"feat: 5.0.0","ids":[],"k":"unlinked"},{"h":"fde98ae","d":"2026-07-21","s":"feat: 5.0.0","ids":[],"k":"unlinked"},{"h":"c2183ba","d":"2026-07-20","s":"feat: 4.0.2","ids":[],"k":"unlinked"},{"h":"6ac4c33","d":"2026-07-20","s":"feat: 4.0.0","ids":[],"k":"unlinked"},{"h":"55fdfff","d":"2026-07-20","s":"feat: 3.0.3","ids":[],"k":"unlinked"},{"h":"2a77bf6","d":"2026-07-20","s":"feat: 3.0.1","ids":[],"k":"unlinked"},{"h":"53bdbc2","d":"2026-07-19","s":"feat: v2.16.1","ids":[],"k":"unlinked"},{"h":"1509ff2","d":"2026-07-16","s":"chore(ci): upgrade Actions to Node-24 majors (checkout/setup-node@v7)","ids":[],"k":"unlinked"},{"h":"f6d6e6c","d":"2026-07-16","s":"chore(ci): pin Node 24.18.0; upgrade Actions to Node-24 majors","ids":[],"k":"unlinked"},{"h":"5d09735","d":"2026-07-16","s":"chore: require Node.js >=24; remove dangling agent skill links","ids":[],"k":"unlinked"},{"h":"9e660f5","d":"2026-07-16","s":"chore(cyberos): retire the FR vocabulary; adopt CyberOS 1.0.0 (rules_sha d9dbcc8a)","ids":[],"k":"unlinked"},{"h":"6f21c52","d":"2026-07-13","s":"chore(cyberos): adopt CyberOS 1.0.0 - status-hub@2 status page","ids":[],"k":"unlinked"},{"h":"5e80e72","d":"2026-07-13","s":"chore: adopt CyberOS 1.0 protocol - folder-per-FR layout, docs/status page, managed gitignore, status auto-sync","ids":[],"k":"unlinked"},{"h":"5682841","d":"2026-07-10","s":"cyberos: adopt unified feature-requests structure (init v0.1.0)","ids":[],"k":"unlinked"},{"h":"e4d4da1","d":"2026-07-06","s":"feat(audit): wire the CSAF auto-evolution loop + close AUTO findings","ids":[],"k":"unlinked"},{"h":"7231866","d":"2026-06-14","s":"test(style-packs): commit linux-x64 screenshot baselines (CI-seeded, 68)","ids":[],"k":"unlinked"},{"h":"63d11b9","d":"2026-06-14","s":"fix(react): core components consume --cs-font-family-ui (3a); standardize baselines on linux-x64 (v1.5.1)","ids":[],"k":"unlinked"},{"h":"bcdc0c7","d":"2026-06-14","s":"chore: add ready-to-apply patch for core font-token consumption (3a)","ids":[],"k":"unlinked"},{"h":"61de195","d":"2026-06-14","s":"feat(style-packs): add real APCA contrast check (S5) to verifier","ids":[],"k":"unlinked"},{"h":"7baa281","d":"2026-06-13","s":"docs(style-packs): record v1.5.0 deepening + font/texture authoring pattern; bump versions","ids":[],"k":"unlinked"},{"h":"ead9c9f","d":"2026-06-13","s":"feat(style-packs): deepen group 8 (wabi-sabi, western, nautical, rebus, glassmorphism, modular-type, neo-brutalism) — completes al","ids":[],"k":"unlinked"},{"h":"99e893a","d":"2026-06-13","s":"feat(style-packs): deepen group 7 (coquette, surrealism, utilitarian, mid-century, scrapbook, frutiger-aero, dark-academia, light-","ids":[],"k":"unlinked"},{"h":"db08f7f","d":"2026-06-13","s":"feat(style-packs): deepen group 6 (tenebrism, gothic, pointillism, mixed-media, steampunk, kawaii)","ids":[],"k":"unlinked"},{"h":"d15f638","d":"2026-06-13","s":"feat(style-packs): deepen group 5 (cybercore, synthwave, vaporwave, pop-art, bento, graffiti)","ids":[],"k":"unlinked"},{"h":"d87713d","d":"2026-06-13","s":"feat(style-packs): deepen group 4 (art-nouveau, western-occult, kitsch, y2k, bauhaus, brutalism)","ids":[],"k":"unlinked"},{"h":"10f9f51","d":"2026-06-13","s":"feat(style-packs): deepen group 3 (memphis, bohemian, shabby-chic, cottagecore, victorian, art-deco)","ids":[],"k":"unlinked"},{"h":"8aca247","d":"2026-06-13","s":"feat(style-packs): deepen group 2 (acanthus, anthropomorphic, pixel-art, sketch, luxury-typography, japandi)","ids":[],"k":"unlinked"},{"h":"a893c21","d":"2026-06-13","s":"feat(style-packs): deepen group 1 (classical/ambient) + fix font & texture pipeline","ids":[],"k":"unlinked"},{"h":"6ede4d1","d":"2026-06-13","s":"feat(style-packs): per-style light/dark/both mode policy + dark variants (v1.4.0)","ids":[],"k":"unlinked"},{"h":"8b0c698","d":"2026-06-13","s":"docs: record Liquid Glass implementation; refresh stale version info (v1.3.0)","ids":[],"k":"unlinked"},{"h":"b5a9c6c","d":"2026-06-13","s":"feat(glass): implement Part 21 Liquid Glass token + CSS layer","ids":[],"k":"unlinked"},{"h":"d6a78a0","d":"2026-06-13","s":"ci+test: platform-scoped visual baselines, CI workflow, pin Playwright","ids":[],"k":"unlinked"},{"h":"822b9c6","d":"2026-06-13","s":"chore: stop tracking .DS_Store (already gitignored)","ids":[],"k":"unlinked"},{"h":"d472a0a","d":"2026-06-13","s":"feat(style-packs): live 50-skin gallery + per-pack screenshot regression","ids":[],"k":"unlinked"},{"h":"0e56266","d":"2026-06-13","s":"feat(design-system): light default, spacing/responsive, exact logo, 50 style packs","ids":[],"k":"unlinked"},{"h":"cd9b7c8","d":"2026-06-09","s":"feat: udate libs","ids":[],"k":"unlinked"},{"h":"bcc537c","d":"2026-05-14","s":"feat: liquid glass","ids":[],"k":"unlinked"},{"h":"428e463","d":"2026-05-04","s":"feat: enhance","ids":[],"k":"unlinked"},{"h":"d8cb59a","d":"2026-05-04","s":"feat: enhance","ids":[],"k":"unlinked"},{"h":"bc0a358","d":"2026-05-04","s":"feat: combine into single DESIGN.md","ids":[],"k":"unlinked"},{"h":"e49d083","d":"2026-04-27","s":"chore: cleanup","ids":[],"k":"unlinked"},{"h":"09bd373","d":"2026-04-27","s":"feat: init project","ids":[],"k":"unlinked"}],"linked":1,"exempt":43,"unlinked":133}},"burnup":[],"fp":"fp-1b6a3e58e578","commit":"fp-05ef7886fd20","specDir":"data/task","frBase":"../tasks/","draft_staleness":{"total":0,"by_reason":[]},"stuck_wip":{"asof":null,"threshold_days":30,"stale":[],"unparseable":[],"asof_missing":true}}</script>
|
|
43
|
+
<script defer src="assets/status.js"></script>
|
|
44
|
+
</body>
|
|
45
|
+
</html>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en"><head><meta charset="utf-8"><meta http-equiv="refresh" content="0; url=status.html#roadmap">
|
|
3
|
+
<title>Roadmap moved</title></head>
|
|
4
|
+
<body><p>The roadmap is a band of the <a href="status.html#roadmap">status hub</a> now (TASK-DOCS-013).</p></body></html>
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<meta name="color-scheme" content="light dark">
|
|
7
|
+
<title>design-system status</title>
|
|
8
|
+
<link rel="stylesheet" href="assets/status-legacy.css">
|
|
9
|
+
<link rel="icon" type="image/svg+xml" href="assets/favicon.svg">
|
|
10
|
+
</head>
|
|
11
|
+
<body data-template-id="status-hub@2">
|
|
12
|
+
<a class="skip" href="#lens">Skip to content</a>
|
|
13
|
+
|
|
14
|
+
<header class="hd">
|
|
15
|
+
<div class="wrap hd-in">
|
|
16
|
+
<div class="hd-id">
|
|
17
|
+
<span class="hd-mark" aria-hidden="true">D</span>
|
|
18
|
+
<div>
|
|
19
|
+
<h1>design-system status</h1>
|
|
20
|
+
<p class="hd-sub">Where design-system is and what is coming — generated from task frontmatter, CHANGELOG and VERSION</p>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<div class="hd-side">
|
|
24
|
+
<p class="hd-meta">VERSION <span class="code">1.1.0</span> · built from <span class="code">fp-05ef7886fd20</span> · 1 tasks · 1 releases</p>
|
|
25
|
+
<button id="theme" class="btn ghost" type="button" title="Toggle light / dark" aria-label="Toggle light / dark">◐</button>
|
|
26
|
+
</div>
|
|
27
|
+
</div>
|
|
28
|
+
</header>
|
|
29
|
+
|
|
30
|
+
<main class="wrap">
|
|
31
|
+
<section class="deck" aria-label="Project pulse">
|
|
32
|
+
<div class="panel">
|
|
33
|
+
<h2>Overall progress · 1 tasks · 1 modules</h2>
|
|
34
|
+
<div class="kpis">
|
|
35
|
+
<button class="kpi" type="button" data-bucket="done" title="Filter to done"><b>1</b><span><i class="dot seg-done"></i>done</span></button>
|
|
36
|
+
<button class="kpi" type="button" data-bucket="active" title="Filter to in flight"><b>0</b><span><i class="dot seg-active"></i>in flight</span></button>
|
|
37
|
+
<button class="kpi" type="button" data-bucket="todo" title="Filter to draft"><b>0</b><span><i class="dot seg-todo"></i>draft</span></button>
|
|
38
|
+
<button class="kpi" type="button" data-bucket="hold" title="Filter to on hold"><b>0</b><span><i class="dot seg-hold"></i>on hold</span></button>
|
|
39
|
+
<div class="kpi"><b>—</b><span>open effort (h)</span></div>
|
|
40
|
+
</div>
|
|
41
|
+
<div class="bar-seg">
|
|
42
|
+
<i class="seg-done" style="width:100.0%" title="done 1"></i>
|
|
43
|
+
<i class="seg-active" style="width:0.0%" title="in flight 0"></i>
|
|
44
|
+
<i class="seg-hold" style="width:0.0%" title="on hold 0"></i>
|
|
45
|
+
</div>
|
|
46
|
+
<div class="legend">
|
|
47
|
+
<span><i class="dot seg-done"></i> done / closed (100.0%)</span>
|
|
48
|
+
<span><i class="dot seg-active"></i> in flight — ready_to_implement → testing</span>
|
|
49
|
+
<span><i class="dot seg-todo"></i> draft</span>
|
|
50
|
+
<span><i class="dot seg-hold"></i> on hold</span>
|
|
51
|
+
<span class="muted">click a number to filter · click any task to open it</span>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="panel">
|
|
55
|
+
<h2>Releases · 1 · latest v0.1.0</h2>
|
|
56
|
+
<div class="spark"><a href="#timeline" title="v0.1.0 · 2026-07-27 — 0 tasks"><b>0</b><i style="height:4px"></i><span>0.1.0</span></a></div>
|
|
57
|
+
<p class="relnote">tasks bound to each release — cited in the entry, or matched by <code>shipped:</code> date.</p>
|
|
58
|
+
</div></section>
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
<section class="now" id="stuck-wip">
|
|
62
|
+
<h2>Stuck WIP (G13)</h2>
|
|
63
|
+
<p class="muted">As-of date unavailable (no CYBEROS_NOW / CYBEROS_HUB_ASOF and no dated CHANGELOG entry for VERSION 1.1.0) — age classification skipped. Detector stays report-only.</p>
|
|
64
|
+
</section>
|
|
65
|
+
|
|
66
|
+
<nav class="bar" id="bar" aria-label="Search, filters and views">
|
|
67
|
+
<div class="bar-top">
|
|
68
|
+
<label class="srch">
|
|
69
|
+
<span class="ic" aria-hidden="true">⌕</span>
|
|
70
|
+
<input id="q" type="search" placeholder="Search 1 tasks — id, title, module, owner, phase…" autocomplete="off" spellcheck="false">
|
|
71
|
+
</label>
|
|
72
|
+
<div class="lenses" role="tablist" aria-label="View">
|
|
73
|
+
<button class="ln" role="tab" type="button" data-lens="board" aria-selected="true">▦ Board</button>
|
|
74
|
+
<button class="ln" role="tab" type="button" data-lens="table" aria-selected="false">☰ Table</button>
|
|
75
|
+
<button class="ln" role="tab" type="button" data-lens="timeline" aria-selected="false">◷ Releases</button>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
<div class="bar-bot">
|
|
79
|
+
<label class="facet">module<select id="f-m"><option value="">all</option><option value="release">release</option></select></label>
|
|
80
|
+
<label class="facet">status<select id="f-s"><option value="">all</option><option value="done">done</option></select></label>
|
|
81
|
+
<label class="facet">priority<select id="f-p"><option value="">all</option><option value="p0">p0</option></select></label>
|
|
82
|
+
<label class="facet">class<select id="f-c"><option value="">all</option><option value="feature">feature</option></select></label>
|
|
83
|
+
<label class="facet">phase<select id="f-ph"><option value="">all</option></select></label>
|
|
84
|
+
<label class="facet">group by<select id="f-g"><option value="m">module</option><option value="ph">phase</option><option value="s">status</option><option value="p">priority</option><option value="c">class</option><option value="o">owner</option></select></label>
|
|
85
|
+
<button id="clear" class="btn ghost sm" type="button">Clear</button>
|
|
86
|
+
<output id="count" class="cnt" for="q"></output>
|
|
87
|
+
</div>
|
|
88
|
+
<div class="chipbar" id="active-filters" hidden></div>
|
|
89
|
+
</nav>
|
|
90
|
+
|
|
91
|
+
<div id="lens" class="lens" role="region" aria-live="polite" aria-label="Tasks"></div>
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
<noscript>
|
|
96
|
+
<div class="nojs">
|
|
97
|
+
<p class="relnote">JavaScript is off, so the interactive canvas and the task drawer are unavailable.
|
|
98
|
+
Everything below is the same corpus, rendered statically.</p>
|
|
99
|
+
<div class="tbl-wrap"><table><thead><tr>
|
|
100
|
+
<th>id</th><th>title</th><th>module</th><th>class</th><th>priority</th><th>phase</th><th>status</th>
|
|
101
|
+
</tr></thead><tbody>
|
|
102
|
+
<tr><td class="code">TASK-REL-001</td><td>LAUNCH design system at VERSION 1.1.0</td><td>release</td><td>feature</td><td>p0</td><td></td><td>done</td></tr>
|
|
103
|
+
</tbody></table></div>
|
|
104
|
+
<h3 class="groupq">Releases</h3>
|
|
105
|
+
<article class="rel"><span class="tick">✓</span><div>
|
|
106
|
+
<div class="rel-h"><b>v0.1.0</b><span class="muted">2026-07-27</span></div>
|
|
107
|
+
|
|
108
|
+
<div class="rel-sec"><h4>Notes</h4><ul><li>CyberOS initialised: task workflow vendored to .cyberos/, backlog at docs/tasks/BACKLOG.md, status page at docs/status/.</li></ul></div>
|
|
109
|
+
</div></article></div>
|
|
110
|
+
</noscript>
|
|
111
|
+
|
|
112
|
+
<footer class="ft">design-system — generated at 1.1.0 (fp-05ef7886fd20). Markdown is the record of truth; this page only renders it. · <a href="status.html">Current status page (v3)</a></footer>
|
|
113
|
+
</main>
|
|
114
|
+
|
|
115
|
+
<div id="scrim" class="scrim" hidden></div>
|
|
116
|
+
<aside id="drawer" class="drawer" hidden role="dialog" aria-modal="true" aria-labelledby="dw-title"></aside>
|
|
117
|
+
|
|
118
|
+
<script type="application/json" id="cs-data">{"project":"design-system","version":"1.1.0","commit":"fp-05ef7886fd20","statuses":["draft","ready_to_implement","implementing","ready_to_review","reviewing","ready_to_test","testing","done","on_hold","closed","cannot_reproduce","duplicate"],"specDir":"data/task","frBase":"../tasks/","tasks":[{"i":"TASK-REL-001","k":"TASK-REL-001-launch-1-1-0","dm":"release","t":"LAUNCH design system at VERSION 1.1.0","m":"release","c":"feature","p":"p0","s":"done","cr":"2026-07-27T09:26:43+0000","ca":"2026-07-27T09:26:43+0000","st":[],"d":[],"b":[],"rl":[],"sm":"Owner said LAUNCH and set the release to 1.1.0. The pre-LAUNCH pin at 1.0.0 is lifted for this cut only; further bumps still need an explicit owner instruction. No CHANGELOG.md — continuity stays tip SHA + curated…","sp":1}],"releases":[{"v":"0.1.0","vl":"v0.1.0","d":"2026-07-27","intro":[],"sec":[{"h":"Notes","items":["CyberOS initialised: task workflow vendored to .cyberos/, backlog at docs/tasks/BACKLOG.md, status page at docs/status/."]}],"cited":[],"dated":[]}],"bound":[],"draft_staleness":{"total":0,"by_reason":[]},"stuck_wip":{"asof":null,"threshold_days":30,"stale":[],"unparseable":[],"asof_missing":true}}</script>
|
|
119
|
+
<script defer src="assets/status-legacy.js"></script>
|
|
120
|
+
</body>
|
|
121
|
+
</html>
|
package/docs/storybook.md
CHANGED
|
@@ -18,10 +18,10 @@ Storybook **10** is the **product site** for operators on `design.cyberskill.wor
|
|
|
18
18
|
- `AllSizes` whenever `argTypes.size` exists (token ramp or representative numeric sizes)
|
|
19
19
|
- `States` (or a Matrix subsection) covering `disabled` / `loading` / `error` / `busy` when those argTypes exist
|
|
20
20
|
- Every discrete `size` / `variant` enum option mounted in a matrix-family story
|
|
21
|
-
- `FullMatrix` when ≥
|
|
22
|
-
- Toolbar globals: Theme × Element × Language (same axes as templates). Element lists **all 15** Ngũ Hành packs (
|
|
21
|
+
- `FullMatrix` when ≥1 of {size enums, variant enums, state keys} exist — the size × variant × key-state product via shared helpers in `stories/lib/matrix.jsx`
|
|
22
|
+
- Toolbar globals: Theme (light · dark · **system**) × Element × Language × Style (same axes as templates / Atomic View). Element lists **all 15** Ngũ Hành packs (`tokens.elements` / template EL maps / Storybook toolbar) — not a subset. Style’s sole pack is **liquid-glass**.
|
|
23
23
|
- **Docs/** public MDX guides; **Release Notes/** curated product prose (**no CHANGELOG.md**); **Status/** embeds `_audit/run.html` full-bleed
|
|
24
|
-
- **Maintainer/** stories for portable HTML surfaces (Motion,
|
|
24
|
+
- **Maintainer/** stories for portable HTML surfaces (Motion, templates, kitchen-sink, AI cluster, RTL; Atomic View buried for gates)
|
|
25
25
|
- Same `styles.css` as production
|
|
26
26
|
- Addons: `@storybook/addon-docs` + `@storybook/addon-a11y` (essentials folded into core in SB10)
|
|
27
27
|
|
|
@@ -37,7 +37,8 @@ Storybook **10** is the **product site** for operators on `design.cyberskill.wor
|
|
|
37
37
|
|---|---|
|
|
38
38
|
| Static / any framework | `styles.css` + `.cs-*` |
|
|
39
39
|
| React production | `styles.css` + `_ds_bundle.js` |
|
|
40
|
-
| ESM | `_esm/
|
|
40
|
+
| ESM (bundler) | `_esm/react.mjs` (default / `@cyberskill/design/react`) |
|
|
41
|
+
| ESM (browser legacy) | `_esm/cs.mjs` (`@cyberskill/design/legacy`) |
|
|
41
42
|
| Tokens | `tokens/*` |
|
|
42
43
|
| Claude Design | `templates/**/*.dc.html` |
|
|
43
44
|
|
package/docs/sync.md
CHANGED
|
@@ -10,7 +10,8 @@ The GitHub repo (`cyberskill-official/design-system`) is the **source of truth**
|
|
|
10
10
|
- `templates/**/*.dc.html` (+ `ds-base.js`, `support.js`)
|
|
11
11
|
- `guidelines/`, `ui_kits/`, `fonts/` (woff2), `assets/`, `docs/`, `_audit/*.html`
|
|
12
12
|
|
|
13
|
-
- **`_esm/
|
|
13
|
+
- **`_esm/react.mjs`** — bundler-native React entry (default package export; React peer). Regenerated via `npm run build:react-entry`.
|
|
14
|
+
- **`_esm/cs.mjs`** — the browser / no-build legacy ESM entry (`@cyberskill/design/legacy`). Underscore-prefixed does **not** mean build artifact or gitignored here (only `uploads/`, `scraps/`, `_audit/exports/` are — see Hygiene below); `_esm/` is source, same tier as `templates/` or `docs/`. A prior port of this repo skipped it on exactly this assumption and broke the ESM smoke gate — if you're porting/copying this tree by hand, **explicitly include every top-level folder this list names**, don't infer from the `_` prefix.
|
|
14
15
|
|
|
15
16
|
- `README.md`, `CONTRIBUTING.md`, `SKILL.md`, `CLAUDE.md`, `VERSION`, `DESIGN.md` (generated open-spec surface — committed, regenerated only via `npm run build:design-md`, pinned by the `design-md-parity` gate)
|
|
16
17
|
|
|
@@ -38,7 +39,7 @@ The PR diff is the safety net — it shows exactly what changed since the last c
|
|
|
38
39
|
## Hygiene that keeps round-trips clean
|
|
39
40
|
- **`.gitignore`** the transient (`uploads/`, `scraps/`, `_audit/exports/`); commit everything else, **including `_esm/`** (see above — it is source, not a build artifact, despite the `_` prefix). The compiled `_ds_bundle.js`/manifest are committed for consumers that have no build step, but expect churn — or ignore them and let each session regenerate.
|
|
40
41
|
|
|
41
|
-
- **`VERSION` is
|
|
42
|
+
- **`VERSION` is LAUNCHED at 1.1.0** — bump only with an explicit owner instruction; do not maintain a changelog file. Continuity is the git history; open maintainer tasks live in `docs/decisions.md`.
|
|
42
43
|
|
|
43
44
|
- **One source of truth at a time.** Don't edit the repo and a Claude Design project in parallel and push both — pull, work, push, in that order, so the repo is always the merge point.
|
|
44
45
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# design-system task backlog
|
|
2
|
+
|
|
3
|
+
Source of truth for task state = each task's frontmatter `status`. This file indexes them. ONE backlog for ALL work: net-new features (`class: product`, the default) and hardening/refactor/audit-remediation (`class: improvement`) live here together — improvement is not a separate track and never gets a second backlog file. Tag improvement rows with `(improvement)`; untagged rows are product.
|
|
4
|
+
|
|
5
|
+
Task files live under `docs/tasks/`: flat (`TASK-001-slug.md`) for small repos, or grouped in subfolders by module for larger ones. `improvement/` is a normal subfolder there for cross-cutting hardening tasks.
|
|
6
|
+
|
|
7
|
+
The `ship-tasks` workflow reads this file, picks the first eligible task (`ready_to_implement` with all `depends_on` done), and drives it through the lifecycle. HITL is required: the agent halts at review acceptance and final acceptance for a recorded human verdict, and never sets `done` itself.
|
|
8
|
+
|
|
9
|
+
Lifecycle: draft -> ready_to_implement -> implementing -> ready_to_review -> reviewing -> ready_to_test -> testing -> done. Off-ramps: on_hold, closed, cannot_reproduce (`type: bug` only), duplicate (requires `duplicate_of:`). See `.cyberos/cuo/STATUS-REFERENCE.md`.
|
|
10
|
+
|
|
11
|
+
## ready_to_implement
|
|
12
|
+
|
|
13
|
+
- (none)
|
|
14
|
+
|
|
15
|
+
## in flight
|
|
16
|
+
|
|
17
|
+
- (none)
|
|
18
|
+
|
|
19
|
+
## done
|
|
20
|
+
|
|
21
|
+
- [done] TASK-REL-001-launch-1-1-0 - LAUNCH design system at VERSION 1.1.0
|
|
22
|
+
|
|
23
|
+
## on_hold / closed
|
|
24
|
+
|
|
25
|
+
- (deferred or killed tasks)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
# Owner LAUNCH instruction 2026-07-27 — bump pinned 1.0.0 → 1.1.0.
|
|
3
|
+
id: TASK-REL-001
|
|
4
|
+
title: LAUNCH design system at VERSION 1.1.0
|
|
5
|
+
template: task@1
|
|
6
|
+
type: feature
|
|
7
|
+
module: release
|
|
8
|
+
status: done
|
|
9
|
+
# Human acceptance (operator 2026-07-27): review + final acceptance approved — commit/merge/deploy instructed.
|
|
10
|
+
acceptance_verdict: approved
|
|
11
|
+
accepted_at: 2026-07-27T17:10:00+07:00
|
|
12
|
+
accepted_by: "@stephencheng"
|
|
13
|
+
priority: p0
|
|
14
|
+
author: "@stephencheng"
|
|
15
|
+
department: engineering
|
|
16
|
+
created_at: 2026-07-27T09:26:43+0000
|
|
17
|
+
ai_authorship: assisted
|
|
18
|
+
eu_ai_act_risk_class: not_ai
|
|
19
|
+
client_visible: true
|
|
20
|
+
depends_on: []
|
|
21
|
+
routed_back_count: 0
|
|
22
|
+
awh: N/A
|
|
23
|
+
class: product
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
# TASK-REL-001: LAUNCH design system at VERSION 1.1.0
|
|
27
|
+
|
|
28
|
+
## 1. Description (normative)
|
|
29
|
+
|
|
30
|
+
Owner said **LAUNCH** and set the release to **1.1.0**. The pre-LAUNCH pin at 1.0.0 is lifted for this cut only; further bumps still need an explicit owner instruction. No `CHANGELOG.md` — continuity stays tip SHA + curated Release Notes.
|
|
31
|
+
|
|
32
|
+
- 1.1 Root `VERSION` and every version stamp (`package.json`, token metas, DTCG `$extensions`, `provenance.json`, `DESIGN.md` front matter, `_esm/cs.mjs` `VERSION`, embedded token meta in `_ds_bundle.js`) SHALL equal **1.1.0**.
|
|
33
|
+
- 1.2 Hard gates that previously asserted the **1.0.0** pin (`docs-consistency`, `version-stamp`, `test-react-entry`, `npm-publish.mjs`) SHALL assert **1.1.0** (or equality with the root `VERSION` file) and SHALL NOT retain "until LAUNCH" blocking language that forbids this bump.
|
|
34
|
+
- 1.3 Operator-facing docs (EN + VI), SKILL/README/CONTRIBUTING, Release Notes, and Storybook Release Notes SHALL record LAUNCH at **1.1.0** and that further VERSION bumps require owner instruction; still no changelog file.
|
|
35
|
+
- 1.4 `examples/npm-hello` SHALL target `@cyberskill/design@1.1.0`. Until that version exists on the public registry, CI MAY soft-skip the registry install with an honest report and prove the local pack instead — soft-skip ≠ published.
|
|
36
|
+
|
|
37
|
+
## 2. Acceptance criteria
|
|
38
|
+
|
|
39
|
+
- [ ] AC for 1.1 — `VERSION` and all stamps read `1.1.0` — test: `version-stamp` / `scripts/verify-local.sh`
|
|
40
|
+
- [ ] AC for 1.2 — docs-consistency + react-entry + npm-publish dry-run accept 1.1.0 — test: `_audit/docs-consistency.html`, `npm run test:react-entry`, `npm run npm:pack-dry-run`
|
|
41
|
+
- [ ] AC for 1.3 — grep for "until LAUNCH" / "pinned at **1.0.0**" in live operator docs is clean (archive may retain history) — test: docs-consistency + manual grep
|
|
42
|
+
- [ ] AC for 1.4 — npm-hello expects 1.1.0; CI path documented — test: `examples/npm-hello/smoke.mjs`
|
|
43
|
+
|
|
44
|
+
## 3. Edge cases
|
|
45
|
+
|
|
46
|
+
- npm registry does not yet have 1.1.0 when CI runs — soft-skip registry path, pack local tarball, still smoke exports.
|
|
47
|
+
- Historical `_audit/archive/` mentions of 1.0.0 must not be rewritten.
|
|
48
|
+
- Native store scaffold "until LAUNCH" release-notes placeholders become post-LAUNCH scaffold copy (no product store submit).
|
|
49
|
+
|
|
50
|
+
## 4. Protected invariants this task must not weaken
|
|
51
|
+
|
|
52
|
+
- No `CHANGELOG.md` surface.
|
|
53
|
+
- License stays **UNLICENSED**; consumer grant unchanged except version references.
|
|
54
|
+
- Expansion Rule and axis contracts unchanged.
|
|
55
|
+
- Do not invent product → element mappings.
|
|
@@ -29,8 +29,20 @@ Purely additive, opt-in metadata: a sidecar `templates/<slug>/content-schema.jso
|
|
|
29
29
|
| `slots[].required` | no | default `false` |
|
|
30
30
|
| `slots[].i18n` | no | `{"en": "...", "vi": "..."}` — for templates that ship EN·VI variants |
|
|
31
31
|
|
|
32
|
-
The formal machine-checkable shape lives in `templates/schema/content-schema.schema.json` (JSON Schema draft-07). `_audit/template-schema-test.html` validates every sidecar that exists — bidirectionally: every declared slot id must
|
|
32
|
+
The formal machine-checkable shape lives in `templates/schema/content-schema.schema.json` (JSON Schema draft-07). `_audit/template-schema-test.html` validates every sidecar that exists — bidirectionally against eligible content holes: every declared slot id must be a content hole in the `.dc.html`, and every content hole must appear as a slot — **and enforces coverage**.
|
|
33
33
|
|
|
34
|
-
##
|
|
34
|
+
## Which holes are schema-eligible
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
A `{{ hole }}` is a **content hole** (schema-eligible) unless it is:
|
|
37
|
+
|
|
38
|
+
- an **axis / control-flow** hole — `rootTheme`, `langAttr`, `elAttr`, `vaAttr`, `dirAttr`, `true`, `false`, anything matching `is<Uppercase>` (`isEN`, `isVN`, `isBoth`, `isTable`, …), or a bare numeric literal;
|
|
39
|
+
- a **boolean tweak** hole — anything matching `show|hide|has|enable|with` + `<Uppercase>` (`showLogo`, `showSignatures`, `showQuote`, …);
|
|
40
|
+
- a **runtime-control** hole — UI selection / handler wiring: exact names `tabs`, `tab`, `lens`, `chatOpen`, `closeChat`, `dangerOpen`, `closeDanger`, or anything matching `set|open` + `<Uppercase>` (`setTab`, `setLens`, `openChat`, …).
|
|
41
|
+
|
|
42
|
+
Those are runtime axes, not typed content slots, and stay out of schema.
|
|
43
|
+
|
|
44
|
+
## Rollout — complete for eligible templates, and gated
|
|
45
|
+
|
|
46
|
+
This shipped **intentionally incomplete** at first: three exemplars (one per major archetype) proved the pattern end-to-end — `marketing-page` (product), `bod-report` (document), `slide-deck` (deck) — and it was then swept across hole-driven templates.
|
|
47
|
+
|
|
48
|
+
That sweep is now **finished and locked**. As of Jul 2026 the split is **39 content-hole-driven templates, all 39 with a sidecar**, and **45 templates that expose only axis/boolean holes** (bilingual copy hardcoded per `sc-if` branch), which correctly omit one. `_audit/template-schema-test.html` no longer merely reports this — it **fails** if any template exposing a content hole lacks a sidecar. So the rule for authors is mechanical: a template that gains an authorable `{{ hole }}` gains a sidecar in the same change, or the board goes red.
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Rubric benchmark Design System
|
|
2
|
+
|
|
3
|
+
Checklist tự kiểm khi tiến hóa CyberSkill Design System — chuẩn bên ngoài cộng rule CDS. Ghép với [`docs/vi/quality-gates.md`](quality-gates.md) (gate xác định) và [`docs/vi/design-styles.md`](design-styles.md) (hợp đồng màu Element).
|
|
4
|
+
|
|
5
|
+
## Chuẩn bên ngoài
|
|
6
|
+
|
|
7
|
+
| Lĩnh vực | Chuẩn / thực hành | Cách đo |
|
|
8
|
+
|---|---|---|
|
|
9
|
+
| Sàn a11y pháp lý | WCAG 2.2 AA contrast (4.5:1 chữ thường / 3:1 chữ lớn / UI non-text ≥ 3:1) | `contrast-guard`, theme-overflow, axe-smoke |
|
|
10
|
+
| Đọc theo cảm nhận | APCA Bronze-style Lc (body ≥ 75, nhãn UI ≥ 60, lớn ≥ 45, non-text ≥ 15; dark max ~90) | `apca-dark-preview`, [`docs/vi/contrast-report.md`](contrast-report.md) |
|
|
11
|
+
| Không gian màu | Ramp OKLCH ưu tiên luminance; giữ hue qua mode | `element-geometry` + `npm run tokens:elements` |
|
|
12
|
+
| Kiến trúc token | W3C DTCG 2025.10 — primitive → semantic → component; leaf có `$type`; modifier đa chiều (theme × element) | `dtcg-typing`, token-format-parity, token-pipeline |
|
|
13
|
+
| Theming hai mode | Cùng họ hue light↔dark; remap role (không đảo hết) | `element-geometry` hue-lock |
|
|
14
|
+
| Audit dual-standard | Phân loại cặp: pass-both / fail-both / WCAG-only / APCA-only | Ghi trong workflow contrast-report sau đổi token |
|
|
15
|
+
| An toàn gamut | Ưu tiên chroma sRGB-safe; clamp trước khi emit | Generator + geometry gate |
|
|
16
|
+
|
|
17
|
+
## Rule CDS sở hữu
|
|
18
|
+
|
|
19
|
+
| Rule | Thực thi |
|
|
20
|
+
|---|---|
|
|
21
|
+
| Trục = Theme × Element × Language × Style cho tới khi có Style Expansion Rule | `axis-guard` (Expression/Density đã nghỉ); doctrine trong design-styles |
|
|
22
|
+
| Chữ không trên mid `-accent`; focus Ochre không remap; màu status không remap | Hợp đồng `elements.css` · contrast-report · conventions |
|
|
23
|
+
| Một element mỗi bề mặt; gradient chỉ Tương sinh | Registry products · conventions |
|
|
24
|
+
| Registry product→element khóa; UI kit trung thành Thổ | [`docs/vi/products.md`](products.md) |
|
|
25
|
+
| Expansion Rule đủ + `_audit/run.html` xanh + docs EN·VI parity | CLAUDE.md · docs-consistency · docs-lang-parity |
|
|
26
|
+
| VERSION **1.1.0** post-LAUNCH | version-stamp · docs-consistency |
|
|
27
|
+
| Pack Element chỉ từ seed (30 bộ) | `element-geometry` · `tokens:elements` |
|
|
28
|
+
|
|
29
|
+
## Checklist mở rộng style (`data-cs-style`)
|
|
30
|
+
|
|
31
|
+
Sole pack hôm nay: **liquid-glass** (`tokens/styles.css`, gate `_audit/style-contract.html`). Khi thêm style pack ngoài liquid-glass:
|
|
32
|
+
|
|
33
|
+
1. Overlay token **tiêu thụ** 9 role `--cs-accent-*` sẵn có (không invent pack Element song song).
|
|
34
|
+
2. Specimen card + Storybook / Atomic View nếu style chọn được ở sản phẩm.
|
|
35
|
+
3. Adoption template / kit chỉ khi cố ý — UI kit giữ Thổ trừ khi quyết định nói khác.
|
|
36
|
+
4. Regen contrast nếu style remap nền chứa chữ.
|
|
37
|
+
5. Expansion Rule grep enum mới qua templates, docs EN+VI, gates.
|
|
38
|
+
6. Mở rộng allowlist style-contract; giữ `_audit/run.html` xanh.
|
|
39
|
+
7. Ghi quyết định trong [`docs/vi/decisions.md`](decisions.md).
|
|
40
|
+
|
|
41
|
+
## Cách chạy một lượt benchmark
|
|
42
|
+
|
|
43
|
+
1. `npm run tokens:elements` (nếu đổi seed) → regen native → `node scripts/generate-contrast-report.mjs`
|
|
44
|
+
2. Fast board: mở `_audit/run.html` (hoặc CI `fast-gates`) — mọi hard gate xanh, gồm **Element geometry**
|
|
45
|
+
3. Whole-set Atomic View / Elements Geometry: đủ **30** bộ (soft/middle/deep × light/dark × năm element) — soft là pastel wash, middle đồng bộ cường độ giữa các element, deep rõ ràng tối hơn, role hài hòa, light↔dark giữ cùng họ hue. Gate geometry yêu cầu **cả** `minDeltaE` và `minDeltaL` (cộng L đơn điệu) từ `tokens/element-seeds.json`
|
|
46
|
+
4. Chỉ sửa rubric này khi chuẩn hoặc doctrine CDS đổi — giữ EN·VI parity
|