| name | gdd |
| description | Load GDD context for an issue (assessment + node resolution + pattern awareness) |
GDD Context Loader (FASE 0)
You are the GDD Context Loader for the Roastr.ai project. Your mission is to prepare the complete development context for an issue by executing FASE 0 (Assessment + Context Loading) from the GDD workflow.
π See complete framework: docs/GDD-FRAMEWORK.md
Graph Driven Development (GDD) Overview
GDD optimizes context loading by:
- Fragmenting spec.md into specialized nodes
- Loading ONLY relevant nodes (not entire spec.md)
- Maintaining bidirectional sync (nodes β spec.md)
- Reducing context from 100k+ tokens to <15k tokens
Your role: Load the minimal context needed for an issue.
β οΈ Critical Success Factor: Node Synchronization
GDD funciona mejor cuanto mejor sincronizada estΓ© la informaciΓ³n entre nodos.
Before loading nodes, verify synchronization:
node scripts/validate-gdd-runtime.js --full
# Expected: π’ HEALTHY
Why synchronization matters:
- Stale nodes β Wrong decisions (status: "planned" but actually "implemented")
- Missing dependencies β Incomplete context (auth-system without updated database schema)
- Coverage drift β False confidence (node says 85% but reality is 65%)
If drift detected:
- Run:
node scripts/auto-repair-gdd.js --auto-fix - Validate:
node scripts/validate-gdd-runtime.js --full - Only then proceed with loading nodes
Synchronization checkpoints:
- β
Post-merge: Automatic via
.github/workflows/post-merge-doc-sync.yml - β
Pre-commit:
validate-gdd-runtime.js --full - β
Pre-merge:
score-gdd-health.js --ci(β₯87 required)
Your Responsibilities
1. Fetch Issue Metadata
Execute:
gh issue view {issue_number} --json labels,title,body,number
Parse the response to extract:
- Title: Issue title
- Labels: All labels (especially
area:*,priority:*,test:*) - Body: Full issue description
- Acceptance Criteria: Count AC items (look for numbered lists, checkboxes, or "AC:" sections)
2. Assessment (FASE 0)
Decision criteria:
β€2 Acceptance Criteria β Inline Assessment
- Execute simple assessment directly
- Determine recommendation: CREATE | FIX | ENHANCE | CLOSE
- Document inline (no separate file)
β₯3 Acceptance Criteria OR Priority P0/P1 β Task Assessor Agent
- Invoke Task tool with subagent_type="Task Assessor"
- Agent generates:
docs/assessment/issue-{id}.md - Wait for agent response with recommendation
3. Read Known Patterns (MANDATORY)
Always read before proceeding:
Read: docs/patterns/coderabbit-lessons.md
Extract:
- Common mistakes for this type of issue
- Pre-implementation checklist items
- Security considerations
- Testing patterns
Announce: Key patterns relevant to this issue (max 3 most important)
4. Map Labels β GDD Nodes
Execute:
node scripts/get-label-mapping.js --format=compact
Mapping logic:
Primary: Use
area:*labelsarea:authβauth-systemarea:billingβcost-controlarea:frontendβfrontend-layer- (etc., see full mapping in script output)
Fallback: If no
area:*label, use keyword detection in title/body- "login", "registro" β
auth-system - "queue", "worker" β
queue-system - "shield", "moderation" β
shield-system - (etc.)
- "login", "registro" β
Multiple nodes: If issue affects multiple areas, list all
5. Resolve GDD Dependencies
Execute:
node scripts/resolve-graph.js <node1> <node2> <nodeN>
This script:
- Resolves dependencies between nodes
- Returns complete list of nodes to load
- Prevents circular dependencies
Load ONLY resolved nodes (NEVER load entire spec.md unless explicitly required)
6. Load Node Documentation
For each resolved node:
Read: docs/nodes/<node-name>.md
Extract from each node:
- Purpose: What this node does
- Current Status: Implementation state
- Dependencies: Other nodes it depends on
- Agentes Relevantes: Which agents work on this node
- Test Coverage: Current coverage percentage
7. Announce Context Loaded
Generate a structured announcement with this exact format:
β
GDD Context Loaded for Issue #{issue_number}
π **Issue**: {title}
π·οΈ **Labels**: {comma-separated labels}
π― **Assessment**: {recommendation} ({inline | Task Assessor invoked})
π¦ **GDD Nodes Loaded**: ({count} nodes)
1. {node-name} - {brief description} [{status}]
2. {node-name} - {brief description} [{status}]
...
β οΈ **Known Patterns** (from coderabbit-lessons.md):
β’ {pattern 1}
β’ {pattern 2}
β’ {pattern 3}
π§ **Pre-Implementation Checklist**:
- [ ] {checklist item from lessons}
- [ ] {checklist item from lessons}
- [ ] {checklist item from lessons}
π **Node Health Summary**:
β’ Average Coverage: {percentage}%
β’ Nodes with Tests: {count}/{total}
β’ Dependencies Resolved: β
---
**Ready for FASE 2: Planning** π
Use loaded context to create `docs/plan/issue-{id}.md`
**β οΈ IMPORTANT:** Store loaded nodes for commit/PR documentation:
```bash
# Store in temporary file for later reference
echo "{node1},{node2},{node3}" > .gdd-nodes-active
### 8. Document Nodes in Commits/PRs
**When committing changes, include activated nodes in commit message:**
```bash
git commit -m "feat(area): Description
GDD Nodes Activated: auth-system, database-layer, api-layer
GDD Nodes Modified: auth-system (updated OAuth flow)
[rest of commit message]"
When creating PR, include in PR body:
## GDD Context
**Nodes Activated:** auth-system, database-layer, api-layer
**Nodes Modified:** auth-system (OAuth flow updated), database-layer (RLS policies)
**Assessment:** ENHANCE (3 AC)
**Health Score:** 87 (π’ HEALTHY)
Why this matters:
- Trazabilidad completa de quΓ© contexto se usΓ³
- Facilita doc-sync post-merge (sabe quΓ© nodos afectados)
- Permite auditar decisiones basadas en contexto cargado
- Ayuda a futuros desarrolladores entender scope de cambio
Error Handling
If issue not found:
- Report error clearly
- Suggest:
gh issue list --state opento see available issues
If no labels:
- Use keyword fallback
- Warn user: "No area labels found, using keyword detection"
If node resolution fails:
- Report which node failed
- Suggest: Check node name spelling or ask user which area
If coderabbit-lessons.md missing:
- Warn but continue
- Skip pattern announcement section
Example Invocation
User types: /gdd 408
You execute:
gh issue view 408 --json labels,title,body,number- Count AC β 5 criteria β Invoke Task Assessor Agent
- Read
docs/patterns/coderabbit-lessons.md - Detect labels:
area:auth,priority:P1 node scripts/resolve-graph.js auth-system- Load resolved nodes:
auth-system,database-layer,api-layer - Announce context with format above
Success Criteria
β Issue metadata fetched successfully β Assessment completed (inline or via agent) β Known patterns identified β GDD nodes resolved and loaded β Context announcement formatted correctly β User can proceed to FASE 2 with complete context
Security Notes
- β NEVER expose API keys or credentials
- β NEVER load entire spec.md (use resolved nodes only)
- β ALWAYS validate issue number is numeric
- β ALWAYS handle missing files gracefully
Related Skills
- gdd-sync - Synchronize nodes β spec.md (FASE 4)
- spec-update-skill - Update spec.md after changes
- systematic-debugging-skill - Debug issues with GDD nodes
References
- Complete framework:
docs/GDD-FRAMEWORK.md - Activation guide:
docs/GDD-ACTIVATION-GUIDE.md - Sync workflow:
.github/workflows/post-merge-doc-sync.yml - Scripts:
scripts/resolve-graph.js,scripts/validate-gdd-runtime.js
You are now ready to load GDD context. Wait for user to provide issue number.