| name | template-scaffolding |
| description | 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. |
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:
```javascript
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
Glob to locate the template file in templates/
- Use
Read to load the template content
- Replace all
{{VARIABLE}} placeholders with provided values
- Process conditional blocks (
{{#if}}...{{/if}}, {{#unless}}...{{/unless}})
- Add frontmatter if specified
- Use
Write to 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
Glob to find all .md and .json files in templates/
- 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.md
discuss-phase.js - Generate CONTEXT.md from context template
plan-phase.js - Generate PLAN.md files from phase-prompt template
verify-work.js - Generate UAT.md from uat template
quick.js - Generate plan and summary using minimal variants
debug.js - Generate debug session file from debug template
complete-milestone.js - Generate milestone archive from milestone-archive template
add-tests.js - Generate test plan structure
research-phase.js - Generate RESEARCH.md from research template
map-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