diff --git a/.agents/skills/author-recipes-and-cookbooks/SKILL.md b/.agents/skills/author-recipes-and-cookbooks/SKILL.md index ee6c730..4957aa6 100644 --- a/.agents/skills/author-recipes-and-cookbooks/SKILL.md +++ b/.agents/skills/author-recipes-and-cookbooks/SKILL.md @@ -7,7 +7,7 @@ description: Author and maintain DevHub templates published at `developers.datab ## Overview -Use this skill to add or update DevHub templates with consistent structure, metadata, and writing quality. Treat each template as both an execution prompt for AI coding agents and a learning walkthrough for human developers. +Use this skill to add or update DevHub templates with consistent structure, metadata, and writing quality. Treat each template as an execution prompt for AI coding agents — an inspirational gallery of what's possible, not a step-by-step manual guide. ## The Three Internal Kinds @@ -15,7 +15,7 @@ Internally the catalog is built from three kinds of content that compose into ea - **Recipe** — an atomic, copy-pasteable agent prompt for one outcome (e.g. "Create a Lakebase instance"). The smallest unit; everything else is built from these. - **Cookbook** — composes multiple recipes into a longer end-to-end guide, plus its own meta content (intro, narrative, ordering). No app source. -- **Example** — a cookbook _plus_ a full deployable codebase that lives in the [app-templates](https://github.com/databricks/app-templates) repo at `app-templates//`. Bundles recipes and cookbook narrative around runnable app code. +- **Example** — a cookbook _plus_ a full deployable `examples//template/` codebase. Bundles recipes and cookbook narrative around runnable app code. So: recipes are the atoms, cookbooks compose recipes with additional context, and examples are cookbooks with shipped code. @@ -27,11 +27,11 @@ User-facing, all three kinds are presented as one thing: **template**. The site The internal kind names (`recipe`, `cookbook`, `example`) **live only in code, file paths, and this skill** — they never appear in shipped UI, markdown content, or generated indexes. -| Internal kind | Source location | Route at runtime | When to use | -| ------------- | ------------------------------------------------------------------------------------------------- | ------------------- | -------------------------------------------------------------------------- | -| `recipe` | `content/recipes//{content,prerequisites,deployment}.md` + entry in `recipes` | `/templates/` | One atomic outcome, copy-pasteable in a single agent prompt. | -| `cookbook` | Entry in `cookbooks` (composes recipes) + manual page `src/pages/templates/.tsx` | `/templates/` | End-to-end walkthrough composed from multiple recipes. | -| `example` | `content/examples//content.md` + full app source at `app-templates//` (separate repo) | `/templates/` | Full deployable codebase that bundles cookbooks/recipes plus runnable app. | +| Internal kind | Source location | Route at runtime | When to use | +| ------------- | -------------------------------------------------------------------------------------- | ------------------- | -------------------------------------------------------------------------- | +| `recipe` | `content/recipes//{goal,prerequisites}.md` + entry in `recipes` | `/templates/` | One atomic outcome, copy-pasteable in a single agent prompt. | +| `cookbook` | Entry in `cookbooks` (composes recipes) + manual page `src/pages/templates/.tsx` | `/templates/` | End-to-end walkthrough composed from multiple recipes. | +| `example` | `content/examples//goal.md` + full app source under `examples//template/` | `/templates/` | Full deployable codebase that bundles cookbooks/recipes plus runnable app. | All three are registered in `src/lib/recipes/recipes.ts`, share a flat `/templates/` URL hierarchy, and must have globally unique slugs (the content-entries plugin asserts this at build time). Choose the kind that matches the **shape of the work**, not the customer-facing label. @@ -39,38 +39,31 @@ All three are registered in `src/lib/recipes/recipes.ts`, share a flat `/templat 1. One atomic, self-contained step for an agent → author a `recipe`. 2. A multi-recipe walkthrough that ships a coherent end-to-end use case (no full app source) → author a `cookbook` composing existing recipes. -3. A full deployable app (source tree in `app-templates//`, README runbook, optional pipelines and seed) → author an `example`. +3. A full deployable app (`template/` source tree, README runbook, optional pipelines and seed) → author an `example`. 4. Reuse existing recipes whenever you can. New recipes are the most valuable; new cookbooks/examples should compose them. ## Author A `recipe` -1. Create `content/recipes//content.md`. Optionally add `prerequisites.md` and `deployment.md` siblings. +1. Create `content/recipes//goal.md`. Optionally add `prerequisites.md`. 2. The slug must equal the folder name and be globally unique across the catalog. -3. Open `content.md` with: - - `##