@cyberskill/design 1.1.0 → 1.2.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 +25 -3
- package/README.md +7 -7
- package/SKILL.md +4 -4
- package/VERSION +1 -1
- package/_ds_bundle.js +819 -416
- package/_ds_manifest.json +1 -1
- package/_esm/cs.mjs +18 -4
- package/_esm/react.d.ts +2 -0
- package/_esm/react.mjs +1 -0
- package/base/a11y.css +18 -0
- package/base/ai.css +2 -2
- package/base/collections.css +8 -3
- package/base/components.css +11 -2
- package/base/controls.css +61 -48
- package/base/data.css +3 -3
- package/base/feedback.css +5 -0
- package/base/forms.css +9 -3
- package/base/glass.css +6 -0
- package/base/navigation.css +8 -2
- package/base/reset.css +1 -1
- package/base/responsive.css +25 -0
- package/base/shell.css +7 -1
- package/components/_i18n/i18n.js +13 -1
- package/components/_i18n/strings.js +52 -3
- package/components/ai/ConfidenceMeter.jsx +8 -6
- package/components/data/Watermark.jsx +11 -3
- package/components/datatable/DataGrid.jsx +10 -1
- package/components/dialog/Dialog.jsx +13 -45
- package/components/feedback/ProgressBar.jsx +4 -2
- package/components/forms/Cascader.jsx +69 -6
- package/components/forms/Editor.jsx +37 -2
- package/components/forms/FileUpload.jsx +22 -8
- package/components/forms/Switch.jsx +16 -2
- package/components/forms/TimePicker.jsx +3 -1
- package/components/icon/Icon.jsx +1 -0
- package/components/navigation/CommandPalette.jsx +22 -7
- package/components/navigation/Toolbar.jsx +2 -1
- package/components/overlays/AlertDialog.jsx +19 -49
- package/components/overlays/Drawer.jsx +24 -20
- package/components/overlays/OverlayManager.d.ts +40 -0
- package/components/overlays/OverlayManager.jsx +214 -0
- package/components/overlays/OverlayManager.prompt.md +12 -0
- package/components/overlays/Tour.jsx +14 -7
- package/dist/styles.min.css +2004 -0
- package/docs/benchmark-rubric.md +1 -1
- package/docs/ci-cd.md +3 -1
- package/docs/consuming.md +6 -6
- package/docs/contrast-report.md +1 -1
- package/docs/conventions.md +4 -4
- package/docs/decisions/container-query-migration.md +18 -0
- package/docs/decisions/overlay-manager-design.md +101 -0
- package/docs/decisions.md +5 -5
- package/docs/design-styles.md +1 -1
- package/docs/plans/cyberskill-design-system-audit-and-12-month-evolution-plan.md +1490 -0
- package/docs/quality-gates.md +21 -9
- package/docs/release-notes.md +10 -2
- package/docs/status/data/status-feed.json +1 -1
- package/docs/status/data/task/TASK-REL-002.js +1 -0
- package/docs/status/index.html +7 -6
- package/docs/status/status-legacy.html +13 -12
- package/docs/sync.md +1 -1
- package/docs/tasks/BACKLOG.md +1 -0
- package/docs/tasks/_state/commit-links.yaml +14 -0
- package/docs/tasks/release/TASK-REL-002-republish-1-1-1/spec.md +54 -0
- package/docs/vi/benchmark-rubric.md +1 -1
- package/docs/vi/ci-cd.md +3 -1
- package/docs/vi/consuming.md +6 -6
- package/docs/vi/contrast-report.md +1 -1
- package/docs/vi/conventions.md +2 -2
- package/docs/vi/decisions.md +5 -5
- package/docs/vi/quality-gates.md +21 -9
- package/docs/vi/release-notes.md +10 -2
- package/docs/vi/sync.md +1 -1
- package/guidelines/atomic-view.html +11 -7
- package/llms.txt +5 -5
- package/package.json +14 -6
- package/templates/_ds-base.canonical.js +55 -0
- package/templates/ai-cluster-demo.html +2 -2
- package/templates/app-shell/AppShell.dc.html +5 -3
- package/templates/app-shell/ds-base.js +33 -1
- package/templates/app-shell/support.js +13 -20
- package/templates/article/Article.dc.html +5 -1
- package/templates/article/ds-base.js +33 -1
- package/templates/article/support.js +13 -20
- package/templates/auth/Auth.dc.html +10 -5
- package/templates/auth/content-schema.json +12 -0
- package/templates/auth/ds-base.js +33 -1
- package/templates/auth/support.js +13 -20
- package/templates/bod-deck/BodDeck.dc.html +11 -10
- package/templates/bod-deck/ds-base.js +33 -1
- package/templates/bod-deck/support.js +13 -20
- package/templates/bod-investor-update/BodInvestorUpdate.dc.html +4 -3
- package/templates/bod-investor-update/ds-base.js +33 -1
- package/templates/bod-investor-update/support.js +13 -20
- package/templates/bod-memo/BodMemo.dc.html +6 -5
- package/templates/bod-memo/ds-base.js +33 -1
- package/templates/bod-memo/support.js +13 -20
- package/templates/bod-minutes/BodMinutes.dc.html +2 -1
- package/templates/bod-minutes/ds-base.js +33 -1
- package/templates/bod-minutes/support.js +13 -20
- package/templates/bod-report/BodReport.dc.html +3 -2
- package/templates/bod-report/ds-base.js +33 -1
- package/templates/bod-report/support.js +13 -20
- package/templates/bod-resolution/BodResolution.dc.html +5 -4
- package/templates/bod-resolution/ds-base.js +33 -1
- package/templates/bod-resolution/support.js +13 -20
- package/templates/culture-event-invite/CultureEventInvite.dc.html +3 -2
- package/templates/culture-event-invite/ds-base.js +33 -1
- package/templates/culture-event-invite/support.js +13 -20
- package/templates/dashboard/Dashboard.dc.html +7 -3
- package/templates/dashboard/ds-base.js +33 -1
- package/templates/dashboard/support.js +13 -20
- package/templates/delivery-change-note/DeliveryChangeNote.dc.html +2 -1
- package/templates/delivery-change-note/ds-base.js +33 -1
- package/templates/delivery-change-note/support.js +13 -20
- package/templates/delivery-kickoff/DeliveryKickoff.dc.html +3 -2
- package/templates/delivery-kickoff/ds-base.js +33 -1
- package/templates/delivery-kickoff/support.js +13 -20
- package/templates/delivery-qbr-deck/DeliveryQbrDeck.dc.html +6 -5
- package/templates/delivery-qbr-deck/ds-base.js +33 -1
- package/templates/delivery-qbr-deck/support.js +13 -20
- package/templates/delivery-runbook/DeliveryRunbook.dc.html +3 -2
- package/templates/delivery-runbook/ds-base.js +33 -1
- package/templates/delivery-runbook/support.js +13 -20
- package/templates/delivery-status-email/DeliveryStatusEmail.dc.html +3 -2
- package/templates/delivery-status-email/ds-base.js +33 -1
- package/templates/delivery-status-email/support.js +13 -20
- package/templates/doc-style-guide/DocStyleGuide.dc.html +67 -64
- package/templates/doc-style-guide/ds-base.js +33 -1
- package/templates/doc-style-guide/support.js +13 -20
- package/templates/doc-suite-index/DocSuiteIndex.dc.html +46 -45
- package/templates/doc-suite-index/ds-base.js +33 -1
- package/templates/doc-suite-index/support.js +13 -20
- package/templates/doc-templates/DocTemplates.dc.html +42 -41
- package/templates/doc-templates/ds-base.js +33 -1
- package/templates/doc-templates/support.js +13 -20
- package/templates/email/Email.dc.html +3 -2
- package/templates/email/ds-base.js +33 -1
- package/templates/email/support.js +13 -20
- package/templates/finance-dunning-email/FinanceDunningEmail.dc.html +4 -3
- package/templates/finance-dunning-email/ds-base.js +33 -1
- package/templates/finance-dunning-email/support.js +13 -20
- package/templates/finance-expense-report/FinanceExpenseReport.dc.html +4 -3
- package/templates/finance-expense-report/ds-base.js +33 -1
- package/templates/finance-expense-report/support.js +13 -20
- package/templates/finance-invoice/FinanceInvoice.dc.html +4 -3
- package/templates/finance-invoice/ds-base.js +33 -1
- package/templates/finance-invoice/support.js +13 -20
- package/templates/finance-quote/FinanceQuote.dc.html +4 -3
- package/templates/finance-quote/ds-base.js +33 -1
- package/templates/finance-quote/support.js +13 -20
- package/templates/hr-announcement/HrAnnouncement.dc.html +5 -4
- package/templates/hr-announcement/ds-base.js +33 -1
- package/templates/hr-announcement/support.js +13 -20
- package/templates/hr-interview-kit/HrInterviewKit.dc.html +4 -3
- package/templates/hr-interview-kit/ds-base.js +33 -1
- package/templates/hr-interview-kit/support.js +13 -20
- package/templates/hr-offboarding/HrOffboarding.dc.html +2 -1
- package/templates/hr-offboarding/ds-base.js +33 -1
- package/templates/hr-offboarding/support.js +13 -20
- package/templates/hr-performance-review/HrPerformanceReview.dc.html +2 -1
- package/templates/hr-performance-review/ds-base.js +33 -1
- package/templates/hr-performance-review/support.js +13 -20
- package/templates/hr-pip/HrPip.dc.html +2 -1
- package/templates/hr-pip/ds-base.js +33 -1
- package/templates/hr-pip/support.js +13 -20
- package/templates/kitchen-sink.html +9 -4
- package/templates/legal-msa/LegalMsa.dc.html +2 -1
- package/templates/legal-msa/ds-base.js +33 -1
- package/templates/legal-msa/support.js +13 -20
- package/templates/legal-sow/LegalSow.dc.html +2 -1
- package/templates/legal-sow/ds-base.js +33 -1
- package/templates/legal-sow/support.js +13 -20
- package/templates/marketing-campaign-brief/MarketingCampaignBrief.dc.html +3 -2
- package/templates/marketing-campaign-brief/ds-base.js +33 -1
- package/templates/marketing-campaign-brief/support.js +13 -20
- package/templates/marketing-case-study/MarketingCaseStudy.dc.html +5 -4
- package/templates/marketing-case-study/ds-base.js +33 -1
- package/templates/marketing-case-study/support.js +13 -20
- package/templates/marketing-launch/MarketingLaunch.dc.html +6 -5
- package/templates/marketing-launch/ds-base.js +33 -1
- package/templates/marketing-launch/support.js +13 -20
- package/templates/marketing-newsletter/MarketingNewsletter.dc.html +13 -12
- package/templates/marketing-newsletter/ds-base.js +33 -1
- package/templates/marketing-newsletter/support.js +13 -20
- package/templates/marketing-page/MarketingPage.dc.html +17 -12
- package/templates/marketing-page/ds-base.js +33 -1
- package/templates/marketing-page/support.js +13 -20
- package/templates/marketing-press-release/MarketingPressRelease.dc.html +2 -1
- package/templates/marketing-press-release/ds-base.js +33 -1
- package/templates/marketing-press-release/support.js +13 -20
- package/templates/marketing-social-kit/MarketingSocialKit.dc.html +5 -4
- package/templates/marketing-social-kit/ds-base.js +33 -1
- package/templates/marketing-social-kit/support.js +13 -20
- package/templates/sales-one-pager/SalesOnePager.dc.html +5 -4
- package/templates/sales-one-pager/ds-base.js +33 -1
- package/templates/sales-one-pager/support.js +13 -20
- package/templates/sales-proposal-deck/SalesProposalDeck.dc.html +7 -6
- package/templates/sales-proposal-deck/ds-base.js +33 -1
- package/templates/sales-proposal-deck/support.js +13 -20
- package/templates/settings/Settings.dc.html +5 -1
- package/templates/settings/ds-base.js +33 -1
- package/templates/settings/support.js +13 -20
- package/templates/slide-deck/SlideDeck.dc.html +5 -4
- package/templates/slide-deck/ds-base.js +33 -1
- package/templates/slide-deck/support.js +13 -20
- package/templates/team-meeting-agenda/TeamMeetingAgenda.dc.html +2 -1
- package/templates/team-meeting-agenda/ds-base.js +33 -1
- package/templates/team-meeting-agenda/support.js +13 -20
- package/templates/tech-incident-report/TechIncidentReport.dc.html +3 -2
- package/templates/tech-incident-report/ds-base.js +33 -1
- package/templates/tech-incident-report/support.js +13 -20
- package/templates/tech-release-notes/TechReleaseNotes.dc.html +6 -5
- package/templates/tech-release-notes/ds-base.js +33 -1
- package/templates/tech-release-notes/support.js +13 -20
- package/templates/tech-retro/TechRetro.dc.html +4 -3
- package/templates/tech-retro/ds-base.js +33 -1
- package/templates/tech-retro/support.js +13 -20
- package/templates/tech-rfc/TechRfc.dc.html +3 -2
- package/templates/tech-rfc/ds-base.js +33 -1
- package/templates/tech-rfc/support.js +13 -20
- package/templates/vn-appointment-transfer/VnAppointmentTransfer.dc.html +36 -35
- package/templates/vn-appointment-transfer/ds-base.js +33 -1
- package/templates/vn-appointment-transfer/support.js +13 -20
- package/templates/vn-certificate-of-employment/VnCertificateOfEmployment.dc.html +27 -26
- package/templates/vn-certificate-of-employment/ds-base.js +33 -1
- package/templates/vn-certificate-of-employment/support.js +13 -20
- package/templates/vn-code-of-conduct/VnCodeOfConduct.dc.html +44 -43
- package/templates/vn-code-of-conduct/ds-base.js +33 -1
- package/templates/vn-code-of-conduct/support.js +13 -20
- package/templates/vn-compensation-regulation/VnCompensationRegulation.dc.html +53 -52
- package/templates/vn-compensation-regulation/ds-base.js +33 -1
- package/templates/vn-compensation-regulation/support.js +13 -20
- package/templates/vn-contract-amendment/VnContractAmendment.dc.html +41 -40
- package/templates/vn-contract-amendment/ds-base.js +33 -1
- package/templates/vn-contract-amendment/support.js +13 -20
- package/templates/vn-contractor-agreement/VnContractorAgreement.dc.html +50 -49
- package/templates/vn-contractor-agreement/ds-base.js +33 -1
- package/templates/vn-contractor-agreement/support.js +13 -20
- package/templates/vn-data-protection-policy/VnDataProtectionPolicy.dc.html +54 -53
- package/templates/vn-data-protection-policy/ds-base.js +33 -1
- package/templates/vn-data-protection-policy/support.js +13 -20
- package/templates/vn-disciplinary-case-file/VnDisciplinaryCaseFile.dc.html +72 -71
- package/templates/vn-disciplinary-case-file/ds-base.js +33 -1
- package/templates/vn-disciplinary-case-file/support.js +13 -20
- package/templates/vn-disciplinary-schedule/VnDisciplinarySchedule.dc.html +21 -20
- package/templates/vn-disciplinary-schedule/ds-base.js +33 -1
- package/templates/vn-disciplinary-schedule/support.js +13 -20
- package/templates/vn-employee-request/VnEmployeeRequest.dc.html +54 -53
- package/templates/vn-employee-request/ds-base.js +33 -1
- package/templates/vn-employee-request/support.js +13 -20
- package/templates/vn-exit-handover/VnExitHandover.dc.html +122 -121
- package/templates/vn-exit-handover/ds-base.js +33 -1
- package/templates/vn-exit-handover/support.js +13 -20
- package/templates/vn-foreign-employee-pack/VnForeignEmployeePack.dc.html +31 -30
- package/templates/vn-foreign-employee-pack/ds-base.js +33 -1
- package/templates/vn-foreign-employee-pack/support.js +13 -20
- package/templates/vn-grassroots-democracy/VnGrassrootsDemocracy.dc.html +54 -53
- package/templates/vn-grassroots-democracy/ds-base.js +33 -1
- package/templates/vn-grassroots-democracy/support.js +13 -20
- package/templates/vn-infosec-policy/VnInfosecPolicy.dc.html +50 -49
- package/templates/vn-infosec-policy/ds-base.js +33 -1
- package/templates/vn-infosec-policy/support.js +13 -20
- package/templates/vn-internal-labor-regulations/VnInternalLaborRegulations.dc.html +84 -83
- package/templates/vn-internal-labor-regulations/ds-base.js +33 -1
- package/templates/vn-internal-labor-regulations/support.js +13 -20
- package/templates/vn-internship-agreement/VnInternshipAgreement.dc.html +44 -43
- package/templates/vn-internship-agreement/ds-base.js +33 -1
- package/templates/vn-internship-agreement/support.js +13 -20
- package/templates/vn-job-description/VnJobDescription.dc.html +28 -27
- package/templates/vn-job-description/ds-base.js +33 -1
- package/templates/vn-job-description/support.js +13 -20
- package/templates/vn-labor-contract/VnLaborContract.dc.html +109 -108
- package/templates/vn-labor-contract/ds-base.js +33 -1
- package/templates/vn-labor-contract/support.js +13 -20
- package/templates/vn-labour-management-book/VnLabourManagementBook.dc.html +32 -31
- package/templates/vn-labour-management-book/ds-base.js +33 -1
- package/templates/vn-labour-management-book/support.js +13 -20
- package/templates/vn-mutual-nda/VnMutualNda.dc.html +45 -44
- package/templates/vn-mutual-nda/ds-base.js +33 -1
- package/templates/vn-mutual-nda/support.js +13 -20
- package/templates/vn-ndnca-ip/VnNdncaIp.dc.html +73 -72
- package/templates/vn-ndnca-ip/ds-base.js +33 -1
- package/templates/vn-ndnca-ip/support.js +13 -20
- package/templates/vn-offer-letter/VnOfferLetter.dc.html +32 -31
- package/templates/vn-offer-letter/ds-base.js +33 -1
- package/templates/vn-offer-letter/support.js +13 -20
- package/templates/vn-onboarding-checklist/VnOnboardingChecklist.dc.html +16 -15
- package/templates/vn-onboarding-checklist/ds-base.js +33 -1
- package/templates/vn-onboarding-checklist/support.js +13 -20
- package/templates/vn-pdpl-consent/VnPdplConsent.dc.html +43 -42
- package/templates/vn-pdpl-consent/ds-base.js +33 -1
- package/templates/vn-pdpl-consent/support.js +13 -20
- package/templates/vn-performance-evaluation-regulation/VnPerformanceEvaluationRegulation.dc.html +65 -64
- package/templates/vn-performance-evaluation-regulation/ds-base.js +33 -1
- package/templates/vn-performance-evaluation-regulation/support.js +13 -20
- package/templates/vn-performance-review-form/VnPerformanceReviewForm.dc.html +49 -48
- package/templates/vn-performance-review-form/ds-base.js +33 -1
- package/templates/vn-performance-review-form/support.js +13 -20
- package/templates/vn-phantom-stock/VnPhantomStock.dc.html +41 -40
- package/templates/vn-phantom-stock/ds-base.js +33 -1
- package/templates/vn-phantom-stock/support.js +13 -20
- package/templates/vn-probation-contract/VnProbationContract.dc.html +56 -55
- package/templates/vn-probation-contract/ds-base.js +33 -1
- package/templates/vn-probation-contract/support.js +13 -20
- package/templates/vn-receipt-acknowledgement/VnReceiptAcknowledgement.dc.html +28 -27
- package/templates/vn-receipt-acknowledgement/ds-base.js +33 -1
- package/templates/vn-receipt-acknowledgement/support.js +13 -20
- package/templates/vn-remote-work-policy/VnRemoteWorkPolicy.dc.html +44 -43
- package/templates/vn-remote-work-policy/ds-base.js +33 -1
- package/templates/vn-remote-work-policy/support.js +13 -20
- package/templates/vn-resignation-letter/VnResignationLetter.dc.html +20 -19
- package/templates/vn-resignation-letter/ds-base.js +33 -1
- package/templates/vn-resignation-letter/support.js +13 -20
- package/templates/vn-salary-scale/VnSalaryScale.dc.html +39 -38
- package/templates/vn-salary-scale/ds-base.js +33 -1
- package/templates/vn-salary-scale/support.js +13 -20
- package/templates/vn-sow-appendix/VnSowAppendix.dc.html +21 -20
- package/templates/vn-sow-appendix/ds-base.js +33 -1
- package/templates/vn-sow-appendix/support.js +13 -20
- package/templates/vn-termination-decision/VnTerminationDecision.dc.html +25 -24
- package/templates/vn-termination-decision/ds-base.js +33 -1
- package/templates/vn-termination-decision/support.js +13 -20
- package/templates/vn-total-rewards-appendix/VnTotalRewardsAppendix.dc.html +63 -62
- package/templates/vn-total-rewards-appendix/ds-base.js +33 -1
- package/templates/vn-total-rewards-appendix/support.js +13 -20
- package/templates/vn-training-commitment/VnTrainingCommitment.dc.html +39 -38
- package/templates/vn-training-commitment/ds-base.js +33 -1
- package/templates/vn-training-commitment/support.js +13 -20
- package/templates/vn-travel-expense-policy/VnTravelExpensePolicy.dc.html +50 -49
- package/templates/vn-travel-expense-policy/ds-base.js +33 -1
- package/templates/vn-travel-expense-policy/support.js +13 -20
- package/tokens/colors.css +19 -1
- package/tokens/component-tokens.css +1 -0
- package/tokens/elements.css +35 -2
- package/tokens/elevation.css +8 -2
- package/tokens/native/CSTokens.kt +35 -1
- package/tokens/native/CSTokens.swift +35 -1
- package/tokens/native/cs_tokens.dart +35 -1
- package/tokens/provenance.json +12 -12
- package/tokens/spacing.css +2 -0
- package/tokens/tokens.dtcg.json +111 -3
- package/tokens/tokens.js +46 -6
- package/tokens/tokens.json +45 -5
- package/tokens/typography.css +2 -0
- package/ui_kits/deck/index.html +4 -0
- package/ui_kits/status-hub/StatusHub.jsx +30 -4
- package/ui_kits/status-hub/index.html +3 -3
- package/ui_kits/status-hub/login.html +4 -0
- package/ui_kits/status-hub/project.html +4 -0
- package/ui_kits/status-hub/settings.html +35 -13
- package/ui_kits/status-hub/status.css +5 -1
- package/ui_kits/website/Website.jsx +25 -3
- package/ui_kits/website/careers.html +4 -0
- package/ui_kits/website/chat.html +5 -3
- package/ui_kits/website/index.html +3 -3
- package/ui_kits/website/site.css +2 -2
- package/ui_kits/website/work.html +4 -0
package/docs/quality-gates.md
CHANGED
|
@@ -4,7 +4,7 @@ Every deterministic quality gate in the system, what it asserts, its pass criter
|
|
|
4
4
|
|
|
5
5
|
**Where gates run.** *Fast board CI* = the `fast-gates` job in `.github/workflows/design-system-gates.yml`, which serves the repo and drives `_audit/run.html` headless via `_audit/ci/run-gates.mjs` (every push/PR + nightly + manual) — new board rows are picked up automatically. Two gates additionally run standalone as *merge blockers* (`docs-consistency-blocker` job, via `_audit/ci/run-single-gate.mjs`). *Whole-set CI* = the `whole-set-audits` job (every push/PR + nightly — owner decision B). *Unit test* = `npm run test:unit` in the `unit-tests` job (plain Node, no browser). *Node pre-checks* = the `node-prechecks` job (browser-free authorities: bundle freshness, DESIGN.md freshness) plus the `token-provenance` job. Every browser gate publishes a verdict global (`window.__*`) that the headless runners read.
|
|
6
6
|
|
|
7
|
-
## Fast board —
|
|
7
|
+
## Fast board — 39 gates in `_audit/run.html`
|
|
8
8
|
|
|
9
9
|
Benchmark principles (WCAG · APCA · OKLCH · DTCG · CDS doctrine + style expansion): [`docs/benchmark-rubric.md`](benchmark-rubric.md).
|
|
10
10
|
|
|
@@ -13,12 +13,17 @@ Benchmark principles (WCAG · APCA · OKLCH · DTCG · CDS doctrine + style expa
|
|
|
13
13
|
| Contrast guard | `_audit/contrast-guard.html` | No base rule paints umber on a themeable surface without a dark override; every semantic text×surface pair scores in light and dark | 0 unshielded rules and 0 failing pairs (`__contrastguard`) | Hard | Fast board CI |
|
|
14
14
|
| Axes guard | `_audit/axis-guard.html` | No live source reintroduces the retired Expression/Density product surface | 0 hits across manifest-indexed sources (`__axisguard`) | Hard | Fast board CI |
|
|
15
15
|
| Manifest CSS paths | `_audit/manifest-css-guard.html` | Every `_ds_manifest.json` `globalCssPaths` entry exists as raw CSS; every `styles.css` `@import` is listed | 0 missing / 0 unlisted (`__cssguard`) | Hard | Fast board CI |
|
|
16
|
-
| Docs consistency | `_audit/docs-consistency.html` | Every count claim in README/SKILL/llms.txt matches the compiler manifest; audit prose card-count claims (`_audit/index` / README / namespace-portability) match `manifest.cards`; `VERSION`
|
|
16
|
+
| Docs consistency | `_audit/docs-consistency.html` | Every count claim in README/SKILL/llms.txt matches the compiler manifest; audit prose card-count claims (`_audit/index` / README / namespace-portability) match `manifest.cards`; `VERSION` is semver and `package.json` matches it (LAUNCHED 1.1.0; auto-bump on main); no changelog-file reference; stale-phrase blacklist (the retired suite/pack counts the Jul 2026 audit removed) clean across README/SKILL/llms + `docs/*.md` (historical notes under `_audit/archive/` are not scanned); `DESIGN.md` exists with front-matter version = `VERSION`; agent routing honesty — Claude path cites `_esm/cs.mjs` + bundle prefix; Stitch path forbids `*.dc.html` as SoT; package name `@cyberskill/design` | 0 mismatched claims, 0 blacklist hits, VERSION sync + stamp + routing intact (`__docs`) | Hard | Fast board CI + merge blocker |
|
|
17
17
|
| Docs language parity | `_audit/docs-lang-parity.html` | Every operator-facing EN `docs/*.md` has a `docs/vi/` counterpart; VI is not an empty/TODO stub (≥40% EN length); stale-phrase blacklist clean on both EN and VI (historical notes under `_audit/archive/` are not tracked) | 0 missing pairs, 0 stubs, 0 blacklist hits (`__docslangparity`) | Hard | Fast board CI |
|
|
18
18
|
| DESIGN.md parity | `_audit/design-md-parity.html` | The root `DESIGN.md` (Stitch open-spec surface) byte-equals an in-browser regeneration from `tokens.dtcg.json` + `_ds_manifest.json` + `VERSION` via the shared `scripts/design-md-lib.mjs`; every token row re-checked individually (the count is printed with the verdict) | Byte-identical + 0 drifted rows (`__designmd`) | Hard | Fast board CI |
|
|
19
|
-
| Version stamp | `_audit/version-stamp.html` | `package.json`, `tokens.json`/`tokens.js` metas, DTCG `$extensions`, `provenance.json` release + dtcgStamp, `DESIGN.md` front matter, and `_esm/cs.mjs` `export const VERSION` all equal `VERSION` (1.1.0
|
|
19
|
+
| Version stamp | `_audit/version-stamp.html` | `package.json`, `tokens.json`/`tokens.js` metas, DTCG `$extensions`, `provenance.json` release + dtcgStamp, `DESIGN.md` front matter, and `_esm/cs.mjs` `export const VERSION` all equal `VERSION` (pin tracks file; LAUNCHED at 1.1.0) | All 9 stamps equal (`__versionstamp`) | Hard | Fast board CI |
|
|
20
20
|
| Namespace portability | `_audit/namespace-portability.html` | No manifest-indexed source hardcodes the compiler's project-id bundle suffix | 0 hardcoded suffixes (`__nsguard`) | Hard | Fast board CI |
|
|
21
|
-
|
|
|
21
|
+
| Artifact head | `_audit/artifact-head.html` | Every template artifact exposes a non-empty `<title>` and `<html lang>` (via `ds-base` / compiler head standard) | 0 missing title/lang (`__artifacthead`) | Hard | Fast board CI |
|
|
22
|
+
| Overflow @320 | `_audit/responsive-overflow-320.html` | WCAG 1.4.10 reflow width: templates + kits at 320px without horizontal document overflow | 0 overflowing surfaces (`__overflow320`) | Hard | Fast board CI |
|
|
23
|
+
| Light contrast | `_audit/light-contrast.html` | Light-mode DOM walk (mirrors `theme-overflow`): reproducible solid-bg leaf-text WCAG AA fails outside `REVIEWED_OK` | 0 open contrast fails (`__lightcontrast`) | Hard | Fast board CI |
|
|
24
|
+
| No third-party | `_audit/no-third-party.html` | Product surfaces (templates · kits · Atomic View) contain no third-party script/style origins; React + Babel present under `_vendor/` | 0 CDN hits + vendors present (`__nothirdparty`) | Hard | Fast board CI |
|
|
25
|
+
| Zoom + text-spacing | `_audit/zoom-text-spacing.html` | Representative chrome fixture: no horizontal overflow at 640px (200% proxy) and 320px (400% proxy); WCAG 1.4.12 text-spacing applied | 0 overflows (`__zoomspacing`) | Hard | Fast board CI |
|
|
26
|
+
| Token contract | `_audit/token-contract.html` | All 15 element×variant scopes resolve all 10 `--cs-accent-*` roles (incl. `on-strong`); core semantic + doc/focus tokens resolve | 0 missing roles, 0 missing core tokens (`__contract`) | Hard | Fast board CI |
|
|
22
27
|
| Token pipeline | `_audit/token-pipeline-test.html` | Every DTCG-derived constant appears verbatim in all three `tokens/native/` targets; provenance sha-256 matches the DTCG source | 0 drifted constants, hash match (`__tokenpipe`) | Hard | Fast board CI |
|
|
23
28
|
| Token format parity | `_audit/token-format-parity.html` | Every `--cs-*` declaration in `tokens/*.css` equals its mirror in `tokens.json`, `tokens.js` (live ESM deep-equal), and DTCG (ext-css string or typed transform) — base `:root` + dark/system themes + 15 element packs + 15 dark packs; the 4 `_ds_manifest.json` durations equal `motion.css` (guards the reduced-motion 0ms compiler bug) | 0 diffs across all scopes (`__tokenformat`) | Hard | Fast board CI |
|
|
24
29
|
| DTCG typing | `_audit/dtcg-typing.html` | Every DTCG `$value` leaf carries a W3C `$type`; every `{alias}` resolves (chains followed, no cycles); every shadow token is a structured object/array with full layer fields; byType counts equal `provenance.json` | 0 untyped / dangling / string shadows (`__dtcgtyping`) | Hard | Fast board CI |
|
|
@@ -29,7 +34,7 @@ Benchmark principles (WCAG · APCA · OKLCH · DTCG · CDS doctrine + style expa
|
|
|
29
34
|
| ESM smoke test | `_audit/esm-smoke-test.html` | `_esm/cs.mjs` imports without a build, re-exports every manifest component, `VERSION` equals the root `VERSION` pin, and a mounted Button receives brand tokens | Export/manifest parity + VERSION pin + token check (`__esm`) | Hard | Fast board CI |
|
|
30
35
|
| Package exports integrity | `_audit/package-exports-integrity.html` | Every `package.json` `files` entry and every `module`/`types`/`style`/`exports` target exists; every entry-point target is covered by `files` (pack-safe); dual entries — `_esm/react.mjs` (default / `./react`, React peer) + `_esm/cs.mjs` (`./legacy`) — are ESM-shaped and their re-exports ⊆ the bundle header's exposed exports | 0 missing / uncovered / unknown (`__pkgexports`) | Hard | Fast board CI |
|
|
31
36
|
| Component children | `_audit/component-children-test.html` | Void-element components (Checkbox, Radio, Switch, SearchField, NumberField, Slider, Divider, TextField) mount with stray children without throwing React #137 | 0 throws (`__result.anyThrew === false`) | Hard | Fast board CI |
|
|
32
|
-
| Component behavior | `_audit/component-behavior-test.html` |
|
|
37
|
+
| Component behavior | `_audit/component-behavior-test.html` | 79 real interaction assertions — every interactive public primary with a user-driven contract (overlays, forms, AI gates, shell chrome, media/copy) plus toast-over-dialog depth; display-only primaries excluded by design | 79/79 assertions pass (`__behavior`) | Hard | Fast board CI |
|
|
33
38
|
| A11y interactions | `_audit/a11y-gate.html` | Focus management (Dialog/Drawer trap + restore + Escape), roving tabindex, combobox `aria-activedescendant`, role/label contracts, plus open-state Esc/focus for Cascader · TreeSelect · Tour · HoverCard · ContextMenu | All keyboard/ARIA assertions pass (`__a11y`) | Hard | Fast board CI |
|
|
34
39
|
| A11y CSSOM | `_audit/a11y-harness.html` | Every interactive `.cs-*` control meets its documented touch-target floor under coarse pointer; focus-ring, reduced-motion, and contrast rules proven in source CSS | 0 floor violations, all source proofs found (`__a11ycss`) | Hard | Fast board CI |
|
|
35
40
|
| Template schema v2 | `_audit/template-schema-test.html` | Every `content-schema.json` sidecar validates against the JSON Schema, every declared slot id resolves to a real `{{ hole }}` in its template, and every template exposing an authorable **content** hole ships a sidecar (axis/control-flow and boolean tweak holes excluded — see `docs/template-schema-v2.md`) | 0 invalid sidecars, 0 dangling slot ids, 0 hole-driven templates without a sidecar (`__schemav2`) | Hard | Fast board CI |
|
|
@@ -50,7 +55,7 @@ Benchmark principles (WCAG · APCA · OKLCH · DTCG · CDS doctrine + style expa
|
|
|
50
55
|
| Gate | File | What it asserts | Pass criterion | Type | Where it runs |
|
|
51
56
|
|---|---|---|---|---|---|
|
|
52
57
|
| Responsive overflow | `_audit/responsive-overflow.html` | Every template (84) + 3 UI kits render at 390 px without horizontal document overflow | 0 overflowing surfaces (`__overflow`) | Hard | Whole-set CI (every PR + nightly) |
|
|
53
|
-
| Language overflow | `_audit/language-overflow.html` | Same set forced to Tiếng Việt: VN applies, no overflow, no clipped text in fixed/nowrap boxes | 0 over/clip
|
|
58
|
+
| Language overflow | `_audit/language-overflow.html` | Same set forced to Tiếng Việt: VN applies, no overflow, no clipped text in fixed/nowrap boxes, and known EN built-in strings (PromptInput hint, FileUpload, DataGrid pin, …) do not leak | 0 over/clip/EN-leak (`__language`) | Hard | Whole-set CI (every PR + nightly) |
|
|
54
59
|
| Theme overflow | `_audit/theme-overflow.html` | Same set forced dark: dark applies, no document overflow, and no reproducible solid-bg leaf-text WCAG fails outside `REVIEWED_OK` | Dark applied + 0 overflow + 0 open contrast (`__theme`) | Hard (allowlisted near-misses only) | Whole-set CI (every PR + nightly) |
|
|
55
60
|
|
|
56
61
|
## Node pre-checks (browser-free)
|
|
@@ -61,7 +66,7 @@ Benchmark principles (WCAG · APCA · OKLCH · DTCG · CDS doctrine + style expa
|
|
|
61
66
|
| Bundle freshness (authority) | `_audit/ci/check-bundle-freshness.mjs` | The committed `_ds_bundle.js` was built from the component sources as they exist now — full source discovery (walks `components/`, `ui_kits/`, root sources), so new/deleted files are caught too, which the browser row cannot do | Exit 0, 0 drifted/new/deleted sources | Hard | CI `node-prechecks` job |
|
|
62
67
|
| DESIGN.md freshness | `scripts/generate-design-md.mjs --check` | The root `DESIGN.md` byte-equals a fresh regeneration from DTCG + manifest + `VERSION` | Exit 0 on byte match | Hard | CI `node-prechecks` job |
|
|
63
68
|
|
|
64
|
-
## Unit tests — `npm run test:unit` (
|
|
69
|
+
## Unit tests — `npm run test:unit` (13)
|
|
65
70
|
|
|
66
71
|
| Test | File | What it asserts | Pass criterion | Type | Where it runs |
|
|
67
72
|
|---|---|---|---|---|---|
|
|
@@ -74,11 +79,17 @@ Benchmark principles (WCAG · APCA · OKLCH · DTCG · CDS doctrine + style expa
|
|
|
74
79
|
| Code Connect helpers | `_audit/ci/test-code-connect.mjs` | 105 primaries, node-map/render helpers, soft-skip classifiers, committed `figma.config.json` + high-traffic `.figma.tsx` | All assertions pass (exit 0) | Hard | Unit test |
|
|
75
80
|
| Native samples | `_audit/ci/test-native-samples.mjs` | SwiftUI / Compose / Flutter sample apps each have ≥ 3 screens, reference generated token constants, and ship Fastlane store scaffolds (submit disabled) | All assertions pass (exit 0) | Hard | Unit test |
|
|
76
81
|
| Subtree consume | `_audit/ci/test-subtree-consume.mjs` | Portable copy of `styles.css` + `base/` + `tokens/` + `fonts/` + `_esm/` + `_ds_bundle.js` (no full clone) still resolves tokens/fonts and mounts a Button via ESM — Stitch/Claude subtree-copy path | All assertions pass (exit 0) | Hard | Unit test |
|
|
77
|
-
| React entry | `_audit/ci/test-react-entry.mjs` | Dual package exports (`.` / `./react` → `_esm/react.mjs`, `./legacy` → `_esm/cs.mjs`);
|
|
82
|
+
| React entry | `_audit/ci/test-react-entry.mjs` | Dual package exports (`.` / `./react` → `_esm/react.mjs`, `./legacy` → `_esm/cs.mjs`); `package.json` version equals `VERSION`; React peerDeps; react.mjs has no CDN/bundle bridge and re-exports match the bundle header; `generate-react-entry --check` green | All assertions pass (exit 0) | Hard | Unit test |
|
|
78
83
|
| Element packs | `_audit/ci/test-element-packs.mjs` | `tokens/elements.css` + JSON/JS/DTCG mirrors byte-equal regeneration from `tokens/element-seeds.json` | `generate-element-packs --check` exit 0 | Hard | Unit test |
|
|
84
|
+
| i18n builtins + doc/font residuals | `_audit/ci/test-i18n-builtins.mjs` | No hardcoded EN UI literals outside the registry path; 0 doc-palette hexes in templates; 0 raw font-size px in `base/` | Exit 0 | Hard | Unit test |
|
|
85
|
+
| Storybook static freshness | `_audit/ci/test-storybook-freshness.mjs` | When `storybook-static/` exists, `.cs-freshness.json` `sourceHash` matches `stories/` + `.storybook/` (UX-030). Absent static tree skips. | Exit 0 | Hard | Unit test |
|
|
79
86
|
|
|
80
87
|
The `test:unit` suite is wired into the CI workflow as part of the July 2026 hardening change (it previously only ran locally).
|
|
81
88
|
|
|
89
|
+
## Audit probe suite — `npm run test:audit-probe`
|
|
90
|
+
|
|
91
|
+
Promoted entry for UX audit proxies (`_audit/ci/audit-probe-suite.mjs`): unit suite + light-contrast + 320 overflow + language-overflow + zoom/text-spacing. Manual assistive-technology checks remain human-reviewed (never auto-marked pass).
|
|
92
|
+
|
|
82
93
|
## Sync / distribution jobs (soft-skip)
|
|
83
94
|
|
|
84
95
|
Soft-skip means the job exits 0 with a report when secrets/plan/API cannot complete the real write — **not** that Code Connect or Figma Variables are live. npm CI publish uses Trusted Publishing; soft-skip covers auth/conflict honesty. Treat remaining maintainer tasks in `docs/decisions.md` as the open list (Code Connect deferred; consumer grant is in `docs/consumer-grant.md`). Storybook `FullMatrix` is required for every public primary with ≥1 of {size enums, variant enums, state keys} — shared helpers in `stories/lib/matrix.jsx`.
|
|
@@ -94,7 +105,7 @@ Soft-skip means the job exits 0 with a report when secrets/plan/API cannot compl
|
|
|
94
105
|
|
|
95
106
|
| Job | Script / workflow | What it asserts | Pass criterion | Where it runs |
|
|
96
107
|
|---|---|---|---|---|
|
|
97
|
-
| npm-hello smoke | `examples/npm-hello` + `npm-hello-smoke` job | Public registry install of `@cyberskill/design@1.1.
|
|
108
|
+
| npm-hello smoke | `examples/npm-hello` + `npm-hello-smoke` job | Public registry install of `@cyberskill/design@1.1.1` resolves package name + exports (`npm install` + `npm run smoke`; local pack proof if VERSION not on registry yet) | Exit 0 (**hard fail** once published; soft-skip pack proof if VERSION not on registry yet) | Path-filtered push/PR + nightly + manual |
|
|
98
109
|
|
|
99
110
|
## July 2026 hardening — delivered
|
|
100
111
|
|
|
@@ -106,3 +117,4 @@ The eight gates the audit planned (token-format-parity, version-stamp, support-r
|
|
|
106
117
|
- **Legal template content** — counsel reviews the instruments; gates only check structure, bilingual mechanics, and print geometry.
|
|
107
118
|
- **Pixel-diff baselines** — Playwright `%` drift auto-fails (hard). After intentional redesigns, refresh `_audit/baselines/` with `pixel-diff.mjs --update` and commit. Side-by-side visual / component review pages stay advisory (judgment by eye).
|
|
108
119
|
- **Component API design review** — prop naming and ergonomics are reviewed by the owner, not asserted.
|
|
120
|
+
- **Manual AT (E1)** — NVDA / VoiceOver (and similar) checks are owner-attested; empty slots are not passes.
|
package/docs/release-notes.md
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
|
-
Curated product highlights for operators. This is **not** a git log and **not** a `CHANGELOG.md` — the design system does not maintain a changelog file. Version is **LAUNCHED at 1.1.0** (
|
|
3
|
+
Curated product highlights for operators. This is **not** a git log and **not** a `CHANGELOG.md` — the design system does not maintain a changelog file. Version is **LAUNCHED at 1.1.0**; **pin tracks `VERSION`** (auto-bump on push to `main` from Conventional Commits; owner may still force a bump). Technical continuity is the repo tip; product-facing continuity is this page (mirrored in Storybook **Release Notes**).
|
|
4
|
+
|
|
5
|
+
## Patch — `@cyberskill/design@1.1.1`
|
|
6
|
+
|
|
7
|
+
Lockstep republish after the LAUNCH cut: regenerate natives / provenance / `_ds_bundle.js` so registry matches tip, and drop the forbidden root `CHANGELOG.md`. Install:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @cyberskill/design@1.1.1
|
|
11
|
+
```
|
|
4
12
|
|
|
5
13
|
## LAUNCH — `@cyberskill/design@1.1.0`
|
|
6
14
|
|
|
@@ -37,5 +45,5 @@ CSS tokens, DTCG (`tokens/tokens.dtcg.json`), and pre-generated SwiftUI / Compos
|
|
|
37
45
|
## What we never ship
|
|
38
46
|
|
|
39
47
|
- A root **`CHANGELOG.md`** (forbidden by doctrine and docs-consistency)
|
|
40
|
-
- A VERSION
|
|
48
|
+
- A root `CHANGELOG.md` (still forbidden) — VERSION now auto-bumps on `main`; owner may still force
|
|
41
49
|
- Storybook as a consumer dependency
|
|
@@ -1 +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"}
|
|
1
|
+
{"project":"design-system","version":"1.2.0","feed":1,"snapshot":"2026-08-09","head":"df61281","coverageAsOf":"df61281","branch":"main","repoUrl":"https://github.com/cyberskill-official/design-system","tags":["v1.1.0","v1.1.1","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},{"i":"TASK-REL-002","k":"release/TASK-REL-002-republish-1-1-1","t":"Republish @cyberskill/design at VERSION 1.1.1","m":"release","c":"feature","p":"p0","s":"done","b":"done","ph":"","o":"","cr":"2026-07-27","sh":null,"e":null,"d":["TASK-REL-001"],"bl":[],"rl":[],"sm":"Owner approved a 1.1.1 patch republish so the public registry matches tip after post-LAUNCH lockstep fixes (bundle freshness, native provenance, no CHANGELOG.md). LAUNCH narrative at 1.1.0 stays historical; current…","pg":null}],"modules":[{"id":"release","kind":"","total":2,"done":2,"active":0,"hold":0,"draft":0,"r":20,"x":490,"y":315}],"medges":[],"phases":[],"releases":[],"unreleased":{"notes":{"features":[],"fixes":[],"improvements":[]},"cov":{"commits":[{"h":"df61281","d":"2026-08-09","s":"ci: enable CyberOS-style VERSION auto-bump on main","ids":[],"k":"unlinked"},{"h":"ca3f854","d":"2026-08-09","s":"fixup!: ledger-exempt baseline hygiene commits","ids":[],"k":"exempt"},{"h":"be0f872","d":"2026-08-09","s":"chore: ledger-exempt pixel baseline refresh commit","ids":[],"k":"exempt","via":"ledger"},{"h":"056591c","d":"2026-08-09","s":"ci: refresh ubuntu pixel baselines after UX surface polish","ids":[],"k":"exempt","via":"ledger"},{"h":"8646dbf","d":"2026-08-09","s":"fixup!: remove UX audit paper trail and exempt phase commits","ids":[],"k":"exempt"},{"h":"a1695fe","d":"2026-08-09","s":"docs: stamp Phase 4–5 commit hash on UX audit plan (TASK-UX-AUDIT-20260808).","ids":[],"k":"exempt","via":"ledger"},{"h":"6ca2a1a","d":"2026-08-09","s":"Close UX audit Phase 4–5: zoom gate, CQ layer, AT matrix schedule (TASK-UX-AUDIT-20260808).","ids":[],"k":"exempt","via":"ledger"},{"h":"b0b6f5d","d":"2026-08-09","s":"Land UX audit Phase 3: overlay manager + flow/kit polish (TASK-UX-AUDIT-20260808).","ids":[],"k":"exempt","via":"ledger"},{"h":"8aab010","d":"2026-08-08","s":"Close UX audit Phase 2: pack-contract v2 + flat CSS + overlay design (TASK-UX-AUDIT-20260808).","ids":[],"k":"exempt","via":"ledger"},{"h":"46a10fb","d":"2026-08-08","s":"Close UX audit Phase 1: light contrast + offline product surfaces (TASK-UX-AUDIT-20260808).","ids":[],"k":"exempt","via":"ledger"},{"h":"91d9fd8","d":"2026-07-28","s":"feat: plan","ids":[],"k":"exempt","via":"ledger"},{"h":"0266444","d":"2026-07-27","s":"Republish design system at VERSION 1.1.1 for registry lockstep (TASK-REL-002).","ids":["TASK-REL-002"],"k":"linked"},{"h":"b3621e8","d":"2026-07-27","s":"Regenerate token natives, provenance, and bundle for 1.1.0 lockstep (TASK-REL-001).","ids":["TASK-REL-001"],"k":"linked"},{"h":"43e64aa","d":"2026-07-27","s":"Fix post-LAUNCH gate drift: regenerate natives/provenance and drop CHANGELOG (TASK-REL-001).","ids":["TASK-REL-001"],"k":"linked"},{"h":"9c41e17","d":"2026-07-27","s":"Launch design system at VERSION 1.1.0 (TASK-REL-001).","ids":["TASK-REL-001"],"k":"linked"},{"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":5,"exempt":53,"unlinked":134}},"burnup":[],"fp":"fp-9ee271ad01e7"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
window.CS_SPEC=window.CS_SPEC||{};window.CS_SPEC["TASK-REL-002"]="<h1>TASK-REL-002: Republish @cyberskill/design at VERSION 1.1.1</h1>\n<h2>1. Description (normative)</h2>\n<p>Owner approved a <strong>1.1.1</strong> patch republish so the public registry matches tip after post-LAUNCH lockstep fixes (bundle freshness, native provenance, no <code>CHANGELOG.md</code>). LAUNCH narrative at <strong>1.1.0</strong> stays historical; current pin is <strong>1.1.1</strong>. No changelog file.</p>\n<ul><li>1.1 Root <code>VERSION</code> and every version stamp SHALL equal <strong>1.1.1</strong>.</li><li>1.2 Hard gates that asserted the <strong>1.1.0</strong> pin SHALL assert <strong>1.1.1</strong> (or equality with root <code>VERSION</code>).</li><li>1.3 Operator docs (EN + VI), Release Notes, and npm-hello SHALL record current pin <strong>1.1.1</strong> and a short patch note; LAUNCH section for 1.1.0 remains.</li><li>1.4 Tag <strong><code>v1.1.1</code></strong> and publish via npm Trusted Publishing; Vercel deploys from <code>main</code>.</li></ul>\n<h2>2. Acceptance criteria</h2>\n<ul><li>[ ] AC for 1.1 — stamps read <code>1.1.1</code> — test: version-stamp / verify-local</li><li>[ ] AC for 1.2 — docs-consistency + react-entry + npm-publish dry-run accept 1.1.1</li><li>[ ] AC for 1.3 — release notes + npm-hello target 1.1.1; LAUNCH 1.1.0 prose retained</li><li>[ ] AC for 1.4 — <code>@cyberskill/design@1.1.1</code> on registry; production site on tip</li></ul>\n<h2>3. Edge cases</h2>\n<ul><li>Soft-skip npm-hello registry path until 1.1.1 exists on npm (pack proof still required).</li><li>Do not rewrite historical TASK-REL-001 or archive docs.</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></ul>";
|