Problem
Feature code maintains parallel palettes using raw Tailwind families, local OKLCH, hardcoded black/white, alpha surfaces, and incorrect domain mappings such as emerald, amber, zinc, or purple outside VS Code.
Remediation action
Replace feature-local colors with canonical surface, foreground, link, syntax, diff, and status-domain tokens.
Representative scope
apps/web/src/components/shared/Banner.tsx:13
apps/web/src/components/organizations/UpgradeTrialDialog.tsx:115
apps/web/src/components/subscriptions/SubscriptionStatusBadge.tsx:4
apps/web/src/components/cloud-agent-next/SessionsList.tsx:53
apps/web/src/components/deployments/BuildLogViewer.tsx:64
apps/web/src/components/security-agent/SeverityBadge.tsx:13
apps/web/src/app/(app)/claw/components/InstanceTab.tsx:21
apps/web/src/components/gastown/BeadBoard.tsx:44
apps/web/src/app/(app)/wasteland/by-id/[wastelandId]/wanted/WantedBoardClient.tsx:42
apps/web/src/app/admin/components/OrganizationTableBody.tsx:32
Acceptance criteria
- Product surfaces use six-role surface ladder and semantic foreground/border utilities.
- Cloud, VS Code, CLI, Slack, Agent Manager, success, warning, and destructive states follow fixed domain mappings.
- Terminal/code/diff surfaces use dedicated tokens.
- Inline links use
text-link; primary yellow is not used as body/link text.
- No component-local OKLCH, raw black/white surface,
emerald, amber, zinc, sky, or decorative status color remains in audited scope.
- Status remains understandable through text or icon cues, not color alone.
Problem
Feature code maintains parallel palettes using raw Tailwind families, local OKLCH, hardcoded black/white, alpha surfaces, and incorrect domain mappings such as
emerald,amber,zinc, or purple outside VS Code.Remediation action
Replace feature-local colors with canonical surface, foreground, link, syntax, diff, and status-domain tokens.
Representative scope
apps/web/src/components/shared/Banner.tsx:13apps/web/src/components/organizations/UpgradeTrialDialog.tsx:115apps/web/src/components/subscriptions/SubscriptionStatusBadge.tsx:4apps/web/src/components/cloud-agent-next/SessionsList.tsx:53apps/web/src/components/deployments/BuildLogViewer.tsx:64apps/web/src/components/security-agent/SeverityBadge.tsx:13apps/web/src/app/(app)/claw/components/InstanceTab.tsx:21apps/web/src/components/gastown/BeadBoard.tsx:44apps/web/src/app/(app)/wasteland/by-id/[wastelandId]/wanted/WantedBoardClient.tsx:42apps/web/src/app/admin/components/OrganizationTableBody.tsx:32Acceptance criteria
text-link; primary yellow is not used as body/link text.emerald,amber,zinc,sky, or decorative status color remains in audited scope.