# Agent Guidelines for this Repository
> **Important**: This file is the source of truth for all agents working in this repository. If you modify the build process, add new tools, change the architecture, or introduce new conventions, **you must update this file** to reflect those changes.
## 1. Project Overview & Commands
This is an **Astro** project using **pnpm**.
### Build & Run Commands
- **Install Dependencies**: `pnpm install`
- **Development Server**: `pnpm dev`
- **Build for Production**: `pnpm build` (Output: `dist/`)
- **Preview Production Build**: `pnpm preview`
- **Check Types**: `npx tsc --noEmit` (since `strict` is enabled)
### Testing & Linting
- **Linting**: No explicit lint command found in `package.json`. Follow existing code style strictly.
- **Testing**: No explicit test framework (Jest/Vitest) is currently configured.
- *If asked to add tests*: Verify if a test runner needs to be installed first.
## 2. Directory Structure
```text
/
├── public/ # Static assets
├── src/
│ ├── assets/ # Source assets (processed by Astro)
│ ├── components/ # Astro components
│ │ ├── base/ # UI Primitives
│ │ └── page/ # Layout-specific components (Header, Footer)
│ ├── content/ # Markdown/MDX content collections
│ │ ├── posts/
│ │ ├── experiences/
│ │ └── skills/
│ ├── data/ # Data access layer (Classes & Utilities)
│ ├── layouts/ # Page layouts (if any)
│ ├── pages/ # File-based routing
│ ├── styles/ # Global styles (if any)
│ └── utils/ # Helper functions
├── astro.config.ts # Astro configuration
├── package.json # Dependencies & Scripts
└── tsconfig.json # TypeScript configuration
```
## 3. Code Style & Conventions
### General Formatting
- **Indentation**: 2 spaces.
- **Semicolons**: **Preferred**. While mixed in some older files, new code should use semicolons.
- **Quotes**:
- **Code**: Single quotes `'string'`.
- **Imports**: Double quotes `"package"` or single quotes `'./file'` (mixed, generally follow file context).
- **JSX/Attributes**: Double quotes `