-
Notifications
You must be signed in to change notification settings - Fork 1.4k
chore: add .github/copilot-instructions.md for Copilot cloud agent onboarding #8543
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,247 @@ | ||||||||
| # Qwik — Copilot Cloud Agent Instructions | ||||||||
|
|
||||||||
| > This file tells a Copilot cloud agent how to work efficiently in this repository. | ||||||||
| > For full contributor details see [CONTRIBUTING.md](../CONTRIBUTING.md) and [AGENTS.md](../AGENTS.md). | ||||||||
|
|
||||||||
| --- | ||||||||
|
|
||||||||
| ## What This Repo Is | ||||||||
|
|
||||||||
| Qwik is a **resumable** web framework. It serializes application and framework state into HTML at SSR time and **resumes** on the client without re-executing component code (no hydration). Developers write reactive code similar to other frameworks; the app is instant regardless of how much JavaScript is present. | ||||||||
|
|
||||||||
| **Core concepts:** Resumability, QRLs (lazy-loading primitives), the `$`-suffix transform, fine-grained signals, Rust-based optimizer. | ||||||||
|
|
||||||||
| --- | ||||||||
|
|
||||||||
| ## Monorepo Structure | ||||||||
|
|
||||||||
| | Package | Path | Description | | ||||||||
| | --------------------------- | ------------------------------- | ---------------------------------------- | | ||||||||
| | `@builder.io/qwik` | `packages/qwik` | Core framework (runtime + optimizer) | | ||||||||
| | `@builder.io/qwik-city` | `packages/qwik-city` | Meta-framework (routing, loaders, adapters) | | ||||||||
| | `@builder.io/qwik-react` | `packages/qwik-react` | React integration layer | | ||||||||
| | `@builder.io/qwik-auth` | `packages/qwik-auth` | Auth.js integration | | ||||||||
| | `@builder.io/qwik-dom` | `packages/qwik-dom` | Server-side DOM implementation | | ||||||||
| | `@builder.io/qwik-worker` | `packages/qwik-worker` | Web Worker support (experimental) | | ||||||||
| | `@builder.io/qwik-labs` | `packages/qwik-labs` | Experimental features (private) | | ||||||||
| | `eslint-plugin-qwik` | `packages/eslint-plugin-qwik` | ESLint rules for Qwik | | ||||||||
| | `create-qwik` | `packages/create-qwik` | Project scaffolding CLI | | ||||||||
| | `qwik-docs` | `packages/docs` | Documentation site (private) | | ||||||||
| | `insights` | `packages/insights` | Analytics dashboard (private) | | ||||||||
|
|
||||||||
| Other notable directories: | ||||||||
|
|
||||||||
| - `starters/` — starter templates and E2E test entry points | ||||||||
| - `scripts/` — monorepo build orchestration (TypeScript) | ||||||||
| - `e2e/` — additional E2E suites (adapters, qwik-react, docs) | ||||||||
| - `packages/qwik/src/optimizer/core/` — Rust optimizer source | ||||||||
| - `.changeset/` — changeset files for versioning | ||||||||
|
|
||||||||
| --- | ||||||||
|
|
||||||||
| ## Prerequisites and Setup | ||||||||
|
|
||||||||
| **Required versions:** Node ≥ 22.18.0, pnpm ≥ 10.14.0 | ||||||||
|
|
||||||||
|
||||||||
| `Node >= 22.18.0` is the minimum supported version from `package.json` engines. For local development and CI parity, prefer the Node 24 version pinned in `.node-version` / `.nvmrc`. |
Copilot
AI
Apr 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This commands table also uses a double leading pipe (|| ...), which creates an unintended empty first column when rendered. Switch to a single leading | for the header/separator/rows to ensure the table displays correctly.
Copilot
AI
Apr 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The “Build core only” description doesn’t match what pnpm build.core actually runs. In package.json, build.core includes --api and --platform-binding in addition to --tsc --build --qwikcity, so it’s not just “Qwik + Qwik City + types” and may not be the fastest option. Please update the description (or adjust the recommended command) to match the script behavior.
| | Build core only | `pnpm build.core` | Fast — Qwik + Qwik City + types | | |
| | Build core packages | `pnpm build.core` | Builds Qwik + Qwik City + types, API docs, and platform bindings | |
Copilot
AI
Apr 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The table recommends pnpm build --qwik --qwikcity --dev, but the flags reference below describes the core build flag as --build (which is the user-facing alias for the internal --qwik flag). For consistency and clarity, prefer documenting --build here as well, so readers don’t have to learn both names for the same flag.
| | Build specific packages | `pnpm build --qwik --qwikcity --dev` | Skips type-check & generating | | |
| | Build specific packages | `pnpm build --build --qwikcity --dev` | Skips type-check & generating | |
Copilot
AI
Apr 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The code style table is using || at the start of each row, which will render an empty first column. Use a single leading | so the table formatting is correct.
Copilot
AI
Apr 9, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The naming conventions table also starts rows with ||, which renders an extra blank column. Update it to standard markdown table syntax (single leading |) so it displays as intended.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Markdown tables are written with a double leading pipe (
|| ...), which renders as an extra empty first column in most renderers. Use a single leading|for the header/separator/rows (and apply consistently to the rest of the table) so the package table renders correctly.