Skip to content
- Variable substitution —
{{ variable_name }} placeholders in .docx and .html templates
- Conditional sections —
{% if %} / {% else %} / {% endif %} with truthiness and equality conditions
- Loop sections —
{% for item in items %} / {% endfor %} for repeating content
- Developer configuration — optional
config.yaml per template with custom questions, labels, types, defaults, groups, and validation
- Two template formats —
.docx via docxtpl; .html via jinja2 + weasyprint PDF
- Manifest caching — template analysis is cached in
manifest.yaml and only regenerated when the template file changes
- Skill separation — three focused skills (Orchestrator, Analyzer, Renderer)
- Single-level nesting only — no
{% for %} inside {% if %}, or vice versa
- Two condition forms only — truthiness and equality;
{% elif %} is not supported
- No computed or derived fields — all values must be collected from the user
- Variables cannot reference other variables
{% elif %} support in conditional blocks
- Computed fields — simple expressions like
{{ quantity * unit_price }}
- Nested block support (limited depth)
- Improved manifest validation and error reporting
- Multi-template document assembly (merge multiple templates into one output)
- Template registry — browse and install community templates
- Web-based interview UI (alternative to the Cowork conversation interface)
- Agent-agnostic harness — run Codraft from Claude Code, Cursor, and other coding agents