GSD Integration Guide

Quick Reference

Features Covered

FeatureModuleVersion
GSD Orchestratorsrc/orchestrator/v1.7
Phase Skill Loadingsrc/orchestrator/skill-loader.tsv1.11
GSD Reference Injectionsrc/detection/gsd-reference.tsv1.12
Dashboard Generationdesktop/src/dashboard/v1.13

Prerequisites

Configuration Reference

Orchestrator confidence threshold:

// .planning/skill-creator.json
{
  "orchestrator": {
    "confidence_threshold": 0.8,
    "lifecycle_aware": true,
    "semantic_fallback": true
  }
}

Skill loading budget:

{
  "token_budget": {
    "cumulative_char_budget": 15500,
    "profile_budgets": {
      "executor": 20000,
      "planner": 12000,
      "researcher": 8000
    }
  }
}

Dashboard regeneration:

{
  "integration": {
    "dashboard_generation": true,
    "session_observation": true,
    "skill_loading": true
  }
}

GSD Commands Covered

Starting: new-project, new-milestone, progress, resume-work

Planning: discuss-phase, plan-phase, research-phase, list-phase-assumptions

Executing: execute-phase, quick, debug

Validating: verify-work, audit-milestone

Scope: add-phase, insert-phase, remove-phase, add-todo

Lifecycle: pause-work, complete-milestone

Technical Specifications

Orchestrator Stages5 (exact, lifecycle, Bayesian, semantic, confidence)
Classification Latency<200ms (full pipeline)
GSD Commands Supported25+
Skill Loading Pipeline6 stages (shared with activation system)
Default Budget15,500 chars (configurable per profile)
Dashboard Pages6 (index, requirements, roadmap, milestones, state, console)
Dashboard Page Size15-30KB each
Planning ArtifactsPROJECT.md, REQUIREMENTS.md, ROADMAP.md, STATE.md, config.json

Related Guides

Overview

GSD (Get Shit Done) is a project management framework that breaks work into milestones, phases, and atomic tasks. skill-creator is the adaptive learning layer that observes how you work and generates reusable skills from patterns it detects. Independently, each system is useful. Together, they form a feedback loop: GSD provides the structure that makes skill-creator's observations meaningful, and skill-creator provides the learned knowledge that makes GSD's execution phases smarter over time.

The integration between these two systems is not a simple adapter or wrapper. It consists of four distinct subsystems, each solving a different problem in the GSD workflow lifecycle. The GSD Orchestrator routes natural language intent to the correct GSD command. The Phase Skill Loader ensures that relevant skills are available before any phase executes. GSD Reference Injection embeds planning context into generated skills so they remain traceable. And the Dashboard Generation system provides a visual interface for monitoring the entire planning structure.

This guide walks through each of these subsystems: what problem it solves, how it works internally, and how to use it effectively. If you are new to GSD, start with the Core Concepts guide first. If you are looking for the deep architectural analysis of the orchestrator's classification pipeline, see the GSD Orchestrator architecture page.

A note on scope: this guide covers the integration layer between skill-creator and GSD. It does not cover GSD itself (see the Command Reference for that) or the skill-creator's core learning features (see the Learning & Refinement Guide). The integration exists because these two systems become dramatically more useful when they share context.

How the Four Systems Connect

The four integration subsystems operate at different points in the GSD workflow lifecycle, but they share a common dependency: the .planning/ directory.

SubsystemReads FromWrites ToTriggers When
GSD Orchestrator ROADMAP.md, STATE.md, phases/ Nothing (read-only classification) User provides natural language input
Phase Skill Loading .claude/commands/, ~/.claude/commands/, phase plans Skill loading cache (in-memory) Before any GSD phase execution
GSD Reference Injection REQUIREMENTS.md, phase plans, task lists Skill YAML frontmatter (gsd_context) During skill generation or refinement
Dashboard Generation Entire .planning/ directory tree desktop/src/dashboard/generated/ On demand, or on .planning/ file change

The data flow is unidirectional: .planning/ data flows outward to the integration subsystems, never the reverse. GSD commands modify .planning/ state, and the integration subsystems observe those changes.

In a typical session, the subsystems activate in this order: (1) Orchestrator classifies intent and determines the GSD command, (2) Skill Loader prepares relevant skills for the phase, (3) GSD executes the phase with loaded skills, (4) if skills are generated during execution, Reference Injection annotates them, (5) Dashboard regenerates to reflect the new state.

Session Observation

Throughout all GSD-integrated work sessions, the integration layer maintains passive observation of patterns worth capturing. These observations are recorded to .planning/patterns/sessions.jsonl and feed into skill-creator's pattern detection pipeline. The types of observations recorded during GSD integration include:

  • Orchestrator classifications — Input text, chosen command, confidence score, and which stage produced the result.
  • Skill loading patterns — Which skills were loaded for which phase type, and which were deferred.
  • Phase outcomes — Whether phases completed successfully, partially, or with failures.
  • User corrections — When the user overrides an orchestrator classification, that correction is the highest-signal observation in the system.

Observations are append-only (never modified after writing) and are excluded from git by default.

Key Concepts

For Students & Teachers

Imagine you walk into a large hotel and tell the concierge "I want to eat something nice." The concierge does not make you memorize the names of every restaurant, the floor numbers, or the reservation system. Instead, they listen to what you want, check what is open at this time of day, consider your past preferences, and direct you to the right place. That is exactly what the GSD Orchestrator does.

When you say "let's verify phase 3," you do not need to remember that the correct command is /gsd:verify-work 3. The orchestrator classifies your intent through five progressive stages — from simple keyword matching all the way to probabilistic analysis — and routes you to the correct GSD command.

The phase skill loader is like a student reviewing their notes before an exam. Before GSD runs any phase, the skill loader checks if there are relevant skills that should be loaded into context.

The dashboard is the scoreboard. It shows where the project stands: which phases are done, which are in progress, what the requirements are, and what happened in the last session.

Reference injection is like citing your sources in an essay. When the system creates a new skill, it automatically annotates it with where the pattern came from: which project phase, which requirements, and which files were involved.

How It Works

GSD Orchestrator

The GSD Orchestrator (src/orchestrator/, introduced in v1.7) provides a 5-stage intent classification pipeline that translates natural language user requests into specific GSD slash commands.

Stage 1 — Exact Match: A dictionary lookup maps unambiguous phrases directly to GSD commands. This stage handles roughly 80% of real-world requests with zero computational overhead.

User PhraseMapped CommandNotes
"plan the next phase"/gsd:plan-phasePhase number inferred from ROADMAP.md
"what should I work on"/gsd:progressShows current position and next action
"build phase N"/gsd:execute-phase NNumeric argument extracted from input
"let's verify phase N"/gsd:verify-work NTriggers user acceptance testing
"where was I"/gsd:resume-workSession recovery from STATE.md
"add a phase for..."/gsd:add-phaseAppends to roadmap
"something's broken"/gsd:debugSystematic debugging workflow
"ship it"/gsd:complete-milestoneLifecycle validation enforced

Stage 2 — Lifecycle Filtering: The orchestrator reads the project's .planning/ directory to determine the current project state and eliminates commands that are impossible given that state.

Stage 3 — Bayesian Classification: When multiple candidates survive lifecycle filtering, the orchestrator computes posterior probabilities for each remaining command. A command exceeding the confidence threshold (default 0.8) wins.

Stage 4 — Semantic Fallback: When Bayesian classification fails, the orchestrator falls back to embedding-based similarity.

Stage 5 — Confidence Resolution: If no stage has produced a result above the confidence threshold, the orchestrator presents the top candidates and asks the user to clarify.

# Complete flow example:
# User says: "review the requirements"

Stage 1 (Exact Match): No exact match found
Stage 2 (Lifecycle): Current state = milestone active, phases 1-3 planned
  Candidates: progress, discuss-phase, plan-phase, verify-work
Stage 3 (Bayesian): "review" + "requirements"
  P(progress | input) = 0.72
  P(verify-work | input) = 0.18
  P(discuss-phase | input) = 0.10
  Winner: /gsd:progress (0.72 < 0.8 threshold, not confident)
Stage 4 (Semantic): embedding similarity
  progress: 0.89
  verify-work: 0.61
  Winner: /gsd:progress (clear semantic winner)

Result: /gsd:progress

Lifecycle State Matrix

Phase StatusValid CommandsInvalid Commands (eliminated)
Not Starteddiscuss-phase, add-todoplan-phase, execute-phase, verify-work
Discussedplan-phase, research-phaseexecute-phase, verify-work
Plannedexecute-phase, list-phase-assumptionsplan-phase, verify-work
In Progressexecute-phase (resume), pause-workplan-phase, discuss-phase
Completedverify-workexecute-phase, plan-phase
Verifiedprogress (shows as done)Most commands (phase is finished)

YOLO Mode Behavior

When .planning/config.json has "mode": "yolo", the orchestrator changes its resolution behavior at Stage 5. Instead of asking the user to clarify, it selects the highest-probability candidate and proceeds automatically. The confidence threshold for YOLO mode is lowered to 0.6.

Phase Skill Loading

The Phase Skill Loader (src/orchestrator/skill-loader.ts, introduced in v1.11) solves a critical problem: when GSD forks a subagent context to execute a phase, that subagent starts with a clean context window. The skill loader bridges this gap.

Before any GSD phase execution begins, the skill loader performs a four-step process: scan for skills, score for relevance, apply model filtering, and load within token budget.

Different GSD profiles have different budgets: the executor profile allocates 20,000 characters, the planner profile allocates 12,000 characters, and the researcher profile allocates 8,000 characters.

# Skill loading before /gsd:execute-phase 3
# Phase 3: "Build authentication module"

Scanning .claude/commands/:
  - git-commit-helper.md (relevance: 0.82)
  - react-patterns.md (relevance: 0.91)
  - test-before-commit.md (relevance: 0.88)
  - deployment-checklist.md (relevance: 0.31)

Scanning ~/.claude/commands/:
  - git-commit-helper.md (relevance: 0.79) -- CONFLICT, project-level wins
  - typescript-conventions.md (relevance: 0.85)

After scoring and budget (executor profile: 20,000 chars):
  LOADED: react-patterns.md (4,200 chars)
  LOADED: test-before-commit.md (3,100 chars)
  LOADED: typescript-conventions.md (2,800 chars)
  LOADED: git-commit-helper.md (2,600 chars, project-level)
  Budget used: 12,700 / 20,000 chars
  DEFERRED: deployment-checklist.md (below relevance threshold)

GSD Reference Injection

GSD Reference Injection (src/detection/gsd-reference.ts, introduced in v1.12) addresses a traceability problem. The reference injection system reads the .planning/ directory during skill generation and embeds three types of contextual data: phase goals, requirement IDs (formatted as REQ-xxx), and related file paths.

# Skill generated during Phase 3 execution
# Phase 3: "Build authentication module"

Generated skill: auth-test-patterns.md
Injected references:
  phase_context:
    phase: 3
    name: "Build authentication module"
    goals:
      - "JWT token validation for all API routes"
      - "Role-based access control middleware"
  requirement_ids:
    - REQ-012: "All API endpoints must require authentication"
    - REQ-015: "Role-based access control for admin functions"
  related_files:
    - src/middleware/auth.ts
    - src/middleware/rbac.ts
    - tests/auth.test.ts

Dashboard Generation

The Dashboard Generation system (desktop/src/dashboard/, introduced in v1.13) produces six HTML dashboard pages from the data stored in the .planning/ directory.

  • Index (Project Overview) — Top-level summary showing the active milestone, current phase, overall progress percentage.
  • Requirements — Tracking view of all REQ-xxx entries showing which have been addressed.
  • Roadmap — Phase-by-phase status view derived from ROADMAP.md.
  • Milestones — Completion tracking showing milestone-level progress.
  • State (Session Memory) — View of STATE.md contents.
  • Console (Command Interface) — Interactive command interface for issuing GSD commands.

Phase Transition Hooks

GSD EventHook ActionPurpose
plan-phase completesDashboard regeneration, docs update triggerRoadmap view reflects new plan
execute-phase completesDashboard regeneration, state update, skill loading cache flushProgress tracking
verify-work completesDashboard regeneration, milestone progress checkVerification status visible
complete-milestoneFull dashboard regeneration, milestone archiveClean closure of milestone data

Hooks run after the phase completes, not during. If a hook fails, the failure is logged but does not roll back the phase transition.

# Regenerate dashboards manually
skill-creator invoke gsd-dashboard

# Serve dashboards outside GSD-OS
node serve-dashboard.mjs
# Dashboard available at http://localhost:3000

Usage Examples

Complete Integration Flow

# 1. User provides natural language intent
User: "Let's build phase 4"

# 2. Orchestrator classifies intent
Stage 1 (Exact): "build phase 4" -> exact match: /gsd:execute-phase 4
Result: /gsd:execute-phase 4 (confidence: 1.0)

# 3. Phase Skill Loader activates before execution
Loading skills for phase 4: "Implement user dashboard"
  LOADED: react-patterns.md (relevance: 0.94)
  LOADED: test-before-commit.md (relevance: 0.87)
  LOADED: dashboard-layout.md (relevance: 0.92)
  Budget: 9,800 / 20,000 chars (executor profile)

# 4. Execution proceeds with loaded skills
# 5. New pattern detected during execution
# 6. Reference Injection embeds context in generated skill
# 7. Dashboard regenerates to reflect phase progress

Orchestrator with Ambiguous Input

# User provides ambiguous request
User: "I need to look at what happened"

Stage 1 (Exact): No match
Stage 2 (Lifecycle): phase 5 completed but not verified
  Candidates: progress, verify-work, discuss-phase
Stage 3 (Bayesian): No winner above 0.8 threshold
Stage 4 (Semantic): No clear winner
Stage 5 (Confidence Resolution):
  "I'm not certain what you'd like to do. Did you mean:
   1. /gsd:verify-work 5 (71% confidence)
   2. /gsd:progress (68% confidence)
  Which would you prefer?"

Skill Loading with Budget Overflow

# Phase execution with tight budget (planner profile)
/gsd:plan-phase 6

Skill loading (planner profile: 12,000 char budget):
  LOADED: planning-patterns.md (3,400 chars, relevance: 0.96)
  LOADED: requirement-tracing.md (2,900 chars, relevance: 0.91)
  LOADED: task-decomposition.md (3,200 chars, relevance: 0.88)
  Budget used: 9,500 / 12,000 chars
  DEFERRED: git-commit-helper.md (2,800 chars, would exceed budget)
  DEFERRED: test-patterns.md (3,100 chars, low relevance: 0.42)

Note: 2 skills deferred due to budget constraints.
For Professionals & Developers

Bayesian Classification Internals

The orchestrator's Stage 3 implements naive Bayes classification over the GSD command space. The prior probability P(command) is derived from command usage frequency across all GSD sessions. The likelihood P(words | command) is computed from keyword co-occurrence tables. The confidence threshold (default 0.8) is deliberately high to avoid false routing.

Skill Loading Cache Mechanics

The skill loader uses a two-layer cache: an in-memory cache for skill file listing and metadata, and a scoring cache for relevance scores. The CacheOrder stage reorders skills to maximize cache hits, reducing loading latency from ~200ms to ~50ms in typical multi-phase sessions.

Reference Injection Architecture

The reference injection module implements three extraction passes over the .planning/ directory. All three extractors run in parallel (Promise.all) and their results are merged into a single GSDContext object. The extraction is idempotent.

Orchestrator Extensibility

The orchestrator's command registry is data-driven and extensible. Custom commands registered through .claude/commands/gsd/ are automatically discovered on initialization.

For SysAdmins & Operators

Managing the .planning/ Directory

For shared repositories, add .planning/patterns/ to .gitignore. The rest of .planning/ should be committed because it represents shared project state.

# Recommended .gitignore entries for .planning/
.planning/patterns/
.planning/staging/
.planning/console/

Dashboard Regeneration Operations

# Force full dashboard regeneration
skill-creator invoke gsd-dashboard --force

# Verify dashboard files exist
ls desktop/src/dashboard/generated/

# Serve dashboards for browser access
node serve-dashboard.mjs --port 3000

Integration Feature Flags

{
  "integration": {
    "session_observation": true,
    "skill_loading": true,
    "passive_monitoring": true,
    "dashboard_generation": true
  }
}

Backup and Recovery

# Backup the full .planning/ directory:
tar czf planning-backup-$(date +%Y%m%d).tar.gz .planning/

# Restore from backup:
tar xzf planning-backup-20260224.tar.gz

# Force dashboard regeneration after restore:
skill-creator invoke gsd-dashboard --force

Troubleshooting

Orchestrator routes to the wrong command

Check the confidence threshold in .planning/skill-creator.json. Also verify that ROADMAP.md and STATE.md accurately reflect the current project state.

Skills not loading before phase execution

Verify that skill_loading is set to true in .planning/skill-creator.json. Check that skills exist in .claude/commands/ or ~/.claude/commands/.

Dashboard shows stale data

Run skill-creator invoke gsd-dashboard --force to regenerate all dashboard pages.

Reference injection missing from generated skills

Verify that REQUIREMENTS.md exists and contains properly formatted REQ-xxx entries.

Token budget exceeded during phase execution

Increase the budget for the relevant profile in .planning/skill-creator.json or remove low-value skills.

Integration subsystem appears inactive

Verify that .planning/skill-creator.json exists and contains the integration section with feature flags set to true. The integration subsystems check for the presence of ROADMAP.md as a signal that GSD is properly initialized.

Related Capabilities