Skip to main content
Templates encode domain expertise so agents don’t start from a blank canvas. Each template provides funnel stages, reward functions, psychology frameworks, and anti-patterns specific to a domain.

Using Templates

# Scaffold a dating agent world
tenet init --template dating

# Default GTM template (existing behavior)
tenet init

What a Template Contains

templates/dating/
├── FUNNEL.md          # matched → messaging → deep → meet
├── SIGNALS.md         # reply_rate, response_time, sentiment
├── REWARDS.md         # reply +1, meet +10, skip -0.5
├── PSYCHOLOGY.md      # push-pull, vulnerability, timing
├── ANTI_PATTERNS.md   # triple-text, interrogation, generic openers
├── MODES.md           # bold, playful, chill, intellectual
└── connectors/        # platform integration stubs

Template Loader

import { loadTemplate } from '@tenet-ai/cli'

const config = loadTemplate('dating', projectRoot)
// Returns structured config from the markdown files:
// { funnel: [...stages], rewards: [...signals], antiPatterns: [...], modes: [...] }

Creating Custom Templates

Create a templates/your-domain/ directory with the standard files. The DomainEngine reads and parses the markdown into structured configuration.

FUNNEL.md

Define your pipeline stages:
## Dating-Specific Stages
- **matched** — initial match on platform
- **opened** — first message sent
- **messaging** — active conversation
- **deep** — meaningful connection
- **meet_proposed** — date suggested
- **met** — in-person meeting

REWARDS.md

Define your reward function:
## Signal Rewards
- reply: +1
- fast_reply: +0.5 (within 1 hour)
- meet_proposed: +3
- meet_confirmed: +10
- user_sent_as_is: +0.5
- user_edited: -0.1
- user_skipped: -0.5