-
Notifications
You must be signed in to change notification settings - Fork 3
fix(tooling): revert corepack setup — pnpm is pre-installed in devcontainer image #122
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
Merged
Merged
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,5 +1,102 @@ | ||
| # GitHub Copilot Instructions | ||
|
|
||
| ## Project Overview | ||
|
|
||
| This is **TechWatching.dev**, Alexandre Nédélec's personal blog at https://techwatching.dev. It is a statically generated site built with: | ||
|
|
||
| - **Nuxt 4** — Vue.js meta-framework (compatibility date `2024-07-11`) | ||
| - **Nuxt UI v3** (`@nuxt/ui`) — UI component library based on TailwindCSS v4 | ||
| - **Nuxt Content v3** (`@nuxt/content`) — Markdown/YAML content management with SQLite | ||
| - **TailwindCSS v4** — Utility-first CSS | ||
|
Comment on lines
+7
to
+10
|
||
| - **@nuxtjs/seo** — SEO, OG images, schema.org, sitemap | ||
| - **TypeScript** — strict typing throughout | ||
|
|
||
| ## Development Environment | ||
|
|
||
| ### Package Manager | ||
|
|
||
| This project uses **pnpm** (version specified in `package.json` → `"packageManager": "pnpm@10.29.2"`). Always use `pnpm` — never `npm` or `yarn`. | ||
|
|
||
| The `.npmrc` sets `shamefully-hoist=true`. | ||
|
|
||
| ### Bootstrap | ||
|
|
||
| ```bash | ||
| pnpm install # install all dependencies | ||
| ``` | ||
|
|
||
| ### Common Commands | ||
|
|
||
| | Command | Description | | ||
| |---------|-------------| | ||
| | `pnpm dev` | Start dev server at http://localhost:3000 | | ||
| | `pnpm build` | Build for production (SSR) | | ||
| | `pnpm generate` | Generate static site (prerendered) | | ||
| | `pnpm preview` | Preview production build | | ||
| | `pnpm lint` | Run ESLint | | ||
| | `pnpm lint:fix` | Run ESLint with auto-fix | | ||
| | `pnpm typecheck` | Run TypeScript type checking via `nuxt typecheck` | | ||
|
|
||
| ### CI Validation | ||
|
|
||
| The CI workflow (`.github/workflows/ci.yml`) runs on every push: | ||
|
|
||
| 1. `pnpm install` — install dependencies | ||
| 2. `pnpm run lint` — **must pass with zero errors** | ||
| 3. `pnpm run typecheck` — **must pass with zero errors** | ||
|
|
||
| Always run both `pnpm lint` and `pnpm typecheck` before committing. Fix all lint and type errors before marking work as done. | ||
|
|
||
| ## Project Layout | ||
|
|
||
| ``` | ||
| techwatching.dev/ | ||
| ├── .github/ | ||
| │ ├── copilot-instructions.md # this file — repository-wide Copilot instructions | ||
| │ ├── git-commit-instructions.md # Conventional Commits format guide | ||
| │ ├── instructions/ # path-specific instructions (.instructions.md) | ||
| │ │ ├── content.instructions.md # applyTo: content/**/*.{md,yml} | ||
| │ │ └── nuxt.instructions.md # applyTo: **/*.vue | ||
| │ ├── prompts/ # reusable prompt templates | ||
| │ │ └── new-article.prompt.md | ||
| │ ├── agents/ # Copilot agent definitions | ||
| │ │ └── nuxt.agent.md | ||
| │ └── workflows/ | ||
| │ └── ci.yml # lint + typecheck on every push | ||
| ├── app/ # Nuxt app source (Nuxt 4 layout) | ||
| │ ├── app.vue # root Vue component | ||
| │ ├── app.config.ts # Nuxt UI theme config (colors, components) | ||
| │ ├── components/ # shared Vue components (AppHeader, GiscusComments, etc.) | ||
| │ ├── pages/ # file-based routes (index.vue, blog/[slug].vue, etc.) | ||
| │ ├── layouts/ # Nuxt layouts (default.vue) | ||
| │ ├── assets/css/main.css # global TailwindCSS entry point | ||
| │ ├── plugins/ # Nuxt plugins (posthog.client.ts) | ||
| │ ├── types/ # shared TypeScript types | ||
| │ └── utils/ # utility functions | ||
| ├── content/ # @nuxt/content source files | ||
| │ ├── 0.index.yml # home page structured data | ||
| │ ├── 1.posts/ # blog posts — {number}.{slug}.md | ||
| │ ├── 2.speaking.yml # speaking events array | ||
| │ └── 3.goodies/ # goodies/tools — {slug}.md | ||
| ├── server/ | ||
| │ ├── api/ # JSON API endpoints (*.<method>.ts) | ||
| │ └── routes/ # custom routes (RSS/Atom: *.rss, *.atom) | ||
| ├── public/ # static assets served as-is | ||
| ├── content.config.ts # @nuxt/content collection schemas (zod) | ||
| ├── nuxt.config.ts # Nuxt configuration | ||
| ├── eslint.config.mjs # ESLint flat config | ||
| ├── tsconfig.json # TypeScript config | ||
| ├── pnpm-workspace.yaml # pnpm workspace | ||
| └── .npmrc # pnpm config | ||
| ``` | ||
|
|
||
| ### Key architecture notes | ||
|
|
||
| - **Static generation**: all routes prerendered via `routeRules: { '/**': { prerender: true } }` and Nitro crawl | ||
| - **Content collections**: defined in `content.config.ts` using `defineCollection` + zod schemas; collection names are `index`, `posts`, `speaking`, `goodies`, `goodiesPage`, `content` | ||
| - **Server handlers**: must import from `@nuxt/content/server` and pass `event` as first arg: `queryCollection(event, 'posts')` | ||
| - **Commit messages**: follow Conventional Commits (see `.github/git-commit-instructions.md`) | ||
|
|
||
| ## MCP Tool Usage | ||
|
|
||
| When answering questions about this project, use the appropriate MCP (Model Context Protocol) tools: | ||
|
|
@@ -45,16 +142,6 @@ Activate additional tool groups as needed: | |
| - How do I deploy to Netlify/Vercel? | ||
| - How do I create API routes in Nuxt? | ||
|
|
||
| ## Project Context | ||
|
|
||
| This is a personal blog built with: | ||
| - **Nuxt 4** - Vue.js meta-framework | ||
| - **Nuxt UI v3** - UI component library | ||
| - **Nuxt Content v3** - Markdown/content management | ||
| - **TailwindCSS v4** - Styling | ||
|
|
||
| Content is stored in the `content/` directory with blog posts in `content/1.posts/`. | ||
|
|
||
| ## Nuxt UI v3 Styling Guidelines | ||
|
|
||
| When customizing Nuxt UI v3 components: | ||
|
|
||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 PR description says this file change only removes a
corepack enablestep from the bootstrap section, but this diff also adds substantial new repository documentation (project overview, commands, layout, architecture notes). Please either (1) update the PR description/title to reflect the broader scope, or (2) split these documentation additions into a separate PR so the tooling revert can be reviewed/merged independently.