@shoalrun/cli 0.1.0-alpha.13 → 0.1.0-alpha.15
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.
- package/CHANGELOG.md +33 -0
- package/DEPLOYMENT-PROFILES.md +287 -0
- package/README.md +5 -2
- package/agent-docs/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt +5 -1
- package/agent-docs/SNAPSHOT.json +5 -5
- package/agent-docs/changelog/2026-10-30.md +43 -0
- package/agent-docs/changelog/2026-11-03.md +56 -0
- package/agent-docs/changelog.md +17 -1
- package/agent-docs/documents.json +419 -61
- package/agent-docs/index.md +73 -103
- package/agent-docs/provenance.json +4 -4
- package/agent-docs/publish/content-export.md +1 -1
- package/agent-docs/publish/content-export.sections/prerequisites.md +11 -0
- package/agent-docs/publish/deployment-profiles.md +273 -0
- package/agent-docs/publish/deployment-profiles.sections/before-you-begin.md +44 -0
- package/agent-docs/publish/deployment-profiles.sections/build-and-inspect-the-edition.md +69 -0
- package/agent-docs/publish/deployment-profiles.sections/check-the-result.md +46 -0
- package/agent-docs/publish/deployment-profiles.sections/choose-navigation-labels.md +53 -0
- package/agent-docs/publish/deployment-profiles.sections/current-limits.md +46 -0
- package/agent-docs/publish/deployment-profiles.sections/define-the-shared-sku-manifest.md +70 -0
- package/agent-docs/publish/deployment-profiles.sections/html-markdown-and-agents.md +44 -0
- package/agent-docs/publish/deployment-profiles.sections/mark-pages-and-shared-sections.md +135 -0
- package/agent-docs/publish/deployment-profiles.sections/related-reading.md +42 -0
- package/agent-docs/publish/deployment-profiles.sections/supply-the-profile-from-the-deployment.md +68 -0
- package/agent-docs/search-index.json +1 -1
- package/agent-docs/start.md +2 -2
- package/agent-docs/start.sections/add-the-page-to-navigation.md +1 -1
- package/agent-docs/start.sections/build-and-check-both-outputs.md +1 -1
- package/agent-docs/start.sections/build-this-site.md +1 -1
- package/agent-docs/start.sections/check-writing-style.md +1 -1
- package/agent-docs/start.sections/create-a-page.md +1 -1
- package/agent-docs/start.sections/make-it-yours.md +1 -1
- package/agent-docs/start.sections/migrating-from-github-packages.md +1 -1
- package/agent-docs/start.sections/prerequisites.md +1 -1
- package/agent-docs/start.sections/related-reading.md +1 -1
- package/agent-docs/start.sections/start-your-own-project.md +2 -2
- package/dist/api-publication-plan.d.ts +3 -0
- package/dist/api-publication-plan.js +30 -3
- package/dist/artifact-bundle.d.ts +1 -0
- package/dist/artifact-bundle.js +1 -1
- package/dist/authoring-api.d.ts +1 -1
- package/dist/authoring-api.js +1 -1
- package/dist/authoring-project-command.js +4 -2
- package/dist/authoring-project.d.ts +2 -0
- package/dist/authoring-project.js +4 -4
- package/dist/authoring-snapshot.d.ts +23 -4
- package/dist/authoring-snapshot.js +84 -12
- package/dist/authoring-validation-command.js +5 -3
- package/dist/authoring-validation.d.ts +2 -0
- package/dist/authoring-validation.js +38 -11
- package/dist/cli-discovery.d.ts +2 -2
- package/dist/cli-discovery.js +9 -9
- package/dist/cli.js +8 -6
- package/dist/compiler.d.ts +13 -0
- package/dist/compiler.js +25 -74
- package/dist/component-names.js +1 -1
- package/dist/component-transform.js +7 -1
- package/dist/config.d.ts +4 -1
- package/dist/config.js +19 -5
- package/dist/content-export-command.d.ts +13 -1
- package/dist/content-export-command.js +3 -2
- package/dist/content-export.d.ts +13 -0
- package/dist/content-export.js +5 -4
- package/dist/content-source.d.ts +1 -0
- package/dist/content-workspace.d.ts +13 -0
- package/dist/content-workspace.js +18 -1
- package/dist/deployment-profile.d.ts +52 -0
- package/dist/deployment-profile.js +277 -0
- package/dist/frontmatter.js +11 -4
- package/dist/page-materialization.js +2 -0
- package/dist/page-renderer.d.ts +1 -0
- package/dist/page-renderer.js +3 -1
- package/dist/palettes.d.ts +1 -1
- package/dist/project-navigation.d.ts +5 -0
- package/dist/project-navigation.js +19 -0
- package/dist/publication-plan.d.ts +3 -1
- package/dist/publication-plan.js +23 -4
- package/dist/publication-render.d.ts +2 -1
- package/dist/publication-render.js +2 -2
- package/dist/site-identity.d.ts +3 -0
- package/dist/site-identity.js +69 -0
- package/dist/vercel.d.ts +1 -0
- package/dist/vercel.js +3 -1
- package/package.json +2 -1
- package/skills/shoalrun-author/SKILL.md +5 -1
- package/skills/shoalrun-author/references/customer-editions.md +164 -0
- package/skills/shoalrun-recipes/SKILL.md +2 -0
- package/skills/shoalrun-setup/SKILL.md +2 -0
- package/styles/site.css +7 -3
- package/agent-docs/publish/content-export.sections/upgrade-an-existing-integration.md +0 -34
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.0-alpha.15 — 2026-11-03
|
|
4
|
+
|
|
5
|
+
- Opt into `profiles.requireClassification` to reject unclassified public pages
|
|
6
|
+
before customer selection. Declare `shared: true` or page feature requirements;
|
|
7
|
+
shared pages can retain feature-gated sections. Generated API references accept
|
|
8
|
+
explicit API or OpenAPI operation declarations.
|
|
9
|
+
- Packaged authoring, setup, and recipe skills explain customer-edition workflows,
|
|
10
|
+
including external profiles, SKU revisions, grandfathered grants, strict page
|
|
11
|
+
classification, conditional sections, and checks for excluded content.
|
|
12
|
+
|
|
13
|
+
- Build customer-specific documentation from an external deployment profile.
|
|
14
|
+
Resolve versioned SKU mappings and direct feature grants, including
|
|
15
|
+
grandfathered features without a SKU; select pages and conditional sections
|
|
16
|
+
consistently in websites and content exports.
|
|
17
|
+
- Supply deployment-owned titles, logos, favicons, theme choices, links, and
|
|
18
|
+
publication subsets without storing customer profiles in the shared repo.
|
|
19
|
+
Capture declared external inputs for validation and preview, and keep profile
|
|
20
|
+
sources out of published dependency metadata.
|
|
21
|
+
- Profiled API builds support selected references and focused operation contracts;
|
|
22
|
+
full-source downloads and standalone schema embeds are rejected.
|
|
23
|
+
|
|
24
|
+
See [deployment profiles](DEPLOYMENT-PROFILES.md) for configuration and current limits.
|
|
25
|
+
|
|
26
|
+
## 0.1.0-alpha.14 — 2026-10-30
|
|
27
|
+
|
|
28
|
+
- Keep selected text readable in light and dark modes by pairing the selection
|
|
29
|
+
background with its contrasting foreground color.
|
|
30
|
+
- Let paragraphs and ordinary lists fill their containers in wide, landing, and
|
|
31
|
+
splash layouts, including nested sections. Standard pages retain the 68ch
|
|
32
|
+
reading measure; hero text and other components keep their own limits.
|
|
33
|
+
|
|
34
|
+
Upgrade to alpha.14 and rebuild your site to receive these styling fixes.
|
|
35
|
+
|
|
3
36
|
## 0.1.0-alpha.13 — 2026-10-28
|
|
4
37
|
|
|
5
38
|
Use documentation as content for applications, agents, services, and publishing
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
# Deployment-specific documentation
|
|
2
|
+
|
|
3
|
+
Build separate documentation editions from one content project. Each deployment
|
|
4
|
+
supplies its own profile file; profiles do not need to live together or belong in
|
|
5
|
+
the shared repository. A profile selects purchased SKU revisions, additional
|
|
6
|
+
features, branding, and documentation versions.
|
|
7
|
+
|
|
8
|
+
All names and domains below are fictional. Keep actual customer profiles and
|
|
9
|
+
branding in their deployment environments.
|
|
10
|
+
|
|
11
|
+
## Define products in the shared project
|
|
12
|
+
|
|
13
|
+
Add a `profiles` section to `docs.config.yaml`:
|
|
14
|
+
|
|
15
|
+
```yaml
|
|
16
|
+
profiles:
|
|
17
|
+
manifest: ./sku-manifest.yaml
|
|
18
|
+
required: true
|
|
19
|
+
pruneNavigation: true
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
`manifest` resolves relative to the configuration file declaring it. `required`
|
|
23
|
+
defaults to `true`; builds must explicitly supply a profile. `pruneNavigation`
|
|
24
|
+
defaults to `false`. Enable it to remove navigation targets known to be excluded
|
|
25
|
+
and collapse empty groups. Unknown targets still fail validation.
|
|
26
|
+
|
|
27
|
+
Define stable feature IDs and explicitly versioned SKU mappings:
|
|
28
|
+
|
|
29
|
+
```yaml
|
|
30
|
+
# sku-manifest.yaml
|
|
31
|
+
schemaVersion: 1
|
|
32
|
+
features:
|
|
33
|
+
analytics: { description: Analytics reports }
|
|
34
|
+
connectors: { description: External data connectors }
|
|
35
|
+
reports.classic: { lifecycle: deprecated }
|
|
36
|
+
skus:
|
|
37
|
+
professional:
|
|
38
|
+
revisions:
|
|
39
|
+
"2025-04":
|
|
40
|
+
features: [analytics, reports.classic]
|
|
41
|
+
"2026-10":
|
|
42
|
+
features: [analytics, connectors]
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Keep historical revisions unchanged when packaging changes. The compiler cannot
|
|
46
|
+
reconstruct an old purchase from today's catalog or enforce that past revisions
|
|
47
|
+
were never edited. Retain the manifest revision used for each deployment.
|
|
48
|
+
|
|
49
|
+
Feature definitions accept optional `description` and `lifecycle` (`active`,
|
|
50
|
+
`deprecated`, or `retired`). Lifecycle labels do not grant or remove features.
|
|
51
|
+
|
|
52
|
+
## Supply one profile per deployment
|
|
53
|
+
|
|
54
|
+
The deployment can mount or generate this file outside the documentation repo:
|
|
55
|
+
|
|
56
|
+
```yaml
|
|
57
|
+
schemaVersion: 1
|
|
58
|
+
skus:
|
|
59
|
+
- { id: professional, revision: "2026-10" }
|
|
60
|
+
features:
|
|
61
|
+
- reports.classic
|
|
62
|
+
site:
|
|
63
|
+
title: Example Partner documentation
|
|
64
|
+
origin: https://docs.partner.example
|
|
65
|
+
logo: ./brand/logo.svg
|
|
66
|
+
favicon: ./brand/icon.png
|
|
67
|
+
theme:
|
|
68
|
+
palette: kelp
|
|
69
|
+
publications:
|
|
70
|
+
enabled:
|
|
71
|
+
- { channel: production, version: current, language: en }
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
SKU features and explicit `features` form an additive set. An explicit feature
|
|
75
|
+
needs no SKU: use it for standalone purchases or grandfathered functionality.
|
|
76
|
+
Duplicate grants are harmless. To build only shared content, supply `features: []`
|
|
77
|
+
with no SKU grants. Missing input never falls back to granting every feature.
|
|
78
|
+
Unknown features, SKUs, and SKU revisions fail the build. Use an empty list rather
|
|
79
|
+
than `null`; malformed grant lists are rejected.
|
|
80
|
+
|
|
81
|
+
Publication selection is optional and must be a nonempty subset of the shared
|
|
82
|
+
project's `publications.enabled`. Use existing versions for older instructions.
|
|
83
|
+
A grandfathered feature does not automatically enable old-version content.
|
|
84
|
+
|
|
85
|
+
```sh
|
|
86
|
+
shoalrun build docs.config.yaml site-dist --profile /run/config/docs-profile.yaml
|
|
87
|
+
shoalrun export docs.config.yaml --out content-dist --profile /run/config/docs-profile.yaml
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Exports with multiple enabled publications still need their normal explicit
|
|
91
|
+
publication selection. Each deployment should use its own output directory.
|
|
92
|
+
|
|
93
|
+
The CLI profile path resolves from the current working directory. Profile logo
|
|
94
|
+
and favicon paths resolve from the profile's directory and must stay inside it.
|
|
95
|
+
Only explicitly declared assets are read; Shoalrun does not discover other
|
|
96
|
+
profiles in the directory. Shared configuration paths keep their existing origins.
|
|
97
|
+
|
|
98
|
+
Profiles accept these settings:
|
|
99
|
+
|
|
100
|
+
| Setting | Supported values |
|
|
101
|
+
| --- | --- |
|
|
102
|
+
| `schemaVersion` | Required; `1`. |
|
|
103
|
+
| `skus` | List of explicit `{ id, revision }` pairs. |
|
|
104
|
+
| `features` | List of directly granted feature IDs. Declare this or `skus`, even when empty. |
|
|
105
|
+
| `site` | `title`, `origin`, `basePath`, `logo`, `favicon`, `header`, `footer`, `indexing`. |
|
|
106
|
+
| `theme` | `preset`, a built-in `palette` name, `mode`, `toggle`. |
|
|
107
|
+
| `variables` | Project-level string, number, or boolean values for existing typed snippets. |
|
|
108
|
+
| `publications` | An `enabled` subset using existing publication coordinates. |
|
|
109
|
+
|
|
110
|
+
Settings use their ordinary Shoalrun shapes and validation. A profile is not a
|
|
111
|
+
general configuration overlay: it cannot change content sources, register plugins,
|
|
112
|
+
replace the SKU catalog, change access policy, or inherit another profile.
|
|
113
|
+
Profile-level CSS, custom fonts, and file-backed palettes are not supported.
|
|
114
|
+
Existing snippet variable precedence and snippet-only `<Var>` placement remain
|
|
115
|
+
unchanged; profile variables are not immutable branding tokens.
|
|
116
|
+
|
|
117
|
+
`site.logo` accepts a local SVG or PNG, also in ordinary shared config. The masthead
|
|
118
|
+
keeps the site title as its accessible label and displays the logo alongside it.
|
|
119
|
+
|
|
120
|
+
## Select pages and sections
|
|
121
|
+
|
|
122
|
+
By default, you do not need to mark every page. Pages declare feature requirements, not SKU
|
|
123
|
+
IDs. A page with no `requires`, either authored or inherited from frontmatter
|
|
124
|
+
defaults, is shared across customer editions. Common setup and introductions can
|
|
125
|
+
remain unmarked.
|
|
126
|
+
|
|
127
|
+
Shared pages still need to pass access, publication, language, and facet rules.
|
|
128
|
+
Draft pages stay excluded from ordinary builds; older instructions need their
|
|
129
|
+
publication enabled.
|
|
130
|
+
|
|
131
|
+
After those rules pass, feature selection follows this table. Grants may come
|
|
132
|
+
from SKUs or direct entries:
|
|
133
|
+
|
|
134
|
+
| Page requirements | No granted features | Analytics only | Analytics and Connectors |
|
|
135
|
+
| --- | --- | --- | --- |
|
|
136
|
+
| No authored or inherited requirements | Included | Included | Included |
|
|
137
|
+
| `allOf: [analytics]` | Omitted | Included | Included |
|
|
138
|
+
| `allOf: [analytics, connectors]` | Omitted | Omitted | Included |
|
|
139
|
+
| `anyOf: [analytics, connectors]` | Omitted | Included | Included |
|
|
140
|
+
|
|
141
|
+
Forgetting a requirement makes a feature-specific page shared. Shoalrun does not
|
|
142
|
+
infer requirements from folders, titles, product metadata, or navigation labels.
|
|
143
|
+
Enable `profiles.requireClassification: true` to require a deliberate
|
|
144
|
+
classification on each publishable source page.
|
|
145
|
+
|
|
146
|
+
### Require explicit classification
|
|
147
|
+
|
|
148
|
+
For customer deployments that should reject unclassified content, add
|
|
149
|
+
`requireClassification: true` to the shared `profiles` configuration. It defaults
|
|
150
|
+
to `false`, preserving shared-by-default behavior in existing projects.
|
|
151
|
+
|
|
152
|
+
```yaml
|
|
153
|
+
profiles:
|
|
154
|
+
manifest: ./sku-manifest.yaml
|
|
155
|
+
required: true
|
|
156
|
+
pruneNavigation: true
|
|
157
|
+
requireClassification: true
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Each public page in the shared project's enabled publications must explicitly
|
|
161
|
+
write `shared: true` or `requires` in its source frontmatter. Missing classification
|
|
162
|
+
fails with the source filename before customer feature or publication selection.
|
|
163
|
+
Drafts and pages outside the shared enabled publications do not need classification
|
|
164
|
+
for that build. A later SKU or publication selection cannot bypass this check.
|
|
165
|
+
Builds, exports, and isolated authoring validation use the same policy.
|
|
166
|
+
|
|
167
|
+
```yaml
|
|
168
|
+
# Shared page frontmatter fragment
|
|
169
|
+
shared: true
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Do not combine `shared: true` and `requires` on one page; `shared: false` is invalid.
|
|
173
|
+
`shared` cannot appear in frontmatter defaults or enforced settings. Inherited
|
|
174
|
+
feature requirements still restrict content, but do not satisfy classification.
|
|
175
|
+
Review pages reported by build errors rather than automatically marking them all
|
|
176
|
+
shared. Templates can write the chosen classification into each new page.
|
|
177
|
+
|
|
178
|
+
This catches missing declarations, not incorrect choices or ungated paragraphs
|
|
179
|
+
inside a shared page. Classification is a publishing policy, not authentication.
|
|
180
|
+
|
|
181
|
+
### Restrict a whole page or section
|
|
182
|
+
|
|
183
|
+
Restrict a feature-specific page in its frontmatter:
|
|
184
|
+
|
|
185
|
+
```yaml
|
|
186
|
+
requires:
|
|
187
|
+
allOf: [analytics, connectors]
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
Use `anyOf` for alternatives. If both clauses appear, both must pass. Clauses must
|
|
191
|
+
be nonempty lists of declared feature IDs. A page whose resolved requirements do
|
|
192
|
+
not match the profile is omitted. Requirements combine with existing access,
|
|
193
|
+
publication, and facet selection; they cannot widen those rules.
|
|
194
|
+
|
|
195
|
+
For part of a shared page, including one marked `shared: true`:
|
|
196
|
+
|
|
197
|
+
```mdx
|
|
198
|
+
<ForFeature allOf="analytics connectors">
|
|
199
|
+
|
|
200
|
+
## Connect your reports <Anchor id="connect-reports" />
|
|
201
|
+
|
|
202
|
+
Instructions requiring both features.
|
|
203
|
+
|
|
204
|
+
</ForFeature>
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
`allOf` and `anyOf` attributes contain whitespace-separated IDs. Conditions are
|
|
208
|
+
validated before rendering. Excluded branches contribute no links, snippets,
|
|
209
|
+
API embeds, images, or text to the output. Explicit root section anchors remain
|
|
210
|
+
stable when adjacent conditional content disappears. Conditions also work in
|
|
211
|
+
snippets and named snippet exports.
|
|
212
|
+
|
|
213
|
+
Text outside `<ForFeature>` stays shared. Excluding a block leaves the rest of
|
|
214
|
+
the page in the edition. A matching block cannot restore a page excluded by its
|
|
215
|
+
page-level requirements. With `features: []` and no SKU grants, eligible shared
|
|
216
|
+
pages and text remain while feature-dependent pages and blocks are omitted.
|
|
217
|
+
|
|
218
|
+
Links remaining in prose must target selected content. Shoalrun reports excluded
|
|
219
|
+
document targets as errors instead of deleting the links. Put the surrounding
|
|
220
|
+
paragraph in an appropriate condition, or link a shared overview. A migration
|
|
221
|
+
overview can use `anyOf: [reports.classic, reports.next]` when either audience needs
|
|
222
|
+
it. Replacement and migration references must still resolve in their publication.
|
|
223
|
+
|
|
224
|
+
`site.contentFilter` retains its existing relevance-filter behavior. Browser reader
|
|
225
|
+
filters only change visibility; use requirements for build-time exclusion.
|
|
226
|
+
|
|
227
|
+
### Classify generated API pages
|
|
228
|
+
|
|
229
|
+
Strict mode accepts an explicit `shared: true` or `requires` on the API definition
|
|
230
|
+
beside `generateReferences`. An OpenAPI operation can instead declare
|
|
231
|
+
`x-shoalrun-shared: true` or `x-shoalrun-requires: {allOf: [analytics]}`.
|
|
232
|
+
API-level feature requirements still restrict every operation. Do not combine
|
|
233
|
+
shared and requirements on the same declaration. General frontmatter defaults
|
|
234
|
+
do not count; classify operations individually when their requirements differ.
|
|
235
|
+
Authored API reference pages follow the ordinary source-page rule.
|
|
236
|
+
|
|
237
|
+
## Validate the deployment edition
|
|
238
|
+
|
|
239
|
+
Use the same profile when recording a baseline and validating:
|
|
240
|
+
|
|
241
|
+
```sh
|
|
242
|
+
shoalrun docs baseline --out .shoalrun/baseline.json --profile /run/config/docs-profile.yaml
|
|
243
|
+
shoalrun docs validate --baseline .shoalrun/baseline.json --profile /run/config/docs-profile.yaml
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
Explicit `--file` and `--id` validation also accept `--profile`. Project inspection
|
|
247
|
+
and source reads accept it too. Review and preview use the resulting report as
|
|
248
|
+
usual and serve the captured edition. Profiles and declared branding files are
|
|
249
|
+
captured into bounded private validation artifacts even when mounted outside the
|
|
250
|
+
project. Other deployment files are not scanned. Symlink substitutions of
|
|
251
|
+
captured branding inputs invalidate validation and cannot enter a later snapshot. Profile, asset, and catalog edits
|
|
252
|
+
make prior validation stale. Excluded affected pages remain listed in coverage with
|
|
253
|
+
a warning that their rendered content was not checked; validate another profile
|
|
254
|
+
that includes them before accepting their content changes. Treat validation reports and artifact directories as
|
|
255
|
+
private; they contain selected customer inputs.
|
|
256
|
+
|
|
257
|
+
A successful normal site build writes `.shoalrun/profile-selection.json` with
|
|
258
|
+
resolved features, grant sources, and page/section decisions. The compile/export
|
|
259
|
+
APIs also return `profileSelection` to their caller. These reports are local build
|
|
260
|
+
information, not served metadata. The report describes a build candidate; match
|
|
261
|
+
its `buildId` to the output before treating it as a receipt for that output. A
|
|
262
|
+
report write failure leaves the previous website intact. Public outputs omit the profile and branding
|
|
263
|
+
source filenames; the intended branding is present in the website.
|
|
264
|
+
|
|
265
|
+
## API and hosting boundaries
|
|
266
|
+
|
|
267
|
+
Generated OpenAPI operations can declare `x-shoalrun-requires` with the same
|
|
268
|
+
`allOf`/`anyOf` shape. API definitions and explicit operation bindings also accept
|
|
269
|
+
`requires`. An authored reference page's requirements remain effective when
|
|
270
|
+
automatic reference generation is enabled. Generated reference pages also respect
|
|
271
|
+
requirements inherited through frontmatter defaults.
|
|
272
|
+
|
|
273
|
+
Profiled builds reject full OpenAPI source publication, because hiding reference
|
|
274
|
+
pages does not remove operations from that source. Use `source.publish: false`
|
|
275
|
+
and `source.focused: true` for focused operation downloads. Operation embeds
|
|
276
|
+
respect selection. Standalone `<ApiSchema api="..." schema="..." />` embeds are
|
|
277
|
+
not supported in profiled builds; use an eligible operation embed instead.
|
|
278
|
+
|
|
279
|
+
Static `vercel build --profile FILE` is supported. Profiled chat-function builds
|
|
280
|
+
are not supported. Other commands without a profile option, including `dev` and
|
|
281
|
+
checked-plan authoring, do not yet resolve deployment editions; use build/serve
|
|
282
|
+
or captured validation/preview.
|
|
283
|
+
|
|
284
|
+
Shoalrun does not fetch billing records, infer contract terms, expire grants, or
|
|
285
|
+
authenticate customers. The deployment supplies the declared edition and the
|
|
286
|
+
host controls who can retrieve it. Reuse an artifact only when all inputs,
|
|
287
|
+
including branding, origin, publication selection, and grants, are identical.
|
package/README.md
CHANGED
|
@@ -9,13 +9,13 @@ This package provides the `shoalrun` CLI, starter projects, agent skills, and of
|
|
|
9
9
|
From the project where you want to keep your documentation:
|
|
10
10
|
|
|
11
11
|
```sh
|
|
12
|
-
npm install --save-dev --save-exact @shoalrun/cli@0.1.0-alpha.
|
|
12
|
+
npm install --save-dev --save-exact @shoalrun/cli@0.1.0-alpha.15
|
|
13
13
|
```
|
|
14
14
|
|
|
15
15
|
If you previously used the private GitHub Packages alpha, check `npm config get @shoalrun:registry`. Remove or replace any `@shoalrun:registry=https://npm.pkg.github.com` entry in your project or user `.npmrc`. You can explicitly select the public registry for the upgrade:
|
|
16
16
|
|
|
17
17
|
```sh
|
|
18
|
-
npm install --save-dev --save-exact @shoalrun/cli@0.1.0-alpha.
|
|
18
|
+
npm install --save-dev --save-exact @shoalrun/cli@0.1.0-alpha.15 --@shoalrun:registry=https://registry.npmjs.org
|
|
19
19
|
```
|
|
20
20
|
|
|
21
21
|
Commit the updated package manifest and lockfile together. Check that the lockfile resolves `@shoalrun/cli` from `registry.npmjs.org`. Keep any credentials needed by other private dependencies; Shoalrun itself no longer needs a package token.
|
|
@@ -99,6 +99,9 @@ not section redaction or host authorization.
|
|
|
99
99
|
See [the runnable faceted-sites example](example-configs/faceted-sites/README.md)
|
|
100
100
|
for main, developer, and regional sites built from one source directory.
|
|
101
101
|
|
|
102
|
+
For deployment-owned SKU selections, direct or grandfathered feature grants, and
|
|
103
|
+
branding supplied outside the shared repository, see [deployment profiles](DEPLOYMENT-PROFILES.md).
|
|
104
|
+
|
|
102
105
|
## Export content into an application
|
|
103
106
|
|
|
104
107
|
Export pages from the same source into a portable directory for an application's
|
|
@@ -16,13 +16,17 @@ Full-page token counts use cl100k_base. Navigation section ID: project-updates.
|
|
|
16
16
|
|
|
17
17
|
- [Content delivery, verification dates, and clearer references](https://www.shoalrun.com/changelog/2026-10-28.md) — ID: change.2026-10-28. changelog-entry; 1393 tokens. Reuse documentation through static bundles or REST, display technical verification dates, and find clearer API and layout guidance.
|
|
18
18
|
|
|
19
|
+
- [Readable selections and wider layouts](https://www.shoalrun.com/changelog/2026-10-30.md) — ID: change.2026-10-30. changelog-entry; 507 tokens. Keep selected text readable and let paragraphs and lists fill expanded layouts.
|
|
20
|
+
|
|
21
|
+
- [Customer documentation editions](https://www.shoalrun.com/changelog/2026-11-03.md) — ID: change.2026-11-03. changelog-entry; 779 tokens. Build branded customer editions from purchased and grandfathered features without storing customer profiles in the shared repository.
|
|
22
|
+
|
|
19
23
|
- [Authoring snapshot previews and review reports](https://www.shoalrun.com/changelog/authoring-preview.md) — ID: change.authoring-preview. changelog-entry; 551 tokens. Snapshot previews with coverage and freshness reports.
|
|
20
24
|
|
|
21
25
|
- [Agent authoring, search, and documentation answers](https://www.shoalrun.com/changelog/authoring-search.md) — ID: change.authoring-search. changelog-entry; 466 tokens. Reviewed agent drafts, search improvements, and answer context.
|
|
22
26
|
|
|
23
27
|
- [Working-tree authoring tools](https://www.shoalrun.com/changelog/authoring-tools.md) — ID: change.authoring-tools. changelog-entry; 378 tokens. Project discovery and captured working-tree validation.
|
|
24
28
|
|
|
25
|
-
- [Changelog](https://www.shoalrun.com/changelog.md) — ID: reference.changelog. reference;
|
|
29
|
+
- [Changelog](https://www.shoalrun.com/changelog.md) — ID: reference.changelog. reference; 1202 tokens. Compiler, CLI, and reader changes.
|
|
26
30
|
|
|
27
31
|
- [MCP hosting, analytics, and component improvements](https://www.shoalrun.com/changelog/2026-10-17-mcp-hosting.md) — ID: change.mcp-hosting. changelog-entry; 1145 tokens. MCP hosting, analytics, and shared component content.
|
|
28
32
|
|
package/agent-docs/SNAPSHOT.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": 1,
|
|
3
3
|
"sourceRepository": "https://github.com/shoalrun/docs",
|
|
4
|
-
"sourceCommit": "
|
|
5
|
-
"siteBuildId": "
|
|
6
|
-
"manifestDigest": "
|
|
7
|
-
"indexDigest": "
|
|
8
|
-
"packageIntegrity": "sha512-
|
|
4
|
+
"sourceCommit": "52c055cc160abbcb931bacbd8fcd209ce834cb26",
|
|
5
|
+
"siteBuildId": "c8c2a551d388148cf830e85bea3a58118a3a935dc91fa043ab2cd2a178ff9c6c",
|
|
6
|
+
"manifestDigest": "3c6af9a8161232cd4e824e72a427fb2b2a21963939a761a5f0f3557415dba580",
|
|
7
|
+
"indexDigest": "a6153f8a9a12541db3a6d1608c33da30ad329a6ad1653324f308dbd824bd9c10",
|
|
8
|
+
"packageIntegrity": "sha512-2Of7hhwylA4zWfoWIISM+0E63RzMhK9yI/NErSoNaUhquYQSD8iED1AWiUzqabnE0hg9rdtxCt82ws5+R9D3bQ=="
|
|
9
9
|
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: change.2026-10-30
|
|
3
|
+
title: Readable selections and wider layouts
|
|
4
|
+
summary: Keep selected text readable and let paragraphs and lists fill expanded layouts.
|
|
5
|
+
type: changelog-entry
|
|
6
|
+
area:
|
|
7
|
+
- appearance
|
|
8
|
+
- project
|
|
9
|
+
subarea:
|
|
10
|
+
- appearance-layouts
|
|
11
|
+
- project-releases
|
|
12
|
+
canonical: /changelog/2026-10-30
|
|
13
|
+
date: 2026-10-30
|
|
14
|
+
releaseVersion: 0.1.0-alpha.14
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Readable selections and wider layouts
|
|
18
|
+
|
|
19
|
+
> Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
|
|
20
|
+
|
|
21
|
+
Navigation section: [Project](https://www.shoalrun.com/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt) (ID: project-updates). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
|
|
22
|
+
|
|
23
|
+
Breadcrumbs: [Project](https://www.shoalrun.com/status.md) > Changelog > Readable selections and wider layouts
|
|
24
|
+
|
|
25
|
+
**Published: 2026-10-30.**
|
|
26
|
+
|
|
27
|
+
**Version: 0.1.0-alpha.14.**
|
|
28
|
+
|
|
29
|
+
Alpha.14 fixes selected-text contrast and paragraph widths in expanded layouts. Upgrade to CLI `0.1.0-alpha.14` and rebuild your site to receive both fixes. No configuration changes are needed.
|
|
30
|
+
|
|
31
|
+
## Read selected text
|
|
32
|
+
|
|
33
|
+
Text selection now pairs the highlight background with its contrasting foreground. Previously, selection used the heading ink color, which could become difficult to read in dark mode. The selection pair passes the contrast checks across all six built-in palettes in light and dark modes.
|
|
34
|
+
|
|
35
|
+
## Fill expanded layouts
|
|
36
|
+
|
|
37
|
+
Paragraphs and ordinary lists now fill their available containers in `wide`, `landing`, and `splash` layouts, including nested sections. Previously, these elements kept a 68-character reading limit even when the surrounding layout was wider.
|
|
38
|
+
|
|
39
|
+
Standard documentation pages retain that reading limit. Splash sections remain centered within the landing width, and hero text and other components keep their own limits. See [page layouts](https://www.shoalrun.com/styling/layouts.md).
|
|
40
|
+
|
|
41
|
+
## HTML, Markdown, and agents
|
|
42
|
+
|
|
43
|
+
These fixes affect browser colors and line widths. Markdown content, page identities, and agent retrieval contracts stay the same. Selecting text and resizing the page need no JavaScript.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: change.2026-11-03
|
|
3
|
+
title: Customer documentation editions
|
|
4
|
+
summary: Build branded customer editions from purchased and grandfathered
|
|
5
|
+
features without storing customer profiles in the shared repository.
|
|
6
|
+
type: changelog-entry
|
|
7
|
+
area:
|
|
8
|
+
- publishing
|
|
9
|
+
- authoring
|
|
10
|
+
- project
|
|
11
|
+
subarea:
|
|
12
|
+
- publishing-configuration
|
|
13
|
+
- authoring-metadata
|
|
14
|
+
- project-releases
|
|
15
|
+
canonical: /changelog/2026-11-03
|
|
16
|
+
date: 2026-11-03
|
|
17
|
+
releaseVersion: 0.1.0-alpha.15
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# Customer documentation editions
|
|
21
|
+
|
|
22
|
+
> Documentation index: [llms.min.txt](https://www.shoalrun.com/llms.min.txt) · Document manifest: [documents.json](https://www.shoalrun.com/documents.json)
|
|
23
|
+
|
|
24
|
+
Navigation section: [Project](https://www.shoalrun.com/.well-known/shoalrun/navigation/project-updates-50f26fe22670.txt) (ID: project-updates). [All sections and pages](https://www.shoalrun.com/llms.min.txt)
|
|
25
|
+
|
|
26
|
+
Breadcrumbs: [Project](https://www.shoalrun.com/status.md) > Changelog > Customer documentation editions
|
|
27
|
+
|
|
28
|
+
**Published: 2026-11-03.**
|
|
29
|
+
|
|
30
|
+
**Version: 0.1.0-alpha.15.**
|
|
31
|
+
|
|
32
|
+
Alpha.15 lets independent deployments build customer documentation editions from one shared content project. Each deployment supplies its own profile for purchased products, grandfathered features, branding, and publication selection. Customer profiles can stay outside the shared repository.
|
|
33
|
+
|
|
34
|
+
Upgrade to CLI `0.1.0-alpha.15` and rebuild your site and content exports to use the feature. Existing projects keep their current behavior unless they enable deployment profiles. See [Build customer documentation editions](https://www.shoalrun.com/publish/deployment-profiles.md) for the complete workflow.
|
|
35
|
+
|
|
36
|
+
## Select purchased and grandfathered features
|
|
37
|
+
|
|
38
|
+
A shared stock keeping unit (SKU) manifest maps explicit product revisions to feature IDs. Profiles combine those grants with direct feature entries, including features customers still own without a SKU. Historical revisions remain selectable; lifecycle labels do not revoke grants or automatically select older documentation versions.
|
|
39
|
+
|
|
40
|
+
Pages use feature requirements, and `<ForFeature>` selects sections inside shared pages. Selection removes excluded content from the build instead of hiding it in the browser. Deployment profiles can also apply supported titles, logos, favicons, theme choices, links, and publication subsets.
|
|
41
|
+
|
|
42
|
+
## Require deliberate page classification
|
|
43
|
+
|
|
44
|
+
By default, pages without feature requirements remain shared. Enable `profiles.requireClassification: true` to require each eligible source page to explicitly declare `shared: true` or feature requirements. Inherited defaults do not satisfy the check, and missing classification fails before customer selection.
|
|
45
|
+
|
|
46
|
+
Shared pages can still contain feature-specific sections. Classification catches forgotten declarations; authors must still review the content and place requirements around product-specific instructions.
|
|
47
|
+
|
|
48
|
+
## Validate each edition
|
|
49
|
+
|
|
50
|
+
Pass the same external profile to baseline capture, authoring validation, build, and export. Validation captures the profile and its declared assets; later changes make that evidence stale. The packaged authoring, setup, and recipe skills explain this workflow and how to check included and excluded content.
|
|
51
|
+
|
|
52
|
+
Profiled API builds support selected references and focused operation contracts. Full raw OpenAPI downloads, standalone schema embeds, and profiled chat-function builds are not supported. Use build/serve or snapshot validation/preview rather than `dev` for customer editions.
|
|
53
|
+
|
|
54
|
+
## HTML, Markdown, and agents
|
|
55
|
+
|
|
56
|
+
The compiler applies feature selection to HTML, Markdown, search, discovery, and content exports. Agents receive the selected content rather than browser-hidden alternatives. Pages excluded by the chosen profile have not had their rendered content validated; check another profile that includes a changed page before accepting that edit. Customer access to the resulting edition remains the deployment's responsibility.
|
package/agent-docs/changelog.md
CHANGED
|
@@ -16,12 +16,28 @@ Navigation section: [Project](https://www.shoalrun.com/.well-known/shoalrun/navi
|
|
|
16
16
|
|
|
17
17
|
Breadcrumbs: [Project](https://www.shoalrun.com/status.md) > Changelog > All changes
|
|
18
18
|
|
|
19
|
-
**Updated: 2026-
|
|
19
|
+
**Updated: 2026-11-03.**
|
|
20
20
|
|
|
21
21
|
Updates to Shoalrun and its documentation. Each entry identifies the affected versions and any upgrade steps. Earlier entries retain their private-prototype release context.
|
|
22
22
|
|
|
23
23
|
## Latest changes
|
|
24
24
|
|
|
25
|
+
- 2026-11-03
|
|
26
|
+
|
|
27
|
+
Version 0.1.0-alpha.15
|
|
28
|
+
|
|
29
|
+
[Customer documentation editions](https://www.shoalrun.com/changelog/2026-11-03.md)
|
|
30
|
+
|
|
31
|
+
Build branded customer editions from purchased and grandfathered features without storing customer profiles in the shared repository.
|
|
32
|
+
|
|
33
|
+
- 2026-10-30
|
|
34
|
+
|
|
35
|
+
Version 0.1.0-alpha.14
|
|
36
|
+
|
|
37
|
+
[Readable selections and wider layouts](https://www.shoalrun.com/changelog/2026-10-30.md)
|
|
38
|
+
|
|
39
|
+
Keep selected text readable and let paragraphs and lists fill expanded layouts.
|
|
40
|
+
|
|
25
41
|
- 2026-10-28
|
|
26
42
|
|
|
27
43
|
Version 0.1.0-alpha.13
|