{"owner":"arthelokyo","repo":"astrowind","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md","CLAUDE.md"],"skills":{"AGENTS.md":"# AstroWind Agent Instructions\n\n## Project Overview\n\nAstroWind is a free, open-source website template built with **Astro v7** and **Tailwind CSS v4**. It generates a fully static site optimized for performance, SEO, and accessibility.\n\n**Stack:** Astro v7 | Tailwind CSS v4 | TypeScript 5.9 | MDX | Sharp\n\n## Quick Reference\n\n| Command           | Purpose                             |\n| ----------------- | ----------------------------------- |\n| `npm run dev`     | Start dev server at localhost:4321  |\n| `npm run build`   | Production build to `./dist/`       |\n| `npm run preview` | Preview production build locally    |\n| `npm run check`   | Run astro check + ESLint + Prettier |\n| `npm run fix`     | Auto-fix ESLint + Prettier issues   |\n\n**Node.js requirement:** >= 22.12.0\n\n## Architecture\n\n### Directory Structure\n\n```\nsrc/\n  assets/styles/tailwind.css   # Tailwind v4 config (themes, utilities, plugins)\n  components/\n    common/        # Shared: Image, Metadata, Analytics, ToggleTheme\n    ui/            # Primitives: Button, Form, Headline, Timeline, WidgetWrapper\n    widgets/       # Page sections: Hero, Features, Pricing, Header, Footer\n    blog/          # Blog: SinglePost, List, Pagination, Tags\n    CustomStyles.astro  # CSS variables for colors and fonts\n  content.config.ts    # Content Collections schema (Astro 5+ location)\n  data/post/           # Blog posts (.md, .mdx)\n  layouts/             # Layout.astro, PageLayout.astro, MarkdownLayout.astro\n  pages/               # File-based routing\n  utils/               # blog.ts, images.ts, permalinks.ts, frontmatter.ts\n  config.yaml          # Site configuration (loaded as virtual module)\n  navigation.ts        # Navigation structure\n  types.d.ts           # TypeScript type definitions\nvendor/integration/    # Custom Astro integration for config loading\n```\n\n### Path Aliases\n\nUse `~/` to import from `src/`:\n\n```typescript\nimport Image from '~/components/common/Image.astro';\nimport { SITE } from 'astrowind:config';\n```\n\n### Configuration System\n\nSite config lives in `src/config.yaml` and is loaded as a Vite virtual module `astrowind:config` by the custom integration in `vendor/integration/`. Exports: `SITE`, `I18N`, `METADATA`, `APP_BLOG`, `UI`, `ANALYTICS`.\n\n## Tailwind CSS v4\n\nConfiguration is CSS-first in `src/assets/styles/tailwind.css`:\n\n- **Theme tokens:** `@theme { --color-primary: var(--aw-color-primary); ... }`\n- **Custom utilities:** `@utility bg-page { ... }`\n- **Dark mode:** Class-based via `@variant dark (&:where(.dark, .dark *))`\n- **Plugins:** `@plugin \"@tailwindcss/typography\"`\n- **Custom variant:** `@custom-variant intersect (&:not([no-intersect]))`\n\nCSS variables for colors/fonts are defined in `src/components/CustomStyles.astro` with light/dark theme variants.\n\nThe Vite plugin `@tailwindcss/vite` is configured in `astro.config.ts` (not as an Astro integration).\n\n### Class Merging\n\nComponents use `twMerge` from `tailwind-merge` v3 for conditional class composition.\n\n## Content Collections\n\nDefined in `src/content.config.ts` using Astro's Content Layer API with `glob()` loader. Posts are in `src/data/post/` as `.md` or `.mdx` files.\n\nPost frontmatter: `title` (required), `publishDate`, `updateDate`, `draft`, `excerpt`, `image`, `category`, `tags`, `author`, `metadata`.\n\n## Component Patterns\n\n- Props extend interfaces from `~/types`\n- Use `class:list` for conditional classes\n- Use `twMerge()` when accepting className overrides\n- Use named slots for layout composition\n- Widget components accept standardized props (see `~/types`)\n\n## Image Handling\n\n`src/components/common/Image.astro` supports:\n\n- Local images via `astro:assets` (optimized by Sharp)\n- Remote images via Unpic CDN\n- Allowed domains (for providers Unpic can't detect, processed by Sharp): `cdn.pixabay.com`\n\nHero images use `loading=\"eager\"` and `fetchpriority=\"high\"`.\n\n## Fonts\n\nFonts are handled by Astro's native **Fonts API**, configured in `astro.config.ts` under the `fonts` key (provider, family, `cssVariable`) and injected via the `<Font />` component in `src/layouts/Layout.astro`. Astro self-hosts, subsets, preloads, and generates metric-adjusted fallbacks. To change the typeface, edit the `fonts` entry and point `--aw-font-*` in `CustomStyles.astro` at the new `cssVariable`.\n\n## Third-party Scripts (Partytown)\n\n`@astrojs/partytown` is wired as an **opt-in** in `astro.config.ts`, gated behind `const hasExternalScripts = false`. Set it to `true` to offload third-party scripts (e.g. Google Analytics via `analytics.vendors.googleAnalytics.partytown`) to a web worker. It is disabled by default so the base template ships no external scripts.\n\n## Content Security Policy\n\nAstro's native CSP is intentionally **not** enabled in this version: it is incompatible with `<ClientRouter />` view transitions (shipped on by default) and would break the arbitrary third-party scripts a template user typically adds. CSP is deferred to AstroWind v2, where the component model (and optional SSR) make it clean and opt-in.\n\n## Verification Checklist\n\nAfter changes, always verify:\n\n1. `npm run build` succeeds\n2. `npm run check` passes (astro check + ESLint + Prettier)\n3. Visual check in browser: homepage, blog, dark mode, mobile menu\n","CLAUDE.md":"# Claude Code Configuration\n\nSee [AGENTS.md](./AGENTS.md) for all project documentation and AI agent instructions.\n"},"files":{"AGENTS.md":"# AstroWind Agent Instructions\n\n## Project Overview\n\nAstroWind is a free, open-source website template built with **Astro v7** and **Tailwind CSS v4**. It generates a fully static site optimized for performance, SEO, and accessibility.\n\n**Stack:** Astro v7 | Tailwind CSS v4 | TypeScript 5.9 | MDX | Sharp\n\n## Quick Reference\n\n| Command           | Purpose                             |\n| ----------------- | ----------------------------------- |\n| `npm run dev`     | Start dev server at localhost:4321  |\n| `npm run build`   | Production build to `./dist/`       |\n| `npm run preview` | Preview production build locally    |\n| `npm run check`   | Run astro check + ESLint + Prettier |\n| `npm run fix`     | Auto-fix ESLint + Prettier issues   |\n\n**Node.js requirement:** >= 22.12.0\n\n## Architecture\n\n### Directory Structure\n\n```\nsrc/\n  assets/styles/tailwind.css   # Tailwind v4 config (themes, utilities, plugins)\n  components/\n    common/        # Shared: Image, Metadata, Analytics, ToggleTheme\n    ui/            # Primitives: Button, Form, Headline, Timeline, WidgetWrapper\n    widgets/       # Page sections: Hero, Features, Pricing, Header, Footer\n    blog/          # Blog: SinglePost, List, Pagination, Tags\n    CustomStyles.astro  # CSS variables for colors and fonts\n  content.config.ts    # Content Collections schema (Astro 5+ location)\n  data/post/           # Blog posts (.md, .mdx)\n  layouts/             # Layout.astro, PageLayout.astro, MarkdownLayout.astro\n  pages/               # File-based routing\n  utils/               # blog.ts, images.ts, permalinks.ts, frontmatter.ts\n  config.yaml          # Site configuration (loaded as virtual module)\n  navigation.ts        # Navigation structure\n  types.d.ts           # TypeScript type definitions\nvendor/integration/    # Custom Astro integration for config loading\n```\n\n### Path Aliases\n\nUse `~/` to import from `src/`:\n\n```typescript\nimport Image from '~/components/common/Image.astro';\nimport { SITE } from 'astrowind:config';\n```\n\n### Configuration System\n\nSite config lives in `src/config.yaml` and is loaded as a Vite virtual module `astrowind:config` by the custom integration in `vendor/integration/`. Exports: `SITE`, `I18N`, `METADATA`, `APP_BLOG`, `UI`, `ANALYTICS`.\n\n## Tailwind CSS v4\n\nConfiguration is CSS-first in `src/assets/styles/tailwind.css`:\n\n- **Theme tokens:** `@theme { --color-primary: var(--aw-color-primary); ... }`\n- **Custom utilities:** `@utility bg-page { ... }`\n- **Dark mode:** Class-based via `@variant dark (&:where(.dark, .dark *))`\n- **Plugins:** `@plugin \"@tailwindcss/typography\"`\n- **Custom variant:** `@custom-variant intersect (&:not([no-intersect]))`\n\nCSS variables for colors/fonts are defined in `src/components/CustomStyles.astro` with light/dark theme variants.\n\nThe Vite plugin `@tailwindcss/vite` is configured in `astro.config.ts` (not as an Astro integration).\n\n### Class Merging\n\nComponents use `twMerge` from `tailwind-merge` v3 for conditional class composition.\n\n## Content Collections\n\nDefined in `src/content.config.ts` using Astro's Content Layer API with `glob()` loader. Posts are in `src/data/post/` as `.md` or `.mdx` files.\n\nPost frontmatter: `title` (required), `publishDate`, `updateDate`, `draft`, `excerpt`, `image`, `category`, `tags`, `author`, `metadata`.\n\n## Component Patterns\n\n- Props extend interfaces from `~/types`\n- Use `class:list` for conditional classes\n- Use `twMerge()` when accepting className overrides\n- Use named slots for layout composition\n- Widget components accept standardized props (see `~/types`)\n\n## Image Handling\n\n`src/components/common/Image.astro` supports:\n\n- Local images via `astro:assets` (optimized by Sharp)\n- Remote images via Unpic CDN\n- Allowed domains (for providers Unpic can't detect, processed by Sharp): `cdn.pixabay.com`\n\nHero images use `loading=\"eager\"` and `fetchpriority=\"high\"`.\n\n## Fonts\n\nFonts are handled by Astro's native **Fonts API**, configured in `astro.config.ts` under the `fonts` key (provider, family, `cssVariable`) and injected via the `<Font />` component in `src/layouts/Layout.astro`. Astro self-hosts, subsets, preloads, and generates metric-adjusted fallbacks. To change the typeface, edit the `fonts` entry and point `--aw-font-*` in `CustomStyles.astro` at the new `cssVariable`.\n\n## Third-party Scripts (Partytown)\n\n`@astrojs/partytown` is wired as an **opt-in** in `astro.config.ts`, gated behind `const hasExternalScripts = false`. Set it to `true` to offload third-party scripts (e.g. Google Analytics via `analytics.vendors.googleAnalytics.partytown`) to a web worker. It is disabled by default so the base template ships no external scripts.\n\n## Content Security Policy\n\nAstro's native CSP is intentionally **not** enabled in this version: it is incompatible with `<ClientRouter />` view transitions (shipped on by default) and would break the arbitrary third-party scripts a template user typically adds. CSP is deferred to AstroWind v2, where the component model (and optional SSR) make it clean and opt-in.\n\n## Verification Checklist\n\nAfter changes, always verify:\n\n1. `npm run build` succeeds\n2. `npm run check` passes (astro check + ESLint + Prettier)\n3. Visual check in browser: homepage, blog, dark mode, mobile menu\n","CLAUDE.md":"# Claude Code Configuration\n\nSee [AGENTS.md](./AGENTS.md) for all project documentation and AI agent instructions.\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# AstroWind Agent Instructions\n\n## Project Overview\n\nAstroWind is a free, open-source website template built with **Astro v7** and **Tailwind CSS v4**. It generates a fully static site optimized for performance, SEO, and accessibility.\n\n**Stack:** Astro v7 | Tailwind CSS v4 | TypeScript 5.9 | MDX | Sharp\n\n## Quick Reference\n\n| Command           | Purpose                             |\n| ----------------- | ----------------------------------- |\n| `npm run dev`     | Start dev server at localhost:4321  |\n| `npm run build`   | Production build to `./dist/`       |\n| `npm run preview` | Preview production build locally    |\n| `npm run check`   | Run astro check + ESLint + Prettier |\n| `npm run fix`     | Auto-fix ESLint + Prettier issues   |\n\n**Node.js requirement:** >= 22.12.0\n\n## Architecture\n\n### Directory Structure\n\n```\nsrc/\n  assets/styles/tailwind.css   # Tailwind v4 config (themes, utilities, plugins)\n  components/\n    common/        # Shared: Image, Metadata, Analytics, ToggleTheme\n    ui/            # Primitives: Button, Form, Headline, Timeline, WidgetWrapper\n    widgets/       # Page sections: Hero, Features, Pricing, Header, Footer\n    blog/          # Blog: SinglePost, List, Pagination, Tags\n    CustomStyles.astro  # CSS variables for colors and fonts\n  content.config.ts    # Content Collections schema (Astro 5+ location)\n  data/post/           # Blog posts (.md, .mdx)\n  layouts/             # Layout.astro, PageLayout.astro, MarkdownLayout.astro\n  pages/               # File-based routing\n  utils/               # blog.ts, images.ts, permalinks.ts, frontmatter.ts\n  config.yaml          # Site configuration (loaded as virtual module)\n  navigation.ts        # Navigation structure\n  types.d.ts           # TypeScript type definitions\nvendor/integration/    # Custom Astro integration for config loading\n```\n\n### Path Aliases\n\nUse `~/` to import from `src/`:\n\n```typescript\nimport Image from '~/components/common/Image.astro';\nimport { SITE } from 'astrowind:config';\n```\n\n### Configuration System\n\nSite config lives in `src/config.yaml` and is loaded as a Vite virtual module `astrowind:config` by the custom integration in `vendor/integration/`. Exports: `SITE`, `I18N`, `METADATA`, `APP_BLOG`, `UI`, `ANALYTICS`.\n\n## Tailwind CSS v4\n\nConfiguration is CSS-first in `src/assets/styles/tailwind.css`:\n\n- **Theme tokens:** `@theme { --color-primary: var(--aw-color-primary); ... }`\n- **Custom utilities:** `@utility bg-page { ... }`\n- **Dark mode:** Class-based via `@variant dark (&:where(.dark, .dark *))`\n- **Plugins:** `@plugin \"@tailwindcss/typography\"`\n- **Custom variant:** `@custom-variant intersect (&:not([no-intersect]))`\n\nCSS variables for colors/fonts are defined in `src/components/CustomStyles.astro` with light/dark theme variants.\n\nThe Vite plugin `@tailwindcss/vite` is configured in `astro.config.ts` (not as an Astro integration).\n\n### Class Merging\n\nComponents use `twMerge` from `tailwind-merge` v3 for conditional class composition.\n\n## Content Collections\n\nDefined in `src/content.config.ts` using Astro's Content Layer API with `glob()` loader. Posts are in `src/data/post/` as `.md` or `.mdx` files.\n\nPost frontmatter: `title` (required), `publishDate`, `updateDate`, `draft`, `excerpt`, `image`, `category`, `tags`, `author`, `metadata`.\n\n## Component Patterns\n\n- Props extend interfaces from `~/types`\n- Use `class:list` for conditional classes\n- Use `twMerge()` when accepting className overrides\n- Use named slots for layout composition\n- Widget components accept standardized props (see `~/types`)\n\n## Image Handling\n\n`src/components/common/Image.astro` supports:\n\n- Local images via `astro:assets` (optimized by Sharp)\n- Remote images via Unpic CDN\n- Allowed domains (for providers Unpic can't detect, processed by Sharp): `cdn.pixabay.com`\n\nHero images use `loading=\"eager\"` and `fetchpriority=\"high\"`.\n\n## Fonts\n\nFonts are handled by Astro's native **Fonts API**, configured in `astro.config.ts` under the `fonts` key (provider, family, `cssVariable`) and injected via the `<Font />` component in `src/layouts/Layout.astro`. Astro self-hosts, subsets, preloads, and generates metric-adjusted fallbacks. To change the typeface, edit the `fonts` entry and point `--aw-font-*` in `CustomStyles.astro` at the new `cssVariable`.\n\n## Third-party Scripts (Partytown)\n\n`@astrojs/partytown` is wired as an **opt-in** in `astro.config.ts`, gated behind `const hasExternalScripts = false`. Set it to `true` to offload third-party scripts (e.g. Google Analytics via `analytics.vendors.googleAnalytics.partytown`) to a web worker. It is disabled by default so the base template ships no external scripts.\n\n## Content Security Policy\n\nAstro's native CSP is intentionally **not** enabled in this version: it is incompatible with `<ClientRouter />` view transitions (shipped on by default) and would break the arbitrary third-party scripts a template user typically adds. CSP is deferred to AstroWind v2, where the component model (and optional SSR) make it clean and opt-in.\n\n## Verification Checklist\n\nAfter changes, always verify:\n\n1. `npm run build` succeeds\n2. `npm run check` passes (astro check + ESLint + Prettier)\n3. Visual check in browser: homepage, blog, dark mode, mobile menu\n","category":"root","tokens":1310},{"name":"CLAUDE.md","path":"CLAUDE.md","title":"CLAUDE.md","content":"# Claude Code Configuration\n\nSee [AGENTS.md](./AGENTS.md) for all project documentation and AI agent instructions.\n","category":"root","tokens":29}]}