@cubis/foundry 0.3.70 → 0.3.71

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.
Files changed (35) hide show
  1. package/package.json +1 -1
  2. package/workflows/powers/ask-questions-if-underspecified/SKILL.md +51 -3
  3. package/workflows/powers/behavioral-modes/SKILL.md +100 -9
  4. package/workflows/skills/agent-design/SKILL.md +198 -0
  5. package/workflows/skills/agent-design/references/clarification-patterns.md +153 -0
  6. package/workflows/skills/agent-design/references/skill-testing.md +164 -0
  7. package/workflows/skills/agent-design/references/workflow-patterns.md +226 -0
  8. package/workflows/skills/deep-research/SKILL.md +25 -20
  9. package/workflows/skills/deep-research/references/multi-round-research-loop.md +73 -8
  10. package/workflows/skills/frontend-design/SKILL.md +37 -32
  11. package/workflows/skills/frontend-design/commands/brand.md +167 -0
  12. package/workflows/skills/frontend-design/references/brand-presets.md +228 -0
  13. package/workflows/skills/generated/skill-audit.json +11 -2
  14. package/workflows/skills/generated/skill-catalog.json +37 -5
  15. package/workflows/skills/skills_index.json +1 -1
  16. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/agent-design/SKILL.md +198 -0
  17. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/agent-design/references/clarification-patterns.md +153 -0
  18. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/agent-design/references/skill-testing.md +164 -0
  19. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/agent-design/references/workflow-patterns.md +226 -0
  20. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/SKILL.md +25 -20
  21. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/deep-research/references/multi-round-research-loop.md +73 -8
  22. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/frontend-design/SKILL.md +37 -32
  23. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/frontend-design/commands/brand.md +167 -0
  24. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/frontend-design/references/brand-presets.md +228 -0
  25. package/workflows/workflows/agent-environment-setup/platforms/claude/skills/skills_index.json +1 -1
  26. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/agent-design/SKILL.md +197 -0
  27. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/agent-design/references/clarification-patterns.md +153 -0
  28. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/agent-design/references/skill-testing.md +164 -0
  29. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/agent-design/references/workflow-patterns.md +226 -0
  30. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/SKILL.md +25 -20
  31. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/deep-research/references/multi-round-research-loop.md +73 -8
  32. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/frontend-design/SKILL.md +37 -32
  33. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/frontend-design/commands/brand.md +167 -0
  34. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/frontend-design/references/brand-presets.md +228 -0
  35. package/workflows/workflows/agent-environment-setup/platforms/copilot/skills/skills_index.json +1 -1
@@ -1,15 +1,80 @@
1
1
  # Multi-Round Research Loop
2
2
 
3
- Load this when the research task is broad, unstable, or likely to have conflicting public sources.
3
+ Load this when the research task is broad, unstable, contested, or likely to have conflicting public sources — or when the user explicitly asks for deep or latest research.
4
4
 
5
- ## Loop
5
+ ## The Core Principle
6
6
 
7
- 1. Start with the narrowest question possible.
8
- 2. Record what the first pass did not answer.
9
- 3. Search directly for the missing facts or contradictions.
10
- 4. Prefer primary or official sources when they exist.
11
- 5. Keep a short evidence table: fact, source, confidence, open question.
7
+ Your job is to find what is _missing_, not just summarize the first page of results. Stop when remaining uncertainty is low-impact or explicitly reported back to the user.
8
+
9
+ ---
10
+
11
+ ## The Loop
12
+
13
+ ### Round 1: Define and search broadly
14
+
15
+ 1. **Narrow the question** — State the most specific version of what you're trying to find. Vague questions produce vague results.
16
+ 2. **Search** — Run initial queries across the most likely sources (official docs, engineering blogs, GitHub repos, research papers as appropriate).
17
+ 3. **Record gaps** — What did this pass _not_ answer? What's contradictory? What's suspiciously absent?
18
+
19
+ ### Round 2: Target the gaps
20
+
21
+ 4. **Search directly for the missing facts** — Use specific, targeted queries (not broad topic queries). Prefer: official docs > primary source blog > authoritative community reference > general article.
22
+ 5. **Search for contradictions** — If two sources disagree, search specifically for why. Age, version differences, and context often explain it.
23
+ 6. **Seek counterexamples** — Actively search for "X doesn't work", "X is wrong", "problems with X" — not just confirmation.
24
+
25
+ ### Round 3: Corroborate and synthesize
26
+
27
+ 7. **Cross-verify** unstable claims against at least one independent source.
28
+ 8. **Rank sources** by directness (primary > secondary > tertiary), recency (newer > older for fast-moving topics), and authority (official > community > anecdotal).
29
+ 9. **Write the evidence table** — Track what you found, not just conclusions:
30
+
31
+ | Fact | Source | Confidence | Open question |
32
+ | ------- | ------------ | ------------------- | ------------------------ |
33
+ | [Claim] | [URL or doc] | High / Medium / Low | [What's still uncertain] |
34
+
35
+ ---
12
36
 
13
37
  ## Stop Rule
14
38
 
15
- Stop only when the remaining uncertainty is either low-impact or explicitly reported back to the user.
39
+ Stop when:
40
+
41
+ - Remaining uncertainty is low-impact (won't change the recommendation)
42
+ - OR the question is genuinely unresolvable from public sources (report this explicitly)
43
+ - OR you've completed 3 rounds without new signal (diminishing returns — report what's known and what's not)
44
+
45
+ Do NOT stop after one source when the claim is unstable, contested, or from a secondary source.
46
+
47
+ ---
48
+
49
+ ## Output Format
50
+
51
+ Separate clearly:
52
+
53
+ - **Sourced facts** — you have direct evidence
54
+ - **Informed inference** — logically follows from evidence but not directly stated
55
+ - **Unresolved gaps** — you searched and didn't find it; note what's unknown
56
+
57
+ Do not present inference as fact. Do not present absence of evidence as evidence of absence.
58
+
59
+ ---
60
+
61
+ ## Common Research Failure Modes
62
+
63
+ | Failure | Fix |
64
+ | ------------------------------------- | -------------------------------------------------- |
65
+ | Stopping at first result | Check at least 2-3 sources for any unstable claim |
66
+ | Only finding confirmation | Actively search for counterexamples and criticisms |
67
+ | Treating recent = correct | Cross-check recency with authority and context |
68
+ | Vague queries returning vague results | Restate the question as a specific, narrow query |
69
+ | Reporting uncertainty as fact | Use "inference" or "unknown" tags explicitly |
70
+ | Burying the answer in context | Lead with the finding; evidence follows |
71
+
72
+ ---
73
+
74
+ ## Sub-Agent Reader Test
75
+
76
+ After completing research, if the output will be used by another agent or handed to a human without context:
77
+
78
+ - Pass the research summary to a fresh sub-agent with no conversation history
79
+ - Ask: "What is the main finding?", "What is still uncertain?", "What sources support the key claims?"
80
+ - If the fresh reader gets it wrong, the synthesis has context bleed — revise before delivery
@@ -32,9 +32,10 @@ Guide creation of distinctive, production-grade frontend interfaces that avoid g
32
32
  Before writing code, ask or infer:
33
33
 
34
34
  1. **Purpose** — What problem does this interface solve? Who uses it?
35
- 2. **Tone** — Pick a bold aesthetic direction: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian. There are many flavors. Pick one and commit.
36
- 3. **Constraints** — Technical requirements (framework, performance, a11y level, browser support).
37
- 4. **Differentiation** — What makes this UNFORGETTABLE? What's the one thing someone will remember?
35
+ 2. **Brand** — Is there an existing brand system, style guide, or named brand (e.g. "Anthropic", client guidelines, hex palette) to follow? If yes, load `references/brand-presets.md` and use `/brand` to apply it before choosing aesthetic direction.
36
+ 3. **Tone** — If no brand system exists, pick a bold aesthetic direction: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian. There are many flavors. Pick one and commit.
37
+ 4. **Constraints** — Technical requirements (framework, performance, a11y level, browser support).
38
+ 5. **Differentiation** — What makes this UNFORGETTABLE? What's the one thing someone will remember?
38
39
 
39
40
  Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work — the key is intentionality, not intensity.
40
41
 
@@ -167,40 +168,42 @@ Deliver:
167
168
 
168
169
  Load only what the current step needs.
169
170
 
170
- | File | Load when |
171
- | ---------------------------------- | ---------------------------------------------------------------------------------------------------- |
172
- | `references/typography.md` | Task involves font selection, type scale, font loading, or text hierarchy decisions. |
173
- | `references/color-and-contrast.md` | Task involves palette selection, dark mode, OKLCH color, contrast ratios, or tinted neutrals. |
174
- | `references/spatial-design.md` | Task involves grid systems, spacing rhythm, container queries, or layout composition. |
175
- | `references/motion-design.md` | Task involves animation timing, easing curves, staggered reveals, or reduced motion support. |
176
- | `references/interaction-design.md` | Task involves form design, focus management, loading states, or progressive disclosure patterns. |
177
- | `references/responsive-design.md` | Task involves mobile-first design, fluid layouts, container queries, or adaptive interfaces. |
178
- | `references/ux-writing.md` | Task involves button labels, error messages, empty states, or microcopy decisions. |
179
- | `references/ux-psychology.md` | Task involves cognitive load, decision architecture, trust building, or emotional design principles. |
171
+ | File | Load when |
172
+ | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
173
+ | `references/typography.md` | Task involves font selection, type scale, font loading, or text hierarchy decisions. |
174
+ | `references/color-and-contrast.md` | Task involves palette selection, dark mode, OKLCH color, contrast ratios, or tinted neutrals. |
175
+ | `references/spatial-design.md` | Task involves grid systems, spacing rhythm, container queries, or layout composition. |
176
+ | `references/motion-design.md` | Task involves animation timing, easing curves, staggered reveals, or reduced motion support. |
177
+ | `references/interaction-design.md` | Task involves form design, focus management, loading states, or progressive disclosure patterns. |
178
+ | `references/responsive-design.md` | Task involves mobile-first design, fluid layouts, container queries, or adaptive interfaces. |
179
+ | `references/ux-writing.md` | Task involves button labels, error messages, empty states, or microcopy decisions. |
180
+ | `references/ux-psychology.md` | Task involves cognitive load, decision architecture, trust building, or emotional design principles. |
181
+ | `references/brand-presets.md` | Task involves applying existing brand guidelines, a named brand system (e.g. Anthropic), or converting a hex palette into CSS tokens. |
180
182
 
181
183
  ## Commands
182
184
 
183
185
  17 specialized commands for targeted design operations. Each command focuses on a specific design concern and can be applied to a whole page or a specific element.
184
186
 
185
- | Command | Purpose |
186
- | ------------------- | ----------------------------------------------------------------------------------------- |
187
- | `/audit` | Run technical quality checks: accessibility, performance, responsive behavior |
188
- | `/critique` | UX design review: hierarchy, clarity, emotional resonance, user flow |
189
- | `/normalize` | Align with design system standards: tokens, spacing, typography consistency |
190
- | `/polish` | Final pass before shipping: micro-details, alignment, visual refinement |
191
- | `/distill` | Strip to essence: remove unnecessary complexity, simplify without losing character |
192
- | `/clarify` | Improve unclear UX copy: labels, instructions, error messages, empty states |
193
- | `/optimize` | Performance improvements: image sizes, render-blocking, bundle impact |
194
- | `/harden` | Error handling, i18n readiness, edge cases, defensive UI patterns |
195
- | `/animate` | Add purposeful motion: transitions, micro-interactions, state changes |
196
- | `/colorize` | Introduce strategic color: palette refinement, accent placement, contrast fixes |
197
- | `/bolder` | Amplify timid designs: stronger hierarchy, more contrast, bigger gestures |
198
- | `/quieter` | Tone down overwhelming designs: reduce noise, increase whitespace, simplify |
199
- | `/delight` | Add moments of joy: easter eggs, satisfying interactions, personality |
200
- | `/extract` | Pull into reusable components: identify patterns, create component API |
201
- | `/adapt` | Adapt for different devices: responsive breakpoints, touch targets, viewport optimization |
202
- | `/onboard` | Design onboarding flows: first-run experience, empty states, progressive disclosure |
203
- | `/teach-impeccable` | One-time setup: gather project design context, save preferences for future sessions |
187
+ | Command | Purpose |
188
+ | ------------------- | ------------------------------------------------------------------------------------------------------------------- |
189
+ | `/audit` | Run technical quality checks: accessibility, performance, responsive behavior |
190
+ | `/critique` | UX design review: hierarchy, clarity, emotional resonance, user flow |
191
+ | `/normalize` | Align with design system standards: tokens, spacing, typography consistency |
192
+ | `/polish` | Final pass before shipping: micro-details, alignment, visual refinement |
193
+ | `/distill` | Strip to essence: remove unnecessary complexity, simplify without losing character |
194
+ | `/clarify` | Improve unclear UX copy: labels, instructions, error messages, empty states |
195
+ | `/optimize` | Performance improvements: image sizes, render-blocking, bundle impact |
196
+ | `/harden` | Error handling, i18n readiness, edge cases, defensive UI patterns |
197
+ | `/animate` | Add purposeful motion: transitions, micro-interactions, state changes |
198
+ | `/colorize` | Introduce strategic color: palette refinement, accent placement, contrast fixes |
199
+ | `/bolder` | Amplify timid designs: stronger hierarchy, more contrast, bigger gestures |
200
+ | `/quieter` | Tone down overwhelming designs: reduce noise, increase whitespace, simplify |
201
+ | `/delight` | Add moments of joy: easter eggs, satisfying interactions, personality |
202
+ | `/extract` | Pull into reusable components: identify patterns, create component API |
203
+ | `/adapt` | Adapt for different devices: responsive breakpoints, touch targets, viewport optimization |
204
+ | `/onboard` | Design onboarding flows: first-run experience, empty states, progressive disclosure |
205
+ | `/teach-impeccable` | One-time setup: gather project design context, save preferences for future sessions |
206
+ | `/brand` | Apply or enforce a specific brand identity: convert guideline colors to CSS tokens, set typography, verify contrast |
204
207
 
205
208
  Usage: Most commands accept an optional argument to focus on a specific area (e.g., `/audit header`, `/polish checkout-form`).
206
209
 
@@ -212,3 +215,5 @@ Usage: Most commands accept an optional argument to focus on a specific area (e.
212
215
  - "/critique the checkout flow — is the hierarchy clear? Does it build trust?"
213
216
  - "/polish the hero section before we ship."
214
217
  - "I need a color system for a health tech app. No fintech blue, no AI purple."
218
+ - "/brand anthropic — apply Anthropic's brand colors and typography to this interface."
219
+ - "Here's our brand guide with hex values. Apply it to this dashboard — /brand"
@@ -0,0 +1,167 @@
1
+ # /brand
2
+
3
+ Apply or enforce a specific brand identity across a frontend. Works from uploaded brand guidelines, a style guide document, hex palettes, or a named brand system.
4
+
5
+ ## Usage
6
+
7
+ ```
8
+ /brand → Prompt for brand context, then apply
9
+ /brand anthropic → Apply Anthropic's brand system
10
+ /brand <hex-palette> → Build tokens from provided hex values
11
+ /brand <element> → Apply brand to a specific component or section
12
+ ```
13
+
14
+ ## What It Does
15
+
16
+ Converts brand guidelines into a living CSS token system and applies it consistently across the interface. Outputs production-ready tokens plus updated component styles.
17
+
18
+ ## Workflow
19
+
20
+ ### 1. Gather Brand Inputs
21
+
22
+ Ask for (or detect from context):
23
+
24
+ - **Color values** — Primary, secondary, accent hex codes (or link to brand guide)
25
+ - **Typography** — Font families for headings and body. If not specified, choose a pairing that matches the brand's tone
26
+ - **Named brand** — If the user says "Anthropic", "Stripe", "Linear", "Vercel" etc., load known reference patterns from `references/brand-presets.md`
27
+
28
+ ### 2. Convert to OKLCH Tokens
29
+
30
+ Translate all hex values to OKLCH for perceptual uniformity. See `references/brand-presets.md` for the full conversion workflow.
31
+
32
+ ```css
33
+ /* Pattern: convert every color to oklch */
34
+ --brand-[name]: oklch(L% C H);
35
+ ```
36
+
37
+ ### 3. Build Semantic Token Layer
38
+
39
+ Map raw brand tokens to semantic roles. Never reference raw tokens directly in components:
40
+
41
+ ```css
42
+ :root {
43
+ /* Surfaces */
44
+ --color-bg: var(--brand-surface);
45
+ --color-bg-subtle: var(--brand-subtle);
46
+ --color-bg-elevated: var(--brand-elevated);
47
+
48
+ /* Text */
49
+ --color-text: var(--brand-ink);
50
+ --color-text-muted: var(--brand-mid);
51
+
52
+ /* Interactive */
53
+ --color-accent: var(--brand-primary-accent);
54
+ --color-accent-hover: oklch(
55
+ from var(--brand-primary-accent) calc(l - 0.05) c h
56
+ );
57
+
58
+ /* Borders */
59
+ --color-border: var(--brand-subtle);
60
+ --color-border-focus: var(--brand-primary-accent);
61
+ }
62
+ ```
63
+
64
+ ### 4. Apply Typography
65
+
66
+ Set font families from brand guidelines and load them via Google Fonts or system stack:
67
+
68
+ ```css
69
+ @import url("https://fonts.googleapis.com/css2?family=DISPLAY_FONT&family=BODY_FONT&display=swap");
70
+
71
+ :root {
72
+ --font-display: "Display Font", fallback, sans-serif;
73
+ --font-body: "Body Font", fallback, serif;
74
+ }
75
+ ```
76
+
77
+ Apply via element targeting:
78
+
79
+ - Headings, labels, buttons, nav → `var(--font-display)`
80
+ - Body copy, prose, descriptions → `var(--font-body)`
81
+
82
+ ### 5. Output Deliverables
83
+
84
+ Deliver:
85
+
86
+ 1. **Complete token file** — `tokens.css` or `:root {}` block with all brand tokens + semantic layer
87
+ 2. **Typography setup** — Font import + application rules
88
+ 3. **Component overrides** — Button, card, link, input, badge in brand style
89
+ 4. **Dark mode** — Inverted/adapted token values for `prefers-color-scheme: dark`
90
+ 5. **Usage notes** — How to swap the brand accent, where NOT to use accent color, contrast verification
91
+
92
+ ---
93
+
94
+ ## Anthropic Brand Quick-Apply
95
+
96
+ When the user requests Anthropic brand styling, use this preset directly:
97
+
98
+ ```css
99
+ /* ========================================
100
+ ANTHROPIC BRAND TOKENS
101
+ Source: github.com/anthropics/skills
102
+ ======================================== */
103
+ @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Lora:ital,wght@0,400;0,500;0,600;1,400&display=swap");
104
+
105
+ :root {
106
+ /* Neutrals */
107
+ --brand-ink: oklch(10.5% 0.006 85);
108
+ --brand-cream: oklch(98.2% 0.008 85);
109
+ --brand-mid: oklch(72% 0.009 85);
110
+ --brand-subtle: oklch(92% 0.01 85);
111
+
112
+ /* Accents */
113
+ --brand-orange: oklch(65% 0.145 42);
114
+ --brand-blue: oklch(65% 0.09 235);
115
+ --brand-green: oklch(57% 0.09 130);
116
+
117
+ /* Semantic layer */
118
+ --color-bg: var(--brand-cream);
119
+ --color-bg-subtle: var(--brand-subtle);
120
+ --color-text: var(--brand-ink);
121
+ --color-text-secondary: var(--brand-mid);
122
+ --color-accent: var(--brand-orange);
123
+ --color-accent-secondary: var(--brand-blue);
124
+ --color-border: var(--brand-subtle);
125
+
126
+ /* Typography */
127
+ --font-display: "Poppins", Arial, sans-serif;
128
+ --font-body: "Lora", Georgia, serif;
129
+ }
130
+
131
+ @media (prefers-color-scheme: dark) {
132
+ :root {
133
+ --color-bg: var(--brand-ink);
134
+ --color-bg-subtle: oklch(16% 0.008 85);
135
+ --color-text: var(--brand-cream);
136
+ --color-text-secondary: var(--brand-mid);
137
+ --color-border: oklch(22% 0.008 85);
138
+ }
139
+ }
140
+ ```
141
+
142
+ ---
143
+
144
+ ## Accessibility Check After Applying
145
+
146
+ After applying brand tokens, verify:
147
+
148
+ 1. **Text contrast**: `--color-text` on `--color-bg` must pass WCAG AA (4.5:1 normal, 3:1 large)
149
+ 2. **Accent on background**: `--color-accent` used as text or border must meet 3:1 minimum against its background
150
+ 3. **Focus states**: `--color-border-focus` must be visually distinct (3:1 against surrounding colors)
151
+
152
+ For Anthropic's palette: cream `#faf9f5` on near-black `#141413` gives ~18:1 — passes AAA. Orange `#d97757` on cream gives ~3.2:1 — acceptable for large text and UI components, not for small body text.
153
+
154
+ ---
155
+
156
+ ## Tone Alignment
157
+
158
+ After applying brand colors, make sure the _design choices_ match the brand character:
159
+
160
+ | Brand character | Design implication |
161
+ | ------------------------------------ | ---------------------------------------------------------------------------- |
162
+ | Warm, editorial (Anthropic) | Generous whitespace, serif body, soft borders, understated motion |
163
+ | Precise, minimal (Linear, Vercel) | Tight spacing, geometric sans only, sharp edges, instant transitions |
164
+ | Bold, consumer (Spotify, Duolingo) | Color-heavy, large type, playful shapes, expressive animation |
165
+ | Trustworthy, enterprise (Salesforce) | Blue-dominant, structured grids, conservative type, high information density |
166
+
167
+ Color alone doesn't make a branded interface feel right — spacing, motion, and layout personality must match.
@@ -0,0 +1,228 @@
1
+ # Brand Presets Reference
2
+
3
+ Use this reference when building interfaces that must conform to an existing brand system — whether a client-supplied style guide, a design system handoff, or a well-documented brand like Anthropic's.
4
+
5
+ ## Receiving Brand Guidelines
6
+
7
+ When a user hands over brand guidelines, extract these five things before writing any code:
8
+
9
+ | Extract | Ask or infer |
10
+ | ------------------ | ---------------------------------------------------------------------------- |
11
+ | **Color palette** | What are the primary, secondary, and accent hex values? |
12
+ | **Neutral system** | Are neutrals warm, cool, or truly achromatic? |
13
+ | **Typography** | Specific font families for headings and body? Variable font available? |
14
+ | **Spacing DNA** | Base unit? Tight/airy preference? |
15
+ | **Tone** | Where on the spectrum between playful ↔ authoritative, minimal ↔ expressive? |
16
+
17
+ ## Hex → OKLCH Conversion Workflow
18
+
19
+ Always convert brand hex colors to OKLCH for CSS. OKLCH gives you perceptual uniformity — colors with the same L value look equally bright, unlike hex or HSL.
20
+
21
+ ```css
22
+ /* Conversion pattern: hex → oklch via CSS Color 4 */
23
+ /* Most modern browsers accept oklch() natively */
24
+ /* Use https://oklch.com to find values, or compute: */
25
+
26
+ /* L = perceived lightness 0–100% */
27
+ /* C = chroma (colorfulness) 0–0.37ish */
28
+ /* H = hue angle 0–360 */
29
+
30
+ /* Example: #d97757 (warm orange) */
31
+ --brand-orange: oklch(65% 0.145 42);
32
+
33
+ /* Example: #faf9f5 (warm cream) */
34
+ --brand-surface: oklch(98.2% 0.008 85);
35
+
36
+ /* Example: #141413 (warm near-black) */
37
+ --brand-ink: oklch(10.5% 0.006 85);
38
+ ```
39
+
40
+ **Shorthand**: enter any hex at [oklch.com](https://oklch.com) to get the L/C/H values.
41
+
42
+ ## Semantic Token Mapping
43
+
44
+ Once you have OKLCH values, map them to semantic tokens — never use raw hex or oklch values directly in components:
45
+
46
+ ```css
47
+ :root {
48
+ /* --- RAW BRAND TOKENS (source of truth) --- */
49
+ --brand-ink: oklch(10.5% 0.006 85); /* near-black, warm */
50
+ --brand-surface: oklch(98.2% 0.008 85); /* cream white */
51
+ --brand-mid: oklch(72% 0.009 85); /* mid-range gray */
52
+ --brand-subtle: oklch(92% 0.01 85); /* light gray */
53
+ --brand-orange: oklch(65% 0.145 42); /* primary accent */
54
+ --brand-blue: oklch(65% 0.09 235); /* secondary accent */
55
+ --brand-green: oklch(57% 0.09 130); /* tertiary accent */
56
+
57
+ /* --- SEMANTIC TOKENS (what components use) --- */
58
+ --color-bg: var(--brand-surface);
59
+ --color-bg-subtle: var(--brand-subtle);
60
+ --color-text: var(--brand-ink);
61
+ --color-text-secondary: var(--brand-mid);
62
+ --color-accent: var(--brand-orange);
63
+ --color-accent-secondary: var(--brand-blue);
64
+ --color-accent-tertiary: var(--brand-green);
65
+ --color-border: var(--brand-subtle);
66
+ }
67
+ ```
68
+
69
+ ## Anthropic Brand System
70
+
71
+ Anthropic's brand (from [anthropics/skills](https://github.com/anthropics/skills/tree/main/skills/brand-guidelines)) is a useful reference implementation. It's a warm, editorial system — earthy neutrals with bold accent contrast.
72
+
73
+ ### Color Palette
74
+
75
+ ```css
76
+ :root {
77
+ /* Neutrals — warm hue angle ~85 (yellow-brown direction) */
78
+ --anthropic-ink: oklch(10.5% 0.006 85); /* #141413 — body text, dark bg */
79
+ --anthropic-cream: oklch(
80
+ 98.2% 0.008 85
81
+ ); /* #faf9f5 — light bg, text on dark */
82
+ --anthropic-mid: oklch(72% 0.009 85); /* #b0aea5 — secondary text */
83
+ --anthropic-subtle: oklch(92% 0.01 85); /* #e8e6dc — dividers, subtle bg */
84
+
85
+ /* Accents — arranged in visual temperature order */
86
+ --anthropic-orange: oklch(
87
+ 65% 0.145 42
88
+ ); /* #d97757 — primary CTA, highlights */
89
+ --anthropic-blue: oklch(65% 0.09 235); /* #6a9bcc — secondary actions */
90
+ --anthropic-green: oklch(
91
+ 57% 0.09 130
92
+ ); /* #788c5d — tertiary, success states */
93
+ }
94
+ ```
95
+
96
+ ### Typography
97
+
98
+ ```css
99
+ /* Load from Google Fonts */
100
+ @import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Lora:ital,wght@0,400;0,500;0,600;1,400&display=swap");
101
+
102
+ :root {
103
+ --font-display: "Poppins", Arial, sans-serif; /* headings, nav, labels */
104
+ --font-body: "Lora", Georgia, serif; /* body text, long-form */
105
+ }
106
+
107
+ /* Application rules */
108
+ h1,
109
+ h2,
110
+ h3,
111
+ h4,
112
+ h5,
113
+ h6,
114
+ .label,
115
+ .nav-item,
116
+ .button,
117
+ .badge {
118
+ font-family: var(--font-display);
119
+ }
120
+
121
+ p,
122
+ blockquote,
123
+ .prose,
124
+ article {
125
+ font-family: var(--font-body);
126
+ }
127
+ ```
128
+
129
+ **Why this pairing works**: Poppins is geometric and structured — clear, modern authority. Lora is elegant serif — warm, readable, literary. Together they balance clarity with warmth, matching Anthropic's positioning between scientific rigor and approachability.
130
+
131
+ ### Spacing DNA
132
+
133
+ The brand leans into generous negative space. Use a `8px` base unit with larger gaps between major sections:
134
+
135
+ ```css
136
+ :root {
137
+ --space-1: 0.5rem; /* 8px — tight groupings */
138
+ --space-2: 1rem; /* 16px — component padding */
139
+ --space-3: 1.5rem; /* 24px — between related elements */
140
+ --space-4: 2rem; /* 32px — section mini-gap */
141
+ --space-6: 3rem; /* 48px — between sections */
142
+ --space-8: 4rem; /* 64px — major section spacing */
143
+ }
144
+ ```
145
+
146
+ ### Component Patterns
147
+
148
+ ```css
149
+ /* Card — warm border, generous padding, no shadow */
150
+ .card {
151
+ background: var(--anthropic-subtle);
152
+ border: 1px solid var(--anthropic-mid);
153
+ border-radius: 4px; /* subtle — not pill-shaped */
154
+ padding: var(--space-4);
155
+ }
156
+
157
+ /* Button — orange CTA */
158
+ .button-primary {
159
+ background: var(--anthropic-orange);
160
+ color: var(--anthropic-cream);
161
+ font-family: var(--font-display);
162
+ font-weight: 500;
163
+ letter-spacing: 0.01em;
164
+ border-radius: 4px;
165
+ padding: 0.625rem 1.5rem;
166
+ border: none;
167
+ }
168
+ .button-primary:hover {
169
+ background: oklch(60% 0.145 42); /* slightly darker orange */
170
+ }
171
+
172
+ /* Text link — uses orange, not blue */
173
+ a {
174
+ color: var(--anthropic-orange);
175
+ text-decoration-thickness: 1px;
176
+ text-underline-offset: 3px;
177
+ }
178
+
179
+ /* Code / monospace — uses ink on subtle bg */
180
+ code {
181
+ background: var(--anthropic-subtle);
182
+ color: var(--anthropic-ink);
183
+ font-size: 0.875em;
184
+ padding: 0.2em 0.4em;
185
+ border-radius: 3px;
186
+ }
187
+ ```
188
+
189
+ ### Dark Mode
190
+
191
+ Anthropic's palette inverts gracefully — the cream and ink swap, mid-tones pull slightly warmer:
192
+
193
+ ```css
194
+ @media (prefers-color-scheme: dark) {
195
+ :root {
196
+ --color-bg: var(--anthropic-ink);
197
+ --color-bg-subtle: oklch(16% 0.008 85); /* slightly elevated */
198
+ --color-text: var(--anthropic-cream);
199
+ --color-text-secondary: var(--anthropic-mid);
200
+ --color-border: oklch(22% 0.008 85);
201
+ /* Accents stay the same — they hold on both backgrounds */
202
+ }
203
+ }
204
+ ```
205
+
206
+ ## Applying Other Brand Systems
207
+
208
+ When adapting a different brand, follow this checklist:
209
+
210
+ 1. **Extract and convert** — Get all hex values, convert to oklch
211
+ 2. **Identify neutrals** — Are they warm, cool, or pure gray? Find the hue angle
212
+ 3. **Map the hierarchy** — Which color is dominant (60%), which secondary (30%), which accent (10%)?
213
+ 4. **Check contrast** — Use the WCAG APCa algorithm for text contrast. oklch makes this predictable
214
+ 5. **Find the typography voice** — Geometric sans = structured/modern; humanist sans = friendly; slab = authoritative; oldstyle serif = editorial; transitional serif = professional
215
+ 6. **Test the mood** — Show a prototype section in brand colors. Does it _feel_ like the brand in motion, not just color?
216
+
217
+ ## Common Brand Color Archetypes
218
+
219
+ | Archetype | Neutrals | Primary accent | Feeling |
220
+ | ------------------------------ | ----------------------- | -------------------- | --------------------------------- |
221
+ | **Warm editorial** (Anthropic) | Cream / warm near-black | Orange / terracotta | Thoughtful, approachable, premium |
222
+ | **Cool tech** | True gray / white | Electric blue / teal | Precise, efficient, modern |
223
+ | **Finance/enterprise** | Navy / white | Deep blue / gold | Stable, trustworthy, conservative |
224
+ | **Health/wellness** | Off-white / dark green | Sage green / amber | Natural, calm, nurturing |
225
+ | **Startup/consumer** | White / black | Bold purple or coral | Energetic, fun, accessible |
226
+ | **Luxury** | White / true black | Gold / burgundy | Exclusive, refined, timeless |
227
+
228
+ When working with a brand that fits these archetypes, pull from the pattern — then make one unexpected choice to give it character.
@@ -2,7 +2,7 @@
2
2
  "$schema": "cubis-foundry-skill-audit-v1",
3
3
  "generatedAt": "1970-01-01T00:00:00.000Z",
4
4
  "summary": {
5
- "keep": 83,
5
+ "keep": 84,
6
6
  "review": 4,
7
7
  "alias-only": 0
8
8
  },
@@ -16,6 +16,15 @@
16
16
  "tier": "experimental",
17
17
  "reason": "Canonical skill remains active in the layered catalog."
18
18
  },
19
+ {
20
+ "id": "agent-design",
21
+ "canonical_id": "agent-design",
22
+ "status": "keep",
23
+ "layer": "workflow-specialists",
24
+ "category": "workflow-specialists",
25
+ "tier": "experimental",
26
+ "reason": "Canonical skill remains active in the layered catalog."
27
+ },
19
28
  {
20
29
  "id": "agentic-eval",
21
30
  "canonical_id": "agentic-eval",
@@ -791,5 +800,5 @@
791
800
  "reason": "Canonical skill remains active in the layered catalog."
792
801
  }
793
802
  ],
794
- "contentHash": "06725220390d194e"
803
+ "contentHash": "43f23105321976ee"
795
804
  }