ralphy template suggest "<utterance>". Per AGENTS.md invariant #10, always run suggest before reaching for a model — there’s a good chance the format already exists.
Two tiers, one resolver
| Tier | source | Audience | Storage |
|---|---|---|---|
| Public content library | public | shipped to everyone | Supabase (hosted; the same library /library serves, read via cli/lib/library/client.ts) |
workspace/templates/ | workspace | user-local, gitignored | per-checkout |
templates/<category>/<slug>/ folder was retired in #084.
The workspace tier supports two on-disk layouts:
- Flat:
workspace/templates/<id>.json - Dir:
workspace/templates/<id>/template.json+TEMPLATE.md+composition.mdand friends
TEMPLATE.md) lives next to metadata.
ralphy template suggest
The agent’s discovery surface. Pass an utterance, get the top-N matching templates ranked by score.{ matches: [{ slug, score, kind, summary, source }] }. The scorer is a pure keyword matcher against frontmatter + body — no LLM call, fast and deterministic.
Full surface: /reference/cli/template.
ralphy template list
{ id, kind, source, name, summary }. Two kind values ship today: vibe-reference (full-stack production templates with composition.md + reference example) and vibe-style (prompt cookbooks with hooks + camera vocab + worked example prompts). source is public (hosted library) or workspace (user-local).
ralphy template show <id>
--raw and --doc are useful when piping into another tool.
ralphy template use <id>
The verb that wires a template into a project. Validates required inputs (brand, persona, refs, …), pulls every required asset from the companion repo, copies them into the project tree, and writes TEMPLATE_ORIGIN.md so the project remembers its source.
E_TEMPLATE_INPUT_MISSING and names the matching flag.
Full surface: /reference/cli/template.
ralphy template create / register / delete
create writes a flat workspace/templates/<id>.json; for richer templates, scaffold a dir under workspace/templates/<id>/ manually and use register to add it to the registry. See Template format.
Slug resolution
Given a slug, the resolver walks in this order:workspace/templates/<id>/template.json(dir, workspace)workspace/templates/<id>.json(flat, workspace)- Public content library lookup by slug (Supabase, via
cli/lib/library/client.ts)
Browsing the catalog
The full roster lives on the public Library;ralphy template list -p and ralphy template suggest "<brief>" are the CLI surfaces. The old repo-public CATEGORIES.md / TOP.md manifests were retired with the templates/ folder (#084).
Related
- Concepts: templates — the conceptual model
- Template format —
template.jsonschema - Assets —
template useauto-pulls required assets - docs/templates-index.md — full index
- cli/commands/template.ts, cli/lib/templater/loader.ts