name: developer-workflow description: Complete Developer workflow orchestration - task research sequence, implementation flow, validation gates, PRD synchronization, exit conditions. category: workflow
Developer Workflow
"This skill orchestrates the development workflow sequence. For detailed implementation guidance."
Startup Workflow
-
Load
Skill("dev-router")to understand your skill set -
Load
Skill("threejs-builder")to understand your Three.js skill set -
Load
Skill("shared-validation-feedback-loops")to understand validation loops -
Process pending messages - IMPORTANT: Messages are in the master branch, accessed via relative path like
../agentic-threejs/.claude/session/messages/developer/. Consolidate all the .json messages requests and delete the files before continue. Update watchdog status. -
Read current-task-developer.json - IMPORTANT: State file is in the master branch, accessed via relative path like
../agentic-threejs/.claude/session/current-task-developer.json. Reason about the message request and define your next action
Dashboard Status Update - CRITICAL: Before starting ANY work action, update your status in current-task-developer.json:
| Action | Update State File Like This | Send Status Update to Watchdog |
|---|---|---|
| Starting work on task | state.status = "working" + id = "{taskId}" + state.lastSeen = "{ISO_TIMESTAMP}" | Send-StatusUpdate -From "developer" -Status "working" -CurrentTask "{taskId}" |
| Blocked by question | state.status = "awaiting_pm" + state.lastSeen = "{ISO_TIMESTAMP}" | Send-StatusUpdate -From "developer" -Status "waiting" |
| Sending to QA | state.status = "idle" + id = null + state.lastSeen = "{ISO_TIMESTAMP}" | Send-StatusUpdate -From "developer" -Status "idle" |
| Self-reporting progress | state.lastSeen = "{ISO_TIMESTAMP}" | - |
Implementation Workflow
PRE-REQUISITE: You should already be in your worktree directory (../developer-worktree) before starting this workflow!
-
UPDATE STATE FILE (MANDATORY - First step)
- Edit
current-task-developer.json:state.status = "working"state.currentTaskId = "{taskId}"state.lastSeen = "{ISO_TIMESTAMP}"
- Send status update to watchdog:
Send-StatusUpdate -From "developer" -Status "working" -CurrentTask "{taskId}"
- Edit
-
Task Research (MANDATORY Before Coding new tasks)
-
Step 1: GDD Reading (Bugs can skip it)
Skill("dev-research-gdd-reading")- Read
docs/design/gdd/index.mdfor overview - Read feature-specific GDD files
- Check decision log and open questions
- Read
-
Step 2: Codebase Exploration
Task({ subagent_type: "developer-code-research", description: "Research patterns for {feature}", prompt: "Research existing codebase patterns for implementing {feature}", timeout: 300000 })
-
-
IMPLEMENTATION
- Create/modify files following researched patterns
-
TEST COVERAGE CHECK (MANDATORY - CANNOT SKIP)
Skill("qa-test-creation")- Check if tests exist for modified files- If tests missing: MUST invoke
test-creatorsub-agent before proceeding - Files changed without tests = BLOCKING - cannot proceed to step 8
⚠️ NON-BYPASSABLE GATE:
- NO exceptions for "bug fixes", "refactorings", or "non-visual changes"
- Even trivial changes need test coverage (unit test minimum)
- ONLY PM can approve skipping tests via explicit message
-
IF BLOCKED
- Update state:
state.status = "awaiting_pm" - Send question to PM using the Write tool:
Write to: .claude/session/messages/pm/msg-pm-{timestamp}-001.json Content: { "id": "msg-pm-{timestamp}-001", "from": "developer", "to": "pm", "type": "question", "priority": "high", "payload": { "question": "How should I handle X?", "context": "Current situation..." }, "timestamp": "{ISO-8601-timestamp}", "status": "pending" }- Document blocker in task memory
- Exit and wait
- Update state:
-
FEEDBACK LOOPS
-
COMMIT - At the end of the task, commit all changes to your branch
-
SEND TO QA
-
Update state:
state.status = "idle",id = null -
Send status update to watchdog:
Send-StatusUpdate -From "developer" -Status "idle" -
Send completion using the Write tool:
Write to: .claude/session/messages/pm/msg-pm-{timestamp}-001.json Content: { "id": "msg-pm-{timestamp}-001", "from": "developer", "to": "pm", "type": "task_complete", "priority": "normal", "payload": { "taskId": "{taskId}", "success": true, "summary": "Implementation complete" }, "timestamp": "{ISO-8601-timestamp}", "status": "pending" }
- EXIT