diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index ee7af333..a8bd94d1 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- + @@ -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", );
@@ -1208,7 +1232,7 @@

Progressive streaming without a client framework

) return; navigator.clipboard - .writeText("npm create bascik@rc") + .writeText("npm create bascik") .then(() => flashCopy(this)) .catch(function () { // Clipboard may be unavailable (permissions / non-secure context) @@ -1242,11 +1266,12 @@

src: "/assets/demos/live-reload-stacked@2x.webp", maxWidth: 760, }, + "(max-width: 1180px) calc(100vw - 48px), 1084px", );
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.
@@ -1282,13 +1307,15 @@

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", );
- 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 +1398,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 +1515,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 `