Skip to main content

Work Templates

A Work Template is a pre-baked starter for a new Work: a pointer to a real GitHub boilerplate repository you can fork into your own Work. Work Templates power the "Work Templates" tab on the Templates page, alongside Website Templates and Mission Templates.

This page covers the Work Template catalog kind, the built-in starters, and how a Work Template is used. For the full REST surface (list / add / fork / customize), see the Template Catalog API.

Key sources:

  • packages/agent/src/works/work-template.config.ts — the built-in Work Template catalog
  • packages/agent/src/template-catalog/template-catalog.service.ts — seeding + fork flow
  • apps/api/src/template-catalog/template-catalog.controller.ts/api/templates* endpoints

Template kinds

The catalog is a single system that serves several kinds, filtered so each surface shows only its own. The TemplateKind union is 'website' | 'work' | 'mission' | 'company', and the catalog reader filters by kind so the tabs never cross-pollute:

KindTabBacking config
websiteWebsite Templateswebsite-template.config.ts
workWork Templateswork-template.config.ts
missionMission Templatesmission-template.config.ts
company(no seed in v1)the + New Company chip → register-company

A Work Template config mirrors the website/mission shape (owner / repo / branch + id / name / description) so the seed path treats every kind uniformly. Unlike the website kind — which infers its framework label from the repo name — a Work Template states its framework explicitly in config, so e.g. an Astro starter is never mislabelled by a repo-name heuristic.

Built-in starters

listWorkTemplates() returns the two built-in Work Templates that TemplateCatalogService seeds on boot as kind: 'work' catalog rows (verified in work-template.config.ts):

IdNameRepo (ever-works/…)Framework
starter-directoryStarter Directorydirectory-web-templateNext.js
starter-directory-minimalStarter Directory (Minimal)directory-web-minimal-templateAstro
  • Starter Directory — a Next.js directory boilerplate; a batteries-included starting point for a new directory Work.
  • Starter Directory (Minimal) — a minimal Astro directory boilerplate; a lightweight, content-first starting point.

Seeding is idempotent (upsert), and the service deactivates any older built-in row that points at the same (owner, repo) under a different id, so a curated entry never renders as a duplicate card.

Using a Work Template

The Templates catalog is a gallery in the dashboard's Templates section. For a built-in Work Template, the Fork action (TemplateCatalogService.forkTemplateForUser) forks the boilerplate repository into a GitHub account or organization you select, then:

  1. Creates a custom template row that points at your new fork (recording forkedFromTemplateId so the UI can re-run a customization later).
  2. Sets that fork as your default template for the work kind.

The forked repository is now yours to launch a Work from. You can also add your own Work Template by repository URL via Add Custom Template (POST /api/templates/custom with kind: 'work'), the same flow used for website and mission templates.

Only standard templates can be forked

Forking is restricted to built_in templates — a custom template is already your own repo, so it doesn't need forking again (forkTemplateForUser rejects non-built-in sources).