diff --git a/.claude/skills/stackql-provider-development/references/docs-and-ci.md b/.claude/skills/stackql-provider-development/references/docs-and-ci.md index bdd93d6..95dda55 100644 --- a/.claude/skills/stackql-provider-development/references/docs-and-ci.md +++ b/.claude/skills/stackql-provider-development/references/docs-and-ci.md @@ -4,6 +4,8 @@ Docusaurus `^3.10.x` on the shared `stackql/docusaurus-config` (vendored to `.shared-config/` by `yarn vendor-config` in `prebuild`/`prestart`). Site-local files only: `provider.js` (`providerName`, `providerTitle`), `docusaurus.config.js` (createConfig + registry logos + `config.presets[0][1].docs.showLastUpdateTime = true;`), `sidebars.js`, `scripts/sanitize-docs.mjs`, `src/` (CopyableCode, SchemaTable, StackqlDeployDropdown, theme overrides), `static/` (CNAME `-provider.stackql.io`, favicons, manifest, registry logos, `stackql-featured-image.png`, `stackql--provider-featured-image.png`). No Docusaurus boilerplate (no undraw images, HomepageFeatures, stock README). +The sidebar (`sidebars.js`) has one shape on every provider site: a `Back to StackQL Docs` link first (`type: 'link'`, `href: '/stackqldocs'`, `className: 'sidebar-back-link'`), then `All Providers` (`href: '/providers'`), then the ` Provider` category linked to `provider-intro` with the autogenerated `services` tree. Both hrefs are shared-config redirect routes that the vendored redirects plugin registers on the site (they forward to `https://stackql.io/` and `https://stackql.io/providers`), so they render as internal links and pass the broken-link checker; the `.sidebar-back-link` rules in `src/css/global.css` draw the arrow and the divider, matching the query library site. Copy both from the template rather than re-deriving them. + `headerContent1.txt` is the front matter + one-paragraph pitch; `headerContent2.txt` is the getting-started page: See also / Installation (`REGISTRY PULL`) / Scope / Authentication (env vars, bash and PowerShell) / the scoping variable / Rate limit / Beta labelling / Example Queries - lead with the queries the provider exists for (estate inventory, posture set, the flagship, provisioning with INSERT/UPDATE/EXEC/DELETE, a cross-provider UNION). Examples must be runnable against the generated surface (snake names, quoted keywords). The example section has one shape on every provider site, so the table of contents reads the same everywhere: diff --git a/.claude/skills/stackql-provider-development/references/uplift-checklist.md b/.claude/skills/stackql-provider-development/references/uplift-checklist.md index e36069b..79cd784 100644 --- a/.claude/skills/stackql-provider-development/references/uplift-checklist.md +++ b/.claude/skills/stackql-provider-development/references/uplift-checklist.md @@ -6,5 +6,5 @@ 4. Add what is missing against this list: env-var scoping, naive bodies, snake surface, pagination, pushdown, transforms, objectKeys, lifecycle EXECs attached to their resources, views, GraphQL merge, skip codes for what is not mappable. 5. Convert ad-hoc scripts into Makefile targets; add `make all`. 6. Write or extend the three test layers until they cover every archetype present; add the smoke suite with `--live`. -7. Refresh CLAUDE.md, NOTES.md, README.md, `.env.example`, the docs headers; `make docs && make website`. +7. Refresh CLAUDE.md, NOTES.md, README.md, `.env.example`, the docs headers; bring `website/sidebars.js` and the `.sidebar-back-link` rules in `website/src/css/global.css` in line with the template (the `Back to StackQL Docs` link, see docs-and-ci.md); `make docs && make website`. 8. `make all` green from a clean checkout before handing over. diff --git a/website/sidebars.js b/website/sidebars.js index f719984..fe6cbb3 100644 --- a/website/sidebars.js +++ b/website/sidebars.js @@ -2,6 +2,19 @@ import { providerTitle } from './provider.js'; const sidebars = { mainSidebar: [ + // Way back to the main stackql.io docs, as on the query library site. + // '/stackqldocs' is a shared-config redirect route (registered on this + // site by the vendored redirects plugin) that forwards to + // https://stackql.io/, so the link renders as internal - no external-link + // icon - and the broken-link checker validates it. The arrow and the + // divider come from the .sidebar-back-link rules in src/css/global.css. + { + type: 'link', + label: 'Back to StackQL Docs', + href: '/stackqldocs', + className: 'sidebar-back-link', + }, + // '/providers' is likewise a shared redirect, to https://stackql.io/providers. { type: 'link', label: 'All Providers', href: '/providers' }, { type: 'category', diff --git a/website/src/css/global.css b/website/src/css/global.css index 3e50218..0b80357 100644 --- a/website/src/css/global.css +++ b/website/src/css/global.css @@ -284,4 +284,24 @@ div:has(> .vhsImage) { .navbar__logo img[src$='stackql-registry-logo-white.svg'] { content: url('/img/stackql-registry-logo-white-mobile.svg'); } -} \ No newline at end of file +} + +/* +* sidebar: back link to the main stackql.io docs (the first item in +* sidebars.js). Same treatment as the query library site: bold label, +* leading arrow drawn here so the label stays plain text, divider below. +*/ +.sidebar-back-link { + border-bottom: 1px solid var(--ifm-color-emphasis-300); + padding-bottom: 0.5rem; + margin-bottom: 0.5rem !important; +} + +.sidebar-back-link .menu__link { + font-weight: 600; +} + +.sidebar-back-link .menu__link::before { + content: '\2190'; + margin-right: 0.5rem; +}