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

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 (686) hide show
  1. package/AUTHORING.md +29 -0
  2. package/CHANGELOG.md +54 -0
  3. package/DEPLOYMENT-PROFILES.md +96 -5
  4. package/README.md +106 -25
  5. package/agent-docs/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt +23 -17
  6. package/agent-docs/SNAPSHOT.json +5 -5
  7. package/agent-docs/api-docs/focused-contracts.md +4 -4
  8. package/agent-docs/api-docs/generate.md +11 -11
  9. package/agent-docs/api-docs/generate.sections/add-useful-examples.md +3 -3
  10. package/agent-docs/api-docs/generate.sections/choose-generated-references-or-mdx.md +4 -4
  11. package/agent-docs/api-docs/generate.sections/describe-filters-that-do-not-use-their-openapi-parameter-name.md +1 -1
  12. package/agent-docs/api-docs/generate.sections/generate-many-pages-selectively.md +2 -2
  13. package/agent-docs/api-docs/generate.sections/link-guides-to-api-references.md +1 -1
  14. package/agent-docs/api-docs/generate.sections/map-extension-values-to-shoalrun-status.md +1 -1
  15. package/agent-docs/api-docs/generate.sections/override-generated-reference-order-in-navigation.md +4 -4
  16. package/agent-docs/api-docs/generate.sections/related-reading.md +1 -1
  17. package/agent-docs/api-docs/generate.sections/use-a-template-for-editorial-context.md +2 -2
  18. package/agent-docs/api-docs/support.md +7 -7
  19. package/agent-docs/author/add-page.md +3 -3
  20. package/agent-docs/author/agent-overview.md +3 -3
  21. package/agent-docs/author/agent-workflow.md +7 -7
  22. package/agent-docs/author/analytics.md +27 -27
  23. package/agent-docs/author/analytics.sections/adapter-exports-and-consent.md +3 -3
  24. package/agent-docs/author/analytics.sections/built-in-events.md +15 -15
  25. package/agent-docs/author/analytics.sections/configure-an-adapter.md +1 -1
  26. package/agent-docs/author/analytics.sections/custom-interactions.md +2 -2
  27. package/agent-docs/author/analytics.sections/event-format.md +2 -2
  28. package/agent-docs/author/analytics.sections/html-markdown-and-agents.md +4 -4
  29. package/agent-docs/author/analytics.sections/inspect-events-locally.md +2 -2
  30. package/agent-docs/author/analytics.sections/map-events-to-your-service.md +3 -3
  31. package/agent-docs/author/analytics.sections/posthog-example.md +3 -3
  32. package/agent-docs/author/analytics.sections/related-reading.md +1 -1
  33. package/agent-docs/author/authoring-agent.md +3 -3
  34. package/agent-docs/author/coding-agent.md +4 -4
  35. package/agent-docs/author/components/api-embeds.md +6 -6
  36. package/agent-docs/author/components/api-embeds.sections/apiexample.md +3 -3
  37. package/agent-docs/author/components/api-embeds.sections/html-markdown-and-agents.md +1 -1
  38. package/agent-docs/author/components/api-embeds.sections/related-reading.md +1 -1
  39. package/agent-docs/author/components/badge.md +2 -2
  40. package/agent-docs/author/components/callout.md +2 -2
  41. package/agent-docs/author/components/cards.md +16 -16
  42. package/agent-docs/author/components/cards.sections/add-a-lucide-icon.md +4 -4
  43. package/agent-docs/author/components/cards.sections/build-a-collection.md +7 -7
  44. package/agent-docs/author/components/cards.sections/curate-a-reading-list.md +9 -9
  45. package/agent-docs/author/components/cards.sections/html-markdown-and-agents.md +3 -3
  46. package/agent-docs/author/components/cards.sections/link-to-one-document.md +3 -3
  47. package/agent-docs/author/components/cards.sections/override-card-text.md +5 -5
  48. package/agent-docs/author/components/cards.sections/related-reading.md +3 -3
  49. package/agent-docs/author/components/code-blocks.md +2 -2
  50. package/agent-docs/author/components/collapsible.md +3 -3
  51. package/agent-docs/author/components/cookbook-chooser.md +5 -5
  52. package/agent-docs/author/components/custom/react.md +8 -8
  53. package/agent-docs/author/components/custom/react.sections/html-markdown-and-agents.md +3 -3
  54. package/agent-docs/author/components/custom/react.sections/interactive-react-example.md +2 -2
  55. package/agent-docs/author/components/custom/react.sections/registration.md +1 -1
  56. package/agent-docs/author/components/custom/react.sections/related-reading.md +1 -1
  57. package/agent-docs/author/components/custom/react.sections/share-the-model-with-the-browser.md +3 -3
  58. package/agent-docs/author/components/custom/react.sections/where-the-content-lives.md +3 -3
  59. package/agent-docs/author/components/custom.md +7 -7
  60. package/agent-docs/author/components/definition-list.md +2 -2
  61. package/agent-docs/author/components/diagrams/d2-gallery.md +2 -2
  62. package/agent-docs/author/components/diagrams/d2-gallery.sections/basic-shapes.md +2 -2
  63. package/agent-docs/author/components/diagrams/d2-gallery.sections/flows-and-structures.md +2 -2
  64. package/agent-docs/author/components/diagrams/d2-gallery.sections/html-markdown-and-agents.md +2 -2
  65. package/agent-docs/author/components/diagrams/d2-gallery.sections/layout-engines.md +2 -2
  66. package/agent-docs/author/components/diagrams/d2-gallery.sections/related-reading.md +2 -2
  67. package/agent-docs/author/components/diagrams/d2-gallery.sections/sequences-and-grids.md +2 -2
  68. package/agent-docs/author/components/diagrams/d2-gallery.sections/styles-and-code.md +2 -2
  69. package/agent-docs/author/components/diagrams/pele-gallery.md +3 -3
  70. package/agent-docs/author/components/diagrams/pele-gallery.sections/charts-and-planning.md +2 -2
  71. package/agent-docs/author/components/diagrams/pele-gallery.sections/flowchart-shapes.md +2 -2
  72. package/agent-docs/author/components/diagrams/pele-gallery.sections/flows-and-behavior.md +2 -2
  73. package/agent-docs/author/components/diagrams/pele-gallery.sections/html-markdown-and-agents.md +3 -3
  74. package/agent-docs/author/components/diagrams/pele-gallery.sections/related-reading.md +2 -2
  75. package/agent-docs/author/components/diagrams/pele-gallery.sections/specialized-diagrams.md +2 -2
  76. package/agent-docs/author/components/diagrams/pele-gallery.sections/systems-and-structures.md +2 -2
  77. package/agent-docs/author/components/diagrams.md +8 -8
  78. package/agent-docs/author/components/doc-link.md +3 -3
  79. package/agent-docs/author/components/fields.md +18 -18
  80. package/agent-docs/author/components/file-tree.md +2 -2
  81. package/agent-docs/author/components/images.md +5 -5
  82. package/agent-docs/author/components/info-hint.md +3 -3
  83. package/agent-docs/author/components/kbd.md +2 -2
  84. package/agent-docs/author/components/math.md +2 -2
  85. package/agent-docs/author/components/only.md +3 -3
  86. package/agent-docs/author/components/progress.md +3 -3
  87. package/agent-docs/author/components/steps.md +2 -2
  88. package/agent-docs/author/components/tables.md +2 -2
  89. package/agent-docs/author/components/tabs.md +5 -5
  90. package/agent-docs/author/components/timeline.md +2 -2
  91. package/agent-docs/author/components/tooltips.md +2 -2
  92. package/agent-docs/author/components/walkthroughs.md +2 -2
  93. package/agent-docs/author/components/walkthroughs.sections/attributes.md +1 -1
  94. package/agent-docs/author/components/walkthroughs.sections/build-up-code.md +1 -1
  95. package/agent-docs/author/components/walkthroughs.sections/choose-a-layout.md +2 -2
  96. package/agent-docs/author/components/walkthroughs.sections/explain-one-file.md +1 -1
  97. package/agent-docs/author/components/walkthroughs.sections/html-markdown-and-agents.md +1 -1
  98. package/agent-docs/author/components/walkthroughs.sections/related-reading.md +1 -1
  99. package/agent-docs/author/components/walkthroughs.sections/syntax.md +1 -1
  100. package/agent-docs/author/components/walkthroughs.sections/take-code-from-a-file.md +1 -1
  101. package/agent-docs/author/components.md +2 -2
  102. package/agent-docs/author/content.md +3 -3
  103. package/agent-docs/author/cookbooks.md +9 -9
  104. package/agent-docs/author/css.md +4 -4
  105. package/agent-docs/author/css.sections/borders-fields-and-navigation-tokens.md +3 -3
  106. package/agent-docs/author/css.sections/core-color-tokens.md +3 -3
  107. package/agent-docs/author/css.sections/html-markdown-and-agents.md +4 -4
  108. package/agent-docs/author/css.sections/page-attributes.md +3 -3
  109. package/agent-docs/author/css.sections/page-transitions.md +3 -3
  110. package/agent-docs/author/css.sections/responsive-behavior.md +3 -3
  111. package/agent-docs/author/css.sections/status-code-and-callout-tokens.md +3 -3
  112. package/agent-docs/author/css.sections/typography-shape-and-width-tokens.md +3 -3
  113. package/agent-docs/author/custom-metadata.md +13 -13
  114. package/agent-docs/author/custom-metadata.sections/add-a-custom-page-field.md +4 -4
  115. package/agent-docs/author/custom-metadata.sections/choose-text-for-each-surface.md +3 -3
  116. package/agent-docs/author/custom-metadata.sections/preview-changes-to-metadata-providers.md +2 -2
  117. package/agent-docs/author/custom-metadata.sections/read-metadata-from-a-project-module.md +3 -3
  118. package/agent-docs/author/custom-metadata.sections/related-reading.md +1 -1
  119. package/agent-docs/author/design-templates.md +3 -3
  120. package/agent-docs/author/design-writing-guides.md +3 -3
  121. package/agent-docs/author/frontmatter-reference.md +45 -6
  122. package/agent-docs/author/frontmatter-reference.sections/categorize-connect-and-present-the-page.md +64 -0
  123. package/agent-docs/author/frontmatter-reference.sections/choose-a-publication-and-visibility.md +2 -2
  124. package/agent-docs/author/frontmatter-reference.sections/control-output-details.md +2 -2
  125. package/agent-docs/author/frontmatter-reference.sections/feature-availability.md +59 -0
  126. package/agent-docs/author/frontmatter-reference.sections/global-defaults-and-enforced-values.md +2 -2
  127. package/agent-docs/author/frontmatter-reference.sections/html-markdown-and-agents.md +3 -3
  128. package/agent-docs/author/frontmatter-reference.sections/identify-and-route-a-page.md +2 -2
  129. package/agent-docs/author/frontmatter-reference.sections/point-agents-to-it.md +2 -2
  130. package/agent-docs/author/frontmatter-reference.sections/product-publication-fields.md +37 -0
  131. package/agent-docs/author/frontmatter-reference.sections/project-defined-fields.md +2 -2
  132. package/agent-docs/author/frontmatter-reference.sections/related-reading.md +2 -2
  133. package/agent-docs/author/frontmatter-reference.sections/use-the-local-files-while-authoring.md +4 -4
  134. package/agent-docs/author/frontmatter-reference.sections/when-the-files-update.md +2 -2
  135. package/agent-docs/author/frontmatter.md +13 -13
  136. package/agent-docs/author/frontmatter.sections/audience-badges.md +3 -3
  137. package/agent-docs/author/frontmatter.sections/give-deprecation-guidance.md +4 -4
  138. package/agent-docs/author/frontmatter.sections/global-defaults-and-enforced-values.md +1 -1
  139. package/agent-docs/author/frontmatter.sections/optional-native-fields.md +4 -4
  140. package/agent-docs/author/frontmatter.sections/publication-fields.md +2 -2
  141. package/agent-docs/author/frontmatter.sections/publishing-policy.md +1 -1
  142. package/agent-docs/author/frontmatter.sections/related-metadata-tasks.md +1 -1
  143. package/agent-docs/author/frontmatter.sections/related-reading.md +1 -1
  144. package/agent-docs/author/frontmatter.sections/required-after-inheritance.md +1 -1
  145. package/agent-docs/author/frontmatter.sections/seo-fields.md +2 -2
  146. package/agent-docs/author/frontmatter.sections/validation-rules.md +3 -3
  147. package/agent-docs/author/markdown-metadata.md +20 -20
  148. package/agent-docs/author/navigation.md +12 -12
  149. package/agent-docs/author/navigation.sections/arrange-authored-pages.md +4 -4
  150. package/agent-docs/author/navigation.sections/fill-an-api-tag-group.md +2 -2
  151. package/agent-docs/author/navigation.sections/hide-group-page-counts.md +4 -4
  152. package/agent-docs/author/navigation.sections/html-markdown-and-agents.md +4 -4
  153. package/agent-docs/author/navigation.sections/local-api-preview.md +2 -2
  154. package/agent-docs/author/navigation.sections/mix-guides-and-api-references.md +3 -3
  155. package/agent-docs/author/navigation.sections/optionally-split-a-large-menu-into-files.md +2 -2
  156. package/agent-docs/author/navigation.sections/reach-navigation-while-reading.md +2 -2
  157. package/agent-docs/author/navigation.sections/related-reading.md +2 -2
  158. package/agent-docs/author/navigation.sections/split-navigation-into-tabs.md +4 -4
  159. package/agent-docs/author/navigation.sections/subject-lifecycle-labels.md +3 -3
  160. package/agent-docs/author/reader-views.md +9 -9
  161. package/agent-docs/author/reader-views.sections/configure-the-choices.md +2 -2
  162. package/agent-docs/author/reader-views.sections/connect-your-own-control.md +1 -1
  163. package/agent-docs/author/reader-views.sections/how-it-works-for-agents.md +3 -3
  164. package/agent-docs/author/reader-views.sections/mark-pages.md +3 -3
  165. package/agent-docs/author/reader-views.sections/mark-sections-and-add-an-entry-choice.md +2 -2
  166. package/agent-docs/author/reader-views.sections/place-filter-controls.md +2 -2
  167. package/agent-docs/author/reader-views.sections/try-the-controls-here.md +2 -2
  168. package/agent-docs/author/recipe-drafts.md +5 -5
  169. package/agent-docs/author/recipe-drafts.sections/1-write-one-reusable-step.md +2 -2
  170. package/agent-docs/author/recipe-drafts.sections/2-list-the-steps-for-one-complete-goal.md +2 -2
  171. package/agent-docs/author/recipe-drafts.sections/3-generate-a-draft-and-review-it.md +1 -1
  172. package/agent-docs/author/recipe-drafts.sections/4-maintain-shoalrun-s-published-recipe-snapshots.md +2 -2
  173. package/agent-docs/author/recipe-drafts.sections/related-reading.md +1 -1
  174. package/agent-docs/author/recipe-drafts.sections/start-an-ingredient-from-an-api-example.md +2 -2
  175. package/agent-docs/author/recipes.md +7 -7
  176. package/agent-docs/author/recipes.sections/how-agents-use-this.md +2 -2
  177. package/agent-docs/author/recipes.sections/one-example-from-shoalrun.md +2 -2
  178. package/agent-docs/author/recipes.sections/related-reading.md +1 -1
  179. package/agent-docs/author/recipes.sections/try-a-complete-workflow.md +1 -1
  180. package/agent-docs/author/recipes.sections/use-recipes-for-task-oriented-how-tos.md +3 -3
  181. package/agent-docs/author/recipes.sections/what-changing-an-ingredient-updates.md +2 -2
  182. package/agent-docs/author/recipes.sections/what-each-file-does.md +1 -1
  183. package/agent-docs/author/recipes.sections/what-happens-and-when.md +2 -2
  184. package/agent-docs/author/related-reading.md +11 -11
  185. package/agent-docs/author/related-reading.sections/automatic-footers.md +3 -3
  186. package/agent-docs/author/related-reading.sections/declare-relationships.md +3 -3
  187. package/agent-docs/author/related-reading.sections/display-related-documents.md +3 -3
  188. package/agent-docs/author/related-reading.sections/html-markdown-and-agents.md +1 -1
  189. package/agent-docs/author/related-reading.sections/inspect-output-and-changes.md +2 -2
  190. package/agent-docs/author/related-reading.sections/reading-paths-in-section-markdown.md +3 -3
  191. package/agent-docs/author/related-reading.sections/related-reading.md +1 -1
  192. package/agent-docs/author/related-reading.sections/where-relationship-explanations-come-from.md +2 -2
  193. package/agent-docs/author/release-notes.md +8 -8
  194. package/agent-docs/author/search.md +43 -39
  195. package/agent-docs/author/search.sections/agent-and-mcp-search-scope.md +12 -8
  196. package/agent-docs/author/search.sections/choose-a-provider.md +8 -8
  197. package/agent-docs/author/search.sections/cli-and-mcp-ranking-details.md +4 -4
  198. package/agent-docs/author/search.sections/enable-included-semantic-search.md +5 -5
  199. package/agent-docs/author/search.sections/hosted-semantic-search-limits.md +3 -3
  200. package/agent-docs/author/search.sections/html-markdown-and-agents.md +3 -3
  201. package/agent-docs/author/search.sections/lexical-search.md +6 -6
  202. package/agent-docs/author/search.sections/local-semantic-preview.md +3 -3
  203. package/agent-docs/author/search.sections/read-a-search-result-with-an-agent.md +2 -2
  204. package/agent-docs/author/search.sections/related-reading.md +2 -2
  205. package/agent-docs/author/search.sections/reuse-the-lexical-index.md +5 -5
  206. package/agent-docs/author/search.sections/turn-search-off.md +3 -3
  207. package/agent-docs/author/search.sections/use-the-search-box.md +2 -2
  208. package/agent-docs/author/search.sections/write-a-custom-provider.md +11 -11
  209. package/agent-docs/author/snippets.md +3 -3
  210. package/agent-docs/author/taxonomy.md +3 -3
  211. package/agent-docs/author/templates.md +16 -14
  212. package/agent-docs/author/templates.sections/built-in-feature-templates.md +2 -2
  213. package/agent-docs/author/templates.sections/built-in-templates.md +2 -2
  214. package/agent-docs/author/templates.sections/choose-formatting-enforcement-for-your-project.md +7 -7
  215. package/agent-docs/author/templates.sections/create-or-edit-a-project-template.md +8 -6
  216. package/agent-docs/author/templates.sections/keep-the-four-shapes-distinct.md +2 -2
  217. package/agent-docs/author/templates.sections/project-added-templates.md +3 -3
  218. package/agent-docs/author/templates.sections/related-reading.md +2 -2
  219. package/agent-docs/author/templates.sections/scaffold-a-page.md +2 -2
  220. package/agent-docs/author/templates.sections/short-cli-and-derived-values.md +3 -3
  221. package/agent-docs/author/templates.sections/what-every-template-gives-you.md +3 -3
  222. package/agent-docs/author/workspace/commands.md +4 -4
  223. package/agent-docs/author/workspace.md +7 -7
  224. package/agent-docs/author/writing-style.md +33 -18
  225. package/agent-docs/author/writing-style.sections/adapt-this-example.md +2 -2
  226. package/agent-docs/author/writing-style.sections/choose-components-by-reader-need.md +3 -3
  227. package/agent-docs/author/writing-style.sections/evidence-and-uncertainty.md +4 -4
  228. package/agent-docs/author/writing-style.sections/example-audience-and-scope.md +2 -2
  229. package/agent-docs/author/writing-style.sections/feature-availability.md +20 -7
  230. package/agent-docs/author/writing-style.sections/ingredients-recipes-and-cookbooks.md +5 -5
  231. package/agent-docs/author/writing-style.sections/page-purpose-and-structure.md +4 -4
  232. package/agent-docs/author/writing-style.sections/procedures-and-examples.md +4 -4
  233. package/agent-docs/author/writing-style.sections/related-reading.md +2 -2
  234. package/agent-docs/author/writing-style.sections/review-a-draft.md +3 -3
  235. package/agent-docs/author/writing-style.sections/reviewed-writing-examples.md +2 -2
  236. package/agent-docs/author/writing-style.sections/voice-and-explanations.md +4 -2
  237. package/agent-docs/changelog/2026-10-14-agent-readiness.md +2 -2
  238. package/agent-docs/changelog/2026-10-15-evaluation-builds.md +9 -9
  239. package/agent-docs/changelog/2026-10-16-navigation-layouts.md +4 -4
  240. package/agent-docs/changelog/2026-10-17-mcp-hosting.md +2 -2
  241. package/agent-docs/changelog/2026-10-18-search-and-tooltips.md +3 -3
  242. package/agent-docs/changelog/2026-10-19-visual-navigation.md +3 -3
  243. package/agent-docs/changelog/2026-10-25.md +2 -2
  244. package/agent-docs/changelog/2026-10-26.md +4 -4
  245. package/agent-docs/changelog/2026-10-27.md +1 -1
  246. package/agent-docs/changelog/2026-10-28.md +3 -3
  247. package/agent-docs/changelog/2026-10-30.md +1 -1
  248. package/agent-docs/changelog/2026-11-03.md +5 -5
  249. package/agent-docs/changelog/2026-11-04-runtime-packaging.md +46 -0
  250. package/agent-docs/changelog/authoring-preview.md +3 -3
  251. package/agent-docs/changelog/authoring-search.md +1 -1
  252. package/agent-docs/changelog/authoring-tools.md +2 -2
  253. package/agent-docs/changelog/branding-security.md +66 -0
  254. package/agent-docs/changelog/product-publications.md +60 -0
  255. package/agent-docs/changelog/working-tree-skill.md +1 -1
  256. package/agent-docs/changelog.md +25 -1
  257. package/agent-docs/chat/checks.md +11 -11
  258. package/agent-docs/chat/checks.sections/answer-ahead-of-time.md +1 -1
  259. package/agent-docs/chat/checks.sections/answer-for-one-audience.md +2 -2
  260. package/agent-docs/chat/checks.sections/answer-without-a-model.md +2 -2
  261. package/agent-docs/chat/checks.sections/follow-up-questions.md +2 -2
  262. package/agent-docs/chat/checks.sections/how-an-answer-is-checked.md +3 -3
  263. package/agent-docs/chat/checks.sections/questions-with-several-parts.md +3 -3
  264. package/agent-docs/chat/checks.sections/related-reading.md +1 -1
  265. package/agent-docs/chat/checks.sections/reuse-answers.md +4 -4
  266. package/agent-docs/chat/host.md +28 -10
  267. package/agent-docs/chat/host.sections/cap-the-daily-spend.md +2 -2
  268. package/agent-docs/chat/host.sections/keep-a-record-of-questions.md +3 -3
  269. package/agent-docs/chat/host.sections/related-reading.md +2 -2
  270. package/agent-docs/chat/passage-index.md +17 -17
  271. package/agent-docs/chat/passage-index.sections/build-the-index.md +2 -2
  272. package/agent-docs/chat/passage-index.sections/embed-passages.md +3 -3
  273. package/agent-docs/chat/passage-index.sections/how-the-default-chunker-splits-a-page.md +2 -2
  274. package/agent-docs/chat/passage-index.sections/limits.md +2 -2
  275. package/agent-docs/chat/passage-index.sections/passage-ids-and-links.md +3 -3
  276. package/agent-docs/chat/passage-index.sections/related-reading.md +2 -2
  277. package/agent-docs/chat/passage-index.sections/what-a-passage-contains.md +15 -15
  278. package/agent-docs/chat/prepared-answers.md +4 -4
  279. package/agent-docs/chat/settings.md +4 -4
  280. package/agent-docs/chat/settings.sections/choose-the-scorer.md +1 -1
  281. package/agent-docs/chat/settings.sections/configure-chat.md +2 -2
  282. package/agent-docs/chat/settings.sections/configure-retrieval.md +1 -1
  283. package/agent-docs/chat/settings.sections/related-reading.md +1 -1
  284. package/agent-docs/chat/settings.sections/send-extra-request-fields.md +2 -2
  285. package/agent-docs/chat/settings.sections/use-more-than-one-model.md +2 -2
  286. package/agent-docs/chat/settings.sections/when-the-scorer-is-down.md +1 -1
  287. package/agent-docs/chat/setup.md +2 -2
  288. package/agent-docs/chat.md +3 -3
  289. package/agent-docs/cli.md +73 -59
  290. package/agent-docs/cli.sections/audit-a-project-and-api-sources.md +11 -7
  291. package/agent-docs/cli.sections/author-pages.md +16 -12
  292. package/agent-docs/cli.sections/build-and-serve.md +30 -18
  293. package/agent-docs/cli.sections/inspect-config-and-operations.md +13 -9
  294. package/agent-docs/cli.sections/npm-scripts-in-this-repository.md +7 -3
  295. package/agent-docs/cli.sections/related-reading.md +6 -2
  296. package/agent-docs/cli.sections/search-and-chat.md +24 -18
  297. package/agent-docs/cli.sections/start-a-project.md +7 -3
  298. package/agent-docs/cli.sections/working-tree-authoring-tools.md +7 -3
  299. package/agent-docs/concepts.md +2 -2
  300. package/agent-docs/config/apis.md +2 -2
  301. package/agent-docs/config/content.md +3 -3
  302. package/agent-docs/config/content.sections/authoring.md +3 -3
  303. package/agent-docs/config/content.sections/badges.md +1 -1
  304. package/agent-docs/config/content.sections/callouts.md +1 -1
  305. package/agent-docs/config/content.sections/cookbooks.md +1 -1
  306. package/agent-docs/config/content.sections/frontmatter.md +1 -1
  307. package/agent-docs/config/content.sections/readerfilters.md +1 -1
  308. package/agent-docs/config/content.sections/related-reading.md +1 -1
  309. package/agent-docs/config/content.sections/relationships.md +1 -1
  310. package/agent-docs/config/content.sections/snippets.md +1 -1
  311. package/agent-docs/config/content.sections/templates.md +1 -1
  312. package/agent-docs/config/content.sections/variables.md +1 -1
  313. package/agent-docs/config/examples.md +4 -4
  314. package/agent-docs/config/examples.sections/feature-showcase.md +4 -4
  315. package/agent-docs/config/examples.sections/minimal-site.md +2 -2
  316. package/agent-docs/config/examples.sections/multilingual-help-center.md +2 -2
  317. package/agent-docs/config/examples.sections/parcel-api-documentation.md +2 -2
  318. package/agent-docs/config/examples.sections/related-reading.md +2 -2
  319. package/agent-docs/config/examples.sections/shared-company-preset.md +2 -2
  320. package/agent-docs/config/integrations.md +4 -4
  321. package/agent-docs/config/outputs.md +22 -16
  322. package/agent-docs/config/outputs.sections/exports.md +19 -13
  323. package/agent-docs/config/outputs.sections/metadata.md +2 -2
  324. package/agent-docs/config/outputs.sections/related-reading.md +1 -1
  325. package/agent-docs/config/publishing.md +29 -19
  326. package/agent-docs/config/publishing.sections/navigation.md +2 -2
  327. package/agent-docs/config/publishing.sections/redirects.md +8 -8
  328. package/agent-docs/config/publishing.sections/related-reading.md +2 -2
  329. package/agent-docs/config/site.md +42 -18
  330. package/agent-docs/config/site.sections/related-reading.md +1 -1
  331. package/agent-docs/config/site.sections/theme.md +1 -1
  332. package/agent-docs/config.md +2 -2
  333. package/agent-docs/configuration.md +19 -19
  334. package/agent-docs/configuration.sections/build-several-sites-from-shared-content.md +1 -1
  335. package/agent-docs/configuration.sections/change-inherited-lists-deliberately.md +5 -5
  336. package/agent-docs/configuration.sections/extract-a-section-with-include.md +1 -1
  337. package/agent-docs/configuration.sections/inspect-and-validate-changes.md +5 -5
  338. package/agent-docs/configuration.sections/related-reading.md +1 -1
  339. package/agent-docs/configuration.sections/separate-config-inheritance-from-page-metadata.md +5 -5
  340. package/agent-docs/configuration.sections/share-defaults-through-extends.md +3 -3
  341. package/agent-docs/configuration.sections/start-with-one-working-file.md +2 -2
  342. package/agent-docs/configuration.sections/understand-the-three-stages.md +3 -3
  343. package/agent-docs/configuration.sections/understand-where-paths-point.md +2 -2
  344. package/agent-docs/connect/mcp.md +24 -15
  345. package/agent-docs/content-delivery/agents.md +6 -6
  346. package/agent-docs/content-delivery/api.md +29 -16
  347. package/agent-docs/content-delivery/client.md +14 -8
  348. package/agent-docs/content-delivery/http-api/operations/get-content-representation-fa1d2e3f.md +10 -2
  349. package/agent-docs/content-delivery/http-api/operations/get-content-representation-head-4052375c.md +10 -2
  350. package/agent-docs/content-delivery/http-api/operations/get-content-resource-849f1c49.md +537 -3
  351. package/agent-docs/content-delivery/http-api/operations/get-content-resource-head-0a352acd.md +10 -2
  352. package/agent-docs/content-delivery/http-api/operations/list-content-resources-8e977ec7.md +545 -3
  353. package/agent-docs/content-delivery/http-api/operations/list-content-resources-head-b67cbad9.md +10 -2
  354. package/agent-docs/content-delivery/http-api.md +21 -7
  355. package/agent-docs/content-delivery/manifest.md +30 -8
  356. package/agent-docs/content-delivery/publish.md +5 -5
  357. package/agent-docs/content-delivery/render.md +6 -6
  358. package/agent-docs/content-delivery/rest.md +16 -8
  359. package/agent-docs/content-delivery/sections.md +11 -11
  360. package/agent-docs/content-delivery/select.md +6 -6
  361. package/agent-docs/content-delivery.md +4 -4
  362. package/agent-docs/contribute/agent-skills.md +3 -3
  363. package/agent-docs/cookbooks/authoring.md +3 -3
  364. package/agent-docs/cookbooks/site-workflows.md +2 -2
  365. package/agent-docs/cookbooks/welcome-email.md +3 -3
  366. package/agent-docs/documents.json +2500 -1927
  367. package/agent-docs/example-api/cedar.md +4 -4
  368. package/agent-docs/features.md +49 -0
  369. package/agent-docs/glossary.md +22 -22
  370. package/agent-docs/index.md +5 -5
  371. package/agent-docs/ingredients/audit-site.md +2 -2
  372. package/agent-docs/ingredients/build-site.md +2 -2
  373. package/agent-docs/ingredients/complete-page.md +2 -2
  374. package/agent-docs/ingredients/refresh-agent-bundle.md +2 -2
  375. package/agent-docs/non-goals.md +4 -4
  376. package/agent-docs/provenance.json +10 -4
  377. package/agent-docs/publish/agent-discovery.md +8 -2
  378. package/agent-docs/publish/agent-friendliness.md +21 -21
  379. package/agent-docs/publish/agent-friendliness.sections/discover-a-page-with-a-small-context-budget.md +5 -5
  380. package/agent-docs/publish/agent-friendliness.sections/distinguish-examples-from-a-real-service.md +5 -5
  381. package/agent-docs/publish/agent-friendliness.sections/evidence-has-a-scope.md +5 -5
  382. package/agent-docs/publish/agent-friendliness.sections/keep-shared-instructions-complete.md +5 -5
  383. package/agent-docs/publish/agent-friendliness.sections/related-reading.md +3 -3
  384. package/agent-docs/publish/agent-friendliness.sections/secret-handshake.md +3 -3
  385. package/agent-docs/publish/agent-friendliness.sections/try-the-page-controls.md +3 -3
  386. package/agent-docs/publish/agent-friendliness.sections/use-the-transport-your-client-supports.md +4 -4
  387. package/agent-docs/publish/agent-friendliness.sections/verify-the-page-and-detect-changes.md +9 -9
  388. package/agent-docs/publish/agent-friendliness.sections/what-an-agent-reads.md +5 -5
  389. package/agent-docs/publish/agent-friendliness.sections/what-happens-to-an-unsupported-component.md +4 -4
  390. package/agent-docs/publish/api-references.md +5 -5
  391. package/agent-docs/publish/api-references.sections/author-the-reference-page.md +2 -2
  392. package/agent-docs/publish/api-references.sections/build-and-verify-the-output.md +3 -3
  393. package/agent-docs/publish/api-references.sections/inspect-the-machine-readable-contract.md +2 -2
  394. package/agent-docs/publish/api-references.sections/next-steps.md +2 -2
  395. package/agent-docs/publish/api-references.sections/preview-a-small-api-reference.md +2 -2
  396. package/agent-docs/publish/api-references.sections/put-the-spec-in-your-project.md +2 -2
  397. package/agent-docs/publish/api-references.sections/register-the-operation.md +2 -2
  398. package/agent-docs/publish/api-references.sections/related-reading.md +2 -2
  399. package/agent-docs/publish/api-references.sections/review-imported-content-before-publishing.md +3 -3
  400. package/agent-docs/publish/api-references.sections/what-readers-get.md +3 -3
  401. package/agent-docs/publish/audit.md +8 -8
  402. package/agent-docs/publish/audit.sections/add-project-tests.md +2 -2
  403. package/agent-docs/publish/audit.sections/check-agent-evaluation-reports.md +2 -2
  404. package/agent-docs/publish/audit.sections/check-before-pushing.md +3 -3
  405. package/agent-docs/publish/audit.sections/connect-a-documentation-test-suite.md +2 -2
  406. package/agent-docs/publish/audit.sections/read-the-report.md +3 -3
  407. package/agent-docs/publish/audit.sections/related-reading.md +1 -1
  408. package/agent-docs/publish/content-export.md +37 -15
  409. package/agent-docs/publish/content-export.sections/assets-downloads-and-notices.md +4 -4
  410. package/agent-docs/publish/content-export.sections/check-the-result.md +2 -2
  411. package/agent-docs/publish/content-export.sections/inspect-the-manifest.md +3 -3
  412. package/agent-docs/publish/content-export.sections/prerequisites.md +4 -4
  413. package/agent-docs/publish/content-export.sections/related-reading.md +2 -2
  414. package/agent-docs/publish/content-export.sections/review-exported-api-material.md +3 -3
  415. package/agent-docs/publish/content-export.sections/try-the-help-drawer-example.md +2 -2
  416. package/agent-docs/publish/content-export.sections/what-the-representations-retain.md +4 -4
  417. package/agent-docs/publish/content-negotiation.md +10 -10
  418. package/agent-docs/publish/content-negotiation.sections/hosting-contract.md +2 -2
  419. package/agent-docs/publish/content-negotiation.sections/missing-pages.md +3 -3
  420. package/agent-docs/publish/content-negotiation.sections/related-reading.md +1 -1
  421. package/agent-docs/publish/content-negotiation.sections/validators-and-manifest-links.md +2 -2
  422. package/agent-docs/publish/content-negotiation.sections/verify-the-deployed-url.md +2 -2
  423. package/agent-docs/publish/content-negotiation.sections/what-if-the-host-cannot-negotiate.md +3 -3
  424. package/agent-docs/publish/content-negotiation.sections/what-shoalrun-builds-and-what-the-host-does.md +2 -2
  425. package/agent-docs/publish/content-negotiation.sections/why-this-matters.md +2 -2
  426. package/agent-docs/publish/deployment-check.md +6 -6
  427. package/agent-docs/publish/deployment-profiles.md +60 -26
  428. package/agent-docs/publish/deployment-profiles.sections/before-you-begin.md +5 -5
  429. package/agent-docs/publish/deployment-profiles.sections/build-and-inspect-the-edition.md +9 -9
  430. package/agent-docs/publish/deployment-profiles.sections/check-the-result.md +7 -7
  431. package/agent-docs/publish/deployment-profiles.sections/choose-navigation-labels.md +6 -6
  432. package/agent-docs/publish/deployment-profiles.sections/current-limits.md +7 -7
  433. package/agent-docs/publish/deployment-profiles.sections/define-the-shared-sku-manifest.md +6 -6
  434. package/agent-docs/publish/deployment-profiles.sections/html-markdown-and-agents.md +7 -7
  435. package/agent-docs/publish/deployment-profiles.sections/mark-pages-and-shared-sections.md +13 -13
  436. package/agent-docs/publish/deployment-profiles.sections/preview-and-edit-a-customer-edition.md +55 -0
  437. package/agent-docs/publish/deployment-profiles.sections/related-reading.md +6 -6
  438. package/agent-docs/publish/deployment-profiles.sections/select-each-product-release.md +55 -0
  439. package/agent-docs/publish/deployment-profiles.sections/supply-the-profile-from-the-deployment.md +6 -6
  440. package/agent-docs/publish/evals.md +16 -16
  441. package/agent-docs/publish/evals.sections/add-the-audit-hook.md +5 -5
  442. package/agent-docs/publish/evals.sections/check-the-report.md +4 -4
  443. package/agent-docs/publish/evals.sections/define-a-task-file.md +5 -5
  444. package/agent-docs/publish/evals.sections/diagnose-a-different-build.md +5 -5
  445. package/agent-docs/publish/evals.sections/prepare-a-report-for-the-built-site.md +5 -5
  446. package/agent-docs/publish/evals.sections/related-reading.md +3 -3
  447. package/agent-docs/publish/evals.sections/run-and-review-the-tasks.md +4 -4
  448. package/agent-docs/publish/evals.sections/shoalrun-s-own-example.md +6 -6
  449. package/agent-docs/publish/host-adapters.md +6 -6
  450. package/agent-docs/publish/manni.md +16 -16
  451. package/agent-docs/publish/manni.sections/check-the-result.md +3 -3
  452. package/agent-docs/publish/manni.sections/how-this-site-uses-manni.md +6 -6
  453. package/agent-docs/publish/manni.sections/optional-custom-policies.md +4 -4
  454. package/agent-docs/publish/manni.sections/prerequisites.md +2 -2
  455. package/agent-docs/publish/mcp-analytics.md +12 -12
  456. package/agent-docs/publish/mcp-analytics.sections/adapter-exports.md +4 -4
  457. package/agent-docs/publish/mcp-analytics.sections/enable-analytics.md +4 -4
  458. package/agent-docs/publish/mcp-analytics.sections/event-fields-and-service-mappings.md +4 -4
  459. package/agent-docs/publish/mcp-analytics.sections/optionally-collect-intent-and-group-calls.md +4 -4
  460. package/agent-docs/publish/mcp-analytics.sections/optionally-identify-the-client-and-model.md +5 -5
  461. package/agent-docs/publish/mcp-analytics.sections/related-reading.md +3 -3
  462. package/agent-docs/publish/mcp-analytics.sections/safeguards-and-limits.md +5 -5
  463. package/agent-docs/publish/mcp.md +56 -29
  464. package/agent-docs/publish/mcp.sections/check-budgets-and-errors.md +8 -8
  465. package/agent-docs/publish/mcp.sections/choose-the-documentation-source.md +4 -4
  466. package/agent-docs/publish/mcp.sections/configure-the-client.md +4 -4
  467. package/agent-docs/publish/mcp.sections/discover-product-releases-before-searching.md +52 -0
  468. package/agent-docs/publish/mcp.sections/generate-a-vercel-endpoint.md +6 -6
  469. package/agent-docs/publish/mcp.sections/html-markdown-and-agents.md +38 -0
  470. package/agent-docs/publish/mcp.sections/related-reading.md +3 -3
  471. package/agent-docs/publish/mcp.sections/search-then-read.md +13 -12
  472. package/agent-docs/publish/mcp.sections/serve-a-public-endpoint-on-node.md +12 -8
  473. package/agent-docs/publish/mcp.sections/verify-the-connection.md +4 -4
  474. package/agent-docs/publish/mcp.sections/why-offer-mcp-for-public-docs.md +4 -4
  475. package/agent-docs/publish/openapi-extension-mappings.md +12 -12
  476. package/agent-docs/publish/output.md +20 -20
  477. package/agent-docs/publish/output.sections/api-contracts.md +1 -1
  478. package/agent-docs/publish/output.sections/code-highlighting.md +1 -1
  479. package/agent-docs/publish/output.sections/current-limits.md +1 -1
  480. package/agent-docs/publish/output.sections/incremental-sync.md +4 -4
  481. package/agent-docs/publish/output.sections/manifest-records-and-sections.md +3 -3
  482. package/agent-docs/publish/output.sections/navigation-section-indexes.md +1 -1
  483. package/agent-docs/publish/output.sections/page-formats.md +2 -2
  484. package/agent-docs/publish/output.sections/published-output-contract.md +5 -5
  485. package/agent-docs/publish/output.sections/reader-appearance-and-controls.md +1 -1
  486. package/agent-docs/publish/output.sections/related-reading.md +1 -1
  487. package/agent-docs/publish/output.sections/response-identity.md +1 -1
  488. package/agent-docs/publish/output.sections/site-files.md +6 -6
  489. package/agent-docs/publish/output.sections/validate-an-existing-build-locally.md +3 -3
  490. package/agent-docs/publish/output.sections/where-files-go.md +3 -3
  491. package/agent-docs/publish/publications.md +108 -19
  492. package/agent-docs/publish/publications.sections/add-a-language.md +60 -0
  493. package/agent-docs/publish/publications.sections/change-just-one-part-of-a-shared-page.md +63 -0
  494. package/agent-docs/publish/publications.sections/give-each-api-version-its-own-contract.md +34 -0
  495. package/agent-docs/publish/publications.sections/keep-an-unchanged-page-in-one-file.md +53 -0
  496. package/agent-docs/publish/publications.sections/publish-versions-without-a-product-catalog.md +49 -0
  497. package/agent-docs/publish/publications.sections/related-reading.md +42 -0
  498. package/agent-docs/publish/publications.sections/version-products-independently.md +115 -0
  499. package/agent-docs/publish/publications.sections/what-agents-receive.md +38 -0
  500. package/agent-docs/publish/revisions.md +4 -4
  501. package/agent-docs/publish/seo.md +10 -10
  502. package/agent-docs/publish/seo.sections/related-reading.md +2 -2
  503. package/agent-docs/publish/seo.sections/set-the-public-address.md +3 -3
  504. package/agent-docs/publish/seo.sections/what-agents-receive.md +3 -3
  505. package/agent-docs/publish/seo.sections/what-the-build-adds.md +2 -2
  506. package/agent-docs/publish/seo.sections/write-the-page-title-and-summary.md +2 -2
  507. package/agent-docs/publish/single-source-sites.md +5 -5
  508. package/agent-docs/publish/troubleshooting.md +10 -10
  509. package/agent-docs/publish/vercel.md +5 -5
  510. package/agent-docs/publish/vercel.sections/check-the-deployment.md +1 -1
  511. package/agent-docs/publish/vercel.sections/include-an-mcp-endpoint.md +2 -2
  512. package/agent-docs/publish/vercel.sections/prepare-your-project.md +2 -2
  513. package/agent-docs/publish/vercel.sections/related-reading.md +1 -1
  514. package/agent-docs/publish.md +2 -2
  515. package/agent-docs/recipes/add-page.md +5 -5
  516. package/agent-docs/recipes/add-page.sections/audit-the-shoalrun-docs-project.md +2 -2
  517. package/agent-docs/recipes/add-page.sections/before-you-start.md +1 -1
  518. package/agent-docs/recipes/add-page.sections/build-the-shoalrun-docs-site.md +2 -2
  519. package/agent-docs/recipes/add-page.sections/check-agent-search-and-page-lookup.md +1 -1
  520. package/agent-docs/recipes/add-page.sections/check-the-built-page-artifacts.md +1 -1
  521. package/agent-docs/recipes/add-page.sections/check-the-outcome.md +1 -1
  522. package/agent-docs/recipes/add-page.sections/complete-the-guide-and-add-navigation.md +2 -2
  523. package/agent-docs/recipes/add-page.sections/install-the-site-dependencies.md +1 -1
  524. package/agent-docs/recipes/add-page.sections/regenerate-the-agent-documentation-bundle.md +2 -2
  525. package/agent-docs/recipes/add-page.sections/related-reading.md +1 -1
  526. package/agent-docs/recipes/add-page.sections/scaffold-a-new-guide.md +1 -1
  527. package/agent-docs/recipes/audit-docs.md +4 -4
  528. package/agent-docs/recipes/build-docs.md +2 -2
  529. package/agent-docs/recipes/preview-hybrid-search.md +5 -5
  530. package/agent-docs/recipes/preview-page.md +2 -2
  531. package/agent-docs/recipes/queue-email.md +2 -2
  532. package/agent-docs/recipes/refresh-agent-docs.md +4 -4
  533. package/agent-docs/recipes/send-welcome-email.md +13 -13
  534. package/agent-docs/reference/agent-skills.md +7 -7
  535. package/agent-docs/search-and-chat.md +4 -4
  536. package/agent-docs/search-index.json +1 -1
  537. package/agent-docs/start.md +5 -5
  538. package/agent-docs/start.sections/add-the-page-to-navigation.md +3 -3
  539. package/agent-docs/start.sections/build-and-check-both-outputs.md +3 -3
  540. package/agent-docs/start.sections/build-this-site.md +2 -2
  541. package/agent-docs/start.sections/check-writing-style.md +2 -2
  542. package/agent-docs/start.sections/create-a-page.md +2 -2
  543. package/agent-docs/start.sections/make-it-yours.md +2 -2
  544. package/agent-docs/start.sections/migrating-from-github-packages.md +2 -2
  545. package/agent-docs/start.sections/prerequisites.md +2 -2
  546. package/agent-docs/start.sections/related-reading.md +2 -2
  547. package/agent-docs/start.sections/start-your-own-project.md +3 -3
  548. package/agent-docs/status.md +14 -4
  549. package/agent-docs/styling/color-modes.md +2 -2
  550. package/agent-docs/styling/footer.md +2 -2
  551. package/agent-docs/styling/header.md +2 -2
  552. package/agent-docs/styling/layouts.md +3 -3
  553. package/agent-docs/styling/layouts.sections/build-a-landing-page.md +1 -1
  554. package/agent-docs/styling/layouts.sections/build-a-splash-page.md +1 -1
  555. package/agent-docs/styling/layouts.sections/control-navigation-tabs.md +2 -2
  556. package/agent-docs/styling/layouts.sections/customize-the-hero.md +1 -1
  557. package/agent-docs/styling/layouts.sections/hero.md +1 -1
  558. package/agent-docs/styling/layouts.sections/hide-the-table-of-contents-or-give-content-more-room.md +1 -1
  559. package/agent-docs/styling/layouts.sections/html-markdown-and-agents.md +2 -2
  560. package/agent-docs/styling/layouts.sections/related-reading.md +1 -1
  561. package/agent-docs/styling/palettes.md +3 -3
  562. package/agent-docs/styling/share-images.md +3 -3
  563. package/agent-docs/styling/themes.md +2 -2
  564. package/agent-docs/styling/try.md +2 -2
  565. package/agent-docs/what-is-shoalrun.md +7 -3
  566. package/assets/ask-widget.js +21 -7
  567. package/assets/navigation.js +5 -0
  568. package/dist/api-materialize.d.ts +2 -1
  569. package/dist/api-materialize.js +21 -9
  570. package/dist/api-publication-plan.d.ts +2 -0
  571. package/dist/api-publication-plan.js +23 -7
  572. package/dist/api-publication-review.js +4 -3
  573. package/dist/api-selection.d.ts +5 -2
  574. package/dist/api-selection.js +18 -11
  575. package/dist/artifact-bundle.js +9 -6
  576. package/dist/ask-function.js +5 -2
  577. package/dist/ask-runtime.d.ts +1 -0
  578. package/dist/ask-runtime.js +7 -2
  579. package/dist/authored-change.js +2 -1
  580. package/dist/authoring-project.js +1 -1
  581. package/dist/cards.js +2 -1
  582. package/dist/chat-config.d.ts +2 -0
  583. package/dist/chat-config.js +10 -2
  584. package/dist/cli-discovery.d.ts +2 -2
  585. package/dist/cli-discovery.js +9 -4
  586. package/dist/cli.js +50 -25
  587. package/dist/compiler-config.d.ts +17 -0
  588. package/dist/compiler-config.js +43 -2
  589. package/dist/compiler.d.ts +21 -0
  590. package/dist/compiler.js +16 -12
  591. package/dist/component-transform.d.ts +2 -4
  592. package/dist/component-transform.js +20 -7
  593. package/dist/config.d.ts +1 -0
  594. package/dist/config.js +2 -1
  595. package/dist/content-delivery-contract.d.ts +2 -1
  596. package/dist/content-delivery-validation.d.ts +2 -2
  597. package/dist/content-delivery-validation.js +6 -4
  598. package/dist/content-export-command.d.ts +1 -1
  599. package/dist/content-export-command.js +4 -4
  600. package/dist/content-export-comparison.js +6 -5
  601. package/dist/content-export-config.js +3 -1
  602. package/dist/content-export.js +9 -8
  603. package/dist/content-rest-client.js +4 -2
  604. package/dist/content-rest-contract.d.ts +2 -2
  605. package/dist/content-rest-server.js +11 -6
  606. package/dist/content-source.d.ts +13 -0
  607. package/dist/content-source.js +5 -2
  608. package/dist/content-workspace.d.ts +12 -0
  609. package/dist/content-workspace.js +2 -1
  610. package/dist/content.js +3 -2
  611. package/dist/cookbook-chooser.js +2 -1
  612. package/dist/deployment-profile.d.ts +2 -1
  613. package/dist/deployment-profile.js +38 -8
  614. package/dist/dev.d.ts +3 -1
  615. package/dist/dev.js +99 -12
  616. package/dist/docs-author.js +2 -1
  617. package/dist/docs-command.js +2 -2
  618. package/dist/docs-eval.d.ts +1 -0
  619. package/dist/docs-eval.js +2 -2
  620. package/dist/docs-mcp.d.ts +1 -0
  621. package/dist/docs-mcp.js +10 -5
  622. package/dist/docs-tool.d.ts +4 -10
  623. package/dist/document-sync.d.ts +1 -0
  624. package/dist/document-sync.js +2 -2
  625. package/dist/documentation-core.d.ts +29 -10
  626. package/dist/documentation-core.js +38 -4
  627. package/dist/freshness.js +2 -2
  628. package/dist/frontmatter.js +13 -7
  629. package/dist/function-runtime.d.ts +1 -0
  630. package/dist/index-build.d.ts +1 -0
  631. package/dist/index-build.js +2 -2
  632. package/dist/ingredient-draft.js +20 -10
  633. package/dist/mcp-analytics.d.ts +1 -0
  634. package/dist/mcp-artifacts.js +13 -4
  635. package/dist/mcp-config.d.ts +1 -0
  636. package/dist/mcp-config.js +3 -1
  637. package/dist/mcp-http.js +1 -1
  638. package/dist/page-materialization.d.ts +3 -4
  639. package/dist/page-materialization.js +15 -8
  640. package/dist/page-renderer.d.ts +6 -0
  641. package/dist/page-renderer.js +16 -5
  642. package/dist/project-navigation.js +2 -1
  643. package/dist/publication-identity.d.ts +12 -0
  644. package/dist/publication-identity.js +17 -0
  645. package/dist/publication-manifest.d.ts +24 -1
  646. package/dist/publication-manifest.js +14 -6
  647. package/dist/publication-plan.js +21 -9
  648. package/dist/publication-render.js +24 -8
  649. package/dist/recipe-draft.js +9 -6
  650. package/dist/scaffold.d.ts +7 -4
  651. package/dist/scaffold.js +16 -16
  652. package/dist/search-query.d.ts +4 -10
  653. package/dist/search-query.js +10 -9
  654. package/dist/server.d.ts +8 -0
  655. package/dist/server.js +14 -3
  656. package/dist/subject-deprecation.js +2 -1
  657. package/dist/turnstile-policy.d.ts +2 -0
  658. package/dist/turnstile-policy.js +23 -0
  659. package/dist/turnstile.d.ts +7 -0
  660. package/dist/turnstile.js +29 -2
  661. package/dist/vercel-function.js +2 -2
  662. package/example-configs/products/README.md +37 -0
  663. package/example-configs/products/content/operations.mdx +50 -0
  664. package/example-configs/products/content/payments-v2.mdx +30 -0
  665. package/example-configs/products/content/payments-v3.mdx +38 -0
  666. package/example-configs/products/content/priority-settlement.mdx +23 -0
  667. package/example-configs/products/content/reporting-v1.mdx +36 -0
  668. package/example-configs/products/content/scheduled-exports.mdx +23 -0
  669. package/example-configs/products/docs.config.yaml +56 -0
  670. package/example-configs/products/profiles/all-releases.yaml +9 -0
  671. package/example-configs/products/profiles/customer-a.yaml +13 -0
  672. package/example-configs/products/profiles/customer-b.yaml +13 -0
  673. package/example-configs/products/skus.yaml +11 -0
  674. package/examples/content-delivery/preview.mjs +1 -1
  675. package/package.json +1 -1
  676. package/schemas/content-export.schema.json +41 -3
  677. package/schemas/content-rest.openapi.json +184 -37
  678. package/skills/shoalrun-author/SKILL.md +6 -2
  679. package/skills/shoalrun-author/references/customer-editions.md +34 -4
  680. package/skills/shoalrun-author/references/publications.md +60 -0
  681. package/skills/shoalrun-brand/SKILL.md +52 -0
  682. package/skills/shoalrun-recipes/SKILL.md +2 -0
  683. package/skills/shoalrun-setup/SKILL.md +3 -1
  684. package/styles/header.css +3 -0
  685. package/styles/site.css +3 -0
  686. package/agent-docs/publish/content-export.sections/export-selected-pages.md +0 -116
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Configure and customize > Analytics
19
19
 
20
- **Updated: 2026-10-26.**
20
+ **Updated: 2026-11-05.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/analytics.md)
23
23
 
@@ -38,7 +38,7 @@ Implement these exports in your browser module:
38
38
  | `track(event)` | Yes | Receive an event; may return a promise. The adapter owns delivery, batching, retries, and flushing before navigation. |
39
39
  | `init(context)` | No | Initialize the service or await consent; may return a promise. Events start after it resolves. |
40
40
 
41
- The read-only context provides `page` properties, `setEnabled(boolean)`, and `track(name, properties, element?)`. Import or initialization failures disable analytics for the page. Thrown or rejected `track` calls are caught without interrupting controls or navigation; Shoalrun does not retry them.
41
+ The read-only context provides `page` properties, `setEnabled(boolean)`, and `track(name, properties, element?)`. Import or initialization failures disable analytics for the page. Thrown or rejected `track` calls are caught without interrupting controls or navigation; Shoalrun doesn't retry them.
42
42
 
43
43
  Events are discarded while initialization is pending or delivery is disabled. After initialization, Shoalrun sends `page_view` if enabled. To delay collection, await consent in `init`, or call `setEnabled(false)` and enable delivery from your consent callback. In the latter case, call `track('page_view')` after enabling to count the current page.
44
44
 
@@ -48,4 +48,4 @@ You can also disable delivery through the public hook:
48
48
  globalThis.shoalrunAnalytics?.setEnabled(false);
49
49
  ```
50
50
 
51
- Connect consent changes to your SDK too. Disabling Shoalrun does not stop SDK-generated events, unload the SDK, or revoke data already sent.
51
+ Connect consent changes to your SDK too. Disabling Shoalrun doesn't stop SDK-generated events, unload the SDK, or revoke data already sent.
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Configure and customize > Analytics
19
19
 
20
- **Updated: 2026-10-26.**
20
+ **Updated: 2026-11-05.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/analytics.md)
23
23
 
@@ -33,20 +33,20 @@ Shoalrun sends documentation interactions to an analytics service through an **a
33
33
 
34
34
  Use these events to measure browser interactions. Each includes the page properties above.
35
35
 
36
- | Event | Additional properties | Trigger |
37
- | ------------------------- | --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
38
- | `page_view` | None | Once after adapter initialization, when delivery is enabled. |
39
- | `navigation_click` | `region`, `targetPath`, `external` | A section, sidebar, outline, breadcrumb, related-reading, card, hero, footer, header, article, or Markdown-action link is activated. |
40
- | `content_tab_change` | `tabIndex`, `tabId` | A different content tab is selected by click or keyboard. Initial selection and hash reveals are excluded. |
41
- | `disclosure_toggle` | `open` | A reader opens or closes a Collapsible or article InfoHint through its summary. Programmatic initialization is excluded. |
42
- | `walkthrough_step_change` | `stepIndex`, `stepCount`, `layout`, `trigger` | A different walkthrough step becomes active through click, keyboard, or step scrolling. Initial selection and layout changes are excluded. |
43
- | `code_copy` | `language`, optional `stepIndex` | A code example or walkthrough pane is successfully written to the clipboard. |
44
- | `markdown_copy` | None | The full Markdown twin is successfully written to the clipboard. |
45
- | `section_link_copy` | `targetHeadingId` | A heading's link is successfully written to the clipboard. |
46
- | `search_results` | `queryLength`, `resultCount`, `status` | A completed search settles for 300 ms. Status is `results`, `empty`, or `error`; the count is the displayed result count. |
47
- | `search_result_click` | `queryLength`, `resultIndex`, `targetPath` | A search result is activated, including through the keyboard. |
48
- | `reader_filter_change` | `scope`, `filter_<facet>`, optional `inherit` | A site or page reader selection changes through the controls or reader-view API. Initialization does not emit it. Facet hyphens become underscores; values are choice-ID arrays. |
36
+ | Event | Additional properties | Trigger |
37
+ | ------------------------- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
38
+ | `page_view` | None | Once after adapter initialization, when delivery is enabled. |
39
+ | `navigation_click` | `region`, `targetPath`, `external` | A section, sidebar, outline, breadcrumb, related-reading, card, hero, footer, header, article, or Markdown-action link is activated. |
40
+ | `content_tab_change` | `tabIndex`, `tabId` | A different content tab is selected by click or keyboard. Initial selection and hash reveals are excluded. |
41
+ | `disclosure_toggle` | `open` | A reader opens or closes a Collapsible or article InfoHint through its summary. Programmatic initialization is excluded. |
42
+ | `walkthrough_step_change` | `stepIndex`, `stepCount`, `layout`, `trigger` | A different walkthrough step becomes active through click, keyboard, or step scrolling. Initial selection and layout changes are excluded. |
43
+ | `code_copy` | `language`, optional `stepIndex` | A code example or walkthrough pane is successfully written to the clipboard. |
44
+ | `markdown_copy` | None | The full Markdown twin is successfully written to the clipboard. |
45
+ | `section_link_copy` | `targetHeadingId` | A heading's link is successfully written to the clipboard. |
46
+ | `search_results` | `queryLength`, `resultCount`, `status` | A completed search settles for 300 ms. Status is `results`, `empty`, or `error`; the count is the displayed result count. |
47
+ | `search_result_click` | `queryLength`, `resultIndex`, `targetPath` | A search result is activated, including through the keyboard. |
48
+ | `reader_filter_change` | `scope`, `filter_<facet>`, optional `inherit` | A site or page reader selection changes through the controls or reader-view API. Initialization doesn't emit it. Facet hyphens become underscores; values are choice-ID arrays. |
49
49
 
50
50
  Indexes start at zero. Navigation regions are `sections`, `sidebar`, `toc`, `breadcrumbs`, `related`, `card`, `hero`, `footer`, `header`, `content`, and `formats`; only HTTP(S) links qualify. Target paths omit queries and fragments. Built-in payloads exclude raw search queries, copied text, article text, reader identifiers, and referrers. A service SDK may add its own properties.
51
51
 
52
- Changing component attributes from a script does not necessarily emit an event. Browser page loads emit page views; back-forward cache restoration has no separate built-in event.
52
+ Changing component attributes from a script doesn't necessarily emit an event. Browser page loads emit page views; back-forward cache restoration has no separate built-in event.
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Configure and customize > Analytics
19
19
 
20
- **Updated: 2026-10-26.**
20
+ **Updated: 2026-11-05.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/analytics.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Configure and customize > Analytics
19
19
 
20
- **Updated: 2026-10-26.**
20
+ **Updated: 2026-11-05.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/analytics.md)
23
23
 
@@ -43,7 +43,7 @@ globalThis.shoalrunAnalytics?.track(
43
43
 
44
44
  The arguments are the event name, properties, and optional element for component context. Page properties are added automatically. The optional chain skips the call when analytics is unconfigured.
45
45
 
46
- This hook does not register MDX components: unknown components fail the build. Use the [supported components](https://www.shoalrun.com/author/components.md) or register a [trusted component plugin](https://www.shoalrun.com/author/components/custom.md) with shared HTML and Markdown content.
46
+ This hook doesn't register MDX components: unknown components fail the build. Use the [supported components](https://www.shoalrun.com/author/components.md) or register a [trusted component plugin](https://www.shoalrun.com/author/components/custom.md) with shared HTML and Markdown content.
47
47
 
48
48
  Event names start with a lowercase letter and contain at most 64 lowercase letters, digits, or underscores.
49
49
 
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Configure and customize > Analytics
19
19
 
20
- **Updated: 2026-10-26.**
20
+ **Updated: 2026-11-05.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/analytics.md)
23
23
 
@@ -54,6 +54,6 @@ Each event has `schemaVersion`, `name`, and `properties`. For example:
54
54
  }
55
55
  ```
56
56
 
57
- Every event includes page identity and publication properties; `navigationSectionId` appears only for pages in a navigation tab. `pageUrl` is the published path without query or fragment. Custom properties cannot replace page identity.
57
+ Every event includes page identity and publication properties; `navigationSectionId` appears only for pages in a navigation tab. `pageUrl` is the published path without query or fragment. Custom properties can't replace page identity.
58
58
 
59
59
  Events associated with an element add component context. `componentId` uses `data-analytics-id`, then the element’s HTML ID, then its heading, kind, and position. Generated IDs can change when content moves. `componentType` is `tabs`, `walkthrough`, `disclosure`, `code`, or `control`; `headingId` identifies the preceding article heading when available.
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Configure and customize > Analytics
19
19
 
20
- **Updated: 2026-10-26.**
20
+ **Updated: 2026-11-05.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/analytics.md)
23
23
 
@@ -31,12 +31,12 @@ Shoalrun sends documentation interactions to an analytics service through an **a
31
31
 
32
32
  ## HTML, Markdown, and agents
33
33
 
34
- Instrumentation runs only in the browser and leaves Markdown and discovery artifacts unchanged. Agents that fetch Markdown or call tools without running page JavaScript are not counted.
34
+ Instrumentation runs only in the browser and leaves Markdown and discovery artifacts unchanged. Agents that fetch Markdown or call tools without running page JavaScript aren't counted.
35
35
 
36
- To measure those requests, collect CDN or hosting logs, add a server request hook, or enable the separate [MCP analytics adapter](https://www.shoalrun.com/publish/mcp-analytics.md). Include cache hits: origin logs alone miss responses served by a CDN. Shoalrun does not install a request collector.
36
+ To measure those requests, collect CDN or hosting logs, add a server request hook, or enable the separate [MCP analytics adapter](https://www.shoalrun.com/publish/mcp-analytics.md). Include cache hits: origin logs alone miss responses served by a CDN. Shoalrun doesn't install a request collector.
37
37
 
38
38
  Measure discovery indexes, Markdown pages and sections, negotiated responses, and tool calls. Record the actual response representation because HTML and Markdown can share a URL. Keep health checks, `HEAD`, failures, and cache revalidation separate from successful body responses.
39
39
 
40
40
  Send a separate server event such as `documentation_request` with path, representation, status, cache status, page ID when known, and a request ID for deduplication. Keep these counts separate from browser page views. Avoid raw headers, IP addresses, query strings, and page bodies by default.
41
41
 
42
- A user agent is a claimed identity, not a verified one. People can fetch Markdown, and agents can use ordinary browsers; classify representation and claimed client separately. Requests do not prove reading, comprehension, or citation. Correlating them into sessions requires an explicit client or integration identifier; timing and IP address are unreliable.
42
+ A user agent is a claimed identity, not a verified one. People can fetch Markdown, and agents can use ordinary browsers; classify representation and claimed client separately. Requests don't prove reading, comprehension, or citation. Correlating them into sessions requires an explicit client or integration identifier; timing and IP address are unreliable.
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Configure and customize > Analytics
19
19
 
20
- **Updated: 2026-10-26.**
20
+ **Updated: 2026-11-05.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/analytics.md)
23
23
 
@@ -33,4 +33,4 @@ Shoalrun sends documentation interactions to an analytics service through an **a
33
33
 
34
34
  Copy `framework/examples/analytics/inspector.js` beside your config and set `analytics.module` to `./inspector.js`. Its **Local events** panel and `window.shoalrunDebugEvents` show the latest 100 events in memory without sending requests. Use it only in local previews.
35
35
 
36
- The inspector shows Shoalrun events before translation, so confirm service delivery separately. It cannot show events generated by a provider SDK.
36
+ The inspector shows Shoalrun events before translation, so confirm service delivery separately. It can't show events generated by a provider SDK.
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Configure and customize > Analytics
19
19
 
20
- **Updated: 2026-10-26.**
20
+ **Updated: 2026-11-05.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/analytics.md)
23
23
 
@@ -37,6 +37,6 @@ Your adapter translates Shoalrun events into the service’s names, properties,
37
37
  - Choose one source for each measurement. Disable equivalent automatic SDK events when the adapter supplies them.
38
38
  - Keep content interactions as custom events unless a native event matches their meaning and required properties.
39
39
  - Preserve page and component IDs, publication context, and `schemaVersion`. Check the destination’s limits on names and values.
40
- - Use the SDK’s separate APIs for identification, grouping, exceptions, or replay; renaming an interaction does not enable these features.
40
+ - Use the SDK’s separate APIs for identification, grouping, exceptions, or replay; renaming an interaction doesn't enable these features.
41
41
 
42
- Document each source, destination, property conversion, and automatic SDK feature you enable. Shoalrun has no universal page-exit or scroll-depth event. Verify one page visit and one content interaction in the destination, check they are counted once, and confirm native events populate the intended dashboard.
42
+ Document each source, destination, property conversion, and automatic SDK feature you enable. Shoalrun has no universal page-exit or scroll-depth event. Verify one page visit and one content interaction in the destination, check they're counted once, and confirm native events populate the intended dashboard.
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Configure and customize > Analytics
19
19
 
20
- **Updated: 2026-10-26.**
20
+ **Updated: 2026-11-05.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/analytics.md)
23
23
 
@@ -86,7 +86,7 @@ This example sends native page views and page leaves to PostHog, with custom eve
86
86
 
87
87
  The adapter maps `page_view` to `$pageview` and keeps other Shoalrun event names. Automatic page views are off to avoid duplicates. PostHog supplies `$pageleave` with scroll depth and duration. Generic click capture, replay, and person profiles are disabled.
88
88
 
89
- Use custom names in Product Analytics insights and funnels. Do not map them to `$autocapture`, which requires SDK-generated element metadata. PostHog adds properties and manages browser storage; review its [SDK configuration](https://posthog.com/docs/libraries/js/config) for consent and content security policy requirements.
89
+ Use custom names in Product Analytics insights and funnels. Don't map them to `$autocapture`, which requires SDK-generated element metadata. PostHog adds properties and manages browser storage; review its [SDK configuration](https://posthog.com/docs/libraries/js/config) for consent and content security policy requirements.
90
90
 
91
91
  3. ### Bundle and configure the module
92
92
 
@@ -121,6 +121,6 @@ This example sends native page views and page leaves to PostHog, with custom eve
121
121
  | `$prev_pageview_max_content_percentage` | Fraction of document height reached by the viewport, from `0` to `1`. |
122
122
  | `$prev_pageview_duration` | Seconds the page was open. |
123
123
 
124
- These measure the document, excluding scrolling within code panes. Time open does not prove active reading, and page-leave delivery is best effort. For visual scrollmaps, configure [PostHog heatmaps](https://posthog.com/docs/toolbar/heatmaps) separately; some engagement metrics require generic autocapture.
124
+ These measure the document, excluding scrolling within code panes. Time open doesn't prove active reading, and page-leave delivery is best effort. For visual scrollmaps, configure [PostHog heatmaps](https://posthog.com/docs/toolbar/heatmaps) separately; some engagement metrics require generic autocapture.
125
125
 
126
126
  If events are missing, check consent, browser blockers, and network requests. Exclude development traffic from production reports or use a separate development project.
@@ -17,7 +17,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
17
17
 
18
18
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Configure and customize > Analytics
19
19
 
20
- **Updated: 2026-10-26.**
20
+ **Updated: 2026-11-05.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/analytics.md)
23
23
 
@@ -19,7 +19,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
19
19
 
20
20
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Write with agents > Advanced workflows > Checked edit plans
21
21
 
22
- **Updated: 2026-10-26.**
22
+ **Updated: 2026-11-05.**
23
23
 
24
24
  **Status: Experimental.**
25
25
 
@@ -71,13 +71,13 @@ Use this optional workflow when your agent needs a digest-checked replacement pl
71
71
  shoalrun audit docs.config.yaml
72
72
  ```
73
73
 
74
- Applying repeats freshness and build checks before writing. Inspect the resulting HTML and Markdown. The plan does not run configured audit tests, commit changes, or deploy; those are separate steps.
74
+ Applying repeats freshness and build checks before writing. Inspect the resulting HTML and Markdown. The plan doesn't run configured audit tests, commit changes, or deploy; those are separate steps.
75
75
 
76
76
  ## What checks establish
77
77
 
78
78
  Compiler checks catch problems such as broken document links and invalid components. Vale checks the rules your team configures. Neither establishes factual accuracy or whether a procedure works. Ask your agent to explain what it verified and what still needs review.
79
79
 
80
- Ordinary public builds exclude draft pages. Use the separate working-tree `docs validate` interface to render affected drafts in isolation without changing their authored access policy. This does not change the checked plan/apply contract described above.
80
+ Ordinary public builds exclude draft pages. Use the separate working-tree `docs validate` interface to render affected drafts in isolation without changing their authored access policy. This doesn't change the checked plan/apply contract described above.
81
81
 
82
82
  ## Related reading
83
83
 
@@ -18,15 +18,15 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
18
18
 
19
19
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Write with agents > Draft a page
20
20
 
21
- **Updated: 2026-10-26.**
21
+ **Updated: 2026-11-05.**
22
22
 
23
23
  Use an agent that can read project files and run commands. It writes with its own model; Shoalrun requires no additional authoring API key.
24
24
 
25
25
  ## Prepare your agent
26
26
 
27
- Install the [portable authoring skill](https://www.shoalrun.com/contribute/agent-skills.md) using your agent's supported skill setup. If it cannot load skills, give it the same project instructions and commands directly. Tell it where to find `docs.config.yaml`, your writing guide, and reviewed examples. The [example writing guide](https://www.shoalrun.com/author/writing-style.md) is a starting point you can adapt.
27
+ Install the [portable authoring skill](https://www.shoalrun.com/contribute/agent-skills.md) using your agent's supported skill setup. If it can't load skills, give it the same project instructions and commands directly. Tell it where to find `docs.config.yaml`, your writing guide, and reviewed examples. The [example writing guide](https://www.shoalrun.com/author/writing-style.md) is a starting point you can adapt.
28
28
 
29
- The CLI's `docs search` and `docs read` commands read bundled Shoalrun guidance. The [MCP server](https://www.shoalrun.com/cli.md) offers documentation search and reads for agents that support MCP; it does not write project files. Your agent uses its own file tools and the CLI for edits.
29
+ The CLI's `docs search` and `docs read` commands read bundled Shoalrun guidance. The [MCP server](https://www.shoalrun.com/cli.md) offers documentation search and reads for agents that support MCP; it doesn't write project files. Your agent uses its own file tools and the CLI for edits.
30
30
 
31
31
  ## Give a working-tree task
32
32
 
@@ -69,7 +69,7 @@ This uses the harness's own writer and execution permissions. Required navigatio
69
69
  shoalrun docs preview /path/from/result/report.json --port 0
70
70
  ```
71
71
 
72
- Use the actual report path returned by validation. It renders affected drafts in a separate capture while preserving their authored access policy. Review findings, coverage, and skipped checks; use `--run-checks` only for applicable trusted commands under the harness's permissions. A stale, failed, incomplete, or unavailable result is not a pass. After edits, revalidate and restart the preview from the new report. Stop the foreground preview with Ctrl-C when finished.
72
+ Use the actual report path returned by validation. It renders affected drafts in a separate capture while preserving their authored access policy. Review findings, coverage, and skipped checks; use `--run-checks` only for applicable trusted commands under the harness's permissions. A stale, failed, incomplete, or unavailable result isn't a pass. After edits, revalidate and restart the preview from the new report. Stop the foreground preview with Ctrl-C when finished.
73
73
 
74
74
  4. ## Prepare publication
75
75
 
@@ -20,7 +20,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
20
20
 
21
21
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Components > ApiExample and ApiSchema
22
22
 
23
- **Updated: 2026-10-27.**
23
+ **Updated: 2026-11-05.**
24
24
 
25
25
  `ApiExample` and `ApiSchema` reuse OpenAPI content in authored pages. Examples stay synchronized with named payloads; schemas expose selected field definitions in HTML and Markdown.
26
26
 
@@ -46,7 +46,7 @@ Use these attributes to configure the component.
46
46
  | `example` | Yes | Key in that media type's OpenAPI `examples` map. |
47
47
  | `status` | For responses | Response status, such as `201`. |
48
48
 
49
- The element is standalone and empty, with literal string attributes. It resolves in the page's publication. HTML and Markdown show the example title, original key, context, description when present, provenance, and value. A missing selector fails the build. API includes cannot be nested inside snippets. See [API references](https://www.shoalrun.com/publish/api-references.md) for source configuration and [example presentation](https://www.shoalrun.com/api-docs/generate.md) in reference pages.
49
+ The element is standalone and empty, with literal string attributes. It resolves in the page's publication. HTML and Markdown show the example title, original key, context, description when present, provenance, and value. A missing selector fails the build. API includes can't be nested inside snippets. See [API references](https://www.shoalrun.com/publish/api-references.md) for source configuration and [example presentation](https://www.shoalrun.com/api-docs/generate.md) in reference pages.
50
50
 
51
51
  The fictional Notes API returns a saved note with its author, labels, and display metadata. The response includes a required but nullable `archivedAt` field: `null` means the note is active.
52
52
 
@@ -79,7 +79,7 @@ An active note with a nested author, two labels, and optional display metadata.
79
79
 
80
80
  ### Markdown twin
81
81
 
82
- During the build, Shoalrun selects the named example from the OpenAPI source for this page's publication and replaces `<ApiExample>` with ordinary content. An agent reading the generated `.md` page does not need to resolve the component or fetch the OpenAPI file. The example above renders as:
82
+ During the build, Shoalrun selects the named example from the OpenAPI source for this page's publication and replaces `<ApiExample>` with ordinary content. An agent reading the generated `.md` page doesn't need to resolve the component or fetch the OpenAPI file. The example above renders as:
83
83
 
84
84
  ````md
85
85
  ### Created release note
@@ -135,7 +135,7 @@ These attributes select the source schema.
135
135
  | `status` | For response bodies | Response status, such as `201`. |
136
136
  | `schema` | With `api` | Local OpenAPI `$ref` selector. With `operation`, omitted uses the selected media type's schema. |
137
137
 
138
- Use `operation`, `kind`, `mediaType`, and `status` for a body schema. To select an object that is not a body, use `api` and `schema` without the operation attributes. A pointer ending in `/properties/<name>` selects a single field. Both forms use the API source for the page's publication.
138
+ Use `operation`, `kind`, `mediaType`, and `status` for a body schema. To select an object that isn't a body, use `api` and `schema` without the operation attributes. A pointer ending in `/properties/<name>` selects a single field. Both forms use the API source for the page's publication.
139
139
 
140
140
  ```mdx
141
141
  <ApiSchema api="notes" schema="#/components/schemas/NoteMetadata" />
@@ -164,7 +164,7 @@ string
164
164
 
165
165
  Where the note came from.
166
166
 
167
- The element is standalone and empty, with literal string attributes. A missing or invalid selector fails the build. API includes cannot be nested inside snippets. See [API references](https://www.shoalrun.com/publish/api-references.md) for source setup and focused contracts.
167
+ The element is standalone and empty, with literal string attributes. A missing or invalid selector fails the build. API includes can't be nested inside snippets. See [API references](https://www.shoalrun.com/publish/api-references.md) for source setup and focused contracts.
168
168
 
169
169
  ### Response 201 schema · application/json
170
170
 
@@ -254,7 +254,7 @@ string
254
254
  Where the note came from.
255
255
  ```
256
256
 
257
- `<ApiSchema>` includes the full selected schema, including nested objects. It does not shorten or collapse large schemas in either output. For a large object, include it in a guide only when readers need the whole field tree there. Otherwise, select a relevant field, use authored [Fields](https://www.shoalrun.com/author/components/fields.md) for a short explanation, or link to the API reference. A field pointer selects its definition; it does not infer whether that field is required by its parent. Recursive references stop with a visible recursive-reference note rather than repeating forever.
257
+ `<ApiSchema>` includes the full selected schema, including nested objects. It doesn't shorten or collapse large schemas in either output. For a large object, include it in a guide only when readers need the whole field tree there. Otherwise, select a relevant field, use authored [Fields](https://www.shoalrun.com/author/components/fields.md) for a short explanation, or link to the API reference. A field pointer selects its definition; it doesn't infer whether that field is required by its parent. Recursive references stop with a visible recursive-reference note rather than repeating forever.
258
258
 
259
259
  ## HTML, Markdown, and agents
260
260
 
@@ -20,7 +20,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
20
20
 
21
21
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Components > ApiExample and ApiSchema
22
22
 
23
- **Updated: 2026-10-27.**
23
+ **Updated: 2026-11-05.**
24
24
 
25
25
  Parent page: [Full Markdown page](/author/components/api-embeds.md)
26
26
 
@@ -54,7 +54,7 @@ Use these attributes to configure the component.
54
54
  | `example` | Yes | Key in that media type's OpenAPI `examples` map. |
55
55
  | `status` | For responses | Response status, such as `201`. |
56
56
 
57
- The element is standalone and empty, with literal string attributes. It resolves in the page's publication. HTML and Markdown show the example title, original key, context, description when present, provenance, and value. A missing selector fails the build. API includes cannot be nested inside snippets. See [API references](https://www.shoalrun.com/publish/api-references.md) for source configuration and [example presentation](https://www.shoalrun.com/api-docs/generate.md) in reference pages.
57
+ The element is standalone and empty, with literal string attributes. It resolves in the page's publication. HTML and Markdown show the example title, original key, context, description when present, provenance, and value. A missing selector fails the build. API includes can't be nested inside snippets. See [API references](https://www.shoalrun.com/publish/api-references.md) for source configuration and [example presentation](https://www.shoalrun.com/api-docs/generate.md) in reference pages.
58
58
 
59
59
  The fictional Notes API returns a saved note with its author, labels, and display metadata. The response includes a required but nullable `archivedAt` field: `null` means the note is active.
60
60
 
@@ -87,7 +87,7 @@ An active note with a nested author, two labels, and optional display metadata.
87
87
 
88
88
  ### Markdown twin
89
89
 
90
- During the build, Shoalrun selects the named example from the OpenAPI source for this page's publication and replaces `<ApiExample>` with ordinary content. An agent reading the generated `.md` page does not need to resolve the component or fetch the OpenAPI file. The example above renders as:
90
+ During the build, Shoalrun selects the named example from the OpenAPI source for this page's publication and replaces `<ApiExample>` with ordinary content. An agent reading the generated `.md` page doesn't need to resolve the component or fetch the OpenAPI file. The example above renders as:
91
91
 
92
92
  ````md
93
93
  ### Created release note
@@ -20,7 +20,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
20
20
 
21
21
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Components > ApiExample and ApiSchema
22
22
 
23
- **Updated: 2026-10-27.**
23
+ **Updated: 2026-11-05.**
24
24
 
25
25
  Parent page: [Full Markdown page](/author/components/api-embeds.md)
26
26
 
@@ -20,7 +20,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
20
20
 
21
21
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Components > ApiExample and ApiSchema
22
22
 
23
- **Updated: 2026-10-27.**
23
+ **Updated: 2026-11-05.**
24
24
 
25
25
  Parent page: [Full Markdown page](/author/components/api-embeds.md)
26
26
 
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Components > Badges
18
18
 
19
- **Updated: 2026-10-27.**
19
+ **Updated: 2026-11-05.**
20
20
 
21
21
  `<Badge>` adds a compact label inside prose, a heading, or a table cell. Write the state in its text; color and the optional icon only reinforce it.
22
22
 
@@ -44,7 +44,7 @@ The built-in variants follow the selected palette and color mode. A project can
44
44
 
45
45
  ## Add a custom color
46
46
 
47
- For example, this site registers a teal `partner` variant. It is a custom example, not one of the built-in variants. Give a custom variant `background` and `text` hex colors for light mode, and for dark mode if the site shows dark mode. `border` is optional and defaults to the text color. The build rejects unknown variant names and checks badge text against its background at 4.5:1 in each shown mode.
47
+ For example, this site registers a teal `partner` variant. It's a custom example, not one of the built-in variants. Give a custom variant `background` and `text` hex colors for light mode, and for dark mode if the site shows dark mode. `border` is optional and defaults to the text color. The build rejects unknown variant names and checks badge text against its background at 4.5:1 in each shown mode.
48
48
 
49
49
  ```yaml title="docs.config.yaml"
50
50
  badges:
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Components > Callouts
18
18
 
19
- **Updated: 2026-10-27.**
19
+ **Updated: 2026-11-05.**
20
20
 
21
21
  `<Callout>` highlights a short message in the reading flow. Use a type that matches the message's purpose. The type sets the HTML color and decorative icon, while a visible label carries the meaning in both HTML and Markdown.
22
22
 
@@ -114,7 +114,7 @@ Use the registered name in MDX:
114
114
 
115
115
  Each custom tone needs `line` (left rule), `background`, and `text` (label and icon), all as hex colors. Multiple types can share a tone.
116
116
 
117
- A tone's `dark` block sets the same three colors for [dark mode](https://www.shoalrun.com/styling/color-modes.md). It is optional on a light-only site. When `theme.mode` is `dark` or `system`, every tone in use needs `dark`, or the build fails. The build checks each tone against the site's [palette](https://www.shoalrun.com/styling/palettes.md) in every mode the site shows. Body text, links, and the label need 4.5:1 against the tone's background.
117
+ A tone's `dark` block sets the same three colors for [dark mode](https://www.shoalrun.com/styling/color-modes.md). It's optional on a light-only site. When `theme.mode` is `dark` or `system`, every tone in use needs `dark`, or the build fails. The build checks each tone against the site's [palette](https://www.shoalrun.com/styling/palettes.md) in every mode the site shows. Body text, links, and the label need 4.5:1 against the tone's background.
118
118
 
119
119
  You can also use `callouts.tones` to replace a built-in tone's colors. The five built-in types have default labels and Lucide icons; you can override their `label`, `tone`, or `icon` in `callouts.types`. A registered type without an icon displays its label without an icon. Icons are decorative and hidden from assistive technology; the label stays in HTML and Markdown. Invalid names, colors, icons, and definitions fail the build.
120
120
 
@@ -16,13 +16,13 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Components > Cards and collections
18
18
 
19
- **Updated: 2026-10-26.**
19
+ **Updated: 2026-11-05.**
20
20
 
21
21
  A card is a linked preview of another documentation page: it shows a title and short preview so readers can decide where to go next. Cards use the target page's title, the project's configured `outputs.text.card` field, and its current URL. The target is the page the reader will open when they select the card.
22
22
 
23
- Authors maintain those details in the target page's frontmatter, the YAML metadata at the top of the file. A card references the page's stable `id`, so renaming its file or changing its URL does not break the card. HTML displays a card layout; Markdown displays the same links, descriptions, subject lifecycle status, and relationship reasons as a readable list.
23
+ Authors maintain those details in the target page's frontmatter, the YAML metadata at the top of the file. A card references the page's stable `id`, so renaming its file or changing its URL doesn't break the card. HTML displays a card layout; Markdown displays the same links, descriptions, subject lifecycle status, and relationship reasons as a readable list.
24
24
 
25
- Use these components as standalone, empty blocks in `.md` or `.mdx` pages or registered snippets. Literal attributes are accepted; arbitrary JavaScript expressions are not evaluated.
25
+ Use these components as standalone, empty blocks in `.md` or `.mdx` pages or registered snippets. Literal attributes are accepted; arbitrary JavaScript expressions aren't evaluated.
26
26
 
27
27
  ## Link to one document
28
28
 
@@ -60,12 +60,12 @@ The array controls the order. Duplicate IDs fail validation. An empty array rend
60
60
  <DocCards relation="next-step" relatedTo="guide.cards" />
61
61
  ```
62
62
 
63
- | Attribute | Required | Meaning |
64
- | ----------- | ---------------------- | --------------------------------------------------------------- |
65
- | `docs` | For a curated list | Literal array of unique document IDs in display order. |
66
- | `relation` | For relationship cards | One declared relationship type; cannot be combined with `docs`. |
67
- | `relatedTo` | No | Source document for `relation`; defaults to this page. |
68
- | `empty` | No | Message for no results; default is “No matching documents.” |
63
+ | Attribute | Required | Meaning |
64
+ | ----------- | ---------------------- | -------------------------------------------------------------- |
65
+ | `docs` | For a curated list | Literal array of unique document IDs in display order. |
66
+ | `relation` | For relationship cards | One declared relationship type; can't be combined with `docs`. |
67
+ | `relatedTo` | No | Source document for `relation`; defaults to this page. |
68
+ | `empty` | No | Message for no results; default is “No matching documents.” |
69
69
 
70
70
  Use [RelatedReading](https://www.shoalrun.com/author/components/related-reading.md) when a plain link list grouped by purpose fits better than cards.
71
71
 
@@ -73,7 +73,7 @@ Use [RelatedReading](https://www.shoalrun.com/author/components/related-reading.
73
73
 
74
74
  By default, a card shows the target page's `title` and `summary`. These are the resolved values after global defaults, page frontmatter, and enforced values have been applied. Add an optional `card` object to the target page's frontmatter when its card needs different wording.
75
75
 
76
- An **eyebrow** is a short label above the card title, such as “Integration guide” or “Tutorial.” It helps readers recognize the kind of content before reading the title. It is optional display text; it does not set the document's type, add a tag, or affect collection filters. In this example, “Integration guide” appears above “Send your first payment”:
76
+ An **eyebrow** is a short label above the card title, such as “Integration guide” or “Tutorial.” It helps readers recognize the kind of content before reading the title. It's optional display text; it doesn't set the document's type, add a tag, or affect collection filters. In this example, “Integration guide” appears above “Send your first payment”:
77
77
 
78
78
  ```yaml
79
79
  title: Create a payment
@@ -92,7 +92,7 @@ card:
92
92
  | `card.eyebrow` | A small label above the title. | No label. |
93
93
  | `card.icon` | A decorative Lucide symbol above the text. | No icon, unless inherited from global frontmatter. |
94
94
 
95
- These overrides affect cards only. The page heading, SEO, and navigation keep their existing values. A card's destination always comes from the stable ID; `href` overrides are not supported. Values must be nonempty strings. Images, arbitrary badges, and other card fields are not implemented and fail with a diagnostic. Subject lifecycle status comes from the target document, including authoritative OpenAPI deprecation.
95
+ These overrides affect cards only. The page heading, SEO, and navigation keep their existing values. A card's destination always comes from the stable ID; `href` overrides aren't supported. Values must be nonempty strings. Images, arbitrary badges, and other card fields aren't implemented and fail with a diagnostic. Subject lifecycle status comes from the target document, including authoritative OpenAPI deprecation.
96
96
 
97
97
  ## Add a Lucide icon
98
98
 
@@ -105,7 +105,7 @@ card:
105
105
 
106
106
  Names use hyphens, such as `book-open`, `credit-card`, `terminal`, or `sliders-horizontal`. The pinned Lucide package supplies the icons at build time. An unknown name or URL fails with a file-specific diagnostic, so typos never silently produce an empty icon. New icons from a later Lucide release need a dependency update first.
107
107
 
108
- The icon appears in every card for that page, including curated lists, collections, and relationship views. It does not change the page heading or sidebar. Omit `card.icon` for a text-only card. Global `frontmatter.defaults.card.icon` and `frontmatter.enforced.card.icon` use the same precedence rules as other card metadata; a page can override a default with another icon name.
108
+ The icon appears in every card for that page, including curated lists, collections, and relationship views. It doesn't change the page heading or sidebar. Omit `card.icon` for a text-only card. Global `frontmatter.defaults.card.icon` and `frontmatter.enforced.card.icon` use the same precedence rules as other card metadata; a page can override a default with another icon name.
109
109
 
110
110
  Icons are inline SVGs with `aria-hidden="true"` and `focusable="false"`. The visible card title remains the link's accessible name. Icons are decorative, omitted from Markdown, and require no browser JavaScript, font download, or CDN. Only the selected SVG shapes appear in each page. Adjust their color and size with `.doc-card-icon` in `styles/site.css`.
111
111
 
@@ -113,9 +113,9 @@ Lucide is open source under the [ISC license](https://lucide.dev/license), with
113
113
 
114
114
  ## Build a collection
115
115
 
116
- A **collection** automatically finds pages that match your filters and displays them as cards. Use it when the list should follow the site's content, such as all authoring guides or pages associated with a payment operation. Unlike a curated list, you do not have to maintain an array of every matching page ID.
116
+ A **collection** automatically finds pages that match your filters and displays them as cards. Use it when the list should follow the site's content, such as all authoring guides or pages associated with a payment operation. Unlike a curated list, you don't have to maintain an array of every matching page ID.
117
117
 
118
- `DocCollection` re-runs its filters during each build. Adding a matching page adds its card on the next build; removing the tag or making that page a draft removes it. A collection does not create pages, change their metadata, or add them to sidebar navigation.
118
+ `DocCollection` re-runs its filters during each build. Adding a matching page adds its card on the next build; removing the tag or making that page a draft removes it. A collection doesn't create pages, change their metadata, or add them to sidebar navigation.
119
119
 
120
120
  This example displays up to six other guides tagged `authoring`, sorted by title:
121
121
 
@@ -130,7 +130,7 @@ No matching documents.
130
130
  | `type` | Matches the document kind in frontmatter, such as `guide` or `api-reference`. |
131
131
  | `tag` | Matches a topic label in the target's `tags` array, such as `authoring`. |
132
132
  | `operation` | Membership in its stable `operations` IDs; unknown operation IDs fail. |
133
- | `audience` | Membership in its `audiences` array; this filters metadata and does not grant access. |
133
+ | `audience` | Membership in its `audiences` array; this filters metadata and doesn't grant access. |
134
134
  | `orderBy` | `title` by default, `id`, `date`, or `releaseVersion`. Date sorts newest first; version uses numeric label ordering. Every match needs the chosen field. Stable IDs break ties. |
135
135
  | `pin` | Promotes selected matching pages to the front of the collection, in the given order. Supply a literal array of document IDs. |
136
136
  | `exclude` | A literal array of IDs to remove. IDs absent from this publication are ignored. |
@@ -145,7 +145,7 @@ For example, in the API fixture:
145
145
  <DocCollection operation="payments.create" pin={["reference.create-payment"]} />
146
146
  ```
147
147
 
148
- Pinned documents must be visible and satisfy all filters, including exclusions. Invalid pins stop the build. The `pin` and `exclude` arrays require unique document IDs. Collection ordering is deterministic and does not depend on filenames.
148
+ Pinned documents must be visible and satisfy all filters, including exclusions. Invalid pins stop the build. The `pin` and `exclude` arrays require unique document IDs. Collection ordering is deterministic and doesn't depend on filenames.
149
149
 
150
150
  ## HTML, Markdown, and agents
151
151
 
@@ -16,7 +16,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
16
16
 
17
17
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Components > Cards and collections
18
18
 
19
- **Updated: 2026-10-26.**
19
+ **Updated: 2026-11-05.**
20
20
 
21
21
  Parent page: [Full Markdown page](/author/components/cards.md)
22
22
 
@@ -28,9 +28,9 @@ Parent page: [Full Markdown page](/author/components/cards.md)
28
28
 
29
29
  A card is a linked preview of another documentation page: it shows a title and short preview so readers can decide where to go next. Cards use the target page's title, the project's configured `outputs.text.card` field, and its current URL. The target is the page the reader will open when they select the card.
30
30
 
31
- Authors maintain those details in the target page's frontmatter, the YAML metadata at the top of the file. A card references the page's stable `id`, so renaming its file or changing its URL does not break the card. HTML displays a card layout; Markdown displays the same links, descriptions, subject lifecycle status, and relationship reasons as a readable list.
31
+ Authors maintain those details in the target page's frontmatter, the YAML metadata at the top of the file. A card references the page's stable `id`, so renaming its file or changing its URL doesn't break the card. HTML displays a card layout; Markdown displays the same links, descriptions, subject lifecycle status, and relationship reasons as a readable list.
32
32
 
33
- Use these components as standalone, empty blocks in `.md` or `.mdx` pages or registered snippets. Literal attributes are accepted; arbitrary JavaScript expressions are not evaluated.
33
+ Use these components as standalone, empty blocks in `.md` or `.mdx` pages or registered snippets. Literal attributes are accepted; arbitrary JavaScript expressions aren't evaluated.
34
34
 
35
35
  ## Add a Lucide icon
36
36
 
@@ -43,7 +43,7 @@ card:
43
43
 
44
44
  Names use hyphens, such as `book-open`, `credit-card`, `terminal`, or `sliders-horizontal`. The pinned Lucide package supplies the icons at build time. An unknown name or URL fails with a file-specific diagnostic, so typos never silently produce an empty icon. New icons from a later Lucide release need a dependency update first.
45
45
 
46
- The icon appears in every card for that page, including curated lists, collections, and relationship views. It does not change the page heading or sidebar. Omit `card.icon` for a text-only card. Global `frontmatter.defaults.card.icon` and `frontmatter.enforced.card.icon` use the same precedence rules as other card metadata; a page can override a default with another icon name.
46
+ The icon appears in every card for that page, including curated lists, collections, and relationship views. It doesn't change the page heading or sidebar. Omit `card.icon` for a text-only card. Global `frontmatter.defaults.card.icon` and `frontmatter.enforced.card.icon` use the same precedence rules as other card metadata; a page can override a default with another icon name.
47
47
 
48
48
  Icons are inline SVGs with `aria-hidden="true"` and `focusable="false"`. The visible card title remains the link's accessible name. Icons are decorative, omitted from Markdown, and require no browser JavaScript, font download, or CDN. Only the selected SVG shapes appear in each page. Adjust their color and size with `.doc-card-icon` in `styles/site.css`.
49
49