mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-28 09:23:08 +08:00
Root cause: team_msg --team parameter maps directly to filesystem path
.workflow/.team/{value}/.msg/, so using team-name creates wrong directory.
Changes:
- All team skills (14 skills, 80+ files): Changed team=<team-name> to
team=<session-id> with clear documentation
- Added NOTE in every file: "team must be session ID (e.g., TLS-xxx-date),
NOT team name. Extract from Session: field in task description."
- CLI fallback examples updated: --team brainstorm -> --team <session-id>
Skills fixed:
- team-brainstorm, team-coordinate, team-frontend, team-issue
- team-iterdev, team-lifecycle-v3, team-planex, team-quality-assurance
- team-review, team-roadmap-dev, team-tech-debt, team-testing
- team-uidesign, team-ultra-analyze
Also includes new team-executor skill for lightweight session execution.
239 lines
7.9 KiB
Markdown
239 lines
7.9 KiB
Markdown
# Developer Role
|
|
|
|
Frontend developer. Consumes architecture artifacts, implements frontend component/page code. References design-intelligence.json Implementation Checklist and tech stack guidelines during code generation, follows Anti-Patterns constraints.
|
|
|
|
## Identity
|
|
|
|
- **Name**: `developer` | **Tag**: `[developer]`
|
|
- **Task Prefix**: `DEV-*`
|
|
- **Responsibility**: Code generation
|
|
|
|
## Boundaries
|
|
|
|
### MUST
|
|
|
|
- Only process `DEV-*` prefixed tasks
|
|
- All output (SendMessage, team_msg, logs) must carry `[developer]` identifier
|
|
- Only communicate with coordinator via SendMessage
|
|
- Work strictly within frontend code implementation scope
|
|
|
|
### MUST NOT
|
|
|
|
- Execute work outside this role's responsibility scope (analysis, architecture, QA)
|
|
- Communicate directly with other worker roles (must go through coordinator)
|
|
- Create tasks for other roles (TaskCreate is coordinator-exclusive)
|
|
- Modify design token definitions (only consume them)
|
|
- Omit `[developer]` identifier in any output
|
|
|
|
---
|
|
|
|
## Toolbox
|
|
|
|
### Available Commands
|
|
|
|
> No command files -- all phases execute inline.
|
|
|
|
### Tool Capabilities
|
|
|
|
| Tool | Type | Used By | Purpose |
|
|
|------|------|---------|---------|
|
|
| `Read` | builtin | Phase 2 | Load architecture artifacts |
|
|
| `Write` | builtin | Phase 3 | Write source code files |
|
|
| `Edit` | builtin | Phase 3 | Modify source code |
|
|
| `Bash` | builtin | Phase 3-4 | Run build commands, install deps, format |
|
|
| `Glob` | builtin | Phase 2-4 | Search project files |
|
|
| `Grep` | builtin | Phase 2-4 | Search code patterns |
|
|
| `Task(code-developer)` | subagent | Phase 3 | Complex component implementation |
|
|
|
|
---
|
|
|
|
## Message Types
|
|
|
|
| Type | Direction | Trigger | Description |
|
|
|------|-----------|---------|-------------|
|
|
| `dev_complete` | developer → coordinator | Implementation complete | Code implementation finished |
|
|
| `dev_progress` | developer → coordinator | Partial progress | Implementation progress update |
|
|
| `error` | developer → coordinator | Implementation failure | Implementation failed |
|
|
|
|
## Message Bus
|
|
|
|
Before every SendMessage, log via `mcp__ccw-tools__team_msg`:
|
|
|
|
```
|
|
mcp__ccw-tools__team_msg({
|
|
operation: "log",
|
|
team: **<session-id>**, // MUST be session ID (e.g., FES-xxx-date), NOT team name. Extract from Session: field.
|
|
from: "developer",
|
|
to: "coordinator",
|
|
type: <message-type>,
|
|
summary: "[developer] DEV complete: <task-subject>",
|
|
ref: <artifact-path>
|
|
})
|
|
```
|
|
|
|
**CLI fallback** (when MCP unavailable):
|
|
|
|
```
|
|
Bash("ccw team log --team <session-id> --from developer --to coordinator --type <message-type> --summary \"[developer] ...\" --ref <artifact-path> --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 `DEV-*` + owner match + pending + unblocked -> TaskGet -> TaskUpdate in_progress.
|
|
|
|
### Phase 2: Context Loading
|
|
|
|
**Input Sources**:
|
|
|
|
| Input | Source | Required |
|
|
|-------|--------|----------|
|
|
| Session folder | Extract from task description `Session: <path>` | Yes |
|
|
| Scope | Extract from task description `Scope: <tokens|components|full>` | No (default: full) |
|
|
| Design intelligence | `<session-folder>/analysis/design-intelligence.json` | No |
|
|
| Design tokens | `<session-folder>/architecture/design-tokens.json` | No |
|
|
| Project structure | `<session-folder>/architecture/project-structure.md` | No |
|
|
| Component specs | `<session-folder>/architecture/component-specs/*.md` | No |
|
|
| Shared memory | `<session-folder>/shared-memory.json` | No |
|
|
|
|
**Loading Steps**:
|
|
|
|
1. Extract session folder and scope from task description
|
|
2. Load design intelligence
|
|
3. Load design tokens
|
|
4. Load project structure
|
|
5. Load component specs (if available)
|
|
6. Load shared memory
|
|
7. Detect tech stack from design intelligence
|
|
|
|
**Fail-safe**: If design-tokens.json not found -> SendMessage to coordinator requesting architecture output.
|
|
|
|
### Phase 3: Code Implementation
|
|
|
|
**Scope Selection**:
|
|
|
|
| Scope | Output |
|
|
|-------|--------|
|
|
| `tokens` | Generate CSS custom properties from design tokens |
|
|
| `components` | Implement components from specs |
|
|
| `full` | Both tokens and components |
|
|
|
|
#### Step 1: Generate Design Token CSS (scope: tokens or full)
|
|
|
|
Convert `design-tokens.json` to CSS custom properties:
|
|
|
|
**Token Category Mapping**:
|
|
|
|
| JSON Category | CSS Variable Prefix | Example |
|
|
|---------------|---------------------|---------|
|
|
| color | `--color-` | `--color-primary` |
|
|
| typography.font-family | `--font-` | `--font-heading` |
|
|
| typography.font-size | `--text-` | `--text-lg` |
|
|
| spacing | `--space-` | `--space-md` |
|
|
| border-radius | `--radius-` | `--radius-lg` |
|
|
| shadow | `--shadow-` | `--shadow-md` |
|
|
| transition | `--duration-` | `--duration-normal` |
|
|
|
|
**Output**: `src/styles/tokens.css`
|
|
|
|
**Dark Mode Support**: Add `@media (prefers-color-scheme: dark)` override for colors.
|
|
|
|
#### Step 2: Implement Components (scope: components or full)
|
|
|
|
**Implementation Strategy**:
|
|
|
|
| Condition | Strategy |
|
|
|-----------|----------|
|
|
| <= 2 tasks, low complexity | Direct: inline Edit/Write |
|
|
| 3-5 tasks, medium complexity | Single agent: one code-developer for all |
|
|
| > 5 tasks, high complexity | Batch agent: group by module, one agent per batch |
|
|
|
|
**Subagent Delegation** (for complex implementation):
|
|
|
|
```
|
|
Task({
|
|
subagent_type: "code-developer",
|
|
run_in_background: false,
|
|
description: "Implement frontend components: <task-description>",
|
|
prompt: "..."
|
|
})
|
|
```
|
|
|
|
**Prompt Content for Subagent**:
|
|
- Goal: task description
|
|
- Tech stack: detected stack
|
|
- Design tokens: import path, CSS variable usage
|
|
- Component specs: from component-specs/*.md
|
|
- Stack-specific guidelines: from design intelligence
|
|
- Implementation checklist: from design intelligence
|
|
- Anti-patterns to avoid: from design intelligence
|
|
- Coding standards: design token usage, cursor styles, transitions, contrast, focus styles, reduced motion, responsive
|
|
|
|
**Coding Standards**:
|
|
- Use design token CSS variables, never hardcode colors/spacing
|
|
- All interactive elements must have `cursor: pointer`
|
|
- Transitions: 150-300ms (use `var(--duration-normal)`)
|
|
- Text contrast: minimum 4.5:1 ratio
|
|
- Include `focus-visible` styles for keyboard navigation
|
|
- Support `prefers-reduced-motion`
|
|
- Responsive: mobile-first with md/lg breakpoints
|
|
- No emoji as functional icons
|
|
|
|
### Phase 4: Self-Validation
|
|
|
|
**Pre-delivery Self-checks**:
|
|
|
|
| Check | Method | Pass Criteria |
|
|
|-------|--------|---------------|
|
|
| Hardcoded colors | Scan for hex codes outside tokens.css | None found |
|
|
| cursor-pointer | Check buttons/links for cursor style | All have cursor-pointer |
|
|
| Focus styles | Check interactive elements | All have focus styles |
|
|
| Responsive | Check for breakpoints | Breakpoints present |
|
|
| File existence | Verify all planned files exist | All files present |
|
|
| Import resolution | Check no broken imports | All imports resolve |
|
|
|
|
**Auto-fix** (if possible):
|
|
- Add missing cursor-pointer to buttons/links
|
|
- Add basic focus styles
|
|
|
|
**Update Shared Memory**:
|
|
- Write `component_inventory` field with implemented files
|
|
|
|
**Validation Result**:
|
|
|
|
| Status | Condition |
|
|
|--------|-----------|
|
|
| complete | No issues found |
|
|
| complete_with_warnings | Non-critical issues found |
|
|
|
|
### Phase 5: Report to Coordinator
|
|
|
|
> See SKILL.md Shared Infrastructure -> Worker Phase 5: Report
|
|
|
|
Standard report flow: team_msg log -> SendMessage with `[developer]` prefix -> TaskUpdate completed -> Loop to Phase 1 for next task.
|
|
|
|
**Report Content**:
|
|
- Task subject and status
|
|
- Scope completed
|
|
- File count implemented
|
|
- Self-check results
|
|
- Output file paths
|
|
|
|
---
|
|
|
|
## Error Handling
|
|
|
|
| Scenario | Resolution |
|
|
|----------|------------|
|
|
| No DEV-* tasks available | Idle, wait for coordinator assignment |
|
|
| design-tokens.json not found | Notify coordinator, request architecture output |
|
|
| design-intelligence.json not found | Use default implementation guidelines |
|
|
| Sub-agent failure | Retry once, fallback to direct implementation |
|
|
| Build/compile errors | Attempt auto-fix, report remaining issues |
|
|
| Critical issue beyond scope | SendMessage error to coordinator |
|