Skip to content
Development
Skill

/template-engine

Load, validate, and populate templates consistently across frameworks

From plugin
aiwg
229200 skills199 agents26 commands

Claude Code

$ npx -y skills add jmagly/aiwg --skill template-engine --agent claude-code

SKILL.md

template-engine.SKILL.md
namespace: aiwg
name: template-engine
platforms: [all]
description: Load, validate, and populate templates consistently across frameworks

template-engine

Load, validate, and populate templates consistently across frameworks.

Triggers

Alternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):

  • "fill template" → template instantiation
  • "scaffold from template" → template-driven generation

Purpose

This skill provides a unified template instantiation engine that:

  • Locates templates across project, framework, and installation locations
  • Parses template structure and placeholders
  • Gathers required inputs from context or prompts
  • Populates and validates instantiated artifacts
  • Integrates with artifact-metadata for tracking

Behavior

When triggered, this skill:

1. **Locates template**:

  • Search project templates first (`.aiwg/templates/`)
  • Search active framework templates
  • Search AIWG installation templates
  • Return first match or list similar templates

2. **Parses template**:

  • Extract placeholders (`{{variable}}`, `{variable}`)
  • Identify required vs optional sections
  • Detect conditional blocks
  • Build input requirements list

3. **Gathers inputs**:

  • Check context for matching values
  • Prompt for missing required values
  • Apply defaults for optional values

4. **Instantiates template**:

  • Replace all placeholders
  • Evaluate conditional sections
  • Process loops/repeating sections
  • Format output

5. **Validates output**:

  • Check all placeholders replaced
  • Validate structure
  • Create metadata (via artifact-metadata skill)

6. **Saves artifact**:

  • Write to appropriate location
  • Update artifact index

Template Discovery Order

1. .aiwg/templates/{template-name}.md
2. .aiwg/templates/{category}/{template-name}.md
3. {framework}/templates/{category}/{template-name}.md
4. ~/.local/share/ai-writing-guide/.../{template-name}.md

Template Syntax

Basic Placeholders

# {{project_name}} Architecture Document

**Author**: {{author}}
**Date**: {{date}}
**Version**: {{version|default:0.1.0}}

Conditional Sections

{{#if has_database}}
## Database Design

{{database_description}}
{{/if}}

Loops/Repeating Sections

## Components

{{#each components}}
### {{name}}

{{description}}

- **Owner**: {{owner}}
- **Dependencies**: {{dependencies}}
{{/each}}

Includes

{{> common/header.md}}

## Content

{{> partials/component-table.md}}

Computed Values

**Generated**: {{now|format:YYYY-MM-DD}}
**ID**: {{artifact_type}}-{{sequence|pad:3}}

Configuration

Template Metadata

Each template can have a `.meta.yaml` file:

name: software-architecture-document
description: Template for Software Architecture Documents
category: architecture
version: 1.0.0

variables:
  - name: project_name
    required: true
    description: Name of the project

  - name: author
    required: true
    description: Document author

  - name: version
    required: false
    default: "0.1.0"
    description: Document version

  - name: components
    required: false
    type: array
    description: List of system components

sections:
  - name: overview
    required: true
  - name: database
    required: false
    condition: has_database

output:
  location: .aiwg/architecture/
  filename: "{{project_name|kebab}}-sad.md"

Usage Examples

Basic Template Instantiation

User: "Create SAD from template"

Skill executes:
1. Find: sdlc-complete/templates/analysis-design/software-architecture-doc-template.md
2. Parse: Extract placeholders (project_name, author, etc.)
3. Gather: Prompt for required values
4. Instantiate: Replace placeholders
5. Save: .aiwg/architecture/myproject-sad.md
6. Metadata: Create .aiwg/architecture/myproject-sad.metadata.json

With Context

User: "New test plan from template for authentication module"

Context provides:
- project_name: "MyProject"
- module: "authentication"
- author: from git config

Skill uses context values, prompts for remaining.

List Available Templates

User: "What templates are available?"

Skill returns:
Architecture:
  - software-architecture-doc-template
  - adr-template
  - api-contract-template

Requirements:
  - use-case-spec-template
  - user-story-template
  - supplementary-spec-template

Testing:
  - test-plan-template
  - test-case-template
  - test-strategy-template

Template with Components

User: "Create component diagram from template with 3 components"

Skill prompts:
- Component 1 name? "API Gateway"
- Component 1 description? "External API interface"
- Component 2 name? "Auth Service"
...

Output includes all components in repeating section.

CLI Usage

# Instantiate template
python template_engine.py --template software-architecture-doc-template

# With variables
python template_engine.py --template sad \
  --var project_name="MyProject" \
  --var author="John Doe"

# Interactive mode
python template_engine.py --template test-plan --interactive

# List templates
python template_engine.py --list
python template_engine.py --list --category architecture

# Validate template
python template_engine.py --validate --template custom-template.md

# Preview without saving
python template_engine.py --template sad --preview

# Specify output location
python template_engine.py --template sad --output .aiwg/architecture/custom-name.md

Template Categories

SDLC Framework Templates

| Category | Templates | |----------|-----------| | requirements | use-case-spec, user-story, supplementary-spec, srs, glossary | | architecture | sad, adr, api-contract, data-flow, database-design | | testing | test-strategy, test-plan, test-cases, defect-card | | security | threat-model, security-requirements, vulnerability-plan | | deployment | deployme

Read more
@jmagly
Ships withaiwg

Reusable project context and specialist workflows for the AI tools you already use. Plan software, coordinate specialist reviews, prepare campaigns, investigate incidents, organize research, curate media, and maintain operational knowledge.

229200 skills199 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
229
Star history of jmagly/aiwg on GitHub, a chart by star-history.com

Other skills on aiwg.

agent-loop-ext

agent-loop-ext

Crash-resilient external agent loop with state persistence and CI/CD integration

@jmagly@jmaglyInstall Skill
agent-loop

agent-loop

Detect requests for iterative autonomous agent loops and route to the appropriate loop executor

@jmagly@jmaglyInstall Skill
auto-test-execution

auto-test-execution

Automatically execute tests when code-generating agents modify source files, enforcing the execute-before-return pattern

@jmagly@jmaglyInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills12d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about template-engine.

Which coding agents can use template-engine?
template-engine installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.