chore: add component-status manifest sync check to lint pipeline#750
Open
QuintonJason wants to merge 3 commits into
Open
chore: add component-status manifest sync check to lint pipeline#750QuintonJason wants to merge 3 commits into
QuintonJason wants to merge 3 commits into
Conversation
✅ Deploy Preview for pine-design-system ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
14 tasks
… reject array manifest)
pixelflips
approved these changes
Jun 3, 2026
pixelflips
left a comment
Member
There was a problem hiding this comment.
Should be fine for now, but I still think it's worth letting Storybook handle these, but nothing is blocking from a code review standpoint.
* chore: add figma code connect coverage guard to lint pipeline * fix: harden figma-coverage waiver and shared component-dir helper * fix: wire figma paths into nx affected and lint cache inputs Register @pine-ds/figma as a workspace project and declare an implicit dependency from core so figma-only PRs still schedule lint.figma, and add waiver/mapping paths to core lint inputs so Nx cache invalidates when those files change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Adds a CI-gated check that keeps
libs/core/src/stories/resources/component-status.json(the declared source of truth forStatusBadgeand the central Component status table) in sync withlibs/core/src/components/, so the two cannot silently drift after the lifecycle-status work landed in #738 / #748.The check fails the build when:
pds-*component has no status entry, orpds-*that no longer exists.Manifest entries validate against any
pds-*directory (top-level or a nested subcomponent such aspds-filter), so deliberate subcomponent entries pass without a hardcoded allowlist.Why no workflow changes: CI runs
nx affected --target=lint→ core'slintscript →run-p lint.*. Addinglint.statusmeans the existing lint job gates this automatically — no new workflow YAML or composite action.New dependencies: none (dependency-free ESM Node script).
Fixes #(no-issue)
Type of change
How Has This Been Tested?
Passes on current
main(36 entries in sync).Verified it fails with an actionable message when an entry is removed (
pds-button) and when a stale entry is added (pds-ghost), then confirmed clean after restore.npm run lint.statusresolves;run-p lint.*enumerateslint.eslint, lint.status, lint.styles.unit tests
e2e tests
accessibility tests
tested manually
other: self-validating check run against real + simulated drift
Test Configuration:
Checklist:
Note
Low Risk
Tooling-only changes with no runtime component or API behavior; risk is limited to CI failing until manifests, waivers, or mappings are updated.
Overview
Adds two maturity checks to
@pine-ds/corelint (run-p lint.*), so existingnx affected --target=lintCI picks them up without workflow changes.lint.statuskeepscomponent-status.jsonaligned withsrc/components/: every top-levelpds-*must have a manifest entry, and every entry must match a realpds-*directory (including nested subcomponents).lint.figmarequires each top-level component to have alibs/figma/components/<name>.figma.tsmapping or an explicit waiver incode-connect-waivers.json, and reports redundant/orphan waivers.Shared enumeration lives in
scripts/lib/components.mjs. Nx now treats@pine-ds/figmaas an implicit dependency of core and extends lint inputs to figma waivers and*.figma.tsso cache and affected lint stay correct when only figma changes. A minimallibs/figmaworkspace package is registered in the lockfile.Reviewed by Cursor Bugbot for commit 0632cd7. Bugbot is set up for automated code reviews on this repo. Configure here.