Summary
The feedback widget theme contract (.claude/policies/feedback-widget-tokens.md) defines a set of required --feedback-* CSS custom properties. Currently there is no automated check that an app's frontend/feedback-theme.css actually defines all of them — enforcement is manual.
This issue tracks adding a reusable called workflow (called-feedback-token-lint.yml) that:
- Reads the machine-readable schema at
schemas/feedback-widget-tokens.schema.json (already exists)
- Extracts all tokens marked
"required": true
- Checks the app's
frontend/feedback-theme.css to confirm every required token is defined (i.e. a --feedback-<token>: declaration is present)
- Fails the check if any required token is missing, listing exactly which ones
Acceptance criteria
Related
Summary
The feedback widget theme contract (
.claude/policies/feedback-widget-tokens.md) defines a set of required--feedback-*CSS custom properties. Currently there is no automated check that an app'sfrontend/feedback-theme.cssactually defines all of them — enforcement is manual.This issue tracks adding a reusable called workflow (
called-feedback-token-lint.yml) that:schemas/feedback-widget-tokens.schema.json(already exists)"required": truefrontend/feedback-theme.cssto confirm every required token is defined (i.e. a--feedback-<token>:declaration is present)Acceptance criteria
called-feedback-token-lint.ymladded to.github/workflows/schemas/feedback-widget-tokens.schema.jsonas the source of truth — no hardcoded token list in the workflowfeedback-theme-pathinput (default:frontend/feedback-theme.css) so apps with non-standard layouts can overrideci-cloudflare-workers.ymlor a new caller so it runs on PRs that touchfrontend/feedback-theme.csspolicy-enforcement.ymlpattern as the design-token checkRelated
.claude/policies/feedback-widget-tokens.mdschemas/feedback-widget-tokens.schema.json--feedback-*tokens are defined in each app'sfeedback-theme.csswill be added in a follow-up story"