diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 0000000..b772f71 --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,47 @@ + + +# prad.nu + +## Purpose +Personal CV / portfolio site for Prad Nukala (https://prad.nu). A static [Astro](https://astro.build) v6 site (forked from the Astro Cactus theme) organised into four content sections — **Projects**, **Experience**, **Writing**, **Speaking** — where Experience entries double as a cross-linking taxonomy. See `README.md` for the human-facing overview. + +## Key Files +| File | Description | +|------|-------------| +| `package.json` | Dependencies and scripts (pnpm). | +| `astro.config.ts` | Astro integrations (MDX, sitemap, icon, robots, webmanifest, expressive-code), markdown remark/rehype pipeline, Satori OG fonts. | +| `tailwind.config.ts` | Tailwind v4 config (most styling is in `src/styles/global.css`). | +| `tsconfig.json` | TypeScript config; defines the `@/*` → `src/*` path alias. | +| `biome.json` | Biome linter/formatter config (`pnpm check` / `pnpm lint`). | +| `mise.toml` / `pnpm-workspace.yaml` | Toolchain + workspace config. | +| `README.md` | Project purpose, content model, frontmatter reference. | + +## Subdirectories +| Directory | Purpose | +|-----------|---------| +| `src/` | All application source (see `src/AGENTS.md`). | +| `public/` | Static assets served as-is (see `public/AGENTS.md`). | + +## For AI Agents + +### Working In This Directory +- Package manager is **pnpm**. Output is **static** (`output: 'static'`, `./dist`) — no SSR adapter. +- Import from source via the `@/` alias (e.g. `@/site.config`), not long relative paths. +- Most site-wide config (title, url, `socialLinks`, `streamOrigin`, `menuLinks`) lives in `src/site.config.ts`. + +### Testing Requirements +- `pnpm build` is the primary correctness gate — it runs `astro check`-level content validation and fails on bad frontmatter, broken collection refs, or type errors. +- `pnpm check` runs `astro check` + Biome. `pnpm dev` serves locally for visual checks. + +### Common Patterns +- Content lives in Content Collections; schema is defined once in `src/content.config.ts`. +- `is:inline` is required on `