template-scaffolding
Scannednpx machina-cli add skill a5c-ai/babysitter/template-scaffolding --openclawtemplate-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
Source
git clone https://github.com/a5c-ai/babysitter/blob/main/plugins/babysitter/skills/babysit/process/methodologies/gsd/skills/template-scaffolding/SKILL.mdView on GitHub Overview
template-scaffolding loads 22+ GSD templates from the templates/ folder, fills variables, and writes final artifacts to the .planning/ directory. It supports conditional sections and variants to tailor output for different project stages, such as summary-minimal, standard, or complex. Batch generation enables creating multiple documents in one go, like new-project batch generating 4+ files.
How This Skill Works
Templates are loaded by name from templates/. Variables in the form {{VAR}} are replaced with actual data, and conditional blocks like {{#if}} and {{/if}} (as well as {{#unless}} blocks) are evaluated. The system selects a template variant based on context (for example task count) and writes the filled outputs to target paths, with batch generation supporting multi-file artifact creation.
When to Use It
- Batch-generate multiple planning files for a new GSD project (eg PROJECT.md, REQUIREMENTS.md, ROADMAP.md).
- Fill a document with actual data such as PROJECT_NAME, PROJECT_VISION, and MILESTONE_VERSION.
- Generate phase summaries using summary-minimal, summary-standard, or summary-complex based on task load.
- Include or exclude sections conditionally using if/unless blocks to tailor content.
- Maintain consistent structure across 22+ templates from PROJECT.md to milestone-archive.md and related docs.
Quick Start
- Step 1: Load templates from the templates/ directory by name (eg templates/project.md).
- Step 2: Fill variables using data keys like PROJECT_NAME, PROJECT_VISION, and MILESTONE_VERSION, and select a variant if needed.
- Step 3: Write the filled templates to .planning/ paths; use new-project batch to generate multiple files at once.
Best Practices
- Use consistent variable names with double curly braces, e.g. {{PROJECT_NAME}} and {{MILESTONE_VERSION}}.
- Test conditional blocks (if and unless) with both branches to verify output.
- Choose and validate the correct template variant before batch generation.
- Validate target paths and ensure the .planning/ directory exists for writes.
- Leverage batch generation to produce multiple files in a single operation.
Example Use Cases
- Bootstrapping a new GSD project by batch-generating PROJECT.md, REQUIREMENTS.md, and ROADMAP.md.
- Creating a minimal summary (summary-minimal) for a short sprint.
- Producing a standard phase summary (summary-standard) for a typical 3- to 8-task phase.
- Generating a complex multi-wave phase (summary-complex) for a large project.
- Archiving milestones with a milestone-archive wrapper to preserve project history.