Agent skill

Template Generator

by dafthunk-com in dafthunk-com/dafthunk

Generate workflow templates with coherent node graphs and integration tests

MITAuto-check passedTesting & QA

Install Template Generator

skills CLI
$ npx skills add dafthunk-com/dafthunk --skill template-generator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dafthunk-com/dafthunk template-generator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dafthunk-com/dafthunk.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/template-generator .claude/skills/template-generator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
template-generator
GitHub stars
134
Token cost
~1.4k tokens
SKILL.md length
281 words
Files
1
Skills in repo
3
Repo updated
First seen
Licence
MIT

At a glance

Generate workflow templates with coherent node graphs and integration tests

  • Tasks that involve Integration testing
  • SKILL.md covers Runtime Essentials, Discover Nodes, Trigger Types and Create Template, plus 4 more sections
  • Calls pnpm
  • Tasks that involve Workflow automation

What it does

Template Generator is an agent skill from dafthunk-com/dafthunk. Generate workflow templates with coherent node graphs and integration tests

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Integration testing and Workflow automation. It works with React, Cloudflare, TypeScript and n8n. The repository describes itself as: A workflow execution platform built on top of the fantastic Cloudflare infrastructure. The licence is MIT.

When your agent uses it

  • Tasks that involve Integration testing
  • Tasks that involve Workflow automation

Example prompts

  • “/template-generator”

What it can do on your machine

Read from SKILL.md and the folder at commit 66be308. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Template Generator loads about 1.4k tokens when it runs. Until then it costs about 24 tokens; SKILL.md has 281 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~24
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dafthunk-com/dafthunk at commit 66be308, republished under its MIT licence (© dafthunk-com). 281 words, ~1,367 tokens.

Download SKILL.mdSave it as .claude/skills/template-generator/SKILL.md (or your agent's skills folder).
name
template-generator
description
Generate workflow templates with coherent node graphs and integration tests

Template Generator Skill

Generate workflow templates: discover nodes, design graphs, wire edges correctly, create tests.

Runtime Essentials

  • Topological execution: Nodes run in dependency order (edges define order)
  • Data flows through edges: sourceOutput → targetInput (port names must match exactly)
  • Skipping: If all upstream edges fail/skip, downstream nodes skip (not an error)
  • No cycles: Runtime rejects circular dependencies

Discover Nodes

Directory structure:

packages/runtime/src/nodes/
├── input/      # TextInputNode, ImageInputNode, NumberInputNode...
├── preview/    # TextPreviewNode, ImagePreviewNode, NumberPreviewNode...
├── text/       # Summarization, translation, sentiment
├── image/      # Generation, manipulation
├── audio/      # Processing, transcription
├── anthropic/  # Claude models
├── openai/     # GPT models
├── logic/      # ConditionalForkNode, ConditionalJoinNode
└── ...         # json/, math/, fetch/, browser/, etc.

Search commands:

bash
Grep pattern="translate" path="apps/api/src/nodes" glob="*.ts"
Glob pattern="packages/runtime/src/nodes/text/*.ts"

Read node interface - look for nodeType.inputs and nodeType.outputs:

bash
Read file_path="packages/runtime/src/nodes/text/bart-large-cnn-node.ts"

Key fields: inputs[].name → targetInput, outputs[].name → sourceOutput

Trigger Types

The type field defines how the workflow is triggered:

TypeDescriptionEntry Node
manualUser-initiated via UI/APIInput nodes (TextInputNode, etc.)
email_messageTriggered by incoming emailReceiveEmailNode
http_requestTriggered by HTTP request (sync)HttpRequestNode
http_webhookTriggered by webhook (async)HttpRequestNode
scheduledTriggered on schedule (cron)ReceiveScheduledTriggerNode
queue_messageTriggered by queue messageReceiveQueueMessageNode

Finding trigger-compatible nodes: Nodes declare which triggers they work with via the compatibility field in their nodeType. Search for compatible nodes:

bash
Grep pattern="compatibility:.*email_message" path="apps/api/src/nodes" glob="*.ts"
Grep pattern="compatibility:.*http_request" path="apps/api/src/nodes" glob="*.ts"

Create Template

File: apps/api/src/templates/{template-id}.ts

typescript
import type { WorkflowTemplate } from "@dafthunk/types";
import { TextInputNode } from "../nodes/input/text-input-node";
import { BartLargeCnnNode } from "../nodes/text/bart-large-cnn-node";
import { TextPreviewNode } from "../nodes/preview/text-preview-node";

export const myTemplate: WorkflowTemplate = {
  id: "my-template",
  name: "My Template",
  description: "What it does",
  icon: "file-text",
  type: "manual",
  tags: ["text", "ai"],
  nodes: [
    TextInputNode.create({
      id: "text-to-process",
      name: "Text to Process",
      position: { x: 100, y: 100 },
      inputs: { value: "Sample text...", rows: 4 },
    }),
    BartLargeCnnNode.create({
      id: "summarizer",
      name: "Summarizer",
      position: { x: 500, y: 100 },
    }),
    TextPreviewNode.create({
      id: "result",
      name: "Summary",
      position: { x: 900, y: 100 },
    }),
  ],
  edges: [
    { source: "text-to-process", target: "summarizer", sourceOutput: "value", targetInput: "inputText" },
    { source: "summarizer", target: "result", sourceOutput: "summary", targetInput: "value" },
  ],
};

Positioning: Inputs at x:100, processing at x:500, outputs at x:900. Stack vertically with 200px spacing.

Naming: IDs are kebab-case (text-to-translate). Names are short Title Case, omit "Preview" for outputs.

Logic Nodes

ConditionalForkNode - splits flow based on boolean:

  • Inputs: condition (boolean), value (any)
  • Outputs: true, false (only ONE has value)

ConditionalJoinNode - merges exclusive branches:

  • Inputs: a, b (exactly ONE must have value)
  • Output: result
[BooleanInput] ──condition──► [Fork] ──true──► [ProcessorA] ──►┐
[TextInput] ────value──────►        ──false─► [ProcessorB] ──►├─► [Join] ──► [Preview]

Register & Test

Register in apps/api/src/templates/index.ts:

typescript
import { myTemplate } from "./my-template";
export const workflowTemplates = [..., myTemplate];

Test file {template-id}.integration.ts:

typescript
describe("My Template", () => {
  it("should have valid structure", () => {
    expect(myTemplate.nodes).toHaveLength(3);
    expect(myTemplate.edges).toHaveLength(2);
    const nodeIds = new Set(myTemplate.nodes.map(n => n.id));
    for (const edge of myTemplate.edges) {
      expect(nodeIds.has(edge.source)).toBe(true);
      expect(nodeIds.has(edge.target)).toBe(true);
    }
  });
});

Run: pnpm typecheck && pnpm --filter '@dafthunk/api' test {template-id}

Type Compatibility

OutputCompatible Inputs
stringstring, any
numbernumber, any
booleanboolean, any
imageimage, blob, any
audioaudio, blob, any
jsonjson, any

Checklist

  • Nodes exist in codebase (verify with Glob/Read)
  • Edge ports match node definitions exactly
  • Types are compatible
  • Registered in index.ts
  • Tests pass

© dafthunk-com, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/template-generator of dafthunk-com/dafthunk.

Open the folder on GitHubat commit 66be308

Compare with similar skills

Template Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Template Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Template Generator this skilldafthunk-com/dafthunk134—~1.4kAutomated safety check: PassMIT
Hilla TestAI-Unified-Process/marketplace140—~3.9kAutomated safety check: WarnApache-2.0
N8n ArchitectEtienneLescot/n8n-as-code1.6k—~7.3kAutomated safety check: WarnMIT
Datadog Appdatadog-labs/agent-skills177—~744Automated safety check: PassMIT
N8n Integration Testing Patternsproffesor-for-testing/agentic-qe494—~3.8kAutomated safety check: PassMIT
Test Writing WorkflowiOfficeAI/AionUi33k1 repos~1.2kAutomated safety check: PassApache-2.0

Similar skills

  • Hilla Test

    AI-Unified-Process/marketplace

    Creates tests for Hilla use cases on both sides of the browser boundary: Vitest + React Testing Library tests for the React/TypeScript view (with the generated endpoint clients mocked) and Spring…

    140 GitHub stars~3.9k tokensUpdated 2 days ago
    Testing & QAAuto-check: warnings
  • N8n Architect

    EtienneLescot/n8n-as-code

    A skill your agent uses when the user explicitly wants to create, edit, validate, sync, or troubleshoot n8n workflows, asks about n8n nodes or automation, or wants to use n8n-as-code in the current…

    1.6k GitHub stars~7.3k tokensUpdated today
    Productivity & AutomationAuto-check: warnings
  • Datadog App

    datadog-labs/agent-skills

    Guides developers building Datadog Apps with TypeScript, React, the @datadog/apps scaffolder, and @datadog/vite-plugin.

    177 GitHub stars~744 tokensUpdated 5 days ago
    DevOps & CloudAuto-check passed
  • N8n Integration Testing Patterns

    proffesor-for-testing/agentic-qe

    API contract testing, authentication flows, rate limit handling, and error scenario coverage for n8n integrations with external services.

    494 GitHub stars~3.8k tokensUpdated 3 days ago
    Productivity & AutomationAuto-check passed
  • Test Writing Workflow

    iOfficeAI/AionUi

    Sets the test-writing workflow for the repository: risk-first scenario lists, behavior-focused Vitest tests, a full run before each commit and a coverage target.

    33k GitHub starsUsed in 1 repo~1.2k tokens
    Testing & QAAuto-check passed
  • Official

    Creates a Java SDK end-to-end test for the Copilot SDK that runs against a recorded YAML snapshot through a replay proxy, so CI needs no real authentication.

    11k GitHub stars~1.8k tokensUpdated today
    Testing & QAAuto-check passed

More from dafthunk-com/dafthunk

  • Integration Generator

    dafthunk-com/dafthunk

    Generate new OAuth integration providers for Dafthunk with backend providers, type definitions, frontend configurations, and integration nodes

    134 GitHub stars~2.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Node Generator

    dafthunk-com/dafthunk

    Generate new workflow nodes with implementation, tests, and registry registration

    134 GitHub stars~2.5k tokensUpdated 1 mo ago
    Auto-check passed

Questions about Template Generator

What does Template Generator do?

Generate workflow templates with coherent node graphs and integration tests. Template Generator is an agent skill from dafthunk-com/dafthunk.

When should I use Template Generator?

Template Generator fits situations like: tasks that involve Integration testing; tasks that involve Workflow automation.

How do I install Template Generator in Claude Code?

Run `npx skills add dafthunk-com/dafthunk --skill template-generator -a claude-code`. Or copy the skill folder (.claude/skills/template-generator in dafthunk-com/dafthunk) into .claude/skills/template-generator in your project. Claude Code loads it when a task matches its description.

How do I install Template Generator in Codex?

Run `npx skills add dafthunk-com/dafthunk --skill template-generator -a codex`. Or copy the skill folder (.claude/skills/template-generator in dafthunk-com/dafthunk) into .agents/skills/template-generator in your project. Codex loads it when a task matches its description.

Can I use Template Generator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dafthunk-com/dafthunk --skill template-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/template-generator, .gemini/skills/template-generator, .github/skills/template-generator and .opencode/skills/template-generator in your project.

What does Template Generator need to run?

Going by SKILL.md and its folder, Template Generator needs the command-line tools its instructions call (pnpm).

Does Template Generator access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Template Generator safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Template Generator use?

Template Generator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Template Generator use?

About 1.4k tokens (SKILL.md is roughly 5.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Template Generator?

Skills that share tags, products or a category with Template Generator: Hilla Test (AI-Unified-Process/marketplace, 140 stars), N8n Architect (EtienneLescot/n8n-as-code, 1.6k stars), Datadog App (datadog-labs/agent-skills, 177 stars) and N8n Integration Testing Patterns (proffesor-for-testing/agentic-qe, 494 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Template Generator?

dafthunk-com (a GitHub organization) maintains it in dafthunk-com/dafthunk, which has 134 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on September 4, 2026.

Source: dafthunk-com/dafthunk on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.