@shoalrun/cli 0.1.0-alpha.18 → 0.1.0-beta.1

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 (165) hide show
  1. package/CHANGELOG.md +44 -0
  2. package/README.md +63 -28
  3. package/agent-docs/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt +7 -3
  4. package/agent-docs/SNAPSHOT.json +5 -5
  5. package/agent-docs/about.md +3 -3
  6. package/agent-docs/author/agent-overview.md +2 -2
  7. package/agent-docs/author/components/code-blocks.md +46 -1
  8. package/agent-docs/author/frontmatter-reference.md +1 -0
  9. package/agent-docs/author/frontmatter-reference.sections/categorize-connect-and-present-the-page.md +1 -0
  10. package/agent-docs/author/workspace.md +2 -2
  11. package/agent-docs/author/writing-style.md +9 -3
  12. package/agent-docs/author/writing-style.sections/adapt-this-example.md +1 -1
  13. package/agent-docs/author/writing-style.sections/choose-components-by-reader-need.md +2 -2
  14. package/agent-docs/author/writing-style.sections/evidence-and-uncertainty.md +1 -1
  15. package/agent-docs/author/writing-style.sections/example-audience-and-scope.md +1 -1
  16. package/agent-docs/author/writing-style.sections/feature-availability.md +1 -1
  17. package/agent-docs/author/writing-style.sections/ingredients-recipes-and-cookbooks.md +1 -1
  18. package/agent-docs/author/writing-style.sections/page-purpose-and-structure.md +2 -2
  19. package/agent-docs/author/writing-style.sections/procedures-and-examples.md +1 -1
  20. package/agent-docs/author/writing-style.sections/related-reading.md +1 -1
  21. package/agent-docs/author/writing-style.sections/release-notes.md +30 -0
  22. package/agent-docs/author/writing-style.sections/review-a-draft.md +1 -1
  23. package/agent-docs/author/writing-style.sections/reviewed-writing-examples.md +1 -1
  24. package/agent-docs/author/writing-style.sections/voice-and-explanations.md +1 -1
  25. package/agent-docs/changelog/2026-10-16-navigation-layouts.md +1 -1
  26. package/agent-docs/changelog/branding-security.md +66 -0
  27. package/agent-docs/changelog/pdf-custom-languages.md +48 -0
  28. package/agent-docs/changelog.md +17 -1
  29. package/agent-docs/chat/host.md +20 -2
  30. package/agent-docs/chat/settings.md +1 -1
  31. package/agent-docs/chat/settings.sections/configure-chat.md +1 -1
  32. package/agent-docs/config/examples.md +3 -3
  33. package/agent-docs/config/examples.sections/feature-showcase.md +3 -3
  34. package/agent-docs/config/examples.sections/minimal-site.md +2 -2
  35. package/agent-docs/config/examples.sections/multilingual-help-center.md +2 -2
  36. package/agent-docs/config/examples.sections/parcel-api-documentation.md +2 -2
  37. package/agent-docs/config/examples.sections/related-reading.md +2 -2
  38. package/agent-docs/config/examples.sections/shared-company-preset.md +2 -2
  39. package/agent-docs/config/outputs.md +33 -12
  40. package/agent-docs/config/outputs.sections/exports.md +3 -3
  41. package/agent-docs/config/outputs.sections/metadata.md +3 -3
  42. package/agent-docs/config/outputs.sections/pdf-output.md +51 -0
  43. package/agent-docs/config/outputs.sections/related-reading.md +3 -3
  44. package/agent-docs/configuration.md +2 -2
  45. package/agent-docs/configuration.sections/build-several-sites-from-shared-content.md +1 -1
  46. package/agent-docs/configuration.sections/change-inherited-lists-deliberately.md +1 -1
  47. package/agent-docs/configuration.sections/extract-a-section-with-include.md +1 -1
  48. package/agent-docs/configuration.sections/inspect-and-validate-changes.md +1 -1
  49. package/agent-docs/configuration.sections/related-reading.md +1 -1
  50. package/agent-docs/configuration.sections/separate-config-inheritance-from-page-metadata.md +1 -1
  51. package/agent-docs/configuration.sections/share-defaults-through-extends.md +1 -1
  52. package/agent-docs/configuration.sections/start-with-one-working-file.md +2 -2
  53. package/agent-docs/configuration.sections/understand-the-three-stages.md +1 -1
  54. package/agent-docs/configuration.sections/understand-where-paths-point.md +1 -1
  55. package/agent-docs/contribute/agent-skills.md +3 -1
  56. package/agent-docs/documents.json +623 -270
  57. package/agent-docs/features.md +4 -1
  58. package/agent-docs/index.md +2 -2
  59. package/agent-docs/provenance.json +6 -6
  60. package/agent-docs/publish/content-export.md +2 -0
  61. package/agent-docs/publish/content-export.sections/assets-downloads-and-notices.md +2 -0
  62. package/agent-docs/publish/content-export.sections/check-the-result.md +2 -0
  63. package/agent-docs/publish/content-export.sections/inspect-the-manifest.md +2 -0
  64. package/agent-docs/publish/content-export.sections/prerequisites.md +2 -0
  65. package/agent-docs/publish/content-export.sections/related-reading.md +2 -0
  66. package/agent-docs/publish/content-export.sections/review-exported-api-material.md +2 -0
  67. package/agent-docs/publish/content-export.sections/try-the-help-drawer-example.md +2 -0
  68. package/agent-docs/publish/content-export.sections/what-the-representations-retain.md +2 -0
  69. package/agent-docs/publish/pdf.md +184 -0
  70. package/agent-docs/publish/pdf.sections/apply-print-styling.md +65 -0
  71. package/agent-docs/publish/pdf.sections/check-the-result.md +33 -0
  72. package/agent-docs/publish/pdf.sections/export-a-page-or-publication.md +61 -0
  73. package/agent-docs/publish/pdf.sections/html-markdown-and-agents.md +31 -0
  74. package/agent-docs/publish/pdf.sections/offer-browser-page-printing.md +49 -0
  75. package/agent-docs/publish/pdf.sections/offer-direct-downloads-through-a-node-server.md +46 -0
  76. package/agent-docs/publish/pdf.sections/prerequisites.md +37 -0
  77. package/agent-docs/publish/pdf.sections/publish-an-optional-manual-download.md +39 -0
  78. package/agent-docs/publish.md +2 -0
  79. package/agent-docs/reference/agent-skills.md +7 -3
  80. package/agent-docs/search-index.json +1 -1
  81. package/agent-docs/start.md +4 -4
  82. package/agent-docs/start.sections/add-the-page-to-navigation.md +2 -2
  83. package/agent-docs/start.sections/build-and-check-both-outputs.md +2 -2
  84. package/agent-docs/start.sections/build-this-site.md +2 -2
  85. package/agent-docs/start.sections/check-writing-style.md +2 -2
  86. package/agent-docs/start.sections/create-a-page.md +2 -2
  87. package/agent-docs/start.sections/make-it-yours.md +2 -2
  88. package/agent-docs/start.sections/migrating-from-github-packages.md +2 -2
  89. package/agent-docs/start.sections/prerequisites.md +2 -2
  90. package/agent-docs/start.sections/related-reading.md +2 -2
  91. package/agent-docs/start.sections/start-your-own-project.md +4 -4
  92. package/agent-docs/status.md +7 -5
  93. package/agent-docs/what-is-shoalrun.md +2 -2
  94. package/assets/ask-widget.js +1 -1
  95. package/assets/copy-markdown.js +1 -1
  96. package/assets/print-view.js +165 -0
  97. package/assets/print.js +63 -0
  98. package/dist/artifact-bundle.d.ts +1 -0
  99. package/dist/artifact-bundle.js +2 -0
  100. package/dist/ask-function.js +5 -2
  101. package/dist/authoring-snapshot.js +1 -1
  102. package/dist/browser-print-assets.d.ts +9 -0
  103. package/dist/browser-print-assets.js +45 -0
  104. package/dist/chat-config.d.ts +2 -0
  105. package/dist/chat-config.js +10 -2
  106. package/dist/cli.js +2 -2
  107. package/dist/compiler.d.ts +4 -2
  108. package/dist/compiler.js +29 -4
  109. package/dist/content-export-command.d.ts +77 -1
  110. package/dist/content-export-command.js +5 -2
  111. package/dist/content-export-config.d.ts +4 -1
  112. package/dist/content-export-config.js +10 -5
  113. package/dist/content-export-render.d.ts +9 -3
  114. package/dist/content-export-render.js +11 -7
  115. package/dist/content-export.d.ts +126 -0
  116. package/dist/content-export.js +267 -124
  117. package/dist/content-source.d.ts +1 -0
  118. package/dist/frontmatter.js +5 -2
  119. package/dist/highlight-languages.d.ts +9 -0
  120. package/dist/highlight-languages.js +52 -0
  121. package/dist/highlight.d.ts +4 -1
  122. package/dist/highlight.js +20 -5
  123. package/dist/output-commit.d.ts +1 -1
  124. package/dist/output-commit.js +4 -2
  125. package/dist/page-renderer.js +6 -1
  126. package/dist/pdf-button.d.ts +22 -0
  127. package/dist/pdf-button.js +55 -0
  128. package/dist/pdf-config.d.ts +28 -0
  129. package/dist/pdf-config.js +43 -0
  130. package/dist/pdf-http.d.ts +36 -0
  131. package/dist/pdf-http.js +132 -0
  132. package/dist/pdf-project.d.ts +6 -0
  133. package/dist/pdf-project.js +31 -0
  134. package/dist/pdf-renderer.d.ts +45 -0
  135. package/dist/pdf-renderer.js +208 -0
  136. package/dist/pdf-site.d.ts +37 -0
  137. package/dist/pdf-site.js +65 -0
  138. package/dist/pdf-stylesheet.d.ts +1 -0
  139. package/dist/pdf-stylesheet.js +57 -0
  140. package/dist/representation-tree.js +1 -1
  141. package/dist/server.d.ts +2 -0
  142. package/dist/server.js +35 -8
  143. package/dist/turnstile-policy.d.ts +2 -0
  144. package/dist/turnstile-policy.js +23 -0
  145. package/dist/turnstile.d.ts +7 -0
  146. package/dist/turnstile.js +29 -2
  147. package/dist/vercel-function.js +1 -1
  148. package/dist/vercel.js +6 -0
  149. package/examples/custom-language/README.md +32 -0
  150. package/examples/custom-language/content/start.mdx +28 -0
  151. package/examples/custom-language/docs.config.yaml +18 -0
  152. package/examples/custom-language/grammars/custompy.tmLanguage.json +7 -0
  153. package/examples/pdf/README.md +27 -0
  154. package/examples/pdf/content/operations.mdx +26 -0
  155. package/examples/pdf/content/start.mdx +28 -0
  156. package/examples/pdf/docs.config.yaml +29 -0
  157. package/examples/pdf/print.css +9 -0
  158. package/package.json +4 -2
  159. package/skills/shoalrun-author/SKILL.md +2 -0
  160. package/skills/shoalrun-author/references/pdf-export.md +15 -0
  161. package/skills/shoalrun-brand/SKILL.md +54 -0
  162. package/skills/shoalrun-pdf/SKILL.md +49 -0
  163. package/skills/shoalrun-pdf/assets/print.css +49 -0
  164. package/skills/shoalrun-pdf/references/print-design.md +75 -0
  165. package/styles/site.css +3 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,49 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-beta.1 — 2026-11-05
4
+
5
+ - Add custom code-fence highlighting with local TextMate JSON grammars and aliases.
6
+ - Export [styled page or publication PDFs](https://www.shoalrun.com/publish/pdf) with custom fonts, covers, contents,
7
+ and page layouts. CLI and optional Node downloads require Chrome or Chromium.
8
+ - Add configurable branded Print PDF buttons for static sites using the
9
+ reader's browser.
10
+ - Add the `shoalrun-pdf` agent skill, runnable examples, and configuration guides.
11
+ - Harden private runtime paths and print asset loading.
12
+
13
+ Upgrade to CLI `0.1.0-beta.1` and rebuild. Page printing is off by default;
14
+ manual downloads require an explicit export and deployment.
15
+
16
+ ## 0.1.0-alpha.19 — 2026-11-05
17
+
18
+ - Give your coding agent the `shoalrun-brand` skill to match a documentation
19
+ site to your brand. It guides the agent through choosing colors and fonts,
20
+ adding your logo, and applying theme settings and CSS. It also checks search
21
+ results, menus, buttons, keyboard focus, and mobile layouts for readability.
22
+ Read it with `shoalrun skills read shoalrun-brand`.
23
+ - Make hosted chat verify where a visitor check came from. Turnstile responses
24
+ must match a trusted hostname and, when configured, the expected action.
25
+ A session pass from a different hostname/action policy no longer skips the
26
+ check, even when the deployments share a secret. Changing the policy
27
+ invalidates existing passes. Upgrade the CLI, then rebuild and
28
+ redeploy hosted chat to apply these protections.
29
+ - Keep local and hosted test previews working with Turnstile's published test
30
+ keys. Local preview checks the actual dummy-token response; the documentation
31
+ site's hosted preview requires test credentials and a separate usage store.
32
+ - Check development dependencies as well as production dependencies in both
33
+ repositories during a coordinated release. Update the documentation site's
34
+ browser tools and affected dependencies to remove the identified security
35
+ advisories without forcing incompatible package versions.
36
+ - Add security headers to the documentation site that restrict framing to the
37
+ same origin and set an explicit referrer policy. Deployment checks now reject
38
+ responses missing the required headers. A broader Content Security Policy
39
+ starts in report-only mode so browser violations can be reviewed before
40
+ enforcement; it doesn't yet block scripts. These are site-owned settings,
41
+ not new defaults imposed on customer sites.
42
+ - Refresh the repository and package READMEs with product versions, customer
43
+ editions, branding, application content delivery, and agent workflows. Update
44
+ the hosted-chat guide with hostname checks, optional actions, session passes,
45
+ and preview configuration.
46
+
3
47
  ## 0.1.0-alpha.18 — 2026-11-04
4
48
 
5
49
  - Add authored page availability ranges with `since` and `through` version
package/README.md CHANGED
@@ -1,25 +1,17 @@
1
1
  # Shoalrun
2
2
 
3
- Shoalrun turns Markdown and MDX into a documentation website and Markdown pages from the same content. People can browse the site; agents can read the Markdown. Native components such as steps, tabs, and API references preserve their content in both formats.
3
+ Shoalrun builds a documentation website, Markdown pages, and application content from the same Markdown and MDX source. People can browse the site; applications and agents can read stable documents, sections, and snippet instances. Native components keep essential instructions and API details readable in both HTML and Markdown.
4
4
 
5
- This package provides the `shoalrun` CLI, starter projects, agent skills, and offline documentation. It requires Node.js 22.12 or newer. This alpha is distributed through the public npm registry. Installation requires no npm account or package token.
5
+ This package provides the `shoalrun` CLI, starter projects, agent skills, and offline documentation. It requires Node.js 22.12 or newer. This beta is distributed through the public npm registry. Installation requires no npm account or package token.
6
6
 
7
7
  ## Install
8
8
 
9
9
  From the project where you want to keep your documentation:
10
10
 
11
11
  ```sh
12
- npm install --save-dev --save-exact @shoalrun/cli@0.1.0-alpha.18
12
+ npm install --save-dev --save-exact @shoalrun/cli@0.1.0-beta.1
13
13
  ```
14
14
 
15
- If you previously used the private GitHub Packages alpha, check `npm config get @shoalrun:registry`. Remove or replace any `@shoalrun:registry=https://npm.pkg.github.com` entry in your project or user `.npmrc`. You can explicitly select the public registry for the upgrade:
16
-
17
- ```sh
18
- npm install --save-dev --save-exact @shoalrun/cli@0.1.0-alpha.18 --@shoalrun:registry=https://registry.npmjs.org
19
- ```
20
-
21
- Commit the updated package manifest and lockfile together. Check that the lockfile resolves `@shoalrun/cli` from `registry.npmjs.org`. Keep any credentials needed by other private dependencies; Shoalrun itself no longer needs a package token.
22
-
23
15
  ## Create and preview a site
24
16
 
25
17
  Run these commands from the directory where you installed the package:
@@ -38,11 +30,44 @@ npx --no-install shoalrun dev my-docs/docs.config.yaml my-docs/site-dist --port
38
30
 
39
31
  Stop the existing preview with Ctrl-C before starting the development server on the same port. Choose **Explore the starter**, the first item in the left navigation, to find component examples, diagrams, reader views, themes, and generated API references. The service and API hosts are fictional; replace them before sending requests. Choose `--starter minimal` for a smaller starting point or `--starter api-docs` for a focused OpenAPI example. All three starters build without provider credentials.
40
32
 
33
+ ## What you can build
34
+
35
+ The [features overview](https://www.shoalrun.com/features) describes the complete authoring and delivery workflow. Start with the part you need:
36
+
37
+ | Need | Capability |
38
+ | --- | --- |
39
+ | A documentation site | Pages, navigation, local preview, themes, palettes, fonts, and project CSS. |
40
+ | Reusable procedures | Recipes, shared ingredients, and cookbooks that help readers choose a complete task. |
41
+ | API reference | OpenAPI operation pages, code examples, focused contracts, and an explicit source-review gate. |
42
+ | Several product releases | Independent product versions and defaults, publication routes, and a header publication selector. |
43
+ | Customer editions | External profiles, SKU revisions, feature grants, and conditional pages or sections. |
44
+ | Application help | HTML and Markdown exports, stable page/section/snippet references, static and REST clients, and instance-safe mounting. |
45
+ | Agent discovery | Markdown twins, compact linked indexes, read-only MCP tools, bundled skills, and offline references. |
46
+ | Search and answers | Browser keyword search, optional semantic retrieval, and hosted documentation chat with shared limits. |
47
+
48
+ Local builds and keyword search need no provider credentials. Semantic retrieval and generated answers use separately configured services; credentials stay server-side. Reader filters are browsing controls, not authorization. Customer profiles select output during compilation; private-edition hosting remains your responsibility.
49
+
50
+ ## Match your brand
51
+
52
+ Use `site.logo`, `site.favicon`, and header settings for site identity. Choose a theme preset and configure `theme.palette`, `theme.mode`, and `theme.fonts`. Use `site.customCss` for changes beyond those settings. Customer profiles can supply deployment-owned branding without storing customer records in the shared source.
53
+
54
+ Check controls and interactive states as well as article text: a dark header can contain light inputs, menus, and search results. Palette validation doesn't check arbitrary project CSS. See [themes and fonts](https://www.shoalrun.com/styling/themes), the [CSS reference](https://www.shoalrun.com/author/css), and [deployment profiles](DEPLOYMENT-PROFILES.md).
55
+
56
+ ## Export styled PDFs
57
+
58
+ Export a page with `shoalrun export docs.config.yaml --format pdf --document guide.start --out pdf/page`, or omit `--document` for a complete selected publication. PDF exports respect publication coordinates, customer profiles, and the target's content filter (falling back to the site's filter). Set shared fonts, local print CSS, paper size, margins, cover, linked contents, and page numbering under `outputs.pdf`; named export targets can override those settings.
59
+
60
+ PDF generation needs an installed Chrome/Chromium executable, selected through `SHOALRUN_PDF_BROWSER` or `outputs.pdf.executablePath`. Ordinary package installation doesn't download a browser. PDF rendering runs offline with page scripts disabled.
61
+
62
+ Enable `outputs.html.pdf: { mode: print }` for a **Print PDF** page action on a static site. The browser fills a separate branded print view with the current article and uses `outputs.pdf` styling. Scripts, theme CSS, settings, and configured fonts/logo are shared across pages; builds generate no page PDFs or extra print documents and need no Chromium for this action. The action is off by default; an enabled mapping defaults to print mode. Configure its label, placement, include/exclude IDs, and optional `style` target; `pdf: false` suppresses a page. The original page remains unchanged. Native browser printing remains a fallback using website print CSS.
63
+
64
+ Generate a full manual with the CLI only when you want a downloadable PDF, then deliberately add it and its link to the static deployment. Explicit `{ mode: endpoint }` offers on-demand PDF downloads through the Node server; optional `style` selects a named target's PDF settings without changing page selection. Vercel supports print mode. Keep endpoint-mode private inputs behind the Node server or equivalent authenticated custom handler, never in generic public static serving. See [the runnable PDF example](examples/pdf/README.md).
65
+
41
66
  ## Independently versioned products
42
67
 
43
68
  Projects can give each product its own version catalog and default version. Product publications carry a product, channel, version, and language; routes, document links, navigation, search, and content exports retain that scope. Existing projects without product catalogs keep their publication identities and routes.
44
69
 
45
- Available since `0.1.0-alpha.18`.
70
+ Product catalogs and profile-aware development preview are available since `0.1.0-alpha.18`. The product names and versions below are an example configuration.
46
71
 
47
72
  The header publication dropdown groups the published releases by product. It hides language labels when the edition has one language; set `site.publicationSelector.showLanguage: true` or `false` to override that display without changing publication identity.
48
73
 
@@ -87,7 +112,7 @@ publications:
87
112
  The shared configuration must declare `profiles.manifest`, which defines the known features and SKU revisions. Each selected publication must be enabled by that configuration. Preview the customer edition directly:
88
113
 
89
114
  ```sh
90
- npx --no-install shoalrun dev docs.config.yaml site-dist --profile customers/acme.yaml --port 8770
115
+ npx --no-install shoalrun dev docs.config.yaml site-dist --profile customers/example.yaml --port 8770
91
116
  ```
92
117
 
93
118
  The development server compiles the selected edition and watches its profile, SKU manifest, and declared assets, including files outside the project. Editing the profile rebuilds the edition and removes output that is no longer selected. The preview identifies the last successful edition. If a rebuild fails, it keeps that output and displays the failure on existing and newly opened pages. Reader views remain browsing controls; customer profile selection applies during compilation to HTML, Markdown, navigation, and indexes.
@@ -96,7 +121,7 @@ Agents can discover product scopes through MCP `get_publications` before searchi
96
121
 
97
122
  ## Work with an agent
98
123
 
99
- Shoalrun works with your existing coding agent. Its packaged skills explain how to set up a site, edit pages, and develop components:
124
+ Shoalrun works with your existing coding agent. Its packaged skills cover setup, page authoring, components, recipes, walkthroughs, branding, and styled PDF exports. Use `skills list` to discover the skills included with your installed version:
100
125
 
101
126
  ```sh
102
127
  npx --no-install shoalrun skills list
@@ -105,7 +130,7 @@ npx --no-install shoalrun skills read shoalrun-setup
105
130
 
106
131
  Ask your agent to read the skill for the task. `skills list` returns names, descriptions, and local instruction-file paths. These commands read the skills; installing the npm package does not automatically install them into your agent.
107
132
 
108
- The usual editing workflow is to capture a baseline, edit source files, validate the changes, then review a local preview. From your documentation project directory:
133
+ The editing workflow is to capture a baseline, edit source files, validate the changes, then review a local preview. From your documentation project directory:
109
134
 
110
135
  ```sh
111
136
  npx --no-install shoalrun docs baseline --out .shoalrun/task-baseline.json
@@ -113,7 +138,7 @@ npx --no-install shoalrun docs baseline --out .shoalrun/task-baseline.json
113
138
  npx --no-install shoalrun docs validate --baseline .shoalrun/task-baseline.json
114
139
  ```
115
140
 
116
- Validation returns a report path. Pass that path to `shoalrun docs review` and `shoalrun docs preview`. Snapshot validation can render affected draft pages while preserving their draft access; ordinary site builds exclude drafts. Supply your own project writing and review requirements—the starter does not define them for you.
141
+ Validation returns a report path. Pass that path to `shoalrun docs review` and `shoalrun docs preview`. Snapshot validation can render affected draft pages while preserving their draft access; ordinary site builds exclude drafts. Supply your own project writing and review requirements. Configured checks and custom plugins execute trusted project code; a validation copy is not an operating-system sandbox.
117
142
 
118
143
  ## Find documentation
119
144
 
@@ -297,18 +322,6 @@ The limit applies to each index response, not an entire multi-step reading sessi
297
322
  An individual title or summary too large to fit an index produces an explicit
298
323
  build error rather than silently dropping content.
299
324
 
300
- ## Status and development
301
-
302
- This alpha may change configuration and output formats between releases. No compatibility promise or maintained older release line is offered yet. Creating and previewing a basic site does not require a model provider or Chrome. Optional provider-backed features require their own configuration.
303
-
304
- Shoalrun is maintainer-led and does not accept unsolicited pull requests at this time. The [repository development instructions](https://github.com/shoalrun/shoalrun#develop-the-framework) explain how to build and test your own checkout or fork.
305
-
306
- Pin an exact package version and read the [changelog](CHANGELOG.md) before upgrading. Rebuild and check HTML, Markdown, links, and any application consuming exported content before deploying. See the [contribution policy](https://github.com/shoalrun/shoalrun/blob/main/CONTRIBUTING.md) and [security policy](https://github.com/shoalrun/shoalrun/blob/main/SECURITY.md) for reporting problems and project trust boundaries.
307
-
308
- ## License
309
-
310
- Copyright 2026 Casey Smith. This package is licensed under [Apache-2.0](LICENSE). Your authored site content keeps its own license. Built sites contain runtime assets and may contain copied template text; retain applicable licenses and third-party notices when distributing them.
311
-
312
325
  ## Verification dates
313
326
 
314
327
  Set `verified` only after checking a page's technical claims. It is separate from
@@ -327,3 +340,25 @@ in HTML only; Markdown and manifest metadata retain it. Set
327
340
  `frontmatter.defaults.showVerified: false` in project configuration for a shared
328
341
  default, then override it with `showVerified: true` on individual pages. A layout
329
342
  with a Hero replaces the standard page header and does not display its dates.
343
+
344
+ ## Upgrade from the earlier private registry
345
+
346
+ If you previously used the private GitHub Packages alpha, check `npm config get @shoalrun:registry`. Remove or replace any `@shoalrun:registry=https://npm.pkg.github.com` entry in your project or user `.npmrc`. You can explicitly select the public registry for the upgrade:
347
+
348
+ ```sh
349
+ npm install --save-dev --save-exact @shoalrun/cli@0.1.0-beta.1 --@shoalrun:registry=https://registry.npmjs.org
350
+ ```
351
+
352
+ Commit the updated package manifest and lockfile together. Check that the lockfile resolves `@shoalrun/cli` from `registry.npmjs.org`. Keep any credentials needed by other private dependencies; Shoalrun itself no longer needs a package token.
353
+
354
+ ## Status and development
355
+
356
+ This beta may change configuration and output formats between releases. No compatibility promise or maintained older release line is offered yet. Creating and previewing a basic site does not require a model provider or Chrome. Optional provider-backed features require their own configuration.
357
+
358
+ Shoalrun is maintainer-led and does not accept unsolicited pull requests at this time. The [repository development instructions](https://github.com/shoalrun/shoalrun#develop-the-framework) explain how to build and test your own checkout or fork.
359
+
360
+ Pin an exact package version and read the [changelog](CHANGELOG.md) before upgrading. Rebuild and check HTML, Markdown, links, and any application consuming exported content before deploying. See the [contribution policy](https://github.com/shoalrun/shoalrun/blob/main/CONTRIBUTING.md) and [security policy](https://github.com/shoalrun/shoalrun/blob/main/SECURITY.md) for reporting problems and project trust boundaries.
361
+
362
+ ## License
363
+
364
+ Copyright 2026 Casey Smith. This package is licensed under [Apache-2.0](LICENSE). Your authored site content keeps its own license. Built sites contain runtime assets and may contain copied template text; retain applicable licenses and third-party notices when distributing them.
@@ -24,17 +24,21 @@ Full-page token counts use cl100k_base. Navigation section ID: project-updates.
24
24
 
25
25
  - [Smaller hosted search and Ask functions](https://www.shoalrun.com/changelog/2026-11-04-runtime-packaging.md) — ID: change.2026-11-04-runtime-packaging. changelog-entry; 647 tokens. Rebuild hosted docs with alpha.17 to reduce deployment files while keeping semantic search and Ask available.
26
26
 
27
+ - [Branding guidance and safer hosted chat](https://www.shoalrun.com/changelog/branding-security.md) — ID: change.branding-security. changelog-entry; 936 tokens. Match your documentation to your brand with an agent skill, and bind hosted-chat visitor checks to the intended site.
28
+
29
+ - [Styled PDFs and custom code languages](https://www.shoalrun.com/changelog/pdf-custom-languages.md) — ID: change.pdf-custom-languages. changelog-entry; 487 tokens. Print branded pages, export a complete PDF manual, and highlight your own code language.
30
+
27
31
  - [Authoring snapshot previews and review reports](https://www.shoalrun.com/changelog/authoring-preview.md) — ID: change.authoring-preview. changelog-entry; 554 tokens. Snapshot previews with coverage and freshness reports.
28
32
 
29
33
  - [Agent authoring, search, and documentation answers](https://www.shoalrun.com/changelog/authoring-search.md) — ID: change.authoring-search. changelog-entry; 468 tokens. Reviewed agent drafts, search improvements, and answer context.
30
34
 
31
35
  - [Working-tree authoring tools](https://www.shoalrun.com/changelog/authoring-tools.md) — ID: change.authoring-tools. changelog-entry; 384 tokens. Project discovery and captured working-tree validation.
32
36
 
33
- - [Changelog](https://www.shoalrun.com/changelog.md) — ID: reference.changelog. reference; 1337 tokens. Compiler, CLI, and reader changes.
37
+ - [Changelog](https://www.shoalrun.com/changelog.md) — ID: reference.changelog. reference; 1472 tokens. Compiler, CLI, and reader changes.
34
38
 
35
39
  - [MCP hosting, analytics, and component improvements](https://www.shoalrun.com/changelog/2026-10-17-mcp-hosting.md) — ID: change.mcp-hosting. changelog-entry; 1147 tokens. MCP hosting, analytics, and shared component content.
36
40
 
37
- - [Navigation, page layouts, and browser analytics](https://www.shoalrun.com/changelog/2026-10-16-navigation-layouts.md) — ID: change.navigation-layouts. changelog-entry; 1095 tokens. Navigation sections, reader controls, layouts, and browser analytics.
41
+ - [Navigation, page layouts, and browser analytics](https://www.shoalrun.com/changelog/2026-10-16-navigation-layouts.md) — ID: change.navigation-layouts. changelog-entry; 1093 tokens. Navigation sections, reader controls, layouts, and browser analytics.
38
42
 
39
43
  - [Search results and tooltips](https://www.shoalrun.com/changelog/2026-10-18-search-and-tooltips.md) — ID: change.search-and-tooltips. changelog-entry; 675 tokens. Indexed search and hover and focus tooltips.
40
44
 
@@ -44,4 +48,4 @@ Full-page token counts use cl100k_base. Navigation section ID: project-updates.
44
48
 
45
49
  - [Non-goals](https://www.shoalrun.com/non-goals.md) — ID: guide.non-goals. explanation; 821 tokens. Scope limits for skill generation, agent orchestration, and reader-view authorization.
46
50
 
47
- - [Project status](https://www.shoalrun.com/status.md) — ID: guide.status. reference; 1850 tokens. Current capabilities, planned features, and known limits.
51
+ - [Project status](https://www.shoalrun.com/status.md) — ID: guide.status. reference; 1918 tokens. Current capabilities, planned features, and known limits.
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "sourceRepository": "https://github.com/shoalrun/docs",
4
- "sourceCommit": "201a4e562b70414e26ecba7c2488ba899550f06b",
5
- "siteBuildId": "41390a172a8dbd578761e016a1c5890718f0b06c37f90b40769f585f75fd71ec",
6
- "manifestDigest": "b0996def2c34eaafbb41b5ab5b3ca0e78a370a620ffb4b8bfe53bc6248300d05",
7
- "indexDigest": "ed3b6ccce7e13cb3d038707a22430a76367522344d879a166d2764d445c16e06",
8
- "packageIntegrity": "sha512-91enZzr2NCzCFo8OXfEZWjI7SQD+FVlFtEwRD30UKaMD3OBjgVY0wBgZyvVULXMUoZkdbyOj/OpdfDw/Tkk1ww=="
4
+ "sourceCommit": "01614c57a52c0157fb48fc12f434962f27f704e7",
5
+ "siteBuildId": "30b28d69af454479a90a00f3b015448f97af9be0c46d153441408b899ccaf08f",
6
+ "manifestDigest": "7337bcec6d88bb4934afff2eb68562244f9391af3d651ead5111fa2bf794c132",
7
+ "indexDigest": "090e6b3f4bd7c9968b75b609a695e6ebd6f596a66135db41968c3905258a25d6",
8
+ "packageIntegrity": "sha512-uigk3DRE8FClwgyo5kGeyPtB7CXkpLVEAQGhHxMd0exbFThqvvMxPGGVL7rohJdw+o0xSmFNK0U7/TvwLatyZw=="
9
9
  }
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  id: guide.about
3
3
  title: About Shoalrun
4
- summary: Learn what Shoalrun is exploring and where the alpha stands.
4
+ summary: Learn what Shoalrun is exploring and where the beta stands.
5
5
  type: overview
6
6
  area: project
7
7
  subarea: project-overview
@@ -12,7 +12,7 @@ canonical: /about
12
12
 
13
13
  > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
14
14
 
15
- **Updated: 2026-10-27.**
15
+ **Updated: 2026-11-06.**
16
16
 
17
17
  I'm CT Smith, and I'm building Shoalrun cause there's no such thing as a perfect doc tool. I have opinions, undirected rage, and curiosity about doc-building tools. I built my first documentation generator back in 2015. It was based on Jekyll and relied heavily (probably too heavily) on general templating and... you guessed it... *page metadata*.
18
18
 
@@ -42,7 +42,7 @@ API content follows the same approach. Local OpenAPI files can supply reference
42
42
 
43
43
  I'm building Shoalrun for tinkerers like me, who will never be fully satisfied with a mass market docs tool. Docs are never one-size-fits-all, on any level.
44
44
 
45
- You can try the alpha CLI from npm: [Getting started](https://www.shoalrun.com/start.md) walks through installation and your first page. The [project status](https://www.shoalrun.com/status.md) describes what works and what still needs work.
45
+ You can try the beta CLI from npm: [Getting started](https://www.shoalrun.com/start.md) walks through installation and your first page. The [project status](https://www.shoalrun.com/status.md) describes what works and what still needs work.
46
46
 
47
47
  yee haw forever,
48
48
 
@@ -20,7 +20,7 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
20
20
 
21
21
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Write with agents > Tools overview
22
22
 
23
- **Updated: 2026-11-05.**
23
+ **Updated: 2026-11-06.**
24
24
 
25
25
  **Status: Experimental.**
26
26
 
@@ -40,7 +40,7 @@ Existing checked plan/apply commands remain available for clients that need them
40
40
 
41
41
  Compiler checks establish structural validity. They don't establish factual accuracy, clear writing, or a successful reader task. Review the diff, supporting evidence, and rendered documentation before using your project's release process.
42
42
 
43
- Local previews serve the exact captured build and show its freshness. Review reports list task scope, affected HTML/Markdown, findings, checks, and dependencies. The portable authoring skill guides this working-tree workflow. Independent author trials remain separate from these checks. Install the alpha CLI through [Getting started](https://www.shoalrun.com/start.md).
43
+ Local previews serve the exact captured build and show its freshness. Review reports list task scope, affected HTML/Markdown, findings, checks, and dependencies. The portable authoring skill guides this working-tree workflow. Independent author trials remain separate from these checks. Install the beta CLI through [Getting started](https://www.shoalrun.com/start.md).
44
44
 
45
45
  ## Related reading
46
46
 
@@ -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 > Code blocks
18
18
 
19
- **Updated: 2026-11-05.**
19
+ **Updated: 2026-11-06.**
20
20
 
21
21
  Fenced code is ordinary Markdown rather than an MDX component. It belongs in the component reference because authors use it beside components to show commands, configuration, and payloads.
22
22
 
@@ -70,6 +70,51 @@ To use a theme you know from your editor, set `theme` to a bundled Shiki theme n
70
70
 
71
71
  The built-in grammars are JSON, YAML, shell, JavaScript, TypeScript, Python, HTML, CSS, MDX, Markdown, HTTP, XML, SQL, Go, Java, Ruby, C#, PHP, and Rust. Shiki also recognizes loaded aliases such as `sh` and `js`. Unknown or unlabeled code stays plain. JSON-compatible API examples use JSON highlighting; text media currently use plain text.
72
72
 
73
+ ### Add your language's grammar
74
+
75
+ Since 0.1.0-beta.1
76
+
77
+ Use `languages` with Shiki to add a custom language without writing a highlighter adapter. Give it an ID, a local TextMate JSON grammar, and optional aliases:
78
+
79
+ ```yaml title="docs.config.yaml"
80
+ outputs:
81
+ html:
82
+ highlighting:
83
+ provider: shiki
84
+ languages:
85
+ - id: custompy
86
+ grammar: ./grammars/custompy.tmLanguage.json
87
+ aliases: [cpy]
88
+ ```
89
+
90
+ For example, this small grammar adds two illustrative keywords before using Python's bundled syntax rules:
91
+
92
+ ```json title="grammars/custompy.tmLanguage.json"
93
+ {
94
+ "scopeName": "source.custompy",
95
+ "patterns": [
96
+ { "name": "keyword.control.custompy", "match": "\\b(?:publish|unless)\\b" },
97
+ { "include": "source.python" }
98
+ ]
99
+ }
100
+ ```
101
+
102
+ Use `custompy` or `cpy` as the fence language:
103
+
104
+ ````md
105
+ ```custompy
106
+ def welcome(name):
107
+ unless name is None:
108
+ publish "Hello, " + name
109
+ ```
110
+ ````
111
+
112
+ The grammar path is relative to the config file that declares it, including imported fragments. Use a local JSON file no larger than 4 MiB; XML `.tmLanguage` files aren't supported. The grammar needs a `scopeName` and a `patterns` array. Choose a distinct scope name, and don't reuse a bundled language ID or alias. IDs and aliases use lowercase letters, digits, underscores, or hyphens and start with a letter.
113
+
114
+ The grammar is a build dependency. `dev` watches it, and isolated authoring validation captures it. Changing the rules rebuilds the colors; a missing or malformed grammar fails the build without replacing valid output. Registrations are isolated between projects built in the same process. Grammar files aren't copied into the browser's assets.
115
+
116
+ This adds syntax colors to website HTML, not language validation or autocomplete. Filenames remain labels; they don't choose a grammar. The Markdown twin keeps the original code and language ID. Retain applicable license notices when using or adapting an existing grammar.
117
+
73
118
  ### Choose plain code
74
119
 
75
120
  ```yaml
@@ -87,6 +87,7 @@ By default, `product`, `area`, and `subarea` are optional, nonempty string categ
87
87
  | `layout` | string | Optional | HTML page layout: docs (default), wide (no page outline, full content width), landing (no sidebar or outline; a Hero replaces the page header), or splash (full-bleed marketing page built from Hero and Section blocks). |
88
88
  | `showNavigationTabs` | boolean | Optional | Show the HTML navigation section bar when tabs are configured. Defaults to true for docs and wide layouts, false for landing and splash. Does not change agent discovery or section membership. |
89
89
  | `showVerified` | boolean | Optional | Show an authored verified date in the HTML page header. Defaults to true. False hides it only in HTML; Markdown and manifest dates remain unchanged. Does not assign a verification date. |
90
+ | `pdf` | boolean | Optional | Controls the optional page print/PDF action. False suppresses its control and endpoint inputs; true follows the site setting. Site builds do not generate per-page PDFs. |
90
91
  | `image` | string | Optional | Local .png or .jpg shown in link previews for this page, relative to the page file; replaces the generated share image. Best at 1200×630. |
91
92
 
92
93
  Projects can opt into built-in category enforcement with `frontmatter.taxonomy`. It declares areas and their allowed subareas, optional required fields, and optional explicit-field requirements for authored pages. Its `multiple` list permits arrays for selected category fields; otherwise each field allows one value. Defaults and enforced values still apply; generated API references use resolved categories. Definitions appear in the document manifest and constrain the generated frontmatter schema. Omit taxonomy or set it to false to preserve optional category behavior.
@@ -57,6 +57,7 @@ By default, `product`, `area`, and `subarea` are optional, nonempty string categ
57
57
  | `layout` | string | Optional | HTML page layout: docs (default), wide (no page outline, full content width), landing (no sidebar or outline; a Hero replaces the page header), or splash (full-bleed marketing page built from Hero and Section blocks). |
58
58
  | `showNavigationTabs` | boolean | Optional | Show the HTML navigation section bar when tabs are configured. Defaults to true for docs and wide layouts, false for landing and splash. Does not change agent discovery or section membership. |
59
59
  | `showVerified` | boolean | Optional | Show an authored verified date in the HTML page header. Defaults to true. False hides it only in HTML; Markdown and manifest dates remain unchanged. Does not assign a verification date. |
60
+ | `pdf` | boolean | Optional | Controls the optional page print/PDF action. False suppresses its control and endpoint inputs; true follows the site setting. Site builds do not generate per-page PDFs. |
60
61
  | `image` | string | Optional | Local .png or .jpg shown in link previews for this page, relative to the page file; replaces the generated share image. Best at 1200×630. |
61
62
 
62
63
  Projects can opt into built-in category enforcement with `frontmatter.taxonomy`. It declares areas and their allowed subareas, optional required fields, and optional explicit-field requirements for authored pages. Its `multiple` list permits arrays for selected category fields; otherwise each field allows one value. Defaults and enforced values still apply; generated API references use resolved categories. Definitions appear in the document manifest and constrain the generated frontmatter schema. Omit taxonomy or set it to false to preserve optional category behavior.
@@ -20,11 +20,11 @@ Navigation section: [Docs](https://www.shoalrun.com/.well-known/shoalrun/navigat
20
20
 
21
21
  Breadcrumbs: [Docs](https://www.shoalrun.com/what-is-shoalrun.md) > Write documentation > Write with agents > Check edits
22
22
 
23
- **Updated: 2026-11-05.**
23
+ **Updated: 2026-11-06.**
24
24
 
25
25
  **Status: Experimental.**
26
26
 
27
- Use this procedure from your documentation project directory, containing `docs.config.yaml`, with `@shoalrun/cli` installed. [Getting started](https://www.shoalrun.com/start.md) explains how to install the alpha package from npm. You need Node.js 22.12 or newer; a framework source checkout and a separate authoring provider key aren't required. Your coding agent uses its own model and file tools. Replace the example page path with your project's path.
27
+ Use this procedure from your documentation project directory, containing `docs.config.yaml`, with `@shoalrun/cli` installed. [Getting started](https://www.shoalrun.com/start.md) explains how to install the beta package from npm. You need Node.js 22.12 or newer; a framework source checkout and a separate authoring provider key aren't required. Your coding agent uses its own model and file tools. Replace the example page path with your project's path.
28
28
 
29
29
  Framework contributors can instead build the source checkout and run `node framework/dist/cli.js <command>` from its root. The examples below use the installed package.
30
30
 
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  This page is an example of a project writing guide. The rules below are the house style for Shoalrun's own documentation site, and authors and agents use them through project instructions. Shoalrun doesn't automatically apply these rules to other projects.
23
23
 
@@ -42,7 +42,7 @@ Choose the page type by the reader's goal and the actual content. Keep one prima
42
42
  | Ingredient | Reuse one task step in several recipes. | Required inputs and prerequisites, one action with its instructions, named outputs, and an observable check. Keep the step independent of any recipe's position or neighboring wording. |
43
43
  | Recipe | Complete one task from a known starting state. | Outcome, prerequisites, ordered actions, failure guidance, and a final success check. Include everything needed to follow the published page on its own. |
44
44
  | Cookbook | Choose between complete recipes. | Explain who each path is for, what it needs, and what it produces; link to the published recipe pages. State whether choices are alternatives or can be combined. |
45
- | Changelog entry | Understand a dated change. | User-visible behavior, scope, migration when needed, and limitations. Say when a change concerns the private prototype; claim a release only with release evidence. |
45
+ | Changelog entry | Understand a dated change. | A short capability summary, links to the feature guides, and required upgrade or migration actions. Claim a release only with release evidence. |
46
46
 
47
47
  Use **Before you begin**, **Check the result**, and **Next steps** for recurring task sections when revising a procedure. Keep action headings specific to the task. Existing tutorials can retain established headings when tools or incoming fragments depend on them. A short procedure may put prerequisites in its introduction; omit sections that add no useful information.
48
48
 
@@ -54,6 +54,12 @@ Run customer commands from a project with the pinned npm package installed, usin
54
54
 
55
55
  These are editorial shapes, not a reason to add empty boilerplate. Follow the [template rules](https://www.shoalrun.com/author/templates.md) and adapt the outline to the reader's need. Headings in a page body start at level two because the renderer supplies the title. Don't add step numbers to authored headings. For a procedure with titled steps, use the [Steps component](https://www.shoalrun.com/author/components/steps.md); it supplies the numbering in HTML and Markdown.
56
56
 
57
+ ## Release notes
58
+
59
+ Keep release notes short and factual. Name what readers can do, link each feature heading to its guide, and state the exact upgrade or rebuild action. Prefer a brief paragraph per feature; leave configuration examples and detailed behavior in the linked documentation.
60
+
61
+ Include before/after explanations only when readers upgrading from a published release need them. Omit development history, discarded designs, implementation walkthroughs, test counts, and generic recaps. Expand when a migration or security action needs explanation. Release-note summaries link to feature guides for HTML, Markdown, and agent details instead of repeating those sections.
62
+
57
63
  ## Voice and explanations
58
64
 
59
65
  Use natural contractions such as “don't,” “can't,” “it's,” and “you're.” Keep expanded forms when emphasis or clarity needs them. Preserve exact commands, configuration values, API fields, error messages, and quotations. Vale's `Shoalrun.Contractions` rule flags common expanded forms for review; contractions themselves are accepted.
@@ -107,7 +113,7 @@ Choose the structure that helps readers use the information or complete the task
107
113
 
108
114
  Introduce every table with a sentence explaining what readers should use it for. Never place a table directly after a heading. The formatting check enforces this rule with `DocShape.TableIntroduction`.
109
115
 
110
- Don't hide an essential instruction inside decoration. Every page documenting a component or presentation feature needs an **HTML, Markdown, and agents** section, or an existing clearly named equivalent. Explain what HTML shows or lets readers do, what Markdown retains or omits, and how an agent gets the information needed for the task. Include limitations and keyboard or JavaScript behavior when relevant. Check both rendered outputs.
116
+ Don't hide an essential instruction inside decoration. Component references and guides that explain a presentation feature need an **HTML, Markdown, and agents** section, or an existing clearly named equivalent. Explain what HTML shows or lets readers do, what Markdown retains or omits, and how an agent gets the information needed for the task. Include limitations and keyboard or JavaScript behavior when relevant. Check both rendered outputs.
111
117
 
112
118
  A page that merely uses a callout, link, or Steps component needs the section only when that use changes access to information. Avoid generic claims that both formats are identical: explain the actual representation. Cookbook pages must distinguish their recipe links from the complete instructions in the linked recipes or a downloaded selection.
113
119
 
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/writing-style.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/writing-style.md)
23
23
 
@@ -39,6 +39,6 @@ Choose the structure that helps readers use the information or complete the task
39
39
 
40
40
  Introduce every table with a sentence explaining what readers should use it for. Never place a table directly after a heading. The formatting check enforces this rule with `DocShape.TableIntroduction`.
41
41
 
42
- Don't hide an essential instruction inside decoration. Every page documenting a component or presentation feature needs an **HTML, Markdown, and agents** section, or an existing clearly named equivalent. Explain what HTML shows or lets readers do, what Markdown retains or omits, and how an agent gets the information needed for the task. Include limitations and keyboard or JavaScript behavior when relevant. Check both rendered outputs.
42
+ Don't hide an essential instruction inside decoration. Component references and guides that explain a presentation feature need an **HTML, Markdown, and agents** section, or an existing clearly named equivalent. Explain what HTML shows or lets readers do, what Markdown retains or omits, and how an agent gets the information needed for the task. Include limitations and keyboard or JavaScript behavior when relevant. Check both rendered outputs.
43
43
 
44
44
  A page that merely uses a callout, link, or Steps component needs the section only when that use changes access to information. Avoid generic claims that both formats are identical: explain the actual representation. Cookbook pages must distinguish their recipe links from the complete instructions in the linked recipes or a downloaded selection.
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/writing-style.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/writing-style.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/writing-style.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/writing-style.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/writing-style.md)
23
23
 
@@ -36,7 +36,7 @@ Choose the page type by the reader's goal and the actual content. Keep one prima
36
36
  | Ingredient | Reuse one task step in several recipes. | Required inputs and prerequisites, one action with its instructions, named outputs, and an observable check. Keep the step independent of any recipe's position or neighboring wording. |
37
37
  | Recipe | Complete one task from a known starting state. | Outcome, prerequisites, ordered actions, failure guidance, and a final success check. Include everything needed to follow the published page on its own. |
38
38
  | Cookbook | Choose between complete recipes. | Explain who each path is for, what it needs, and what it produces; link to the published recipe pages. State whether choices are alternatives or can be combined. |
39
- | Changelog entry | Understand a dated change. | User-visible behavior, scope, migration when needed, and limitations. Say when a change concerns the private prototype; claim a release only with release evidence. |
39
+ | Changelog entry | Understand a dated change. | A short capability summary, links to the feature guides, and required upgrade or migration actions. Claim a release only with release evidence. |
40
40
 
41
41
  Use **Before you begin**, **Check the result**, and **Next steps** for recurring task sections when revising a procedure. Keep action headings specific to the task. Existing tutorials can retain established headings when tools or incoming fragments depend on them. A short procedure may put prerequisites in its introduction; omit sections that add no useful information.
42
42
 
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/writing-style.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/writing-style.md)
23
23
 
@@ -0,0 +1,30 @@
1
+ ---
2
+ id: reference.writing-style
3
+ title: Example writing guide
4
+ summary: Adapt this site's writing guide for your own documentation and agent
5
+ instructions.
6
+ type: reference
7
+ area: authoring
8
+ subarea: authoring-writing
9
+ canonical: /author/writing-style
10
+ ---
11
+
12
+ # Example writing guide
13
+
14
+ > Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
15
+
16
+ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/navigation/reference-tab-50f26fe22670.txt) (ID: reference-tab). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
17
+
18
+ Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
+
20
+ **Updated: 2026-11-06.**
21
+
22
+ Parent page: [Full Markdown page](/author/writing-style.md)
23
+
24
+ This page is an example of a project writing guide. The rules below are the house style for Shoalrun's own documentation site, and authors and agents use them through project instructions. Shoalrun doesn't automatically apply these rules to other projects.
25
+
26
+ ## Release notes
27
+
28
+ Keep release notes short and factual. Name what readers can do, link each feature heading to its guide, and state the exact upgrade or rebuild action. Prefer a brief paragraph per feature; leave configuration examples and detailed behavior in the linked documentation.
29
+
30
+ Include before/after explanations only when readers upgrading from a published release need them. Omit development history, discarded designs, implementation walkthroughs, test counts, and generic recaps. Expand when a migration or security action needs explanation. Release-note summaries link to feature guides for HTML, Markdown, and agent details instead of repeating those sections.
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/writing-style.md)
23
23
 
@@ -17,7 +17,7 @@ Navigation section: [Reference](https://www.shoalrun.com/.well-known/shoalrun/na
17
17
 
18
18
  Breadcrumbs: [Reference](https://www.shoalrun.com/cli.md) > Authoring reference > Example writing guide
19
19
 
20
- **Updated: 2026-11-05.**
20
+ **Updated: 2026-11-06.**
21
21
 
22
22
  Parent page: [Full Markdown page](/author/writing-style.md)
23
23