gpt-taste
gpt taste
c3-component-design
Use when documenting component implementation patterns, internal structure, or hand-off points - enforces NO CODE rule and diagram-first approach for leaf-level C3 documentation
Full skill instructions
STOP - Before ANY component-level work, execute:
# Load grandparent Context cat .c3/README.md 2>/dev/null || echo "NO_CONTEXT" # Load parent Container (REQUIRED - components inherit from here) cat .c3/c3-{N}-*/README.md 2>/dev/null || echo "NO_CONTAINER" # Check if component is listed in Container grep "c3-{N}{NN}" .c3/c3-{N}-*/README.md 2>/dev/null || echo "COMPONENT_NOT_IN_CONTAINER" # Load existing component doc (if exists) cat .c3/c3-{N}-*/c3-{N}{NN}-*.md 2>/dev/null || echo "NO_COMPONENT_DOC"
Based on output:
⚠️ DO NOT read ADRs unless user specifically asks:
Why this gate exists: Components INHERIT from Container (and transitively from Context). A component cannot exist without being listed in its parent Container.
Self-check before proceeding:
Component is the leaf layer - it inherits all constraints from above and implements actual behavior.
Position: LEAF (c3-{N}{NN}) | Parent: Container (c3-{N}) | Grandparent: Context (c3-0)
📁 File Location: Component is .c3/c3-{N}-{slug}/c3-{N}{NN}-{slug}.md - INSIDE the container folder.
Announce: "I'm using the c3-component-design skill to explore Component-level impact."
Upper layer defines WHAT. Lower layer implements HOW.
At Component level:
Integrity rules:
| Include (Component Level) | Exclude (Push Up) |
|---|---|
| Interface (IN → OUT) | WHAT component does (Container) |
| Internal organization | Component relationships (Container) |
| Conventions & rules | WHY patterns chosen (Container/ADR) |
| Edge cases & errors | Code snippets |
| File paths |
Litmus test: "Is this about HOW this component implements its contract?"
Components are documented visually. The diagram tells the story, text supports it.
Every component explains:
Shows the boundary and hand-offs:
flowchart LR
subgraph IN["Receives"]
I1[From Component A]
I2[From External]
end
subgraph SELF["Owns"]
S1[Processing]
S2[Transformation]
end
subgraph OUT["Provides"]
O1[To Component B]
O2[To Caller]
end
IN --> SELF --> OUT
Use multiple diagrams when needed - just enough to explain:
| Diagram Type | Use When |
|---|---|
| Sequence | Hand-off between multiple components matters |
| State | Component has lifecycle/state transitions |
| Organization | Internal structure is complex (layers, subsystems) |
Foundation vs Business components:
Component docs describe HOW things work, NOT the actual implementation.
| Prohibited | Example | Write Instead |
|---|---|---|
| Implementation code | function handle() {...} | Flow diagram |
| Type definitions | interface User {...} | Table: Field | Type | Purpose |
| Config snippets | { "port": 3000 } | Table of settings |
| SQL/queries | SELECT * FROM... | Access pattern description |
| JSON/YAML schemas | { "eventId": "uuid" } | Table with dot notation |
| Example payloads | Request/response JSON | Table: Field | Type | Example |
From loaded Container, extract:
If component not in Container: STOP. Escalate to c3-container-design.
| Check | If Yes |
|---|---|
| Breaks interface/patterns? | Escalate to c3-container-design |
| Needs new tech? | Escalate to c3-container-design |
| Affects siblings? | Coordinate (may need Container update) |
| Implementation only? | Proceed |
By container archetype:
See component-template.md for complete structure with frontmatter, diagrams, and examples.
Required sections:
Optional sections (include based on component nature):
Keep it lean: Simple component = 5 sections. Complex framework = multiple diagrams + optional sections.
Rule: No code blocks except Mermaid diagrams.
# Check for non-mermaid code blocks
grep -E '```[a-z]+' .c3/c3-{N}-*/c3-{N}{NN}-*.md | grep -v mermaid
# Should return nothing
🚩 Red Flags:
function, class, interface, type keywordsimport, require, export statements.ts, .js, .pyRule: Interface diagram (IN → Processing → OUT) is REQUIRED.
Required sections:
Optional sections (include based on component nature):
🚩 Red Flags:
Before claiming completion, execute:
# Verify component doc exists in correct location
ls .c3/c3-{N}-*/c3-{N}{NN}-*.md
# Verify frontmatter
grep -E "^id:|^type:|^parent:" .c3/c3-{N}-*/c3-{N}{NN}-*.md
# Verify Interface diagram exists with IN/OUT structure
grep -c '```mermaid' .c3/c3-{N}-*/c3-{N}{NN}-*.md # Should be >= 1
grep -E "subgraph.*(IN|OUT)" .c3/c3-{N}-*/c3-{N}{NN}-*.md # Should find IN/OUT
# Verify NO non-mermaid code blocks
non_mermaid=$(grep -E '```[a-z]+' .c3/c3-{N}-*/c3-{N}{NN}-*.md | grep -v mermaid | wc -l)
echo "Non-mermaid code blocks: $non_mermaid (should be 0)"
At the end of component work, output a reading chain for related docs.
Format:
## 📚 To Go Deeper
This component (c3-NNN) is part of:
**Ancestors (understand constraints):**
└─ c3-0 (Context) → c3-N (Container) → c3-NNN (this)
**Sibling components (if dependencies):**
├─ c3-NMM - [why this sibling matters]
└─ c3-NKK - [dependency relationship]
**Parent container (for context):**
└─ c3-N-{slug} - [what contract this component fulfills]
*Reading chain generated from component's dependencies and parent.*
Rules:
Escalate to c3-container-design if:
Escalate to c3-context-design if:
Wrong layer symptoms:
flowchart TD
A[Analyze Change] --> B{Breaks interface<br/>or patterns?}
B -->|yes| C[Escalate to<br/>c3-container-design]
B -->|no| D{Needs new<br/>technology?}
D -->|yes| C
D -->|no| E[Document at<br/>Component level]
| Excuse | Reality |
|---|---|
| "JSON is clearer than a table" | JSON is code. Use table with Field | Type | Example columns. |
| "Just one example payload won't hurt" | Examples become implementation. Describe structure, don't show syntax. |
| "Code is easier to understand" | Code is implementation. Component doc describes patterns, not implements. |
| "Type definitions help readers" | Types are code. Use tables with Field, Type, Purpose columns. |
| "I'll use a simple config snippet" | Config syntax is code. Table: Setting | Default | Purpose. |
| "Mermaid is code too" | Mermaid is architectural diagram (allowed). JSON/YAML is data structure (prohibited). |
| "Interface diagram not needed for simple component" | REQUIRED. Even simple components have IN → OUT boundary. |
| Mistake | Fix |
|---|---|
| Including code blocks | Use tables. Field | Type | Purpose for structures. |
| Skipping Interface diagram | REQUIRED. Shows IN → Processing → OUT boundary. |
| Not checking Container first | Component must be listed in parent Container inventory. |
| Text-heavy docs | Lead with diagrams. Text supports visuals, not vice versa. |
| Missing Hand-offs table | REQUIRED. Shows what exchanges with whom. |
| Describing WHAT not HOW | WHAT is Container's job. Component explains HOW. |
references/core-principle.md - The C3 principledefaults.md - Component layer rulesreferences/container-archetypes.md - How archetype shapes component docsreferences/diagram-patterns.md - Diagram guidancegpt taste
Premium brand-kit image generation for high-end identity systems, logo concepts, and visual-world presentations.
Premium website design-to-code skill that generates visual references first, then builds faithful frontend implementations.
Premium frontend image direction for landing pages and marketing sites, generating one distinct horizontal image per section.
Premium mobile app screen concepts and flows with clean hierarchy, strong imagery, and distinctive art direction.
Emil Kowalski's philosophy on UI polish, component design, and the invisible details that make software feel good.
Frontend design and iteration for production-grade interfaces, from concept to ship.
Reverse-engineer design tokens from public websites into starter token files for your project.
Builds an animation from scratch by making the decisions in the order that determines whether it feels right.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Toolkit for styling artifacts with a theme. These artifacts can be slides, docs, reportings, HTML landing pages, etc. There are 10 pre-set themes with colors/fonts that you can apply to any artifact that has been creating, or can generate a new theme on-the-fly.
Chat-to-edit AI studio for product photos, portraits, branding, and video.
Generate your dream room in seconds.
Redesign your interior in seconds using AI
Transform rooms with AI-generated designs.
Transform Your Space with AI-Powered Japanese Interior Designs by Jife
AI-powered wireframes for non-designers.
Revolutionize Property Viewing with AI-Generated Floor Plans and Virtual Tours
Transform sketches into stunning architectural renders with AI.