@shoalrun/cli 0.0.0-stage → 0.1.0-alpha.11

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 (1011) hide show
  1. package/AUTHORING.md +269 -0
  2. package/CHANGELOG.md +82 -0
  3. package/LICENSE +202 -0
  4. package/README.md +189 -2
  5. package/agent-docs/.well-known/shoalrun/navigation/changelog-tab-50f26fe22670.txt +33 -0
  6. package/agent-docs/.well-known/shoalrun/navigation/docs-50f26fe22670.txt +24 -0
  7. package/agent-docs/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt +9 -0
  8. package/agent-docs/SNAPSHOT.json +9 -0
  9. package/agent-docs/about.md +49 -0
  10. package/agent-docs/api-docs/focused-contracts.md +68 -0
  11. package/agent-docs/api-docs/generate.md +189 -0
  12. package/agent-docs/api-docs/generate.sections/add-useful-examples.md +47 -0
  13. package/agent-docs/api-docs/generate.sections/choose-generated-references-or-mdx.md +50 -0
  14. package/agent-docs/api-docs/generate.sections/describe-filters-that-do-not-use-their-openapi-parameter-name.md +52 -0
  15. package/agent-docs/api-docs/generate.sections/generate-many-pages-selectively.md +71 -0
  16. package/agent-docs/api-docs/generate.sections/link-guides-to-api-references.md +48 -0
  17. package/agent-docs/api-docs/generate.sections/map-extension-values-to-shoalrun-status.md +52 -0
  18. package/agent-docs/api-docs/generate.sections/override-generated-reference-order-in-navigation.md +60 -0
  19. package/agent-docs/api-docs/generate.sections/related-reading.md +38 -0
  20. package/agent-docs/api-docs/generate.sections/use-a-template-for-editorial-context.md +45 -0
  21. package/agent-docs/api-docs/support.md +97 -0
  22. package/agent-docs/author/add-page.md +124 -0
  23. package/agent-docs/author/agent-overview.md +59 -0
  24. package/agent-docs/author/agent-workflow.md +65 -0
  25. package/agent-docs/author/agents.md +53 -0
  26. package/agent-docs/author/analytics.md +286 -0
  27. package/agent-docs/author/analytics.sections/adapter-exports-and-consent.md +51 -0
  28. package/agent-docs/author/analytics.sections/built-in-events.md +52 -0
  29. package/agent-docs/author/analytics.sections/configure-an-adapter.md +51 -0
  30. package/agent-docs/author/analytics.sections/custom-interactions.md +57 -0
  31. package/agent-docs/author/analytics.sections/event-format.md +59 -0
  32. package/agent-docs/author/analytics.sections/html-markdown-and-agents.md +42 -0
  33. package/agent-docs/author/analytics.sections/inspect-events-locally.md +36 -0
  34. package/agent-docs/author/analytics.sections/map-events-to-your-service.md +42 -0
  35. package/agent-docs/author/analytics.sections/posthog-example.md +126 -0
  36. package/agent-docs/author/analytics.sections/related-reading.md +42 -0
  37. package/agent-docs/author/authoring-agent.md +102 -0
  38. package/agent-docs/author/coding-agent.md +90 -0
  39. package/agent-docs/author/components/action-link.md +41 -0
  40. package/agent-docs/author/components/api-embeds.md +263 -0
  41. package/agent-docs/author/components/api-embeds.sections/apiexample.md +117 -0
  42. package/agent-docs/author/components/api-embeds.sections/html-markdown-and-agents.md +37 -0
  43. package/agent-docs/author/components/api-embeds.sections/related-reading.md +37 -0
  44. package/agent-docs/author/components/badge.md +76 -0
  45. package/agent-docs/author/components/breadcrumbs.md +57 -0
  46. package/agent-docs/author/components/callout.md +131 -0
  47. package/agent-docs/author/components/cards.md +168 -0
  48. package/agent-docs/author/components/cards.sections/add-a-lucide-icon.md +50 -0
  49. package/agent-docs/author/components/cards.sections/build-a-collection.md +69 -0
  50. package/agent-docs/author/components/cards.sections/curate-a-reading-list.md +66 -0
  51. package/agent-docs/author/components/cards.sections/html-markdown-and-agents.md +37 -0
  52. package/agent-docs/author/components/cards.sections/link-to-one-document.md +45 -0
  53. package/agent-docs/author/components/cards.sections/override-card-text.md +58 -0
  54. package/agent-docs/author/components/cards.sections/related-reading.md +43 -0
  55. package/agent-docs/author/components/code-blocks.md +117 -0
  56. package/agent-docs/author/components/collapsible.md +99 -0
  57. package/agent-docs/author/components/cookbook-chooser.md +86 -0
  58. package/agent-docs/author/components/custom/react.md +190 -0
  59. package/agent-docs/author/components/custom/react.sections/html-markdown-and-agents.md +36 -0
  60. package/agent-docs/author/components/custom/react.sections/interactive-react-example.md +88 -0
  61. package/agent-docs/author/components/custom/react.sections/registration.md +41 -0
  62. package/agent-docs/author/components/custom/react.sections/related-reading.md +30 -0
  63. package/agent-docs/author/components/custom/react.sections/share-the-model-with-the-browser.md +47 -0
  64. package/agent-docs/author/components/custom/react.sections/where-the-content-lives.md +100 -0
  65. package/agent-docs/author/components/custom.md +183 -0
  66. package/agent-docs/author/components/definition-list.md +54 -0
  67. package/agent-docs/author/components/diagrams/d2-gallery.md +861 -0
  68. package/agent-docs/author/components/diagrams/d2-gallery.sections/basic-shapes.md +163 -0
  69. package/agent-docs/author/components/diagrams/d2-gallery.sections/flows-and-structures.md +375 -0
  70. package/agent-docs/author/components/diagrams/d2-gallery.sections/html-markdown-and-agents.md +33 -0
  71. package/agent-docs/author/components/diagrams/d2-gallery.sections/layout-engines.md +169 -0
  72. package/agent-docs/author/components/diagrams/d2-gallery.sections/related-reading.md +37 -0
  73. package/agent-docs/author/components/diagrams/d2-gallery.sections/sequences-and-grids.md +123 -0
  74. package/agent-docs/author/components/diagrams/d2-gallery.sections/styles-and-code.md +125 -0
  75. package/agent-docs/author/components/diagrams/pele-gallery.md +1317 -0
  76. package/agent-docs/author/components/diagrams/pele-gallery.sections/charts-and-planning.md +341 -0
  77. package/agent-docs/author/components/diagrams/pele-gallery.sections/flowchart-shapes.md +269 -0
  78. package/agent-docs/author/components/diagrams/pele-gallery.sections/flows-and-behavior.md +273 -0
  79. package/agent-docs/author/components/diagrams/pele-gallery.sections/html-markdown-and-agents.md +31 -0
  80. package/agent-docs/author/components/diagrams/pele-gallery.sections/related-reading.md +35 -0
  81. package/agent-docs/author/components/diagrams/pele-gallery.sections/specialized-diagrams.md +229 -0
  82. package/agent-docs/author/components/diagrams/pele-gallery.sections/systems-and-structures.md +291 -0
  83. package/agent-docs/author/components/diagrams.md +155 -0
  84. package/agent-docs/author/components/doc-link.md +58 -0
  85. package/agent-docs/author/components/fields.md +121 -0
  86. package/agent-docs/author/components/file-tree.md +84 -0
  87. package/agent-docs/author/components/images.md +103 -0
  88. package/agent-docs/author/components/info-hint.md +61 -0
  89. package/agent-docs/author/components/kbd.md +45 -0
  90. package/agent-docs/author/components/math.md +39 -0
  91. package/agent-docs/author/components/only.md +65 -0
  92. package/agent-docs/author/components/progress.md +53 -0
  93. package/agent-docs/author/components/related-reading.md +48 -0
  94. package/agent-docs/author/components/steps.md +121 -0
  95. package/agent-docs/author/components/tables.md +64 -0
  96. package/agent-docs/author/components/tabs.md +129 -0
  97. package/agent-docs/author/components/timeline.md +74 -0
  98. package/agent-docs/author/components/tooltips.md +58 -0
  99. package/agent-docs/author/components/walkthroughs.md +390 -0
  100. package/agent-docs/author/components/walkthroughs.sections/attributes.md +45 -0
  101. package/agent-docs/author/components/walkthroughs.sections/build-up-code.md +133 -0
  102. package/agent-docs/author/components/walkthroughs.sections/choose-a-layout.md +141 -0
  103. package/agent-docs/author/components/walkthroughs.sections/explain-one-file.md +126 -0
  104. package/agent-docs/author/components/walkthroughs.sections/html-markdown-and-agents.md +38 -0
  105. package/agent-docs/author/components/walkthroughs.sections/related-reading.md +36 -0
  106. package/agent-docs/author/components/walkthroughs.sections/take-code-from-a-file.md +53 -0
  107. package/agent-docs/author/components.md +78 -0
  108. package/agent-docs/author/content.md +74 -0
  109. package/agent-docs/author/cookbooks.md +119 -0
  110. package/agent-docs/author/css.md +238 -0
  111. package/agent-docs/author/css.sections/borders-fields-and-navigation-tokens.md +70 -0
  112. package/agent-docs/author/css.sections/core-color-tokens.md +71 -0
  113. package/agent-docs/author/css.sections/page-attributes.md +69 -0
  114. package/agent-docs/author/css.sections/page-transitions.md +60 -0
  115. package/agent-docs/author/css.sections/responsive-behavior.md +58 -0
  116. package/agent-docs/author/css.sections/status-code-and-callout-tokens.md +89 -0
  117. package/agent-docs/author/css.sections/typography-shape-and-width-tokens.md +71 -0
  118. package/agent-docs/author/custom-metadata.md +177 -0
  119. package/agent-docs/author/custom-metadata.sections/add-a-custom-page-field.md +68 -0
  120. package/agent-docs/author/custom-metadata.sections/choose-text-for-each-surface.md +54 -0
  121. package/agent-docs/author/custom-metadata.sections/preview-changes-to-metadata-providers.md +33 -0
  122. package/agent-docs/author/custom-metadata.sections/read-metadata-from-a-project-module.md +57 -0
  123. package/agent-docs/author/custom-metadata.sections/related-reading.md +29 -0
  124. package/agent-docs/author/design-templates.md +49 -0
  125. package/agent-docs/author/design-writing-guides.md +73 -0
  126. package/agent-docs/author/frontmatter-reference.md +146 -0
  127. package/agent-docs/author/frontmatter-reference.sections/choose-a-publication-and-visibility.md +44 -0
  128. package/agent-docs/author/frontmatter-reference.sections/control-output-details.md +41 -0
  129. package/agent-docs/author/frontmatter-reference.sections/global-defaults-and-enforced-values.md +31 -0
  130. package/agent-docs/author/frontmatter-reference.sections/identify-and-route-a-page.md +40 -0
  131. package/agent-docs/author/frontmatter-reference.sections/point-agents-to-it.md +37 -0
  132. package/agent-docs/author/frontmatter-reference.sections/project-defined-fields.md +41 -0
  133. package/agent-docs/author/frontmatter-reference.sections/related-reading.md +35 -0
  134. package/agent-docs/author/frontmatter-reference.sections/use-the-local-files-while-authoring.md +33 -0
  135. package/agent-docs/author/frontmatter-reference.sections/when-the-files-update.md +31 -0
  136. package/agent-docs/author/frontmatter.md +255 -0
  137. package/agent-docs/author/frontmatter.sections/audience-badges.md +66 -0
  138. package/agent-docs/author/frontmatter.sections/give-deprecation-guidance.md +88 -0
  139. package/agent-docs/author/frontmatter.sections/global-defaults-and-enforced-values.md +75 -0
  140. package/agent-docs/author/frontmatter.sections/optional-native-fields.md +90 -0
  141. package/agent-docs/author/frontmatter.sections/publication-fields.md +85 -0
  142. package/agent-docs/author/frontmatter.sections/publishing-policy.md +71 -0
  143. package/agent-docs/author/frontmatter.sections/related-metadata-tasks.md +72 -0
  144. package/agent-docs/author/frontmatter.sections/related-reading.md +72 -0
  145. package/agent-docs/author/frontmatter.sections/required-after-inheritance.md +84 -0
  146. package/agent-docs/author/frontmatter.sections/seo-fields.md +79 -0
  147. package/agent-docs/author/frontmatter.sections/validation-rules.md +75 -0
  148. package/agent-docs/author/markdown-metadata.md +207 -0
  149. package/agent-docs/author/navigation.md +269 -0
  150. package/agent-docs/author/navigation.sections/arrange-authored-pages.md +58 -0
  151. package/agent-docs/author/navigation.sections/fill-an-api-tag-group.md +48 -0
  152. package/agent-docs/author/navigation.sections/hide-group-page-counts.md +45 -0
  153. package/agent-docs/author/navigation.sections/html-markdown-and-agents.md +40 -0
  154. package/agent-docs/author/navigation.sections/local-api-preview.md +47 -0
  155. package/agent-docs/author/navigation.sections/mix-guides-and-api-references.md +65 -0
  156. package/agent-docs/author/navigation.sections/optionally-split-a-large-menu-into-files.md +97 -0
  157. package/agent-docs/author/navigation.sections/reach-navigation-while-reading.md +38 -0
  158. package/agent-docs/author/navigation.sections/related-reading.md +44 -0
  159. package/agent-docs/author/navigation.sections/split-navigation-into-tabs.md +67 -0
  160. package/agent-docs/author/navigation.sections/subject-lifecycle-labels.md +42 -0
  161. package/agent-docs/author/reader-views.md +200 -0
  162. package/agent-docs/author/reader-views.sections/configure-the-choices.md +65 -0
  163. package/agent-docs/author/reader-views.sections/connect-your-own-control.md +59 -0
  164. package/agent-docs/author/reader-views.sections/how-it-works-for-agents.md +41 -0
  165. package/agent-docs/author/reader-views.sections/mark-pages.md +49 -0
  166. package/agent-docs/author/reader-views.sections/mark-sections-and-add-an-entry-choice.md +49 -0
  167. package/agent-docs/author/reader-views.sections/place-filter-controls.md +43 -0
  168. package/agent-docs/author/reader-views.sections/try-the-controls-here.md +64 -0
  169. package/agent-docs/author/recipe-drafts.md +181 -0
  170. package/agent-docs/author/recipe-drafts.sections/1-write-one-reusable-step.md +82 -0
  171. package/agent-docs/author/recipe-drafts.sections/2-list-the-steps-for-one-complete-goal.md +60 -0
  172. package/agent-docs/author/recipe-drafts.sections/3-generate-a-draft-and-review-it.md +55 -0
  173. package/agent-docs/author/recipe-drafts.sections/4-maintain-shoalrun-s-published-recipe-snapshots.md +66 -0
  174. package/agent-docs/author/recipe-drafts.sections/related-reading.md +45 -0
  175. package/agent-docs/author/recipe-drafts.sections/start-an-ingredient-from-an-api-example.md +50 -0
  176. package/agent-docs/author/recipes.md +127 -0
  177. package/agent-docs/author/recipes.sections/how-agents-use-this.md +50 -0
  178. package/agent-docs/author/recipes.sections/one-example-from-shoalrun.md +64 -0
  179. package/agent-docs/author/recipes.sections/related-reading.md +36 -0
  180. package/agent-docs/author/recipes.sections/try-a-complete-workflow.md +42 -0
  181. package/agent-docs/author/recipes.sections/use-recipes-for-task-oriented-how-tos.md +52 -0
  182. package/agent-docs/author/recipes.sections/what-changing-an-ingredient-updates.md +44 -0
  183. package/agent-docs/author/recipes.sections/what-each-file-does.md +48 -0
  184. package/agent-docs/author/recipes.sections/what-happens-and-when.md +45 -0
  185. package/agent-docs/author/related-reading.md +143 -0
  186. package/agent-docs/author/related-reading.sections/automatic-footers.md +35 -0
  187. package/agent-docs/author/related-reading.sections/declare-relationships.md +68 -0
  188. package/agent-docs/author/related-reading.sections/display-related-documents.md +54 -0
  189. package/agent-docs/author/related-reading.sections/inspect-output-and-changes.md +32 -0
  190. package/agent-docs/author/related-reading.sections/reading-paths-in-section-markdown.md +32 -0
  191. package/agent-docs/author/related-reading.sections/related-reading.md +34 -0
  192. package/agent-docs/author/related-reading.sections/where-relationship-explanations-come-from.md +34 -0
  193. package/agent-docs/author/release-notes.md +153 -0
  194. package/agent-docs/author/search.md +299 -0
  195. package/agent-docs/author/search.sections/choose-a-provider.md +52 -0
  196. package/agent-docs/author/search.sections/cli-and-mcp-ranking-details.md +49 -0
  197. package/agent-docs/author/search.sections/hosted-semantic-search-limits.md +55 -0
  198. package/agent-docs/author/search.sections/html-markdown-and-agents.md +37 -0
  199. package/agent-docs/author/search.sections/lexical-search.md +78 -0
  200. package/agent-docs/author/search.sections/local-semantic-preview.md +43 -0
  201. package/agent-docs/author/search.sections/read-a-search-result-with-an-agent.md +41 -0
  202. package/agent-docs/author/search.sections/related-reading.md +45 -0
  203. package/agent-docs/author/search.sections/reuse-the-lexical-index.md +81 -0
  204. package/agent-docs/author/search.sections/turn-search-off.md +46 -0
  205. package/agent-docs/author/search.sections/use-the-search-box.md +39 -0
  206. package/agent-docs/author/search.sections/write-a-custom-provider.md +98 -0
  207. package/agent-docs/author/snippets.md +118 -0
  208. package/agent-docs/author/taxonomy.md +121 -0
  209. package/agent-docs/author/templates.md +231 -0
  210. package/agent-docs/author/templates.sections/built-in-feature-templates.md +52 -0
  211. package/agent-docs/author/templates.sections/built-in-templates.md +48 -0
  212. package/agent-docs/author/templates.sections/choose-formatting-enforcement-for-your-project.md +69 -0
  213. package/agent-docs/author/templates.sections/create-or-edit-a-project-template.md +76 -0
  214. package/agent-docs/author/templates.sections/keep-the-four-shapes-distinct.md +46 -0
  215. package/agent-docs/author/templates.sections/project-added-templates.md +39 -0
  216. package/agent-docs/author/templates.sections/related-reading.md +47 -0
  217. package/agent-docs/author/templates.sections/scaffold-a-page.md +53 -0
  218. package/agent-docs/author/templates.sections/short-cli-and-derived-values.md +56 -0
  219. package/agent-docs/author/templates.sections/what-every-template-gives-you.md +44 -0
  220. package/agent-docs/author/workspace/commands.md +92 -0
  221. package/agent-docs/author/workspace.md +104 -0
  222. package/agent-docs/author/writing-style.md +137 -0
  223. package/agent-docs/author/writing-style.sections/adapt-this-example.md +28 -0
  224. package/agent-docs/author/writing-style.sections/choose-components-by-reader-need.md +42 -0
  225. package/agent-docs/author/writing-style.sections/evidence-and-uncertainty.md +32 -0
  226. package/agent-docs/author/writing-style.sections/example-audience-and-scope.md +28 -0
  227. package/agent-docs/author/writing-style.sections/ingredients-recipes-and-cookbooks.md +36 -0
  228. package/agent-docs/author/writing-style.sections/page-purpose-and-structure.md +41 -0
  229. package/agent-docs/author/writing-style.sections/procedures-and-examples.md +32 -0
  230. package/agent-docs/author/writing-style.sections/related-reading.md +32 -0
  231. package/agent-docs/author/writing-style.sections/review-a-draft.md +30 -0
  232. package/agent-docs/author/writing-style.sections/reviewed-writing-examples.md +39 -0
  233. package/agent-docs/author/writing-style.sections/voice-and-explanations.md +39 -0
  234. package/agent-docs/changelog/2026-10-14-agent-readiness.md +29 -0
  235. package/agent-docs/changelog/2026-10-15-evaluation-builds.md +84 -0
  236. package/agent-docs/changelog/2026-10-16-navigation-layouts.md +72 -0
  237. package/agent-docs/changelog/2026-10-17-mcp-hosting.md +60 -0
  238. package/agent-docs/changelog/2026-10-18-search-and-tooltips.md +46 -0
  239. package/agent-docs/changelog/2026-10-19-visual-navigation.md +44 -0
  240. package/agent-docs/changelog/2026-10-25.md +45 -0
  241. package/agent-docs/changelog/2026-10-26.md +66 -0
  242. package/agent-docs/changelog/2026-10-27.md +85 -0
  243. package/agent-docs/changelog/authoring-preview.md +40 -0
  244. package/agent-docs/changelog/authoring-search.md +39 -0
  245. package/agent-docs/changelog/authoring-tools.md +34 -0
  246. package/agent-docs/changelog/working-tree-skill.md +38 -0
  247. package/agent-docs/changelog.md +115 -0
  248. package/agent-docs/chat/checks.md +175 -0
  249. package/agent-docs/chat/checks.sections/answer-ahead-of-time.md +38 -0
  250. package/agent-docs/chat/checks.sections/answer-for-one-audience.md +66 -0
  251. package/agent-docs/chat/checks.sections/answer-without-a-model.md +54 -0
  252. package/agent-docs/chat/checks.sections/follow-up-questions.md +54 -0
  253. package/agent-docs/chat/checks.sections/how-an-answer-is-checked.md +67 -0
  254. package/agent-docs/chat/checks.sections/questions-with-several-parts.md +44 -0
  255. package/agent-docs/chat/checks.sections/related-reading.md +42 -0
  256. package/agent-docs/chat/checks.sections/reuse-answers.md +50 -0
  257. package/agent-docs/chat/host.md +222 -0
  258. package/agent-docs/chat/host.sections/cap-the-daily-spend.md +78 -0
  259. package/agent-docs/chat/host.sections/keep-a-record-of-questions.md +64 -0
  260. package/agent-docs/chat/host.sections/related-reading.md +43 -0
  261. package/agent-docs/chat/passage-index.md +228 -0
  262. package/agent-docs/chat/passage-index.sections/build-the-index.md +72 -0
  263. package/agent-docs/chat/passage-index.sections/embed-passages.md +103 -0
  264. package/agent-docs/chat/passage-index.sections/how-the-default-chunker-splits-a-page.md +53 -0
  265. package/agent-docs/chat/passage-index.sections/limits.md +45 -0
  266. package/agent-docs/chat/passage-index.sections/passage-ids-and-links.md +52 -0
  267. package/agent-docs/chat/passage-index.sections/related-reading.md +42 -0
  268. package/agent-docs/chat/passage-index.sections/what-a-passage-contains.md +91 -0
  269. package/agent-docs/chat/prepared-answers.md +116 -0
  270. package/agent-docs/chat/settings.md +213 -0
  271. package/agent-docs/chat/settings.sections/choose-the-scorer.md +63 -0
  272. package/agent-docs/chat/settings.sections/configure-chat.md +80 -0
  273. package/agent-docs/chat/settings.sections/configure-retrieval.md +62 -0
  274. package/agent-docs/chat/settings.sections/related-reading.md +32 -0
  275. package/agent-docs/chat/settings.sections/send-extra-request-fields.md +42 -0
  276. package/agent-docs/chat/settings.sections/use-more-than-one-model.md +62 -0
  277. package/agent-docs/chat/settings.sections/when-the-scorer-is-down.md +42 -0
  278. package/agent-docs/chat/setup.md +97 -0
  279. package/agent-docs/chat.md +102 -0
  280. package/agent-docs/cli.md +445 -0
  281. package/agent-docs/cli.sections/audit-a-project-and-api-sources.md +102 -0
  282. package/agent-docs/cli.sections/author-pages.md +94 -0
  283. package/agent-docs/cli.sections/build-and-serve.md +144 -0
  284. package/agent-docs/cli.sections/inspect-config-and-operations.md +41 -0
  285. package/agent-docs/cli.sections/npm-scripts-in-this-repository.md +45 -0
  286. package/agent-docs/cli.sections/related-reading.md +33 -0
  287. package/agent-docs/cli.sections/search-and-chat.md +132 -0
  288. package/agent-docs/cli.sections/start-a-project.md +37 -0
  289. package/agent-docs/cli.sections/working-tree-authoring-tools.md +35 -0
  290. package/agent-docs/concepts.md +133 -0
  291. package/agent-docs/config/apis.md +136 -0
  292. package/agent-docs/config/content.md +264 -0
  293. package/agent-docs/config/content.sections/authoring.md +58 -0
  294. package/agent-docs/config/content.sections/badges.md +34 -0
  295. package/agent-docs/config/content.sections/callouts.md +34 -0
  296. package/agent-docs/config/content.sections/cookbooks.md +38 -0
  297. package/agent-docs/config/content.sections/frontmatter.md +75 -0
  298. package/agent-docs/config/content.sections/readerfilters.md +44 -0
  299. package/agent-docs/config/content.sections/related-reading.md +34 -0
  300. package/agent-docs/config/content.sections/relationships.md +76 -0
  301. package/agent-docs/config/content.sections/snippets.md +61 -0
  302. package/agent-docs/config/content.sections/templates.md +57 -0
  303. package/agent-docs/config/content.sections/variables.md +55 -0
  304. package/agent-docs/config/examples.md +354 -0
  305. package/agent-docs/config/examples.sections/feature-showcase.md +55 -0
  306. package/agent-docs/config/examples.sections/minimal-site.md +80 -0
  307. package/agent-docs/config/examples.sections/multilingual-help-center.md +110 -0
  308. package/agent-docs/config/examples.sections/parcel-api-documentation.md +153 -0
  309. package/agent-docs/config/examples.sections/related-reading.md +50 -0
  310. package/agent-docs/config/examples.sections/shared-company-preset.md +118 -0
  311. package/agent-docs/config/integrations.md +76 -0
  312. package/agent-docs/config/outputs.md +160 -0
  313. package/agent-docs/config/outputs.sections/exports.md +57 -0
  314. package/agent-docs/config/outputs.sections/metadata.md +42 -0
  315. package/agent-docs/config/outputs.sections/related-reading.md +34 -0
  316. package/agent-docs/config/publishing.md +219 -0
  317. package/agent-docs/config/publishing.sections/navigation.md +92 -0
  318. package/agent-docs/config/publishing.sections/redirects.md +79 -0
  319. package/agent-docs/config/publishing.sections/related-reading.md +33 -0
  320. package/agent-docs/config/site.md +193 -0
  321. package/agent-docs/config/site.sections/related-reading.md +33 -0
  322. package/agent-docs/config/site.sections/theme.md +74 -0
  323. package/agent-docs/config.md +195 -0
  324. package/agent-docs/configuration.md +384 -0
  325. package/agent-docs/configuration.sections/build-several-sites-from-shared-content.md +36 -0
  326. package/agent-docs/configuration.sections/change-inherited-lists-deliberately.md +76 -0
  327. package/agent-docs/configuration.sections/extract-a-section-with-include.md +75 -0
  328. package/agent-docs/configuration.sections/inspect-and-validate-changes.md +77 -0
  329. package/agent-docs/configuration.sections/related-reading.md +42 -0
  330. package/agent-docs/configuration.sections/separate-config-inheritance-from-page-metadata.md +54 -0
  331. package/agent-docs/configuration.sections/share-defaults-through-extends.md +121 -0
  332. package/agent-docs/configuration.sections/start-with-one-working-file.md +81 -0
  333. package/agent-docs/configuration.sections/understand-the-three-stages.md +59 -0
  334. package/agent-docs/configuration.sections/understand-where-paths-point.md +53 -0
  335. package/agent-docs/connect/mcp.md +85 -0
  336. package/agent-docs/contribute/agent-skills.md +72 -0
  337. package/agent-docs/cookbooks/authoring.md +68 -0
  338. package/agent-docs/cookbooks/site-workflows.md +59 -0
  339. package/agent-docs/cookbooks/welcome-email.md +55 -0
  340. package/agent-docs/documents.json +20058 -0
  341. package/agent-docs/example-api/cedar/create-enrollment-7af3e5d2.md +594 -0
  342. package/agent-docs/example-api/cedar/get-legacy-parcel-6758d051.md +122 -0
  343. package/agent-docs/example-api/cedar/get-parcel-edee10e6.md +122 -0
  344. package/agent-docs/example-api/cedar/list-parcels-0345fb5f.md +271 -0
  345. package/agent-docs/example-api/cedar/parcel-delivered-7d1ba6db.md +122 -0
  346. package/agent-docs/example-api/cedar/upload-manifest-1af17891.md +101 -0
  347. package/agent-docs/example-api/cedar.md +39 -0
  348. package/agent-docs/example-api/create-note.md +344 -0
  349. package/agent-docs/example-api/generated/get-note-cbedb319.md +165 -0
  350. package/agent-docs/example-api/write-note.md +55 -0
  351. package/agent-docs/explore.md +54 -0
  352. package/agent-docs/glossary.md +827 -0
  353. package/agent-docs/index.md +249 -0
  354. package/agent-docs/ingredients/audit-site.md +27 -0
  355. package/agent-docs/ingredients/build-site.md +29 -0
  356. package/agent-docs/ingredients/compile-framework.md +28 -0
  357. package/agent-docs/ingredients/complete-page.md +30 -0
  358. package/agent-docs/ingredients/inspect-agent-bundle.md +28 -0
  359. package/agent-docs/ingredients/inspect-build.md +41 -0
  360. package/agent-docs/ingredients/preview-site.md +31 -0
  361. package/agent-docs/ingredients/refresh-agent-bundle.md +29 -0
  362. package/agent-docs/ingredients/scaffold-page.md +28 -0
  363. package/agent-docs/non-goals.md +58 -0
  364. package/agent-docs/provenance.json +10 -0
  365. package/agent-docs/publish/agent-discovery.md +79 -0
  366. package/agent-docs/publish/agent-friendliness.md +201 -0
  367. package/agent-docs/publish/agent-friendliness.sections/discover-a-page-with-a-small-context-budget.md +61 -0
  368. package/agent-docs/publish/agent-friendliness.sections/distinguish-examples-from-a-real-service.md +48 -0
  369. package/agent-docs/publish/agent-friendliness.sections/evidence-has-a-scope.md +46 -0
  370. package/agent-docs/publish/agent-friendliness.sections/keep-shared-instructions-complete.md +48 -0
  371. package/agent-docs/publish/agent-friendliness.sections/related-reading.md +52 -0
  372. package/agent-docs/publish/agent-friendliness.sections/secret-handshake.md +50 -0
  373. package/agent-docs/publish/agent-friendliness.sections/try-the-page-controls.md +62 -0
  374. package/agent-docs/publish/agent-friendliness.sections/use-the-transport-your-client-supports.md +50 -0
  375. package/agent-docs/publish/agent-friendliness.sections/verify-the-page-and-detect-changes.md +58 -0
  376. package/agent-docs/publish/agent-friendliness.sections/what-an-agent-reads.md +68 -0
  377. package/agent-docs/publish/agent-friendliness.sections/what-happens-to-an-unsupported-component.md +60 -0
  378. package/agent-docs/publish/api-references.md +217 -0
  379. package/agent-docs/publish/api-references.sections/add-useful-examples.md +36 -0
  380. package/agent-docs/publish/api-references.sections/author-the-reference-page.md +65 -0
  381. package/agent-docs/publish/api-references.sections/build-and-verify-the-output.md +48 -0
  382. package/agent-docs/publish/api-references.sections/describe-filters-that-do-not-use-their-openapi-parameter-name.md +36 -0
  383. package/agent-docs/publish/api-references.sections/generate-many-pages-selectively.md +36 -0
  384. package/agent-docs/publish/api-references.sections/inspect-the-machine-readable-contract.md +36 -0
  385. package/agent-docs/publish/api-references.sections/link-guides-to-api-references.md +36 -0
  386. package/agent-docs/publish/api-references.sections/map-extension-values-to-shoalrun-status.md +36 -0
  387. package/agent-docs/publish/api-references.sections/preview-a-small-api-reference.md +38 -0
  388. package/agent-docs/publish/api-references.sections/publish-several-versions.md +36 -0
  389. package/agent-docs/publish/api-references.sections/put-the-spec-in-your-project.md +62 -0
  390. package/agent-docs/publish/api-references.sections/register-the-operation.md +64 -0
  391. package/agent-docs/publish/api-references.sections/related-reading.md +42 -0
  392. package/agent-docs/publish/api-references.sections/review-imported-content-before-publishing.md +54 -0
  393. package/agent-docs/publish/api-references.sections/use-a-template-for-editorial-context.md +36 -0
  394. package/agent-docs/publish/api-references.sections/what-readers-get.md +38 -0
  395. package/agent-docs/publish/audit.md +160 -0
  396. package/agent-docs/publish/audit.sections/add-project-tests.md +57 -0
  397. package/agent-docs/publish/audit.sections/check-agent-evaluation-reports.md +52 -0
  398. package/agent-docs/publish/audit.sections/check-before-pushing.md +80 -0
  399. package/agent-docs/publish/audit.sections/connect-a-documentation-test-suite.md +54 -0
  400. package/agent-docs/publish/audit.sections/read-the-report.md +67 -0
  401. package/agent-docs/publish/audit.sections/related-reading.md +47 -0
  402. package/agent-docs/publish/content-export.md +208 -0
  403. package/agent-docs/publish/content-export.sections/assets-downloads-and-notices.md +40 -0
  404. package/agent-docs/publish/content-export.sections/check-the-result.md +27 -0
  405. package/agent-docs/publish/content-export.sections/export-selected-pages.md +113 -0
  406. package/agent-docs/publish/content-export.sections/inspect-the-manifest.md +29 -0
  407. package/agent-docs/publish/content-export.sections/prerequisites.md +29 -0
  408. package/agent-docs/publish/content-export.sections/related-reading.md +35 -0
  409. package/agent-docs/publish/content-export.sections/review-exported-api-material.md +44 -0
  410. package/agent-docs/publish/content-export.sections/try-the-help-drawer-example.md +34 -0
  411. package/agent-docs/publish/content-export.sections/what-the-representations-retain.md +43 -0
  412. package/agent-docs/publish/content-negotiation.md +121 -0
  413. package/agent-docs/publish/content-negotiation.sections/hosting-contract.md +60 -0
  414. package/agent-docs/publish/content-negotiation.sections/missing-pages.md +51 -0
  415. package/agent-docs/publish/content-negotiation.sections/related-reading.md +45 -0
  416. package/agent-docs/publish/content-negotiation.sections/validators-and-manifest-links.md +49 -0
  417. package/agent-docs/publish/content-negotiation.sections/verify-the-deployed-url.md +62 -0
  418. package/agent-docs/publish/content-negotiation.sections/what-if-the-host-cannot-negotiate.md +47 -0
  419. package/agent-docs/publish/content-negotiation.sections/what-shoalrun-builds-and-what-the-host-does.md +49 -0
  420. package/agent-docs/publish/content-negotiation.sections/why-this-matters.md +47 -0
  421. package/agent-docs/publish/deployment-check.md +72 -0
  422. package/agent-docs/publish/evals.md +175 -0
  423. package/agent-docs/publish/evals.sections/add-the-audit-hook.md +63 -0
  424. package/agent-docs/publish/evals.sections/check-the-report.md +36 -0
  425. package/agent-docs/publish/evals.sections/define-a-task-file.md +47 -0
  426. package/agent-docs/publish/evals.sections/diagnose-a-different-build.md +42 -0
  427. package/agent-docs/publish/evals.sections/prepare-a-report-for-the-built-site.md +39 -0
  428. package/agent-docs/publish/evals.sections/related-reading.md +36 -0
  429. package/agent-docs/publish/evals.sections/run-and-review-the-tasks.md +54 -0
  430. package/agent-docs/publish/evals.sections/shoalrun-s-own-example.md +42 -0
  431. package/agent-docs/publish/host-adapters.md +60 -0
  432. package/agent-docs/publish/manni.md +227 -0
  433. package/agent-docs/publish/manni.sections/check-the-result.md +40 -0
  434. package/agent-docs/publish/manni.sections/how-this-site-uses-manni.md +83 -0
  435. package/agent-docs/publish/manni.sections/optional-custom-policies.md +42 -0
  436. package/agent-docs/publish/manni.sections/prerequisites.md +40 -0
  437. package/agent-docs/publish/mcp-analytics.md +356 -0
  438. package/agent-docs/publish/mcp-analytics.sections/adapter-exports.md +50 -0
  439. package/agent-docs/publish/mcp-analytics.sections/enable-analytics.md +45 -0
  440. package/agent-docs/publish/mcp-analytics.sections/event-fields-and-service-mappings.md +53 -0
  441. package/agent-docs/publish/mcp-analytics.sections/optionally-collect-intent-and-group-calls.md +62 -0
  442. package/agent-docs/publish/mcp-analytics.sections/optionally-identify-the-client-and-model.md +54 -0
  443. package/agent-docs/publish/mcp-analytics.sections/related-reading.md +36 -0
  444. package/agent-docs/publish/mcp-analytics.sections/safeguards-and-limits.md +46 -0
  445. package/agent-docs/publish/mcp.md +190 -0
  446. package/agent-docs/publish/mcp.sections/check-budgets-and-errors.md +52 -0
  447. package/agent-docs/publish/mcp.sections/choose-the-documentation-source.md +51 -0
  448. package/agent-docs/publish/mcp.sections/configure-the-client.md +55 -0
  449. package/agent-docs/publish/mcp.sections/generate-a-vercel-endpoint.md +50 -0
  450. package/agent-docs/publish/mcp.sections/related-reading.md +42 -0
  451. package/agent-docs/publish/mcp.sections/search-then-read.md +53 -0
  452. package/agent-docs/publish/mcp.sections/serve-a-public-endpoint-on-node.md +79 -0
  453. package/agent-docs/publish/mcp.sections/verify-the-connection.md +40 -0
  454. package/agent-docs/publish/mcp.sections/why-offer-mcp-for-public-docs.md +42 -0
  455. package/agent-docs/publish/openapi-extension-mappings.md +84 -0
  456. package/agent-docs/publish/output.md +220 -0
  457. package/agent-docs/publish/output.sections/api-contracts.md +48 -0
  458. package/agent-docs/publish/output.sections/code-highlighting.md +38 -0
  459. package/agent-docs/publish/output.sections/current-limits.md +40 -0
  460. package/agent-docs/publish/output.sections/incremental-sync.md +69 -0
  461. package/agent-docs/publish/output.sections/manifest-records-and-sections.md +46 -0
  462. package/agent-docs/publish/output.sections/navigation-section-indexes.md +42 -0
  463. package/agent-docs/publish/output.sections/page-formats.md +46 -0
  464. package/agent-docs/publish/output.sections/published-output-contract.md +58 -0
  465. package/agent-docs/publish/output.sections/reader-appearance-and-controls.md +44 -0
  466. package/agent-docs/publish/output.sections/related-reading.md +34 -0
  467. package/agent-docs/publish/output.sections/response-identity.md +38 -0
  468. package/agent-docs/publish/output.sections/site-files.md +64 -0
  469. package/agent-docs/publish/output.sections/validate-an-existing-build-locally.md +48 -0
  470. package/agent-docs/publish/output.sections/where-files-go.md +49 -0
  471. package/agent-docs/publish/publications.md +153 -0
  472. package/agent-docs/publish/revisions.md +104 -0
  473. package/agent-docs/publish/seo.md +119 -0
  474. package/agent-docs/publish/single-source-sites.md +168 -0
  475. package/agent-docs/publish/troubleshooting.md +112 -0
  476. package/agent-docs/publish/vercel.md +130 -0
  477. package/agent-docs/publish/vercel.sections/check-the-deployment.md +54 -0
  478. package/agent-docs/publish/vercel.sections/include-an-mcp-endpoint.md +38 -0
  479. package/agent-docs/publish/vercel.sections/prepare-your-project.md +52 -0
  480. package/agent-docs/publish/vercel.sections/related-reading.md +38 -0
  481. package/agent-docs/publish.md +95 -0
  482. package/agent-docs/recipes/add-page.md +194 -0
  483. package/agent-docs/recipes/add-page.sections/audit-the-shoalrun-docs-project.md +40 -0
  484. package/agent-docs/recipes/add-page.sections/before-you-start.md +33 -0
  485. package/agent-docs/recipes/add-page.sections/build-the-shoalrun-docs-site.md +42 -0
  486. package/agent-docs/recipes/add-page.sections/check-agent-search-and-page-lookup.md +42 -0
  487. package/agent-docs/recipes/add-page.sections/check-the-built-page-artifacts.md +54 -0
  488. package/agent-docs/recipes/add-page.sections/check-the-outcome.md +28 -0
  489. package/agent-docs/recipes/add-page.sections/complete-the-guide-and-add-navigation.md +42 -0
  490. package/agent-docs/recipes/add-page.sections/install-the-site-dependencies.md +41 -0
  491. package/agent-docs/recipes/add-page.sections/regenerate-the-agent-documentation-bundle.md +42 -0
  492. package/agent-docs/recipes/add-page.sections/related-reading.md +30 -0
  493. package/agent-docs/recipes/add-page.sections/scaffold-a-new-guide.md +42 -0
  494. package/agent-docs/recipes/audit-docs.md +122 -0
  495. package/agent-docs/recipes/build-docs.md +105 -0
  496. package/agent-docs/recipes/preview-hybrid-search.md +84 -0
  497. package/agent-docs/recipes/preview-page.md +124 -0
  498. package/agent-docs/recipes/queue-email.md +49 -0
  499. package/agent-docs/recipes/refresh-agent-docs.md +109 -0
  500. package/agent-docs/recipes/send-welcome-email.md +92 -0
  501. package/agent-docs/reference/agent-skills.md +73 -0
  502. package/agent-docs/search-and-chat.md +87 -0
  503. package/agent-docs/search-index.json +1 -0
  504. package/agent-docs/start.md +197 -0
  505. package/agent-docs/start.sections/add-the-page-to-navigation.md +50 -0
  506. package/agent-docs/start.sections/build-and-check-both-outputs.md +50 -0
  507. package/agent-docs/start.sections/build-this-site.md +35 -0
  508. package/agent-docs/start.sections/check-writing-style.md +35 -0
  509. package/agent-docs/start.sections/create-a-page.md +105 -0
  510. package/agent-docs/start.sections/make-it-yours.md +37 -0
  511. package/agent-docs/start.sections/prerequisites.md +37 -0
  512. package/agent-docs/start.sections/related-reading.md +45 -0
  513. package/agent-docs/start.sections/start-your-own-project.md +53 -0
  514. package/agent-docs/status.md +75 -0
  515. package/agent-docs/styling/color-modes.md +85 -0
  516. package/agent-docs/styling/footer.md +67 -0
  517. package/agent-docs/styling/header.md +65 -0
  518. package/agent-docs/styling/layouts.md +193 -0
  519. package/agent-docs/styling/layouts.sections/build-a-landing-page.md +61 -0
  520. package/agent-docs/styling/layouts.sections/build-a-splash-page.md +88 -0
  521. package/agent-docs/styling/layouts.sections/control-navigation-tabs.md +51 -0
  522. package/agent-docs/styling/layouts.sections/customize-the-hero.md +50 -0
  523. package/agent-docs/styling/layouts.sections/hero.md +83 -0
  524. package/agent-docs/styling/layouts.sections/related-reading.md +42 -0
  525. package/agent-docs/styling/palettes.md +140 -0
  526. package/agent-docs/styling/share-images.md +105 -0
  527. package/agent-docs/styling/themes.md +125 -0
  528. package/agent-docs/styling/try.md +106 -0
  529. package/agent-docs/what-is-shoalrun.md +56 -0
  530. package/assets/analytics.js +72 -0
  531. package/assets/ask-widget.js +320 -0
  532. package/assets/code-samples.js +28 -0
  533. package/assets/components.js +32 -0
  534. package/assets/cookbook-chooser.js +170 -0
  535. package/assets/copy-markdown.js +24 -0
  536. package/assets/example-panel.js +77 -0
  537. package/assets/file-tree.js +49 -0
  538. package/assets/image-viewer.js +41 -0
  539. package/assets/mode.js +26 -0
  540. package/assets/navigation.js +233 -0
  541. package/assets/reader-filters.js +305 -0
  542. package/assets/reader.js +111 -0
  543. package/assets/search-highlight.js +32 -0
  544. package/assets/search-lexical.js +66 -0
  545. package/assets/search.js +150 -0
  546. package/assets/table-filter.js +63 -0
  547. package/assets/tabs.js +80 -0
  548. package/assets/theme-preview.css +17 -0
  549. package/assets/theme-preview.js +135 -0
  550. package/assets/theme-switcher.js +113 -0
  551. package/assets/tooltips.js +81 -0
  552. package/assets/walkthrough.js +233 -0
  553. package/dist/agent-discovery.d.ts +11 -0
  554. package/dist/agent-discovery.js +37 -0
  555. package/dist/analytics.d.ts +2 -0
  556. package/dist/analytics.js +13 -0
  557. package/dist/answer-cache.d.ts +24 -0
  558. package/dist/answer-cache.js +55 -0
  559. package/dist/answer-cards.d.ts +71 -0
  560. package/dist/answer-cards.js +148 -0
  561. package/dist/api-embeds.d.ts +22 -0
  562. package/dist/api-embeds.js +84 -0
  563. package/dist/api-identity.d.ts +6 -0
  564. package/dist/api-identity.js +7 -0
  565. package/dist/api-materialize.d.ts +12 -0
  566. package/dist/api-materialize.js +120 -0
  567. package/dist/api-publication-plan.d.ts +86 -0
  568. package/dist/api-publication-plan.js +187 -0
  569. package/dist/api-publication-review.d.ts +23 -0
  570. package/dist/api-publication-review.js +58 -0
  571. package/dist/api-selection.d.ts +21 -0
  572. package/dist/api-selection.js +84 -0
  573. package/dist/api.d.ts +74 -0
  574. package/dist/api.js +782 -0
  575. package/dist/artifact-bundle.d.ts +96 -0
  576. package/dist/artifact-bundle.js +306 -0
  577. package/dist/ask-function.d.ts +19 -0
  578. package/dist/ask-function.js +139 -0
  579. package/dist/ask-handler.d.ts +38 -0
  580. package/dist/ask-handler.js +157 -0
  581. package/dist/ask-log-kv.d.ts +14 -0
  582. package/dist/ask-log-kv.js +69 -0
  583. package/dist/ask-log.d.ts +106 -0
  584. package/dist/ask-log.js +159 -0
  585. package/dist/ask-setup.d.ts +43 -0
  586. package/dist/ask-setup.js +99 -0
  587. package/dist/ask.d.ts +152 -0
  588. package/dist/ask.js +532 -0
  589. package/dist/audit.d.ts +29 -0
  590. package/dist/audit.js +171 -0
  591. package/dist/authored-change.d.ts +22 -0
  592. package/dist/authored-change.js +47 -0
  593. package/dist/authoring-api.d.ts +18 -0
  594. package/dist/authoring-api.js +15 -0
  595. package/dist/authoring-findings.d.ts +31 -0
  596. package/dist/authoring-findings.js +104 -0
  597. package/dist/authoring-guidance.d.ts +15 -0
  598. package/dist/authoring-guidance.js +57 -0
  599. package/dist/authoring-preview.d.ts +24 -0
  600. package/dist/authoring-preview.js +160 -0
  601. package/dist/authoring-project-command.d.ts +7 -0
  602. package/dist/authoring-project-command.js +52 -0
  603. package/dist/authoring-project.d.ts +104 -0
  604. package/dist/authoring-project.js +287 -0
  605. package/dist/authoring-review-command.d.ts +1 -0
  606. package/dist/authoring-review-command.js +68 -0
  607. package/dist/authoring-review.d.ts +72 -0
  608. package/dist/authoring-review.js +71 -0
  609. package/dist/authoring-snapshot.d.ts +66 -0
  610. package/dist/authoring-snapshot.js +293 -0
  611. package/dist/authoring-validation-command.d.ts +1 -0
  612. package/dist/authoring-validation-command.js +54 -0
  613. package/dist/authoring-validation.d.ts +101 -0
  614. package/dist/authoring-validation.js +348 -0
  615. package/dist/badges.d.ts +16 -0
  616. package/dist/badges.js +57 -0
  617. package/dist/budget-store.d.ts +21 -0
  618. package/dist/budget-store.js +90 -0
  619. package/dist/budget.d.ts +45 -0
  620. package/dist/budget.js +128 -0
  621. package/dist/build-info.d.ts +10 -0
  622. package/dist/build-info.js +15 -0
  623. package/dist/callouts.d.ts +18 -0
  624. package/dist/callouts.js +63 -0
  625. package/dist/cards.d.ts +35 -0
  626. package/dist/cards.js +237 -0
  627. package/dist/chat-config.d.ts +117 -0
  628. package/dist/chat-config.js +400 -0
  629. package/dist/chat-pause.d.ts +1 -0
  630. package/dist/chat-pause.js +3 -0
  631. package/dist/chat.d.ts +46 -0
  632. package/dist/chat.js +78 -0
  633. package/dist/cli-discovery.d.ts +4 -0
  634. package/dist/cli-discovery.js +86 -0
  635. package/dist/cli.d.ts +2 -0
  636. package/dist/cli.js +750 -0
  637. package/dist/code-samples.d.ts +50 -0
  638. package/dist/code-samples.js +181 -0
  639. package/dist/compact-discovery.d.ts +15 -0
  640. package/dist/compact-discovery.js +78 -0
  641. package/dist/compiler-config.d.ts +67 -0
  642. package/dist/compiler-config.js +66 -0
  643. package/dist/compiler.d.ts +208 -0
  644. package/dist/compiler.js +524 -0
  645. package/dist/component-bundle.d.ts +4 -0
  646. package/dist/component-bundle.js +32 -0
  647. package/dist/component-content.d.ts +78 -0
  648. package/dist/component-content.js +47 -0
  649. package/dist/component-manifest.d.ts +15 -0
  650. package/dist/component-manifest.js +84 -0
  651. package/dist/component-names.d.ts +1 -0
  652. package/dist/component-names.js +1 -0
  653. package/dist/component-plugins.d.ts +28 -0
  654. package/dist/component-plugins.js +141 -0
  655. package/dist/component-transform.d.ts +10 -0
  656. package/dist/component-transform.js +697 -0
  657. package/dist/components.d.ts +2 -0
  658. package/dist/components.js +1 -0
  659. package/dist/config.d.ts +29 -0
  660. package/dist/config.js +149 -0
  661. package/dist/content-export-assets.d.ts +23 -0
  662. package/dist/content-export-assets.js +103 -0
  663. package/dist/content-export-command.d.ts +20 -0
  664. package/dist/content-export-command.js +57 -0
  665. package/dist/content-export-config.d.ts +16 -0
  666. package/dist/content-export-config.js +50 -0
  667. package/dist/content-export-render.d.ts +12 -0
  668. package/dist/content-export-render.js +132 -0
  669. package/dist/content-export.d.ts +30 -0
  670. package/dist/content-export.js +307 -0
  671. package/dist/content-filter.d.ts +4 -0
  672. package/dist/content-filter.js +16 -0
  673. package/dist/content-source.d.ts +100 -0
  674. package/dist/content-source.js +42 -0
  675. package/dist/content-workspace.d.ts +293 -0
  676. package/dist/content-workspace.js +69 -0
  677. package/dist/content.d.ts +41 -0
  678. package/dist/content.js +176 -0
  679. package/dist/cookbook-chooser.d.ts +19 -0
  680. package/dist/cookbook-chooser.js +56 -0
  681. package/dist/dev.d.ts +2 -0
  682. package/dist/dev.js +113 -0
  683. package/dist/diagram-svg.d.ts +1 -0
  684. package/dist/diagram-svg.js +44 -0
  685. package/dist/diagrams.d.ts +7 -0
  686. package/dist/diagrams.js +102 -0
  687. package/dist/docs-author.d.ts +86 -0
  688. package/dist/docs-author.js +380 -0
  689. package/dist/docs-command.d.ts +8 -0
  690. package/dist/docs-command.js +62 -0
  691. package/dist/docs-eval.d.ts +146 -0
  692. package/dist/docs-eval.js +231 -0
  693. package/dist/docs-mcp.d.ts +12 -0
  694. package/dist/docs-mcp.js +82 -0
  695. package/dist/docs-tool.d.ts +81 -0
  696. package/dist/docs-tool.js +7 -0
  697. package/dist/document-sync.d.ts +36 -0
  698. package/dist/document-sync.js +58 -0
  699. package/dist/documentation-core.d.ts +148 -0
  700. package/dist/documentation-core.js +160 -0
  701. package/dist/embeddings.d.ts +68 -0
  702. package/dist/embeddings.js +198 -0
  703. package/dist/focused-audit.d.ts +10 -0
  704. package/dist/focused-audit.js +69 -0
  705. package/dist/focused-openapi.d.ts +2 -0
  706. package/dist/focused-openapi.js +140 -0
  707. package/dist/fonts.d.ts +54 -0
  708. package/dist/fonts.js +92 -0
  709. package/dist/freshness.d.ts +7 -0
  710. package/dist/freshness.js +58 -0
  711. package/dist/frontmatter.d.ts +24 -0
  712. package/dist/frontmatter.js +342 -0
  713. package/dist/function-package.d.ts +1 -0
  714. package/dist/function-package.js +58 -0
  715. package/dist/highlight.d.ts +14 -0
  716. package/dist/highlight.js +114 -0
  717. package/dist/html-renderer.d.ts +10 -0
  718. package/dist/html-renderer.js +63 -0
  719. package/dist/icons.d.ts +8 -0
  720. package/dist/icons.js +40 -0
  721. package/dist/index-build.d.ts +55 -0
  722. package/dist/index-build.js +227 -0
  723. package/dist/ingredient-draft.d.ts +17 -0
  724. package/dist/ingredient-draft.js +94 -0
  725. package/dist/ingredient-workflow.d.ts +8 -0
  726. package/dist/ingredient-workflow.js +25 -0
  727. package/dist/init.d.ts +8 -0
  728. package/dist/init.js +66 -0
  729. package/dist/jev.d.ts +62 -0
  730. package/dist/jev.js +190 -0
  731. package/dist/link-audit.d.ts +12 -0
  732. package/dist/link-audit.js +146 -0
  733. package/dist/llms-discovery.d.ts +11 -0
  734. package/dist/llms-discovery.js +23 -0
  735. package/dist/markdown-sections.d.ts +15 -0
  736. package/dist/markdown-sections.js +60 -0
  737. package/dist/markdown-size.d.ts +7 -0
  738. package/dist/markdown-size.js +6 -0
  739. package/dist/mcp-analytics.d.ts +38 -0
  740. package/dist/mcp-analytics.js +35 -0
  741. package/dist/mcp-artifacts.d.ts +2 -0
  742. package/dist/mcp-artifacts.js +78 -0
  743. package/dist/mcp-client-metadata.d.ts +18 -0
  744. package/dist/mcp-client-metadata.js +69 -0
  745. package/dist/mcp-config.d.ts +23 -0
  746. package/dist/mcp-config.js +56 -0
  747. package/dist/mcp-http.d.ts +19 -0
  748. package/dist/mcp-http.js +157 -0
  749. package/dist/mcp-integrity.d.ts +3 -0
  750. package/dist/mcp-integrity.js +4 -0
  751. package/dist/mcp-node.d.ts +4 -0
  752. package/dist/mcp-node.js +68 -0
  753. package/dist/mcp-vercel-runtime.d.ts +3 -0
  754. package/dist/mcp-vercel-runtime.js +36 -0
  755. package/dist/mcp-vercel.d.ts +15 -0
  756. package/dist/mcp-vercel.js +65 -0
  757. package/dist/metadata-provider.d.ts +19 -0
  758. package/dist/metadata-provider.js +38 -0
  759. package/dist/negotiation.d.ts +10 -0
  760. package/dist/negotiation.js +35 -0
  761. package/dist/not-found.d.ts +16 -0
  762. package/dist/not-found.js +25 -0
  763. package/dist/output-commit.d.ts +1 -0
  764. package/dist/output-commit.js +133 -0
  765. package/dist/output-location.d.ts +3 -0
  766. package/dist/output-location.js +30 -0
  767. package/dist/page-materialization.d.ts +78 -0
  768. package/dist/page-materialization.js +132 -0
  769. package/dist/page-renderer.d.ts +71 -0
  770. package/dist/page-renderer.js +177 -0
  771. package/dist/palettes.d.ts +41 -0
  772. package/dist/palettes.js +160 -0
  773. package/dist/procedure-components.d.ts +2 -0
  774. package/dist/procedure-components.js +94 -0
  775. package/dist/project-navigation.d.ts +41 -0
  776. package/dist/project-navigation.js +190 -0
  777. package/dist/provider-http.d.ts +10 -0
  778. package/dist/provider-http.js +60 -0
  779. package/dist/publication-manifest.d.ts +229 -0
  780. package/dist/publication-manifest.js +53 -0
  781. package/dist/publication-plan.d.ts +34 -0
  782. package/dist/publication-plan.js +85 -0
  783. package/dist/publication-render.d.ts +71 -0
  784. package/dist/publication-render.js +92 -0
  785. package/dist/reader-filters.d.ts +30 -0
  786. package/dist/reader-filters.js +105 -0
  787. package/dist/recipe-draft.d.ts +17 -0
  788. package/dist/recipe-draft.js +147 -0
  789. package/dist/reference-audit.d.ts +18 -0
  790. package/dist/reference-audit.js +169 -0
  791. package/dist/remote-import.d.ts +62 -0
  792. package/dist/remote-import.js +292 -0
  793. package/dist/representation-tree.d.ts +3 -0
  794. package/dist/representation-tree.js +320 -0
  795. package/dist/retrieval-config.d.ts +30 -0
  796. package/dist/retrieval-config.js +83 -0
  797. package/dist/retrieval.d.ts +60 -0
  798. package/dist/retrieval.js +228 -0
  799. package/dist/scaffold.d.ts +39 -0
  800. package/dist/scaffold.js +167 -0
  801. package/dist/search-config.d.ts +8 -0
  802. package/dist/search-config.js +26 -0
  803. package/dist/search-handler.d.ts +16 -0
  804. package/dist/search-handler.js +111 -0
  805. package/dist/search-identifier.d.ts +3 -0
  806. package/dist/search-identifier.js +25 -0
  807. package/dist/search-literal.d.ts +1 -0
  808. package/dist/search-literal.js +28 -0
  809. package/dist/search-query.d.ts +54 -0
  810. package/dist/search-query.js +120 -0
  811. package/dist/search-results.d.ts +6 -0
  812. package/dist/search-results.js +45 -0
  813. package/dist/search-snippet.d.ts +11 -0
  814. package/dist/search-snippet.js +93 -0
  815. package/dist/search-synonyms.d.ts +8 -0
  816. package/dist/search-synonyms.js +46 -0
  817. package/dist/semantic-markdown.d.ts +10 -0
  818. package/dist/semantic-markdown.js +39 -0
  819. package/dist/server.d.ts +10 -0
  820. package/dist/server.js +223 -0
  821. package/dist/share-images.d.ts +24 -0
  822. package/dist/share-images.js +187 -0
  823. package/dist/site-path.d.ts +2 -0
  824. package/dist/site-path.js +15 -0
  825. package/dist/sitemap.d.ts +8 -0
  826. package/dist/sitemap.js +58 -0
  827. package/dist/snippets.d.ts +19 -0
  828. package/dist/snippets.js +84 -0
  829. package/dist/structured-model-output.d.ts +6 -0
  830. package/dist/structured-model-output.js +21 -0
  831. package/dist/subject-deprecation.d.ts +21 -0
  832. package/dist/subject-deprecation.js +57 -0
  833. package/dist/surface-text.d.ts +4 -0
  834. package/dist/surface-text.js +42 -0
  835. package/dist/taxonomy.d.ts +14 -0
  836. package/dist/taxonomy.js +88 -0
  837. package/dist/turnstile.d.ts +21 -0
  838. package/dist/turnstile.js +52 -0
  839. package/dist/vale.d.ts +28 -0
  840. package/dist/vale.js +103 -0
  841. package/dist/vercel-function.d.ts +21 -0
  842. package/dist/vercel-function.js +108 -0
  843. package/dist/vercel.d.ts +11 -0
  844. package/dist/vercel.js +103 -0
  845. package/dist/walkthrough.d.ts +25 -0
  846. package/dist/walkthrough.js +336 -0
  847. package/dist/yaml-value.d.ts +2 -0
  848. package/dist/yaml-value.js +36 -0
  849. package/example-configs/api-docs/README.md +59 -0
  850. package/example-configs/api-docs/apis/cedar-parcel.yaml +413 -0
  851. package/example-configs/api-docs/content/create-enrollment.mdx +11 -0
  852. package/example-configs/api-docs/content/overview.mdx +36 -0
  853. package/example-configs/api-docs/content/quickstart.mdx +52 -0
  854. package/example-configs/api-docs/docs.config.yaml +104 -0
  855. package/example-configs/faceted-sites/README.md +31 -0
  856. package/example-configs/faceted-sites/base.yaml +30 -0
  857. package/example-configs/faceted-sites/content/api.md +12 -0
  858. package/example-configs/faceted-sites/content/home.md +10 -0
  859. package/example-configs/faceted-sites/content/operations.md +12 -0
  860. package/example-configs/faceted-sites/developers.config.yaml +8 -0
  861. package/example-configs/faceted-sites/docs.config.yaml +7 -0
  862. package/example-configs/faceted-sites/europe.config.yaml +9 -0
  863. package/example-configs/minimal/content/install.mdx +12 -0
  864. package/example-configs/minimal/content/welcome.mdx +8 -0
  865. package/example-configs/minimal/docs.config.yaml +31 -0
  866. package/example-configs/multilingual/content/de/home.mdx +9 -0
  867. package/example-configs/multilingual/content/de/reset-password.mdx +9 -0
  868. package/example-configs/multilingual/content/home.mdx +10 -0
  869. package/example-configs/multilingual/content/reset-password.mdx +12 -0
  870. package/example-configs/multilingual/docs.config.yaml +61 -0
  871. package/example-configs/multilingual/snippets/contact.mdx +1 -0
  872. package/example-configs/notifications/apis/notifications.yaml +132 -0
  873. package/example-configs/notifications/content/cookbook.mdx +17 -0
  874. package/example-configs/notifications/content/get-message.mdx +14 -0
  875. package/example-configs/notifications/content/queue-email.mdx +42 -0
  876. package/example-configs/notifications/content/queue-push.mdx +33 -0
  877. package/example-configs/notifications/content/queue-sms.mdx +33 -0
  878. package/example-configs/notifications/content/send-email.mdx +14 -0
  879. package/example-configs/notifications/content/send-push.mdx +14 -0
  880. package/example-configs/notifications/content/send-sms.mdx +14 -0
  881. package/example-configs/notifications/content/start.mdx +13 -0
  882. package/example-configs/notifications/content/welcome-cookbook.mdx +21 -0
  883. package/example-configs/notifications/content/welcome-email.mdx +82 -0
  884. package/example-configs/notifications/demo.mjs +43 -0
  885. package/example-configs/notifications/docs.config.yaml +88 -0
  886. package/example-configs/notifications/ingredient-drafts/README.md +41 -0
  887. package/example-configs/notifications/ingredient-drafts/check-delivery.mdx +13 -0
  888. package/example-configs/notifications/ingredient-drafts/queue-welcome-email.mdx +48 -0
  889. package/example-configs/notifications/ingredient-specs/queue-welcome-email.yaml +7 -0
  890. package/example-configs/notifications/ingredients/check-delivery.mdx +42 -0
  891. package/example-configs/notifications/ingredients/queue-welcome-email.mdx +37 -0
  892. package/example-configs/notifications/recipe-drafts/send-welcome-email.mdx +91 -0
  893. package/example-configs/notifications/recipe-specs/send-welcome-email.yaml +11 -0
  894. package/example-configs/reference-stress/README.md +32 -0
  895. package/example-configs/reference-stress/apis/cedar-parcel.yaml +413 -0
  896. package/example-configs/reference-stress/content/enrollment-shapes.mdx +16 -0
  897. package/example-configs/reference-stress/content/overview.mdx +14 -0
  898. package/example-configs/reference-stress/docs.config.yaml +55 -0
  899. package/example-configs/shared-preset/shared/company-docs.yaml +46 -0
  900. package/example-configs/shared-preset/shared/runbook.mdx +7 -0
  901. package/example-configs/shared-preset/site/content/failed-invoices.mdx +15 -0
  902. package/example-configs/shared-preset/site/content/start.mdx +9 -0
  903. package/example-configs/shared-preset/site/docs.config.yaml +18 -0
  904. package/example-configs/showcase/README.md +20 -0
  905. package/example-configs/showcase/apis/cedar-parcel.yaml +413 -0
  906. package/example-configs/showcase/content/assets/collection.svg +1 -0
  907. package/example-configs/showcase/content/code.mdx +100 -0
  908. package/example-configs/showcase/content/create-enrollment.mdx +11 -0
  909. package/example-configs/showcase/content/features.mdx +39 -0
  910. package/example-configs/showcase/content/landing.mdx +36 -0
  911. package/example-configs/showcase/content/overview.mdx +42 -0
  912. package/example-configs/showcase/content/personalization.mdx +38 -0
  913. package/example-configs/showcase/content/preview.mdx +35 -0
  914. package/example-configs/showcase/content/procedures.mdx +88 -0
  915. package/example-configs/showcase/content/quickstart.mdx +64 -0
  916. package/example-configs/showcase/content/reading.mdx +99 -0
  917. package/example-configs/showcase/content/verify.mdx +27 -0
  918. package/example-configs/showcase/content/visuals.mdx +47 -0
  919. package/example-configs/showcase/content/workflows.mdx +12 -0
  920. package/example-configs/showcase/docs.config.yaml +149 -0
  921. package/example-configs/showcase/snippets/sandbox.mdx +1 -0
  922. package/examples/analytics/README.md +56 -0
  923. package/examples/analytics/inspector.js +25 -0
  924. package/examples/analytics/posthog.js +36 -0
  925. package/examples/components/comparison.mjs +8 -0
  926. package/examples/components/components.json +6 -0
  927. package/examples/components/copy-text/LICENSE.react-dom.txt +21 -0
  928. package/examples/components/copy-text/LICENSE.react.txt +21 -0
  929. package/examples/components/copy-text/LICENSE.scheduler.txt +21 -0
  930. package/examples/components/copy-text/browser.jsx +21 -0
  931. package/examples/components/copy-text/components.json +6 -0
  932. package/examples/components/copy-text/package-lock.json +41 -0
  933. package/examples/components/copy-text/package.json +9 -0
  934. package/examples/components/copy-text/plugin.mjs +5 -0
  935. package/examples/components/retry-budget/LICENSE.react-dom.txt +21 -0
  936. package/examples/components/retry-budget/LICENSE.react.txt +21 -0
  937. package/examples/components/retry-budget/LICENSE.scheduler.txt +21 -0
  938. package/examples/components/retry-budget/browser.jsx +50 -0
  939. package/examples/components/retry-budget/components.json +6 -0
  940. package/examples/components/retry-budget/model.js +22 -0
  941. package/examples/components/retry-budget/package-lock.json +41 -0
  942. package/examples/components/retry-budget/package.json +9 -0
  943. package/examples/components/retry-budget/plugin.mjs +31 -0
  944. package/examples/components/retry-budget/policy.json +9 -0
  945. package/examples/components/retry-budget/style.css +25 -0
  946. package/examples/diagrams/d2-gallery.json +138 -0
  947. package/examples/diagrams/gallery.json +236 -0
  948. package/examples/help-drawer/README.md +44 -0
  949. package/examples/help-drawer/app.js +53 -0
  950. package/examples/help-drawer/components/components.json +1 -0
  951. package/examples/help-drawer/components/support.mjs +10 -0
  952. package/examples/help-drawer/content/account.md +8 -0
  953. package/examples/help-drawer/content/billing.mdx +29 -0
  954. package/examples/help-drawer/content/keys.mdx +46 -0
  955. package/examples/help-drawer/content/settings.svg +1 -0
  956. package/examples/help-drawer/docs.config.yaml +30 -0
  957. package/examples/help-drawer/index.html +26 -0
  958. package/examples/help-drawer/preview.mjs +33 -0
  959. package/examples/mcp-analytics/README.md +59 -0
  960. package/examples/mcp-analytics/posthog.mjs +159 -0
  961. package/package.json +100 -4
  962. package/schemas/content-export.schema.json +55 -0
  963. package/skills/shoalrun-author/SKILL.md +52 -0
  964. package/skills/shoalrun-component-author/SKILL.md +24 -0
  965. package/skills/shoalrun-recipes/SKILL.md +25 -0
  966. package/skills/shoalrun-setup/SKILL.md +34 -0
  967. package/skills/shoalrun-walkthrough/SKILL.md +18 -0
  968. package/styles/fonts/figtree-LICENSE.txt +93 -0
  969. package/styles/fonts/figtree-italic.woff2 +0 -0
  970. package/styles/fonts/figtree.woff2 +0 -0
  971. package/styles/fonts/inter-LICENSE.txt +93 -0
  972. package/styles/fonts/inter-italic.woff2 +0 -0
  973. package/styles/fonts/inter.woff2 +0 -0
  974. package/styles/fonts/jetbrains-mono-LICENSE.txt +93 -0
  975. package/styles/fonts/jetbrains-mono.woff2 +0 -0
  976. package/styles/fonts/jost-LICENSE.txt +93 -0
  977. package/styles/fonts/jost-italic.woff2 +0 -0
  978. package/styles/fonts/jost.woff2 +0 -0
  979. package/styles/fonts/share/figtree-400.ttf +0 -0
  980. package/styles/fonts/share/figtree-700.ttf +0 -0
  981. package/styles/fonts/share/inter-400.ttf +0 -0
  982. package/styles/fonts/share/inter-700.ttf +0 -0
  983. package/styles/fonts/share/jetbrains-mono-700.ttf +0 -0
  984. package/styles/fonts/share/jost-italic-800.ttf +0 -0
  985. package/styles/fonts/share/metrics.json +1 -0
  986. package/styles/fonts/share/source-serif-4-400.ttf +0 -0
  987. package/styles/fonts/source-serif-4-LICENSE.txt +93 -0
  988. package/styles/fonts/source-serif-4-italic.woff2 +0 -0
  989. package/styles/fonts/source-serif-4.woff2 +0 -0
  990. package/styles/header.css +56 -0
  991. package/styles/site.css +825 -0
  992. package/styles/themes/ledger.css +93 -0
  993. package/styles/themes/palettes/amethyst.yaml +127 -0
  994. package/styles/themes/palettes/coral.yaml +127 -0
  995. package/styles/themes/palettes/harbor.yaml +127 -0
  996. package/styles/themes/palettes/ink.yaml +127 -0
  997. package/styles/themes/palettes/kelp.yaml +127 -0
  998. package/styles/themes/palettes/vice.yaml +127 -0
  999. package/styles/themes/reef.css +68 -0
  1000. package/styles/themes/vice.css +56 -0
  1001. package/styles/tokens.css +91 -0
  1002. package/templates/api-reference.mdx +133 -0
  1003. package/templates/cookbook.mdx +38 -0
  1004. package/templates/explanation.mdx +76 -0
  1005. package/templates/guide.mdx +175 -0
  1006. package/templates/how-to.mdx +171 -0
  1007. package/templates/ingredient.mdx +53 -0
  1008. package/templates/recipe.mdx +76 -0
  1009. package/templates/reference.mdx +171 -0
  1010. package/templates/troubleshooting.mdx +159 -0
  1011. package/templates/tutorial.mdx +165 -0
@@ -0,0 +1,65 @@
1
+ ---
2
+ id: guide.reader-filters
3
+ title: Reader views
4
+ summary: Reader-view configuration, page and section marks, controls, and
5
+ agent-facing behavior.
6
+ type: reference
7
+ area: discovery
8
+ subarea: discovery-reader-views
9
+ canonical: /author/reader-views
10
+ ---
11
+
12
+ # Reader views
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Reader views
19
+
20
+ **Updated: 2026-10-25.**
21
+
22
+ Parent page: [Full Markdown page](/author/reader-views.md)
23
+
24
+ A reader view changes which pages appear in navigation and search. It also controls document cards and marked sections within pages. The site still publishes one URL for each page. A first-time visitor sees all content; a choice is saved in the browser and added to the URL so it can be shared.
25
+
26
+ Reader views are visibility controls, not access controls. All published page and section content remains available in site files and Markdown twins. Use `access.policy` to exclude a page from a public build, and host-level authorization to protect private content.
27
+
28
+ To build separate sites from the same source using these facets, use [build-time page selection](https://www.shoalrun.com/publish/single-source-sites.md) with `site.contentFilter`. That selector excludes unmatched pages from the output. A browser reader view continues to affect visibility within a published site.
29
+
30
+ ## Configure the choices
31
+
32
+ Define the available reader choices once in `readerFilters.facets` in `docs.config.yaml`. The facet names and choices are yours; Shoalrun has no fixed list of reader types. Each facet and choice has a stable lowercase ID and a label for readers. Pages and sections refer to these IDs, and unknown IDs fail the build. `typeDefaults` is optional; it is useful when generated API references should start in the Developer view without marking every operation separately.
33
+
34
+ ```yaml title="docs.config.yaml"
35
+ readerFilters:
36
+ facets:
37
+ audience:
38
+ label: Reader
39
+ options:
40
+ ui: Use the UI
41
+ developer: Build with the API
42
+ product:
43
+ label: Product
44
+ options:
45
+ payments: Payments
46
+ reports: Reports
47
+ area:
48
+ label: Area
49
+ options:
50
+ reporting: Reporting
51
+ setup: Setup
52
+ subarea:
53
+ label: Subarea
54
+ options:
55
+ settlements: Settlements
56
+ exports: Exports
57
+ typeDefaults:
58
+ api-reference:
59
+ audience: [developer]
60
+ controls:
61
+ sidebar: false
62
+ header: { facet: audience, display: select, label: Reader }
63
+ ```
64
+
65
+ Nothing is selected by default, so every page and section is visible. Readers can select more than one choice within a facet: a page marked for either selected choice appears. Different facets combine: a page marked `audience: [ui]` and `product: [payments]` appears when both selections match. A page with no mark for a facet is shared across that facet.
@@ -0,0 +1,59 @@
1
+ ---
2
+ id: guide.reader-filters
3
+ title: Reader views
4
+ summary: Reader-view configuration, page and section marks, controls, and
5
+ agent-facing behavior.
6
+ type: reference
7
+ area: discovery
8
+ subarea: discovery-reader-views
9
+ canonical: /author/reader-views
10
+ ---
11
+
12
+ # Reader views
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Reader views
19
+
20
+ **Updated: 2026-10-25.**
21
+
22
+ Parent page: [Full Markdown page](/author/reader-views.md)
23
+
24
+ A reader view changes which pages appear in navigation and search. It also controls document cards and marked sections within pages. The site still publishes one URL for each page. A first-time visitor sees all content; a choice is saved in the browser and added to the URL so it can be shared.
25
+
26
+ Reader views are visibility controls, not access controls. All published page and section content remains available in site files and Markdown twins. Use `access.policy` to exclude a page from a public build, and host-level authorization to protect private content.
27
+
28
+ To build separate sites from the same source using these facets, use [build-time page selection](https://www.shoalrun.com/publish/single-source-sites.md) with `site.contentFilter`. That selector excludes unmatched pages from the output. A browser reader view continues to affect visibility within a published site.
29
+
30
+ ## Connect your own control
31
+
32
+ Set `readerFilters.module` to a local `.js` or `.mjs` file. The build copies that file into the site and calls its `mountReaderViews(api)` export after the reader view is ready. This is useful for a custom header, a host application, or a login-based starting view.
33
+
34
+ ```yaml title="docs.config.yaml"
35
+ readerFilters:
36
+ facets:
37
+ audience:
38
+ label: Reader
39
+ options: { ui: Use the UI, developer: Build with the API }
40
+ controls: { sidebar: false }
41
+ module: ./reader-view.js
42
+ ```
43
+
44
+ ```js title="reader-view.js"
45
+ export function mountReaderViews(api) {
46
+ const picker = document.querySelector('#my-reader-picker');
47
+ if (!picker) return;
48
+ picker.addEventListener('change', () => {
49
+ api.setSelection({ audience: picker.value ? [picker.value] : [] }, { merge: true });
50
+ });
51
+ api.subscribe(selection => { picker.value = selection.audience?.[0] ?? ''; });
52
+ }
53
+ ```
54
+
55
+ The API provides `facets`, `getSelection()`, `setSelection(selection, { merge? })`, `reset()`, `subscribe(listener)`, and `shareUrl()` for the site view. For the current page it provides `getPageSelection()`, `setPageSelection(selection, { merge? })`, `resetPage()`, `inheritSiteView()`, and `subscribePage(listener)`. `setSelection` and `setPageSelection` validate facet and choice IDs; they replace their respective selection unless `merge: true` is supplied. Subscribers are called immediately and return an unsubscribe function. The API is also available as `window.shoalrunReaderViews`; the page dispatches `reader-views-ready`, `reader-view-change`, and `reader-page-view-change` events. The module is copied as one file, so bundle relative imports before publishing it.
56
+
57
+ **Copy view link** includes the current choice in the URL; a shared URL overrides the recipient's saved choice. A host can use the API to supply a reader's initial view, but reader filters are presentation controls. Protect private content at the host or build layer.
58
+
59
+ The built-in browser search provider excludes pages and section text outside the current site view. A custom search provider receives `context.readerSelection` and must apply the same rules if it wants matching behavior. Reader views are a reading aid, not access control. Use `access.policy` to keep a page out of a public build.
@@ -0,0 +1,41 @@
1
+ ---
2
+ id: guide.reader-filters
3
+ title: Reader views
4
+ summary: Reader-view configuration, page and section marks, controls, and
5
+ agent-facing behavior.
6
+ type: reference
7
+ area: discovery
8
+ subarea: discovery-reader-views
9
+ canonical: /author/reader-views
10
+ ---
11
+
12
+ # Reader views
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Reader views
19
+
20
+ **Updated: 2026-10-25.**
21
+
22
+ Parent page: [Full Markdown page](/author/reader-views.md)
23
+
24
+ A reader view changes which pages appear in navigation and search. It also controls document cards and marked sections within pages. The site still publishes one URL for each page. A first-time visitor sees all content; a choice is saved in the browser and added to the URL so it can be shared.
25
+
26
+ Reader views are visibility controls, not access controls. All published page and section content remains available in site files and Markdown twins. Use `access.policy` to exclude a page from a public build, and host-level authorization to protect private content.
27
+
28
+ To build separate sites from the same source using these facets, use [build-time page selection](https://www.shoalrun.com/publish/single-source-sites.md) with `site.contentFilter`. That selector excludes unmatched pages from the output. A browser reader view continues to affect visibility within a published site.
29
+
30
+ ## How it works for agents
31
+
32
+ Reader views change the interactive HTML. They do not create separate agent publications or a personalized agent navigation tree. An agent can discover and read every **published** page regardless of a browser reader's saved choice or a shared `view` or `pageView` URL parameter. Draft and access-controlled source pages still follow the normal publication rules.
33
+
34
+ | Agent-facing output | Reader-view behavior |
35
+ | --------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
36
+ | Markdown twin (`.md`) | Includes shared content and every `ReaderSection`, even sections hidden in HTML. Each marked section starts with a readable label such as `**For Reader: UI reader.**`. `<ReaderFilter />` controls are omitted. `ReaderChoice` becomes a link to the interactive HTML page with its `view` or `pageView` choice in the URL. |
37
+ | `/llms.txt` | Lists every published Markdown page. A selected browser view does not remove entries. |
38
+ | `/documents.json` | Lists every published page. `readerFacets` defines the configured choices; each document's `readerFilters` contains its resolved page marks. An empty map means the page is shared. Optional `product`, `area`, and `subarea` categories also appear when set. |
39
+ | `/search-index.json` | Retains a search record for every published page, with page marks in `readerFilters` and indexed section text in `readerSegments`. The built-in **browser** search applies the site-wide choice when displaying results. |
40
+
41
+ For example, [this guide's Markdown twin](https://www.shoalrun.com/author/reader-views.md) contains both the UI and Developer example paragraphs with their reader labels. Choosing a page-only view above leaves those paragraphs in the twin. The page's Markdown YAML header includes reader marks only when `outputs.markdown.metadata` explicitly selects those frontmatter fields. The resolved marks are always available in `/documents.json` when reader views are configured. Reader views help people find relevant content; use `access.policy` to decide whether a page is published at all.
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: guide.reader-filters
3
+ title: Reader views
4
+ summary: Reader-view configuration, page and section marks, controls, and
5
+ agent-facing behavior.
6
+ type: reference
7
+ area: discovery
8
+ subarea: discovery-reader-views
9
+ canonical: /author/reader-views
10
+ ---
11
+
12
+ # Reader views
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Reader views
19
+
20
+ **Updated: 2026-10-25.**
21
+
22
+ Parent page: [Full Markdown page](/author/reader-views.md)
23
+
24
+ A reader view changes which pages appear in navigation and search. It also controls document cards and marked sections within pages. The site still publishes one URL for each page. A first-time visitor sees all content; a choice is saved in the browser and added to the URL so it can be shared.
25
+
26
+ Reader views are visibility controls, not access controls. All published page and section content remains available in site files and Markdown twins. Use `access.policy` to exclude a page from a public build, and host-level authorization to protect private content.
27
+
28
+ To build separate sites from the same source using these facets, use [build-time page selection](https://www.shoalrun.com/publish/single-source-sites.md) with `site.contentFilter`. That selector excludes unmatched pages from the output. A browser reader view continues to affect visibility within a published site.
29
+
30
+ ## Mark pages
31
+
32
+ Use the existing `audiences` field for the `audience` facet. `product`, `area`, and `subarea` can each supply a single choice for a same-named facet. Use `readerFilters` for other facets or when a page needs multiple choices in one facet. All of these fields work with frontmatter defaults and enforced values.
33
+
34
+ ```yaml title="content/payments-dashboard.mdx"
35
+ ---
36
+ id: guide.payments-dashboard
37
+ title: Review payments in the dashboard
38
+ type: guide
39
+ slug: /payments/dashboard
40
+ audiences: [ui]
41
+ product: payments
42
+ area: reporting
43
+ subarea: settlements
44
+ ---
45
+ ```
46
+
47
+ When a facet is configured, `audiences` and same-named category values must use its choice IDs. You can instead use `readerFilters.audience` or `readerFilters.product`, but do not put both forms for the same facet on one page. An explicit page value overrides a `typeDefaults` value for that facet. Categories without matching configured facets remain taxonomy metadata only. Pages with no marks remain visible in every view.
48
+
49
+ The page marks control navigation, search, and cards that point to the page. They do not change its URL. A direct link to a page outside the current view opens the page in full. A notice offers actions to switch view or show all content.
@@ -0,0 +1,49 @@
1
+ ---
2
+ id: guide.reader-filters
3
+ title: Reader views
4
+ summary: Reader-view configuration, page and section marks, controls, and
5
+ agent-facing behavior.
6
+ type: reference
7
+ area: discovery
8
+ subarea: discovery-reader-views
9
+ canonical: /author/reader-views
10
+ ---
11
+
12
+ # Reader views
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Reader views
19
+
20
+ **Updated: 2026-10-25.**
21
+
22
+ Parent page: [Full Markdown page](/author/reader-views.md)
23
+
24
+ A reader view changes which pages appear in navigation and search. It also controls document cards and marked sections within pages. The site still publishes one URL for each page. A first-time visitor sees all content; a choice is saved in the browser and added to the URL so it can be shared.
25
+
26
+ Reader views are visibility controls, not access controls. All published page and section content remains available in site files and Markdown twins. Use `access.policy` to exclude a page from a public build, and host-level authorization to protect private content.
27
+
28
+ To build separate sites from the same source using these facets, use [build-time page selection](https://www.shoalrun.com/publish/single-source-sites.md) with `site.contentFilter`. That selector excludes unmatched pages from the output. A browser reader view continues to affect visibility within a published site.
29
+
30
+ ## Mark sections and add an entry choice
31
+
32
+ Use `ReaderSection` for content that belongs to a narrower view within an otherwise shared page. Content outside these blocks stays visible to everyone. Sections can contain Markdown and supported MDX components, but reader sections cannot be nested.
33
+
34
+ ```mdx title="content/get-started.mdx"
35
+ <ReaderChoice audience="ui" label="Use the dashboard" />
36
+ <ReaderChoice audience="developer" label="Build with the API" />
37
+
38
+ Everyone needs an account before starting.
39
+
40
+ <ReaderSection audience="ui">
41
+ Open **Settings** in the dashboard.
42
+ </ReaderSection>
43
+
44
+ <ReaderSection audience="developer" product="payments">
45
+ Create an API token, then run the payment CLI.
46
+ </ReaderSection>
47
+ ```
48
+
49
+ `ReaderChoice` changes only the facets named on the button. It can set several facets at once, and comma-separated values select more than one choice within a facet.
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: guide.reader-filters
3
+ title: Reader views
4
+ summary: Reader-view configuration, page and section marks, controls, and
5
+ agent-facing behavior.
6
+ type: reference
7
+ area: discovery
8
+ subarea: discovery-reader-views
9
+ canonical: /author/reader-views
10
+ ---
11
+
12
+ # Reader views
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Reader views
19
+
20
+ **Updated: 2026-10-25.**
21
+
22
+ Parent page: [Full Markdown page](/author/reader-views.md)
23
+
24
+ A reader view changes which pages appear in navigation and search. It also controls document cards and marked sections within pages. The site still publishes one URL for each page. A first-time visitor sees all content; a choice is saved in the browser and added to the URL so it can be shared.
25
+
26
+ Reader views are visibility controls, not access controls. All published page and section content remains available in site files and Markdown twins. Use `access.policy` to exclude a page from a public build, and host-level authorization to protect private content.
27
+
28
+ To build separate sites from the same source using these facets, use [build-time page selection](https://www.shoalrun.com/publish/single-source-sites.md) with `site.contentFilter`. That selector excludes unmatched pages from the output. A browser reader view continues to affect visibility within a published site.
29
+
30
+ ## Place filter controls
31
+
32
+ The site config above puts a compact reader dropdown in the header and removes the sidebar control. `controls.sidebar` defaults to `true`; `controls.header` is optional. Both can be present, and they stay in sync. Each header control accepts `facet`, `display: select` or `checks`, and an optional `label`. Omit `facet` to show every configured facet.
33
+
34
+ Authors can place the same controls inside a page:
35
+
36
+ ```mdx
37
+ <ReaderFilter facet="audience" display="select" label="I use…" />
38
+ <ReaderFilter facet="product" display="checks" />
39
+ ```
40
+
41
+ `select` allows one choice per facet and includes **All**. `checks` allows multiple choices and includes **Show all** and **Copy view link**. `<ReaderFilter />` controls every facet. The component is interactive in HTML and omitted from the Markdown twin; marked content and `ReaderChoice` links remain in Markdown.
42
+
43
+ Set `scope="page"` on an in-page `ReaderChoice` or `ReaderFilter` to control only marked sections and cards on the current page. The site-wide choice still controls navigation and search. Page-only choices use the `pageView` URL parameter for sharing; they do not enter local storage. With no page-only choice, the page follows the site view. A page-scoped multi-select includes **Follow site view** to return to that state. The default scope is `site`.
@@ -0,0 +1,64 @@
1
+ ---
2
+ id: guide.reader-filters
3
+ title: Reader views
4
+ summary: Reader-view configuration, page and section marks, controls, and
5
+ agent-facing behavior.
6
+ type: reference
7
+ area: discovery
8
+ subarea: discovery-reader-views
9
+ canonical: /author/reader-views
10
+ ---
11
+
12
+ # Reader views
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Reader views
19
+
20
+ **Updated: 2026-10-25.**
21
+
22
+ Parent page: [Full Markdown page](/author/reader-views.md)
23
+
24
+ A reader view changes which pages appear in navigation and search. It also controls document cards and marked sections within pages. The site still publishes one URL for each page. A first-time visitor sees all content; a choice is saved in the browser and added to the URL so it can be shared.
25
+
26
+ Reader views are visibility controls, not access controls. All published page and section content remains available in site files and Markdown twins. Use `access.policy` to exclude a page from a public build, and host-level authorization to protect private content.
27
+
28
+ To build separate sites from the same source using these facets, use [build-time page selection](https://www.shoalrun.com/publish/single-source-sites.md) with `site.contentFilter`. That selector excludes unmatched pages from the output. A browser reader view continues to affect visibility within a published site.
29
+
30
+ ## Try the controls here
31
+
32
+ ### Filter the navigation
33
+
34
+ This site's **Focus** dropdown changes navigation, search, and document cards. The same control appears in the header on every page. Your choice persists across visits and can be shared in the URL.
35
+
36
+ - Choose **Write documentation** to bring forward pages about metadata, authoring, components, and API documentation. Pages about styling and deployment leave the navigation and search results.
37
+ - Choose **Configure & publish** to bring forward styling, search, chat, hosting, and deployment. Authoring-specific pages leave the navigation and search results.
38
+ - Choose **All** to see both paths. Foundational pages, such as [How Shoalrun works](https://www.shoalrun.com/concepts.md), stay in every view.
39
+
40
+ All published pages still work at their direct URLs. A focus choice is a reading aid, not an access rule.
41
+
42
+ This site's `focus` facet has `write` and `configure` choices. Generated API references use a `typeDefaults` mark of `write`. It also retains an internal `audience` facet for the hosted chat's author view and a `persona` facet for the page-only examples below. The header shows only Focus. These machine IDs contain no spaces; the longer labels are only shown to readers.
43
+
44
+ ### Filter examples on this page
45
+
46
+ The controls below use a separate `persona` facet and `scope="page"`. They change the examples below without changing this site's navigation or search. Choose a reader to see one example, or use the controls to show both.
47
+
48
+ [Show UI example](https://www.shoalrun.com/author/reader-views?pageView=persona%3Aui)
49
+
50
+ [Show developer example](https://www.shoalrun.com/author/reader-views?pageView=persona%3Adeveloper)
51
+
52
+ **For Reader: UI reader.**
53
+
54
+ **UI example**
55
+
56
+ In a dashboard guide, show the menu names and screen actions a reader needs. This section appears when **UI reader** is selected.
57
+
58
+ **For Reader: Developer.**
59
+
60
+ **Developer example**
61
+
62
+ In an API guide, show the request, required fields, and expected response. This section appears when **Developer** is selected.
63
+
64
+ **Show all** in the multi-select keeps both sections visible on this page. **Follow site view** removes the page-only choice and returns to the site's current reader view. The page-only choice is shareable with **Copy view link** and is not saved across visits.
@@ -0,0 +1,181 @@
1
+ ---
2
+ id: guide.recipe-drafts
3
+ title: Compose and maintain recipes
4
+ summary: Use Shoalrun ingredient files and a recipe spec to produce a complete,
5
+ reviewable task page.
6
+ type: how-to
7
+ area: authoring
8
+ subarea: authoring-composition
9
+ canonical: /author/recipe-drafts
10
+ ---
11
+
12
+ # Compose and maintain recipes
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Compose and maintain recipes
19
+
20
+ **Updated: 2026-10-26.**
21
+
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
+
24
+ If you only need one task page, you can write a `type: recipe` page directly. Ingredients and the draft assembler are optional. Start with [how the pieces fit](https://www.shoalrun.com/author/recipes.md) for the distinction between authoring a recipe and choosing one in a cookbook.
25
+
26
+ The built-in `recipe`, `ingredient`, and `cookbook` scaffolds are available in any project without registering templates. For example:
27
+
28
+ ```sh
29
+ shoalrun scaffold ingredient -n content/lookup-parcel.mdx
30
+ shoalrun scaffold recipe -n content/track-parcel.mdx
31
+ ```
32
+
33
+ See [templates](https://www.shoalrun.com/author/templates.md) for their outlines and project overrides.
34
+
35
+ ## 1. Write one reusable step
36
+
37
+ An ingredient is an MDX file with `type: ingredient`. Its body contains the instructions to reuse. This is a shortened version of `docs/content/ingredient-build-site.mdx`:
38
+
39
+ ````mdx title="docs/content/ingredient-build-site.mdx"
40
+ ---
41
+ id: ingredient.build-site
42
+ title: Build the Shoalrun docs site
43
+ summary: Compile authored documentation into local HTML and Markdown.
44
+ type: ingredient
45
+ slug: /ingredients/build-site
46
+ channel: production
47
+ version: current
48
+ language: en
49
+ access: { policy: public }
50
+ workflow:
51
+ inputs:
52
+ frameworkCli: The CLI compiled from this checkout.
53
+ outputs:
54
+ builtSite: The successful site build at docs/dist.
55
+ prerequisites:
56
+ - Run commands from the Shoalrun repository root.
57
+ check: "The build reports status: ok."
58
+ ---
59
+
60
+ Use the compiled CLI to build the documentation:
61
+
62
+ ```sh
63
+ node framework/dist/cli.js build docs/docs.config.yaml docs/dist
64
+ ```
65
+
66
+ If the build fails, fix the named source or configuration issue and rerun it.
67
+ ````
68
+
69
+ The `workflow` fields describe the step:
70
+
71
+ | Field | Meaning |
72
+ | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
73
+ | `inputs` | Names and descriptions of values or artifacts that must already be available. Here, an earlier step must provide `frameworkCli`. |
74
+ | `outputs` | Names and descriptions of what successful completion makes available to later steps. Here, `builtSite` means the successful output at `docs/dist`. |
75
+ | `prerequisites` | Setup instructions. The assembler includes identical strings once across the recipe. |
76
+ | `check` | An observable condition for the reader to evaluate before continuing. Required whenever `workflow` is present. |
77
+
78
+ These declarations do not run the command or create variables. The body tells the reader or agent what to do. The check tells them what result to inspect. The assembler checks names and order, so a typo such as `builtDocs` where the next step expects `builtSite` fails during assembly.
79
+
80
+ An ingredient can be private draft source for a recipe, or a published page readers can inspect. It must have a literal YAML header and match the recipe's default channel, version, and language. Without `workflow`, the assembler copies its body without checking handoffs.
81
+
82
+ ## 2. List the steps for one complete goal
83
+
84
+ The recipe spec chooses the ingredients and their order. A shortened version of `docs/recipe-specs/audit-docs.yaml` is:
85
+
86
+ ```yaml title="docs/recipe-specs/audit-docs.yaml"
87
+ schemaVersion: 1
88
+ id: recipe.audit-docs
89
+ title: Build and audit this documentation site
90
+ summary: Build current documentation and run the configured audits.
91
+ slug: /recipes/audit-docs
92
+ inputs:
93
+ repositoryCheckout: A local Shoalrun checkout with dependencies installed.
94
+ DOC_ID: Set the stable ID of the page you want to check.
95
+ ingredients:
96
+ - ../content/ingredient-compile-framework.mdx
97
+ - ../content/ingredient-build-site.mdx
98
+ - ../content/ingredient-inspect-build.mdx
99
+ - ../content/ingredient-audit-site.mdx
100
+ outcome: The build succeeds, both page formats exist, and configured audits pass.
101
+ ```
102
+
103
+ Paths are relative to this spec file. The initial `inputs` are available before the first ingredient. The compile ingredient produces `frameworkCli`; the build ingredient requires it and produces `builtSite`; the artifact-check ingredient requires that build and `DOC_ID`.
104
+
105
+ The assembler rejects a missing input, repeated output name, repeated ingredient ID, or publication mismatch. It does not choose an order for you or verify that an output has the described value. The `outcome` is the final check for the complete recipe; omitting it leaves a prompt for the author to complete.
106
+
107
+ ## 3. Generate a draft and review it
108
+
109
+ From this repository's root, compile the CLI and preview the draft using the existing spec:
110
+
111
+ ```sh
112
+ npm --prefix framework run build
113
+ node framework/dist/cli.js recipe draft \
114
+ --config docs/docs.config.yaml \
115
+ --spec docs/recipe-specs/audit-docs.yaml \
116
+ --out /tmp/shoalrun-audit-recipe.mdx --check
117
+ ```
118
+
119
+ `--check` prints the proposed content and reports `would-create`, `unchanged`, or `would-change`. Remove `--check` to create the file. The write command refuses to overwrite an existing file; choose a new output path for a new candidate.
120
+
121
+ The output is a complete MDX **draft** with setup, ordered ingredient bodies, handoff descriptions, per-step checks, and the final outcome. It also contains a draft notice and a review checklist. No model or API is called, and none of the recipe's commands are executed during generation.
122
+
123
+ Read the complete draft and follow its instructions in a suitable environment. Check that the handoffs describe real outputs, that failures have useful guidance, and that the final check proves the stated goal. Remove the draft notice and review checklist once that work is complete.
124
+
125
+ For your own project, place the reviewed recipe in its content directory, change `access.policy` to `public`, and build the site. The recipe then works as a standalone page. A [cookbook](https://www.shoalrun.com/author/cookbooks.md) can offer it as a choice by its document ID.
126
+
127
+ ## 4. Maintain Shoalrun's published recipe snapshots
128
+
129
+ This repository maintains five recipes from specs under `docs/recipe-specs/`. Their published pages are `docs/content/recipe-*.mdx`. The repository maintenance script regenerates these existing pages while preserving their publication IDs, routes, and card metadata.
130
+
131
+ | Change you want | File to edit |
132
+ | ------------------------------------------------- | ------------------------------------------------------- |
133
+ | Change a command or explanation shared by recipes | The corresponding `docs/content/ingredient-*.mdx` file. |
134
+ | Add, remove, or reorder a recipe step | That recipe's YAML spec under `docs/recipe-specs/`. |
135
+ | Change a recipe's starting inputs or final goal | The spec's `inputs` or `outcome`. |
136
+ | Change the choices or labels shown in a cookbook | `docs/config/cookbooks.yaml`. |
137
+ | Change a cookbook's introduction | Its `docs/content/cookbook-*.mdx` page. |
138
+
139
+ After reviewing ingredient or spec changes, run:
140
+
141
+ ```sh
142
+ node framework/scripts/build-shoalrun-recipes.mjs --write
143
+ git diff -- docs/content/recipe-*.mdx
144
+ npm run docs:build
145
+ npm run agent-docs:build
146
+ ```
147
+
148
+ The script replaces the five recipe bodies with their compositions and related-reading sections. Direct edits to those generated bodies are replaced on regeneration. Review the diff before treating the recipes as current.
149
+
150
+ To check freshness without changing files:
151
+
152
+ ```sh
153
+ node framework/scripts/build-shoalrun-recipes.mjs --check
154
+ ```
155
+
156
+ The test suite runs that check too. General `recipe draft` output has no automatic synchronization: it is an editable snapshot. The maintenance script above is this repository's explicit workflow for keeping its published recipes in sync.
157
+
158
+ ## Start an ingredient from an API example
159
+
160
+ `ingredient draft` creates starting material from one configured outgoing API operation and a named request example. For the included notification fixture:
161
+
162
+ ```sh
163
+ node framework/dist/cli.js ingredient draft \
164
+ --config framework/example-configs/notifications/docs.config.yaml \
165
+ --spec framework/example-configs/notifications/ingredient-specs/queue-welcome-email.yaml \
166
+ --out /tmp/shoalrun-email-ingredient.mdx --check
167
+ ```
168
+
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
+
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.
172
+
173
+ ## Related reading
174
+
175
+ ### Related topics
176
+
177
+ - [Add an OpenAPI API](https://www.shoalrun.com/publish/api-references.md) — Configure the stable operation ID and review the OpenAPI source used by an API ingredient draft.
178
+
179
+ - [CookbookChooser](https://www.shoalrun.com/author/components/cookbook-chooser.md) — Let readers assemble reviewed recipes into a path in a cookbook.
180
+
181
+ - [Templates](https://www.shoalrun.com/author/templates.md) — Use a project template when an API example is not the right starting point.
@@ -0,0 +1,82 @@
1
+ ---
2
+ id: guide.recipe-drafts
3
+ title: Compose and maintain recipes
4
+ summary: Use Shoalrun ingredient files and a recipe spec to produce a complete,
5
+ reviewable task page.
6
+ type: how-to
7
+ area: authoring
8
+ subarea: authoring-composition
9
+ canonical: /author/recipe-drafts
10
+ ---
11
+
12
+ # Compose and maintain recipes
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigation/docs-50f26fe22670.txt) (ID: docs). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Recipes and cookbooks > Compose and maintain recipes
19
+
20
+ **Updated: 2026-10-26.**
21
+
22
+ Parent page: [Full Markdown page](/author/recipe-drafts.md)
23
+
24
+ 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.
25
+
26
+ If you only need one task page, you can write a `type: recipe` page directly. Ingredients and the draft assembler are optional. Start with [how the pieces fit](https://www.shoalrun.com/author/recipes.md) for the distinction between authoring a recipe and choosing one in a cookbook.
27
+
28
+ The built-in `recipe`, `ingredient`, and `cookbook` scaffolds are available in any project without registering templates. For example:
29
+
30
+ ```sh
31
+ shoalrun scaffold ingredient -n content/lookup-parcel.mdx
32
+ shoalrun scaffold recipe -n content/track-parcel.mdx
33
+ ```
34
+
35
+ See [templates](https://www.shoalrun.com/author/templates.md) for their outlines and project overrides.
36
+
37
+ ## 1. Write one reusable step
38
+
39
+ An ingredient is an MDX file with `type: ingredient`. Its body contains the instructions to reuse. This is a shortened version of `docs/content/ingredient-build-site.mdx`:
40
+
41
+ ````mdx title="docs/content/ingredient-build-site.mdx"
42
+ ---
43
+ id: ingredient.build-site
44
+ title: Build the Shoalrun docs site
45
+ summary: Compile authored documentation into local HTML and Markdown.
46
+ type: ingredient
47
+ slug: /ingredients/build-site
48
+ channel: production
49
+ version: current
50
+ language: en
51
+ access: { policy: public }
52
+ workflow:
53
+ inputs:
54
+ frameworkCli: The CLI compiled from this checkout.
55
+ outputs:
56
+ builtSite: The successful site build at docs/dist.
57
+ prerequisites:
58
+ - Run commands from the Shoalrun repository root.
59
+ check: "The build reports status: ok."
60
+ ---
61
+
62
+ Use the compiled CLI to build the documentation:
63
+
64
+ ```sh
65
+ node framework/dist/cli.js build docs/docs.config.yaml docs/dist
66
+ ```
67
+
68
+ If the build fails, fix the named source or configuration issue and rerun it.
69
+ ````
70
+
71
+ The `workflow` fields describe the step:
72
+
73
+ | Field | Meaning |
74
+ | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- |
75
+ | `inputs` | Names and descriptions of values or artifacts that must already be available. Here, an earlier step must provide `frameworkCli`. |
76
+ | `outputs` | Names and descriptions of what successful completion makes available to later steps. Here, `builtSite` means the successful output at `docs/dist`. |
77
+ | `prerequisites` | Setup instructions. The assembler includes identical strings once across the recipe. |
78
+ | `check` | An observable condition for the reader to evaluate before continuing. Required whenever `workflow` is present. |
79
+
80
+ These declarations do not run the command or create variables. The body tells the reader or agent what to do. The check tells them what result to inspect. The assembler checks names and order, so a typo such as `builtDocs` where the next step expects `builtSite` fails during assembly.
81
+
82
+ An ingredient can be private draft source for a recipe, or a published page readers can inspect. It must have a literal YAML header and match the recipe's default channel, version, and language. Without `workflow`, the assembler copies its body without checking handoffs.