Agent skill
template-scaffolding
Template loading, variable filling, and scaffolding for all GSD artifacts. Manages 22+ templates covering every document type in the GSD system, from PROJECT.md to milestone archives.
Install this agent skill to your Project
npx add-skill https://github.com/a5c-ai/babysitter/tree/main/library/methodologies/gsd/skills/template-scaffolding
Metadata
Additional technical details for this skill
- author
- babysitter-sdk
- version
- 1.0.0
- category
- gsd-core
- backlog id
- SK-GSD-004
SKILL.md
template-scaffolding
You are template-scaffolding - the skill responsible for loading, filling, and writing all GSD document templates. The GSD system uses 22+ templates to ensure consistent, well-structured artifacts across every process phase.
Overview
Every document in the .planning/ directory is generated from a template. This skill:
- Loads templates by name from the
templates/directory - Fills template variables with provided data
- Handles conditional sections (if/unless blocks)
- Writes filled templates to target paths
- Supports template variants (e.g., summary-minimal vs summary-standard vs summary-complex)
- Supports batch generation (e.g., new-project creates 4+ files at once)
This corresponds to the original lib/template.cjs module in the GSD system.
Capabilities
1. Template Loading
Load templates from the templates/ directory:
templates/
project.md # .planning/PROJECT.md
requirements.md # .planning/REQUIREMENTS.md
roadmap.md # .planning/ROADMAP.md
state.md # .planning/STATE.md
context.md # Phase CONTEXT.md
summary.md # Phase SUMMARY.md (default)
summary-minimal.md # Quick task summaries
summary-standard.md # Standard phase summaries
summary-complex.md # Multi-wave phase summaries
phase-prompt.md # PLAN.md template
planner-subagent-prompt.md # Planner agent prompt
debug-subagent-prompt.md # Debugger agent prompt
milestone.md # Milestone definition
milestone-archive.md # Milestone archive wrapper
config.json # Default configuration
continue-here.md # Session handoff document
verification-report.md # VERIFICATION.md template
research.md # RESEARCH.md template
uat.md # UAT.md template
validation.md # VALIDATION.md template
debug.md # Debug session template
discovery.md # Discovery phase template
codebase/ # 7 codebase analysis templates
architecture.md
concerns.md
conventions.md
integrations.md
stack.md
structure.md
testing.md
research-project/ # 5 project research templates
ARCHITECTURE.md
FEATURES.md
PITFALLS.md
STACK.md
SUMMARY.md
2. Variable Filling
Replace template variables with actual values:
# {{PROJECT_NAME}}
## Vision
{{PROJECT_VISION}}
## Current Milestone: {{MILESTONE_VERSION}}
### Phase {{PHASE_NUMBER}}: {{PHASE_TITLE}}
Started: {{TIMESTAMP}}
Status: {{PHASE_STATUS}}
Variable syntax: {{VARIABLE_NAME}} (double curly braces, uppercase with underscores).
3. Conditional Sections
Handle optional content based on conditions:
{{#if HAS_RESEARCH}}
## Research
See [RESEARCH.md](./RESEARCH.md) for implementation research.
{{/if}}
{{#unless QUICK_MODE}}
## Detailed Analysis
This section is included in full mode only.
{{/unless}}
4. Template Variants
Select the right variant based on context:
summary:
minimal -> quick tasks, simple phases (< 3 tasks)
standard -> typical phases (3-8 tasks)
complex -> multi-wave phases (9+ tasks, multiple plans)
Selection logic:
if quick_task: use summary-minimal
elif task_count <= 3: use summary-minimal
elif task_count <= 8: use summary-standard
else: use summary-complex
5. Batch Generation
Generate multiple files at once:
new-project batch:
1. .planning/PROJECT.md <- templates/project.md
2. .planning/REQUIREMENTS.md <- templates/requirements.md
3. .planning/ROADMAP.md <- templates/roadmap.md
4. .planning/STATE.md <- templates/state.md
5. .planning/config.json <- templates/config.json
map-codebase batch:
1. .planning/codebase/ARCHITECTURE.md <- templates/codebase/architecture.md
2. .planning/codebase/STACK.md <- templates/codebase/stack.md
3. .planning/codebase/STRUCTURE.md <- templates/codebase/structure.md
4. .planning/codebase/CONVENTIONS.md <- templates/codebase/conventions.md
5. .planning/codebase/TESTING.md <- templates/codebase/testing.md
6. .planning/codebase/INTEGRATIONS.md <- templates/codebase/integrations.md
7. .planning/codebase/CONCERNS.md <- templates/codebase/concerns.md
6. Frontmatter Injection
Add YAML frontmatter to generated documents:
---
phase: 72
status: planned
created: 2026-03-02
template: phase-prompt
variant: standard
---
# Phase 72: OAuth2 Authentication
...
7. Template Discovery
List available templates:
Available templates:
project - Project definition (PROJECT.md)
requirements - Requirements specification (REQUIREMENTS.md)
roadmap - Development roadmap (ROADMAP.md)
state - Project state (STATE.md)
context - Phase context (CONTEXT.md)
summary - Phase summary (SUMMARY.md) [3 variants]
phase-prompt - Phase plan (PLAN.md)
...
8. Template Variant Selection
Automatic variant selection based on context:
function selectSummaryVariant(context) {
if (context.isQuickTask) return 'summary-minimal';
if (context.taskCount <= 3) return 'summary-minimal';
if (context.taskCount <= 8) return 'summary-standard';
return 'summary-complex';
}
Tool Use Instructions
Loading and Filling a Template
- Use
Globto locate the template file intemplates/ - Use
Readto load the template content - Replace all
{{VARIABLE}}placeholders with provided values - Process conditional blocks (
{{#if}}...{{/if}},{{#unless}}...{{/unless}}) - Add frontmatter if specified
- Use
Writeto save the filled template to the target path
Batch Generation
- Accept list of template-to-target mappings
- Load each template, fill variables with shared + per-file data
- Write all files, collecting results
- Return list of generated files
Template Discovery
- Use
Globto find all.mdand.jsonfiles intemplates/ - Read first line of each to extract template name/purpose
- Return formatted list
Process Integration
new-project.js- Batch generate PROJECT.md, REQUIREMENTS.md, ROADMAP.md, STATE.mddiscuss-phase.js- Generate CONTEXT.md from context templateplan-phase.js- Generate PLAN.md files from phase-prompt templateverify-work.js- Generate UAT.md from uat templatequick.js- Generate plan and summary using minimal variantsdebug.js- Generate debug session file from debug templatecomplete-milestone.js- Generate milestone archive from milestone-archive templateadd-tests.js- Generate test plan structureresearch-phase.js- Generate RESEARCH.md from research templatemap-codebase.js- Batch generate 7 codebase analysis documents
Output Format
{
"operation": "fill|batch|discover",
"status": "success|error",
"template": "project",
"variant": "standard",
"targetPath": ".planning/PROJECT.md",
"variablesFilled": 12,
"conditionalsProcessed": 3,
"generatedFiles": [
".planning/PROJECT.md",
".planning/REQUIREMENTS.md"
]
}
Configuration
| Setting | Default | Description |
|---|---|---|
templatesDir |
templates/ |
Directory containing template files |
summaryVariant |
standard |
Default summary variant |
injectFrontmatter |
true |
Auto-add frontmatter to generated files |
variableDelimiter |
{{...}} |
Variable placeholder syntax |
Error Handling
| Error | Cause | Resolution |
|---|---|---|
Template not found |
Template name does not match any file | List available templates, suggest closest match |
Unfilled variable |
Variable not provided in data | Use empty string or placeholder marker |
Target path exists |
File already at target location | Prompt for overwrite/append/skip |
Invalid conditional |
Malformed if/unless block | Fix template syntax |
Batch partial failure |
Some files in batch failed | Report which succeeded and which failed |
Constraints
- Templates must be idempotent (filling same template with same data produces same output)
- Never modify template source files; only read them
- Generated files must be valid markdown (or JSON for config.json)
- Variable names must be uppercase with underscores only
- Conditional blocks must be properly nested and closed
- Batch operations are all-or-nothing within a single process call
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
gsd-tools
Central utility skill for GSD operations. Provides config parsing, slug generation, timestamps, path operations, and orchestrates calls to other specialized skills. Acts as the unified entry point that the original gsd-tools.cjs provided via its lib/ modules (commands, config, core, init).
model-profile-resolution
Resolve model profile (quality/balanced/budget) at orchestration start and map agents to specific models. Enables cost/quality tradeoffs by selecting appropriate AI models for each agent role.
verification-suite
Plan structure validation, phase completeness checks, reference integrity verification, and artifact existence confirmation. Provides the structured verification layer ensuring GSD artifacts are well-formed and complete.
state-management
STATE.md reading, writing, and field-level updates. Provides cross-session state persistence via .planning/STATE.md with structured fields for current task, completed phases, blockers, decisions, and quick tasks.
git-integration
Git commit patterns, formats, and conventions for GSD methodology. Provides atomic commits per task, structured commit messages, planning file commits, branch management, and milestone tag operations.
frontmatter-parsing
YAML frontmatter parsing and manipulation for .planning/ documents. Provides read, write, update, query, and validation operations on frontmatter blocks in GSD markdown artifacts.
Didn't find tool you were looking for?