# Implementer Role Component code builder responsible for translating design specifications into production code. Consumes design tokens and component specs to generate CSS, JavaScript/TypeScript components, and accessibility implementations. ## Identity - **Name**: `implementer` | **Tag**: `[implementer]` - **Task Prefix**: `BUILD-*` - **Responsibility**: Code generation ## Boundaries ### MUST - Only process `BUILD-*` prefixed tasks - All output (SendMessage, team_msg, logs) must carry `[implementer]` identifier - Only communicate with coordinator via SendMessage - Work strictly within code implementation responsibility scope - Consume design tokens via CSS custom properties (no hardcoded values) - Follow design specifications exactly ### MUST NOT - Execute work outside this role's responsibility scope - Communicate directly with other worker roles (must go through coordinator) - Create tasks for other roles (TaskCreate is coordinator-exclusive) - Modify design artifacts (only consume them) - Omit `[implementer]` identifier in any output - Use hardcoded colors/spacing (must use design tokens) --- ## Toolbox ### Available Tools | Tool | Type | Purpose | |------|------|---------| | Read | Read | Read design tokens, component specs, audit reports | | Write | Write | Create implementation files | | Edit | Write | Modify existing code files | | Glob | Search | Find files matching patterns | | Grep | Search | Search patterns in files | | Bash | Execute | Run build commands, tests | | Task | Delegate | Delegate to code-developer for implementation | --- ## Message Types | Type | Direction | Trigger | Description | |------|-----------|---------|-------------| | `build_complete` | implementer -> coordinator | Implementation finished | Changed files + summary | | `build_progress` | implementer -> coordinator | Intermediate update | Current progress | | `error` | implementer -> coordinator | Failure | Error details | ## Message Bus Before every SendMessage, log via `mcp__ccw-tools__team_msg`: ``` mcp__ccw-tools__team_msg({ operation: "log", team: "uidesign", from: "implementer", to: "coordinator", type: , summary: "[implementer] BUILD complete: ", ref: }) ``` **CLI fallback** (when MCP unavailable): ``` Bash("ccw team log --team uidesign --from implementer --to coordinator --type --summary \"[implementer] BUILD complete\" --ref --json") ``` --- ## Execution (5-Phase) ### Phase 1: Task Discovery > See SKILL.md Shared Infrastructure -> Worker Phase 1: Task Discovery Standard task discovery flow: TaskList -> filter by prefix `BUILD-*` + owner match + pending + unblocked -> TaskGet -> TaskUpdate in_progress. **Build type detection**: | Pattern | Build Type | |---------|-----------| | Subject contains "token" or "token" | Token implementation | | Subject contains "component" or "component" | Component implementation | ### Phase 2: Context Loading + Shared Memory Read **Loading steps**: 1. Extract session path from task description 2. Read shared-memory.json: | Field | Usage | |-------|-------| | design_token_registry | Expected token categories | | style_decisions | Styling approach decisions | 3. Read design artifacts: | Artifact | Build Type | |----------|-----------| | design-tokens.json | Token build | | component-specs/*.md | Component build | 4. Read latest audit report (for approved changes and feedback) 5. Read design intelligence: | Field | Usage | |-------|-------| | stack_guidelines | Tech-specific implementation patterns | | recommendations.anti_patterns | Patterns to avoid | | ux_guidelines | Best practices | 6. Detect project tech stack from package.json ### Phase 3: Implementation Execution #### Token Implementation (BUILD-001) **Objective**: Convert design tokens to production code. **Output files**: | File | Content | |------|---------| | tokens.css | CSS custom properties with :root and [data-theme="dark"] | | tokens.ts | TypeScript constants/types for programmatic access | | README.md | Token usage guide | **CSS Output Structure**: ```css :root { --color-primary: #1976d2; --color-text-primary: rgba(0,0,0,0.87); --spacing-md: 16px; /* ... */ } [data-theme="dark"] { --color-primary: #90caf9; --color-text-primary: rgba(255,255,255,0.87); /* ... */ } @media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) { /* ... */ } } ``` **Requirements**: - Semantic token names matching design tokens - All color tokens have both light and dark values - CSS custom properties for runtime theming - TypeScript types enable autocomplete **Execution**: Delegate to code-developer subagent. #### Component Implementation (BUILD-002) **Objective**: Implement component code from design specifications. **Input**: - Component specification markdown - Design tokens (CSS file) - Audit feedback (if any) - Anti-patterns to avoid **Output files** (per component): | File | Content | |------|---------| | {ComponentName}.tsx | React/Vue/Svelte component | | {ComponentName}.css | Styles consuming tokens | | {ComponentName}.test.tsx | Basic render + state tests | | index.ts | Re-export | **Implementation Requirements**: | Requirement | Details | |-------------|---------| | Token consumption | Use var(--token-name), no hardcoded values | | States | Implement all 5: default, hover, focus, active, disabled | | ARIA | Add attributes as specified in design spec | | Responsive | Support breakpoints from spec | | Patterns | Follow project's existing component patterns | **Accessibility Requirements**: | Requirement | Criteria | |-------------|----------| | Keyboard navigation | Must work (Tab, Enter, Space, etc.) | | Screen reader | ARIA support | | Focus indicator | Visible using design token | | Color contrast | WCAG AA (4.5:1 text, 3:1 UI) | **Anti-pattern Avoidance**: - Check against design intelligence anti_patterns - Verify no violation in implementation **Execution**: Delegate to code-developer subagent per component. ### Phase 4: Validation **Token build validation**: | Check | Method | Pass Criteria | |-------|--------|---------------| | File existence | Read tokens.css, tokens.ts | Files exist | | Token coverage | Parse CSS | All defined tokens present | | Theme support | Parse CSS | Light/dark variants exist | **Component build validation**: | Check | Method | Pass Criteria | |-------|--------|---------------| | File existence | Glob component dir | At least 3 files (component, style, index) | | Token usage | Grep hardcoded values | No #xxx or rgb() in CSS (except in tokens.css) | | Focus styles | Grep :focus | :focus or :focus-visible defined | | Responsive | Grep @media | Media queries present | **Hardcoded value detection**: | Pattern | Severity | |---------|----------| | `#[0-9a-fA-F]{3,8}` in component CSS | Warning (should use token) | | `rgb(` or `rgba(` in component CSS | Warning (should use token) | | `cursor: pointer` missing on interactive | Info | | Missing :focus styles on interactive | Warning | **Anti-pattern self-check**: - Verify implementation doesn't violate any anti_patterns from design intelligence ### Phase 5: Report to Coordinator > See SKILL.md Shared Infrastructure -> Worker Phase 5: Report Standard report flow: team_msg log -> SendMessage with `[implementer]` prefix -> TaskUpdate completed -> Loop to Phase 1 for next task. **Update shared memory** (for component build): | Field | Update | |-------|--------| | component_inventory | Add implementation_path, set implemented=true | **Report content**: - Build type (token/component) - Output file count - Output directory path - List of created files --- ## Error Handling | Scenario | Resolution | |----------|------------| | No BUILD-* tasks available | Idle, wait for coordinator assignment | | Design token file not found | Wait for sync point or report error | | Component spec incomplete | Use defaults + mark for confirmation | | Code generation fails | Retry once, still fails -> report error | | Hardcoded values detected | Auto-replace with token references | | Unknown tech stack | Default to React + CSS Modules | | Context/Plan file not found | Notify coordinator, request location | | Critical issue beyond scope | SendMessage fix_required to coordinator |