From 610f91a213d354789adf6db1f3bb9ff69fd9aad5 Mon Sep 17 00:00:00 2001 From: collin-thomas Date: Thu, 12 Nov 2026 00:51:43 -0700 Subject: [PATCH 1/3] Switch everything to the stable 1.0.0 release Versions and ranges - @bascik/bascik, create-bascik, @bascik/adapter-cloudflare, @bascik/adapter-netlify and @bascik/language-server are 1.0.0; the VS Code extension is 1.0.0 on the stable Marketplace channel. - Every range on a Bascik package is ^1.0.0: both adapters' peer and dev dependency, pkg's peer on the language server, the scaffold's dependencies and the starter site example. Install commands - The site, READMEs, CLI help, scaffold output and skills say `npm create bascik` and `npm install @bascik/bascik` again, with no @rc. Changelog - Reset to one section, 1.0.0, which the /releases page renders. Site - The home page showcase features Lateral EMDR and Bascik Shop. Release process - RELEASING.md, the release workflow's header and the publish scripts describe stable releases first and a prerelease as the exception, with 1.0.0 tags in their examples. - Test fixtures that used a candidate version for no reason use a stable one; tests about prerelease handling use a generic future prerelease. Co-Authored-By: Claude Fable 5.2 --- .github/copilot-instructions.md | 2 +- .github/instructions/docs.instructions.md | 2 +- .github/scripts/publish-npm.sh | 3 +- .github/scripts/publish-vsce.sh | 2 +- .github/workflows/release.yml | 19 ++- CHANGELOG.md | 155 +----------------- README.md | 4 +- RELEASING.md | 31 ++-- adapters/cloudflare/README.md | 2 +- adapters/cloudflare/package.json | 6 +- adapters/netlify/README.md | 2 +- adapters/netlify/package.json | 6 +- create/README.md | 10 +- create/package.json | 2 +- create/src/agent-setup.test.ts | 32 ++-- create/src/agent-setup.ts | 2 +- create/src/cli.ts | 9 +- create/src/create-cli.integration.test.ts | 8 +- create/src/scaffold.test.ts | 10 +- create/src/scaffold.ts | 8 +- create/src/vscode-settings.test.ts | 2 +- create/src/vscode-settings.ts | 2 +- docs/content/agent-skills.md | 4 +- docs/content/cli.md | 14 +- docs/content/deployment/cloudflare.md | 2 +- docs/content/deployment/netlify.md | 2 +- docs/content/faq.md | 2 +- docs/content/getting-started.md | 18 +- docs/content/how-to/agent-migration.md | 6 +- docs/content/internals.md | 2 +- docs/content/internals/architecture.md | 2 +- docs/content/internals/ci-cd.md | 12 +- docs/content/internals/create-app.md | 2 +- docs/content/internals/diagnostics.md | 2 +- docs/content/production-server.md | 2 +- docs/content/switch.md | 2 +- docs/content/switch/from-astro.md | 2 +- docs/content/switch/from-eleventy.md | 2 +- docs/content/switch/from-hugo.md | 2 +- docs/content/switch/from-next.md | 2 +- docs/content/switch/from-react.md | 2 +- docs/content/switch/from-vue.md | 2 +- docs/content/switch/from-wordpress.md | 2 +- docs/content/testing.md | 2 +- docs/content/testing/linting.md | 2 +- docs/content/testing/troubleshooting.md | 8 +- docs/content/tools/linter.md | 2 +- docs/content/tools/vscode-extension.md | 2 +- docs/e2e/showcase.spec.ts | 2 +- docs/scripts/capture-kit/project.ts | 2 +- docs/src/lib/agent-migration-docs.test.ts | 2 +- docs/src/lib/home-schema.test.ts | 6 +- docs/src/lib/home-schema.ts | 2 +- docs/src/lib/package-version.test.ts | 24 +-- docs/src/lib/package-version.ts | 6 +- docs/src/lib/showcase.ts | 5 +- docs/src/pages/getting-started.html | 2 +- docs/src/pages/index.html | 22 +-- examples/starter-site/package.json | 4 +- extensions/vscode-bascik/README.md | 2 +- extensions/vscode-bascik/package.json | 2 +- .../vscode-bascik/src/server-bundle.test.ts | 4 +- lsp/package.json | 2 +- pkg/README.md | 8 +- pkg/e2e/scripts/release-manifests.test.ts | 26 +-- pkg/e2e/scripts/release.test.ts | 6 +- pkg/package.json | 4 +- pkg/src/cli-misuse.integration.test.ts | 2 +- pkg/src/lib/agent-setup.ts | 2 +- .../lib/archetype-torture.integration.test.ts | 2 +- pkg/src/lib/check-language-server.test.ts | 2 +- pkg/src/lib/check-language-server.ts | 2 +- pkg/src/lib/file-system.test.ts | 2 +- pkg/src/lib/file-system.ts | 2 +- pkg/src/lib/init.test.ts | 8 +- pkg/src/lib/vscode-settings.ts | 2 +- skills/README.md | 4 +- skills/bascik-refactor/SKILL.md | 2 +- skills/bascik/SKILL.md | 4 +- yarn.lock | 12 +- 80 files changed, 233 insertions(+), 365 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index ee7af3331..a8bd94d19 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -98,7 +98,7 @@ Eight coverage files are generated. The testing page (`docs/src/pages/internals/ ### Public Agent Skills (`skills/`) -The repo-root `skills/` folder is the source of truth for the user-facing agent skills (`bascik`, `bascik-components`, `bascik-compatibility`, `bascik-scripts`, `bascik-seo`, `bascik-config`, `bascik-images`, `bascik-testing`, `bascik-migrate`, and the opt-in `bascik-refactor`) and their `scripts/`. Skills hold rules and route to docs pages; they hold no reference copies of the docs. Example code lives once, in the repo-root `examples/` folder, rendered on `/example-components/*` docs pages and published as `/assets/examples.json` for `skills/bascik/scripts/add-example.mjs` (see `.github/instructions/docs.instructions.md`, "Examples"). It is distributed these ways: `npx skills add bascikdev/bascik` (reads GitHub), `npx skills add https://bascik.dev` (reads `/.well-known/agent-skills/index.json`), `https://bascik.dev/assets/skills.tar.gz` and `https://bascik.dev/assets/SKILL.md` (all three published by `docs/scripts/publish-agent-skill.ts`), and `npm create bascik@rc` / `bascik init`, which run the skills CLI on GitHub at the matching release tag. +The repo-root `skills/` folder is the source of truth for the user-facing agent skills (`bascik`, `bascik-components`, `bascik-compatibility`, `bascik-scripts`, `bascik-seo`, `bascik-config`, `bascik-images`, `bascik-testing`, `bascik-migrate`, and the opt-in `bascik-refactor`) and their `scripts/`. Skills hold rules and route to docs pages; they hold no reference copies of the docs. Example code lives once, in the repo-root `examples/` folder, rendered on `/example-components/*` docs pages and published as `/assets/examples.json` for `skills/bascik/scripts/add-example.mjs` (see `.github/instructions/docs.instructions.md`, "Examples"). It is distributed these ways: `npx skills add bascikdev/bascik` (reads GitHub), `npx skills add https://bascik.dev` (reads `/.well-known/agent-skills/index.json`), `https://bascik.dev/assets/skills.tar.gz` and `https://bascik.dev/assets/SKILL.md` (all three published by `docs/scripts/publish-agent-skill.ts`), and `npm create bascik` / `bascik init`, which run the skills CLI on GitHub at the matching release tag. - `create-bascik` bundles no copy of the skills. `PROJECT_SKILLS` in `create/src/agent-setup.ts` (identical copy at `pkg/src/lib/agent-setup.ts`) names the skills new projects get: every `skills/` folder minus the opt-in `bascik-refactor`, enforced by `create/src/agent-setup.test.ts`. When you add or rename a skill, update that list in both copies. Readers install `bascik-refactor` with `npx skills add bascikdev/bascik --skill bascik-refactor`. - The skills' tests and fixtures live in the `skills-tests/` workspace (`bascik-skills-tests`: `yarn skills:unit`, `yarn skills:integration`, `yarn skills:typecheck`), not in `skills/` (it ships to users) and not in `docs/`. Every `bascik-refactor` script has a `skills-tests/tests/refactor-
Recorded for real: the starter site from - npm create bascik@rc, edited in VS Code and served by + npm create bascik, edited in VS Code and served by the Bascik dev server. Nothing here is mocked.
@@ -1285,10 +1285,10 @@

);
- A new npm create bascik@rc project, recorded for - real on a laptop: the server is up almost immediately, its - address stays pinned to the top row, and saving one file - rebuilds only that page. + A new npm create bascik project, recorded for real + on a laptop: the server is up almost immediately, its address + stays pinned to the top row, and saving one file rebuilds only + that page.
@@ -1371,8 +1371,8 @@

Automatic isolation

Made with Bascik.

Choosing a new tool is a real decision. These sites already use - Bascik in production, from business websites to a SaaS app with a - server-rendered dashboard. + Bascik in production, from a SaaS app with a server-rendered + dashboard to an online shop that takes payments.

What ships is HTML, JavaScript, and CSS you can inspect yourself. @@ -1488,7 +1488,7 @@

Up and running in under a minute.

$ - npm create bascik@rc + npm create bascik
` (one without `type="module"`) in a file into one JavaScript file, so a Bascik page with two scripts that each `export default` shows the false error "A module cannot have multiple default exports." Bascik runs each script on its own. Setting `"html.validate.scripts": false` in a project's `.vscode/settings.json` turns off only VS Code's check of code inside ` + @@ -1181,6 +1203,8 @@

Progressive streaming without a client framework

demoImage( "/assets/demos/stream@2x.webp", "A browser loading a dashboard page. A loading skeleton is shown first, and after about two seconds a card reading 99.99% uptime replaces it in place.", + undefined, + "(max-width: 720px) calc(100vw - 48px), 640px", );
@@ -1242,6 +1266,7 @@

src: "/assets/demos/live-reload-stacked@2x.webp", maxWidth: 760, }, + "(max-width: 1180px) calc(100vw - 48px), 1084px", );
@@ -1282,6 +1307,8 @@

demoImage( "/assets/demos/dev-terminal@2x.webp", "A terminal running bascik on a new project. The server URL is pinned to the top row as soon as the server is up, four pages transpile in a fraction of a second, and after one file is saved only that page is rebuilt, in a few milliseconds.", + undefined, + "(max-width: 860px) calc(100vw - 48px), 782px", );
From ea424078b09affb1b9c0bebff3fad138d6c0d638 Mon Sep 17 00:00:00 2001 From: collin-thomas Date: Thu, 12 Nov 2026 02:19:54 -0700 Subject: [PATCH 3/3] Keep the video-link component's notes out of its markup A comment above an inline root element made the request-time render differ from the build by one space between adjacent instances under minify.html (the build collapses whitespace across the comment; the per-instance request render cannot), which the component fidelity test requires to match byte for byte. The notes now live in the component's stylesheet. Co-Authored-By: Claude Fable 5.2 --- docs/src/components/video-link/video-link.css | 4 ++++ docs/src/components/video-link/video-link.html | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/src/components/video-link/video-link.css b/docs/src/components/video-link/video-link.css index 813a71c42..6891ecab9 100644 --- a/docs/src/components/video-link/video-link.css +++ b/docs/src/components/video-link/video-link.css @@ -1,3 +1,7 @@ +/* video-link: a thumbnail that links to a video on YouTube. A plain link, on + purpose: it opens the YouTube app on a phone and a new tab on a desktop, + and the page loads nothing from YouTube. The thumbnail is decorative (the + title under it names the video), so pass it with an empty alt. */ a { display: block; color: var(--text); diff --git a/docs/src/components/video-link/video-link.html b/docs/src/components/video-link/video-link.html index 95dc9cf43..637074ec7 100644 --- a/docs/src/components/video-link/video-link.html +++ b/docs/src/components/video-link/video-link.html @@ -1,7 +1,3 @@ -