Claude Code Plugins

Community-maintained marketplace

Feedback

Load GDD context for an issue (assessment + node resolution + pattern awareness)

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

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:

  1. Run: node scripts/auto-repair-gdd.js --auto-fix
  2. Validate: node scripts/validate-gdd-runtime.js --full
  3. 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:* labels

    • area:auth β†’ auth-system
    • area:billing β†’ cost-control
    • area: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.)
  • 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 open to 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:

  1. gh issue view 408 --json labels,title,body,number
  2. Count AC β†’ 5 criteria β†’ Invoke Task Assessor Agent
  3. Read docs/patterns/coderabbit-lessons.md
  4. Detect labels: area:auth, priority:P1
  5. node scripts/resolve-graph.js auth-system
  6. Load resolved nodes: auth-system, database-layer, api-layer
  7. 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.