@shoalrun/cli 0.1.0-alpha.16 → 0.1.0-alpha.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/README.md +3 -3
  3. package/agent-docs/SNAPSHOT.json +5 -5
  4. package/agent-docs/author/frontmatter-reference.md +15 -11
  5. package/agent-docs/author/frontmatter-reference.sections/choose-a-publication-and-visibility.md +13 -11
  6. package/agent-docs/author/frontmatter-reference.sections/control-output-details.md +1 -1
  7. package/agent-docs/author/frontmatter-reference.sections/global-defaults-and-enforced-values.md +1 -1
  8. package/agent-docs/author/frontmatter-reference.sections/html-markdown-and-agents.md +1 -1
  9. package/agent-docs/author/frontmatter-reference.sections/identify-and-route-a-page.md +1 -1
  10. package/agent-docs/author/frontmatter-reference.sections/point-agents-to-it.md +1 -1
  11. package/agent-docs/author/frontmatter-reference.sections/project-defined-fields.md +1 -1
  12. package/agent-docs/author/frontmatter-reference.sections/related-reading.md +1 -1
  13. package/agent-docs/author/frontmatter-reference.sections/use-the-local-files-while-authoring.md +1 -1
  14. package/agent-docs/author/frontmatter-reference.sections/when-the-files-update.md +1 -1
  15. package/agent-docs/author/recipe-drafts.md +2 -2
  16. package/agent-docs/author/recipe-drafts.sections/1-write-one-reusable-step.md +1 -1
  17. package/agent-docs/author/recipe-drafts.sections/2-list-the-steps-for-one-complete-goal.md +1 -1
  18. package/agent-docs/author/recipe-drafts.sections/3-generate-a-draft-and-review-it.md +1 -1
  19. package/agent-docs/author/recipe-drafts.sections/4-maintain-shoalrun-s-published-recipe-snapshots.md +1 -1
  20. package/agent-docs/author/recipe-drafts.sections/related-reading.md +1 -1
  21. package/agent-docs/author/recipe-drafts.sections/start-an-ingredient-from-an-api-example.md +2 -2
  22. package/agent-docs/author/recipes.md +3 -3
  23. package/agent-docs/author/recipes.sections/how-agents-use-this.md +2 -2
  24. package/agent-docs/author/recipes.sections/one-example-from-shoalrun.md +2 -2
  25. package/agent-docs/author/recipes.sections/related-reading.md +2 -2
  26. package/agent-docs/author/recipes.sections/try-a-complete-workflow.md +3 -3
  27. package/agent-docs/author/recipes.sections/use-recipes-for-task-oriented-how-tos.md +2 -2
  28. package/agent-docs/author/recipes.sections/what-changing-an-ingredient-updates.md +2 -2
  29. package/agent-docs/author/recipes.sections/what-each-file-does.md +2 -2
  30. package/agent-docs/author/recipes.sections/what-happens-and-when.md +2 -2
  31. package/agent-docs/author/search.md +55 -6
  32. package/agent-docs/author/search.sections/agent-and-mcp-search-scope.md +48 -0
  33. package/agent-docs/author/search.sections/choose-a-provider.md +7 -6
  34. package/agent-docs/author/search.sections/cli-and-mcp-ranking-details.md +1 -1
  35. package/agent-docs/author/search.sections/enable-included-semantic-search.md +66 -0
  36. package/agent-docs/author/search.sections/hosted-semantic-search-limits.md +1 -1
  37. package/agent-docs/author/search.sections/html-markdown-and-agents.md +1 -1
  38. package/agent-docs/author/search.sections/lexical-search.md +1 -1
  39. package/agent-docs/author/search.sections/local-semantic-preview.md +1 -1
  40. package/agent-docs/author/search.sections/read-a-search-result-with-an-agent.md +1 -1
  41. package/agent-docs/author/search.sections/related-reading.md +1 -1
  42. package/agent-docs/author/search.sections/reuse-the-lexical-index.md +1 -1
  43. package/agent-docs/author/search.sections/turn-search-off.md +1 -1
  44. package/agent-docs/author/search.sections/use-the-search-box.md +1 -1
  45. package/agent-docs/author/search.sections/write-a-custom-provider.md +1 -1
  46. package/agent-docs/chat/passage-index.md +16 -12
  47. package/agent-docs/chat/passage-index.sections/build-the-index.md +3 -3
  48. package/agent-docs/chat/passage-index.sections/embed-passages.md +3 -3
  49. package/agent-docs/chat/passage-index.sections/how-the-default-chunker-splits-a-page.md +3 -3
  50. package/agent-docs/chat/passage-index.sections/limits.md +3 -3
  51. package/agent-docs/chat/passage-index.sections/passage-ids-and-links.md +14 -10
  52. package/agent-docs/chat/passage-index.sections/related-reading.md +3 -3
  53. package/agent-docs/chat/passage-index.sections/what-a-passage-contains.md +5 -5
  54. package/agent-docs/cookbooks/welcome-email.md +12 -9
  55. package/agent-docs/documents.json +207 -183
  56. package/agent-docs/provenance.json +4 -4
  57. package/agent-docs/recipes/queue-email.md +1 -1
  58. package/agent-docs/recipes/send-welcome-email.md +3 -3
  59. package/agent-docs/search-index.json +1 -1
  60. package/agent-docs/start.md +2 -2
  61. package/agent-docs/start.sections/add-the-page-to-navigation.md +1 -1
  62. package/agent-docs/start.sections/build-and-check-both-outputs.md +1 -1
  63. package/agent-docs/start.sections/build-this-site.md +1 -1
  64. package/agent-docs/start.sections/check-writing-style.md +1 -1
  65. package/agent-docs/start.sections/create-a-page.md +1 -1
  66. package/agent-docs/start.sections/make-it-yours.md +1 -1
  67. package/agent-docs/start.sections/migrating-from-github-packages.md +1 -1
  68. package/agent-docs/start.sections/prerequisites.md +1 -1
  69. package/agent-docs/start.sections/related-reading.md +1 -1
  70. package/agent-docs/start.sections/start-your-own-project.md +2 -2
  71. package/dist/ai-directory.d.ts +1 -0
  72. package/dist/ai-directory.js +12 -0
  73. package/dist/answer-cards.js +1 -1
  74. package/dist/ask-function.d.ts +4 -18
  75. package/dist/ask-function.js +12 -71
  76. package/dist/ask-runtime.d.ts +45 -0
  77. package/dist/ask-runtime.js +96 -0
  78. package/dist/ask-setup.d.ts +3 -42
  79. package/dist/ask-setup.js +5 -93
  80. package/dist/embeddings.d.ts +1 -1
  81. package/dist/embeddings.js +1 -1
  82. package/dist/function-package.js +5 -0
  83. package/dist/function-runtime.d.ts +23 -0
  84. package/dist/function-runtime.js +45 -0
  85. package/dist/index-build.d.ts +1 -2
  86. package/dist/index-build.js +3 -11
  87. package/dist/retrieval-runtime.d.ts +5 -0
  88. package/dist/retrieval-runtime.js +21 -0
  89. package/dist/search-function.d.ts +2 -0
  90. package/dist/search-function.js +30 -0
  91. package/dist/search-handler.js +2 -2
  92. package/dist/search-identifier-core.d.ts +4 -0
  93. package/dist/search-identifier-core.js +30 -0
  94. package/dist/search-identifier.d.ts +3 -3
  95. package/dist/search-identifier.js +7 -30
  96. package/dist/search-literal.js +1 -1
  97. package/dist/search-results.js +1 -1
  98. package/dist/search-snippet.d.ts +1 -1
  99. package/dist/search-snippet.js +2 -14
  100. package/dist/search-text.d.ts +1 -0
  101. package/dist/search-text.js +14 -0
  102. package/dist/vercel-function.js +10 -2
  103. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.17 — 2026-11-04
4
+
5
+ - Package hosted Ask and Search without importing source configuration or its
6
+ component compiler, icon, syntax-highlighting, math-rendering, and esbuild
7
+ dependencies. Hosted functions consume resolved settings; local commands
8
+ retain source-config loading.
9
+ - Build Search from its own dependency closure and private retrieval files,
10
+ without chat generation, answer cards, or third-party runtime packages.
11
+ Preserve existing hosted metadata and deep imports for compatibility.
12
+ - Keep prepared search scoring and snippets separate from Markdown preparation,
13
+ and retain runtime and dependency licenses in function packages.
14
+ - Test isolated function imports and requests, enforce per-runtime file/byte
15
+ budgets, and reject build-only dependencies in hosted runtime packages.
16
+
17
+ No configuration migration is required. Upgrade the CLI and rebuild the hosted
18
+ bundle to apply the smaller function packages; existing deployments are unchanged.
19
+
3
20
  ## 0.1.0-alpha.16 — 2026-11-04
4
21
 
5
22
  - Set `outputs.html.search.provider: semantic` to connect the search box to
package/README.md CHANGED
@@ -9,13 +9,13 @@ This package provides the `shoalrun` CLI, starter projects, agent skills, and of
9
9
  From the project where you want to keep your documentation:
10
10
 
11
11
  ```sh
12
- npm install --save-dev --save-exact @shoalrun/cli@0.1.0-alpha.15
12
+ npm install --save-dev --save-exact @shoalrun/cli@0.1.0-alpha.17
13
13
  ```
14
14
 
15
15
  If you previously used the private GitHub Packages alpha, check `npm config get @shoalrun:registry`. Remove or replace any `@shoalrun:registry=https://npm.pkg.github.com` entry in your project or user `.npmrc`. You can explicitly select the public registry for the upgrade:
16
16
 
17
17
  ```sh
18
- npm install --save-dev --save-exact @shoalrun/cli@0.1.0-alpha.15 --@shoalrun:registry=https://registry.npmjs.org
18
+ npm install --save-dev --save-exact @shoalrun/cli@0.1.0-alpha.17 --@shoalrun:registry=https://registry.npmjs.org
19
19
  ```
20
20
 
21
21
  Commit the updated package manifest and lockfile together. Check that the lockfile resolves `@shoalrun/cli` from `registry.npmjs.org`. Keep any credentials needed by other private dependencies; Shoalrun itself no longer needs a package token.
@@ -69,7 +69,7 @@ npx --no-install shoalrun docs search "Steps" --json
69
69
  npx --no-install shoalrun docs read guide.component.steps --json
70
70
  ```
71
71
 
72
- Alpha.12 includes the reviewed documentation refresh: clearer organization, installed-package workflows, and consistent explanations of HTML, Markdown, and agent behavior. The bundled snapshot stays fixed until you upgrade the package.
72
+ The bundled documentation is a reviewed, pinned snapshot. Its provenance lives in `agent-docs/SNAPSHOT.json`; it does not automatically follow the live site.
73
73
 
74
74
  See the [authoring command reference](AUTHORING.md) for project inspection, validation, report schemas, and the public authoring API. Visit [shoalrun.com](https://www.shoalrun.com) for the full documentation; it may describe changes newer than your installed package.
75
75
 
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "sourceRepository": "https://github.com/shoalrun/docs",
4
- "sourceCommit": "52c055cc160abbcb931bacbd8fcd209ce834cb26",
5
- "siteBuildId": "c8c2a551d388148cf830e85bea3a58118a3a935dc91fa043ab2cd2a178ff9c6c",
6
- "manifestDigest": "3c6af9a8161232cd4e824e72a427fb2b2a21963939a761a5f0f3557415dba580",
7
- "indexDigest": "a6153f8a9a12541db3a6d1608c33da30ad329a6ad1653324f308dbd824bd9c10",
8
- "packageIntegrity": "sha512-2Of7hhwylA4zWfoWIISM+0E63RzMhK9yI/NErSoNaUhquYQSD8iED1AWiUzqabnE0hg9rdtxCt82ws5+R9D3bQ=="
4
+ "sourceCommit": "8102004b610ce6f6ea772d7c185809618c660f90",
5
+ "siteBuildId": "60f6dc0eaa4cc7c73333e0bdfdf837bdd83c1636d96a92e98e93b28bbdfcb773",
6
+ "manifestDigest": "79a5524ecf5a8dfc44207e1d72b7558805cc6545b9178d2b6facdde584e43d37",
7
+ "indexDigest": "640a2d074122ba753fd3f5ab9bd7200809db7e5c25e0af02927f5b58aafd67c3",
8
+ "packageIntegrity": "sha512-5N/QcKQJaX3YZ3EUBPWAaBmvIR+bphIJnijgQtIKpYd22MrMGU+gtmB1Ke9Cpw9KgNCtImQsnNKt5gTUID8Mvw=="
9
9
  }
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Page metadata > Generated frontmatter reference
18
18
 
19
- **Updated: 2026-10-28.**
19
+ **Updated: 2026-11-04.**
20
20
 
21
21
  This is the field inventory for this documentation site. The tables below are built from Shoalrun's native field definitions and this site's `frontmatter.fields` declarations on each build. They describe source page headers, not the shorter YAML header selected for a published Markdown page.
22
22
 
@@ -43,16 +43,18 @@ Use the page ID for links and cards that should survive a URL change. The slug s
43
43
 
44
44
  The project enables specific channel/version/language combinations. A page is built only for combinations matching its resolved values. `audiences` and `readerFilters` select reader views when the site config enables them; `access.policy` determines whether the page enters this public build. A draft page is excluded.
45
45
 
46
- | Field | Type | Needed | What it changes |
47
- | --------------- | ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------ |
48
- | `channel` | string | Public page | Publication environment, such as sandbox or production; selects an enabled publication and API source. |
49
- | `version` | string | Public page | API or documentation edition, such as v1; selects an enabled publication and API source. |
50
- | `language` | string | Optional | Content language; uses frontmatter defaults/enforced values, then publications.defaults.language, then en. |
51
- | `locale` | string | Optional | Formatting conventions used in the content; can inherit a project locale for the page language and can be overridden per page. |
52
- | `access` | object | Public page | Controls whether the page enters a public build; this object is not exported to Markdown metadata. |
53
- | `access.policy` | string | With access | Use public to publish this page; draft pages are excluded from the built site. |
54
- | `audiences` | array | Optional | Readers this page is intended for; does not control who can access it. |
55
- | `readerFilters` | object | Optional | Configured reader filter choices for this page. Missing facets are shared. |
46
+ | Field | Type | Needed | What it changes |
47
+ | --------------- | ------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
48
+ | `channel` | string | Public page | Publication environment, such as sandbox or production; selects an enabled publication and API source. |
49
+ | `version` | string | Public page | API or documentation edition, such as v1; selects an enabled publication and API source. |
50
+ | `language` | string | Optional | Content language; uses frontmatter defaults/enforced values, then publications.defaults.language, then en. |
51
+ | `locale` | string | Optional | Formatting conventions used in the content; can inherit a project locale for the page language and can be overridden per page. |
52
+ | `access` | object | Public page | Controls whether the page enters a public build; this object is not exported to Markdown metadata. |
53
+ | `access.policy` | string | With access | Use public to publish this page; draft pages are excluded from the built site. |
54
+ | `shared` | boolean | Optional | Explicitly classify this page as shared across customer editions. Page-specific; cannot combine with requires. Sections may still use ForFeature. |
55
+ | `requires` | object | Optional | Build-time feature requirements from the shared SKU manifest. Both clauses must pass when present; omitted means shared within existing publication/access eligibility. Requires an explicit deployment profile. |
56
+ | `audiences` | array | Optional | Readers this page is intended for; does not control who can access it. |
57
+ | `readerFilters` | object | Optional | Configured reader filter choices for this page. Missing facets are shared. |
56
58
 
57
59
  Language is the content language and selects a publication. Locale describes formatting conventions in the content and does not select a publication. `frontmatter.locales` can set a project locale for each language; pages may override it.
58
60
 
@@ -88,6 +90,8 @@ By default, `product`, `area`, and `subarea` are optional, nonempty string categ
88
90
 
89
91
  Projects can opt into built-in category enforcement with `frontmatter.taxonomy`. It declares areas and their allowed subareas, optional required fields, and optional explicit-field requirements for authored pages. Its `multiple` list permits arrays for selected category fields; otherwise each field allows one value. Defaults and enforced values still apply; generated API references use resolved categories. Definitions appear in the document manifest and constrain the generated frontmatter schema. Omit taxonomy or set it to false to preserve optional category behavior.
90
92
 
93
+ With `profiles.requireClassification: true`, every public source page in the shared enabled publications needs an explicit `shared: true` or `requires` declaration before customer selection. Defaults do not count. Shared pages may contain feature-specific sections wrapped in `<ForFeature>`; unwrapped text remains shared.
94
+
91
95
  ## Control output details
92
96
 
93
97
  `seo` changes the browser title or HTML meta description. `displayText` overrides the text chosen for one output surface on this page. `variables` supplies values to registered snippets before they expand into the page body. `markdownMetadata` selects or overrides the YAML preamble of the generated Markdown twin—the machine-readable copy of this page. That generated preamble is separate from the source frontmatter shown above.
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Page metadata > Generated frontmatter reference
18
18
 
19
- **Updated: 2026-10-28.**
19
+ **Updated: 2026-11-04.**
20
20
 
21
21
  Parent page: [Full Markdown page](/author/frontmatter-reference.md)
22
22
 
@@ -32,15 +32,17 @@ For section exports, declare `standaloneSections` with `{ id, context: section }
32
32
 
33
33
  The project enables specific channel/version/language combinations. A page is built only for combinations matching its resolved values. `audiences` and `readerFilters` select reader views when the site config enables them; `access.policy` determines whether the page enters this public build. A draft page is excluded.
34
34
 
35
- | Field | Type | Needed | What it changes |
36
- | --------------- | ------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------ |
37
- | `channel` | string | Public page | Publication environment, such as sandbox or production; selects an enabled publication and API source. |
38
- | `version` | string | Public page | API or documentation edition, such as v1; selects an enabled publication and API source. |
39
- | `language` | string | Optional | Content language; uses frontmatter defaults/enforced values, then publications.defaults.language, then en. |
40
- | `locale` | string | Optional | Formatting conventions used in the content; can inherit a project locale for the page language and can be overridden per page. |
41
- | `access` | object | Public page | Controls whether the page enters a public build; this object is not exported to Markdown metadata. |
42
- | `access.policy` | string | With access | Use public to publish this page; draft pages are excluded from the built site. |
43
- | `audiences` | array | Optional | Readers this page is intended for; does not control who can access it. |
44
- | `readerFilters` | object | Optional | Configured reader filter choices for this page. Missing facets are shared. |
35
+ | Field | Type | Needed | What it changes |
36
+ | --------------- | ------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
37
+ | `channel` | string | Public page | Publication environment, such as sandbox or production; selects an enabled publication and API source. |
38
+ | `version` | string | Public page | API or documentation edition, such as v1; selects an enabled publication and API source. |
39
+ | `language` | string | Optional | Content language; uses frontmatter defaults/enforced values, then publications.defaults.language, then en. |
40
+ | `locale` | string | Optional | Formatting conventions used in the content; can inherit a project locale for the page language and can be overridden per page. |
41
+ | `access` | object | Public page | Controls whether the page enters a public build; this object is not exported to Markdown metadata. |
42
+ | `access.policy` | string | With access | Use public to publish this page; draft pages are excluded from the built site. |
43
+ | `shared` | boolean | Optional | Explicitly classify this page as shared across customer editions. Page-specific; cannot combine with requires. Sections may still use ForFeature. |
44
+ | `requires` | object | Optional | Build-time feature requirements from the shared SKU manifest. Both clauses must pass when present; omitted means shared within existing publication/access eligibility. Requires an explicit deployment profile. |
45
+ | `audiences` | array | Optional | Readers this page is intended for; does not control who can access it. |
46
+ | `readerFilters` | object | Optional | Configured reader filter choices for this page. Missing facets are shared. |
45
47
 
46
48
  Language is the content language and selects a publication. Locale describes formatting conventions in the content and does not select a publication. `frontmatter.locales` can set a project locale for each language; pages may override it.
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Page metadata > Generated frontmatter reference
18
18
 
19
- **Updated: 2026-10-28.**
19
+ **Updated: 2026-11-04.**
20
20
 
21
21
  Parent page: [Full Markdown page](/author/frontmatter-reference.md)
22
22
 
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Page metadata > Generated frontmatter reference
18
18
 
19
- **Updated: 2026-10-28.**
19
+ **Updated: 2026-11-04.**
20
20
 
21
21
  Parent page: [Full Markdown page](/author/frontmatter-reference.md)
22
22
 
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Page metadata > Generated frontmatter reference
18
18
 
19
- **Updated: 2026-10-28.**
19
+ **Updated: 2026-11-04.**
20
20
 
21
21
  Parent page: [Full Markdown page](/author/frontmatter-reference.md)
22
22
 
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Page metadata > Generated frontmatter reference
18
18
 
19
- **Updated: 2026-10-28.**
19
+ **Updated: 2026-11-04.**
20
20
 
21
21
  Parent page: [Full Markdown page](/author/frontmatter-reference.md)
22
22
 
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Page metadata > Generated frontmatter reference
18
18
 
19
- **Updated: 2026-10-28.**
19
+ **Updated: 2026-11-04.**
20
20
 
21
21
  Parent page: [Full Markdown page](/author/frontmatter-reference.md)
22
22
 
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Page metadata > Generated frontmatter reference
18
18
 
19
- **Updated: 2026-10-28.**
19
+ **Updated: 2026-11-04.**
20
20
 
21
21
  Parent page: [Full Markdown page](/author/frontmatter-reference.md)
22
22
 
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Page metadata > Generated frontmatter reference
18
18
 
19
- **Updated: 2026-10-28.**
19
+ **Updated: 2026-11-04.**
20
20
 
21
21
  Parent page: [Full Markdown page](/author/frontmatter-reference.md)
22
22
 
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Page metadata > Generated frontmatter reference
18
18
 
19
- **Updated: 2026-10-28.**
19
+ **Updated: 2026-11-04.**
20
20
 
21
21
  Parent page: [Full Markdown page](/author/frontmatter-reference.md)
22
22
 
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Page metadata > Generated frontmatter reference
18
18
 
19
- **Updated: 2026-10-28.**
19
+ **Updated: 2026-11-04.**
20
20
 
21
21
  Parent page: [Full Markdown page](/author/frontmatter-reference.md)
22
22
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Compose and maintain recipes
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Use ingredients when several recipes share instructions you want to maintain in one place. This guide follows Shoalrun's **Build and audit this documentation site** recipe from its source files to its published page.
23
23
 
@@ -168,7 +168,7 @@ npx --no-install shoalrun ingredient draft \
168
168
 
169
169
  Its YAML spec supplies `schemaVersion: 1`, the page's `id`, `title`, `summary`, and `slug`, plus `operation` and `requestExample`. An optional `workflow` mapping is copied into frontmatter. The command copies the generated cURL request and first inline 2xx response example, links the configured reference, and records a source digest. It supports the default publication and outgoing requests with generated cURL. Webhook receiver flows need authored instructions.
170
170
 
171
- The generated file still needs setup, failure guidance, and a verified success check. An example response is not evidence that a live request worked. The [email cookbook](https://www.shoalrun.com/cookbooks/welcome-email.md) shows a completed workflow against the local simulator.
171
+ The generated file still needs setup, failure guidance, and a verified success check. An example response is not evidence that a live request worked. The [worked cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) shows how complete recipes reuse a step and offer different outcomes against the local simulator.
172
172
 
173
173
  ## Related reading
174
174
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Compose and maintain recipes
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipe-drafts.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Compose and maintain recipes
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipe-drafts.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Compose and maintain recipes
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipe-drafts.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Compose and maintain recipes
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipe-drafts.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Compose and maintain recipes
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipe-drafts.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Compose and maintain recipes
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipe-drafts.md)
23
23
 
@@ -47,4 +47,4 @@ npx --no-install shoalrun ingredient draft \
47
47
 
48
48
  Its YAML spec supplies `schemaVersion: 1`, the page's `id`, `title`, `summary`, and `slug`, plus `operation` and `requestExample`. An optional `workflow` mapping is copied into frontmatter. The command copies the generated cURL request and first inline 2xx response example, links the configured reference, and records a source digest. It supports the default publication and outgoing requests with generated cURL. Webhook receiver flows need authored instructions.
49
49
 
50
- The generated file still needs setup, failure guidance, and a verified success check. An example response is not evidence that a live request worked. The [email cookbook](https://www.shoalrun.com/cookbooks/welcome-email.md) shows a completed workflow against the local simulator.
50
+ The generated file still needs setup, failure guidance, and a verified success check. An example response is not evidence that a live request worked. The [worked cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) shows how complete recipes reuse a step and offer different outcomes against the local simulator.
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Understand ingredients, recipes, and cookbooks
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  A **recipe** is the complete page someone follows to finish a task. An **ingredient** is a reusable piece of source documentation used to write that page. A **cookbook** is a page that helps readers choose a recipe.
23
23
 
@@ -114,7 +114,7 @@ A recipe's **Read as Markdown** link contains its complete published instruction
114
114
 
115
115
  Use the [Authoring workflows cookbook](https://www.shoalrun.com/cookbooks/authoring.md) to add a guide, preview a change, or refresh the agent bundle in this repository. Each choice is a complete recipe with its own setup and final check.
116
116
 
117
- The [email example](https://www.shoalrun.com/cookbooks/welcome-email.md) demonstrates passing a returned message ID into a delivery check. It runs against a local simulator and sends no email.
117
+ The [worked cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) demonstrates two recipe choices that reuse the same queue step. Its longer workflow passes a returned message ID into a delivery check. Email supplies the sample task; a local simulator runs both recipes without sending a message.
118
118
 
119
119
  ## Related reading
120
120
 
@@ -124,4 +124,4 @@ The [email example](https://www.shoalrun.com/cookbooks/welcome-email.md) demonst
124
124
 
125
125
  - [Authoring workflows](https://www.shoalrun.com/cookbooks/authoring.md) — Use complete workflows for Shoalrun documentation work.
126
126
 
127
- - [Welcome email workflows](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
127
+ - [Cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Understand ingredients, recipes, and cookbooks
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipes.md)
23
23
 
@@ -29,7 +29,7 @@ Parent page: [Full Markdown page](/author/recipes.md)
29
29
 
30
30
  - [Authoring workflows](https://www.shoalrun.com/cookbooks/authoring.md) — Use complete workflows for Shoalrun documentation work.
31
31
 
32
- - [Welcome email workflows](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
32
+ - [Cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
33
33
 
34
34
  A **recipe** is the complete page someone follows to finish a task. An **ingredient** is a reusable piece of source documentation used to write that page. A **cookbook** is a page that helps readers choose a recipe.
35
35
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Understand ingredients, recipes, and cookbooks
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipes.md)
23
23
 
@@ -29,7 +29,7 @@ Parent page: [Full Markdown page](/author/recipes.md)
29
29
 
30
30
  - [Authoring workflows](https://www.shoalrun.com/cookbooks/authoring.md) — Use complete workflows for Shoalrun documentation work.
31
31
 
32
- - [Welcome email workflows](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
32
+ - [Cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
33
33
 
34
34
  A **recipe** is the complete page someone follows to finish a task. An **ingredient** is a reusable piece of source documentation used to write that page. A **cookbook** is a page that helps readers choose a recipe.
35
35
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Understand ingredients, recipes, and cookbooks
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipes.md)
23
23
 
@@ -33,4 +33,4 @@ Readers can open a recipe directly. Ingredients help authors maintain instructio
33
33
 
34
34
  - [Authoring workflows](https://www.shoalrun.com/cookbooks/authoring.md) — Use complete workflows for Shoalrun documentation work.
35
35
 
36
- - [Welcome email workflows](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
36
+ - [Cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Understand ingredients, recipes, and cookbooks
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipes.md)
23
23
 
@@ -29,7 +29,7 @@ Parent page: [Full Markdown page](/author/recipes.md)
29
29
 
30
30
  - [Authoring workflows](https://www.shoalrun.com/cookbooks/authoring.md) — Use complete workflows for Shoalrun documentation work.
31
31
 
32
- - [Welcome email workflows](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
32
+ - [Cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
33
33
 
34
34
  A **recipe** is the complete page someone follows to finish a task. An **ingredient** is a reusable piece of source documentation used to write that page. A **cookbook** is a page that helps readers choose a recipe.
35
35
 
@@ -39,4 +39,4 @@ Readers can open a recipe directly. Ingredients help authors maintain instructio
39
39
 
40
40
  Use the [Authoring workflows cookbook](https://www.shoalrun.com/cookbooks/authoring.md) to add a guide, preview a change, or refresh the agent bundle in this repository. Each choice is a complete recipe with its own setup and final check.
41
41
 
42
- The [email example](https://www.shoalrun.com/cookbooks/welcome-email.md) demonstrates passing a returned message ID into a delivery check. It runs against a local simulator and sends no email.
42
+ The [worked cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) demonstrates two recipe choices that reuse the same queue step. Its longer workflow passes a returned message ID into a delivery check. Email supplies the sample task; a local simulator runs both recipes without sending a message.
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Understand ingredients, recipes, and cookbooks
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipes.md)
23
23
 
@@ -29,7 +29,7 @@ Parent page: [Full Markdown page](/author/recipes.md)
29
29
 
30
30
  - [Authoring workflows](https://www.shoalrun.com/cookbooks/authoring.md) — Use complete workflows for Shoalrun documentation work.
31
31
 
32
- - [Welcome email workflows](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
32
+ - [Cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
33
33
 
34
34
  A **recipe** is the complete page someone follows to finish a task. An **ingredient** is a reusable piece of source documentation used to write that page. A **cookbook** is a page that helps readers choose a recipe.
35
35
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Understand ingredients, recipes, and cookbooks
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipes.md)
23
23
 
@@ -29,7 +29,7 @@ Parent page: [Full Markdown page](/author/recipes.md)
29
29
 
30
30
  - [Authoring workflows](https://www.shoalrun.com/cookbooks/authoring.md) — Use complete workflows for Shoalrun documentation work.
31
31
 
32
- - [Welcome email workflows](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
32
+ - [Cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
33
33
 
34
34
  A **recipe** is the complete page someone follows to finish a task. An **ingredient** is a reusable piece of source documentation used to write that page. A **cookbook** is a page that helps readers choose a recipe.
35
35
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Understand ingredients, recipes, and cookbooks
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipes.md)
23
23
 
@@ -29,7 +29,7 @@ Parent page: [Full Markdown page](/author/recipes.md)
29
29
 
30
30
  - [Authoring workflows](https://www.shoalrun.com/cookbooks/authoring.md) — Use complete workflows for Shoalrun documentation work.
31
31
 
32
- - [Welcome email workflows](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
32
+ - [Cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
33
33
 
34
34
  A **recipe** is the complete page someone follows to finish a task. An **ingredient** is a reusable piece of source documentation used to write that page. A **cookbook** is a page that helps readers choose a recipe.
35
35
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Understand ingredients, recipes, and cookbooks
19
19
 
20
- **Updated: 2026-10-27.**
20
+ **Updated: 2026-11-04.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/recipes.md)
23
23
 
@@ -29,7 +29,7 @@ Parent page: [Full Markdown page](/author/recipes.md)
29
29
 
30
30
  - [Authoring workflows](https://www.shoalrun.com/cookbooks/authoring.md) — Use complete workflows for Shoalrun documentation work.
31
31
 
32
- - [Welcome email workflows](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
32
+ - [Cookbook example](https://www.shoalrun.com/cookbooks/welcome-email.md) — Try an acceptance check or follow a message ID through delivery and failure handling.
33
33
 
34
34
  A **recipe** is the complete page someone follows to finish a task. An **ingredient** is a reusable piece of source documentation used to write that page. A **cookbook** is a page that helps readers choose a recipe.
35
35