- Astro v5 + React 19 + TailwindCSS v4
- Static site deployed to GitHub Pages
- Site: https://marius-colacioiu.com
- Path aliases:
@components,@config,@types,@assets,@layouts
npm run dev- Dev servernpm run build- Production build (runs type checking)npm run preview- Preview buildnpm run check- TypeScript check onlynpm run lint:fix- Lint & format with Biome
src/
├── components/ # React components
├── data/ # Content data
├── layouts/ # Astro layouts
├── pages/ # Routes (index.astro is entry)
├── scripts/ # Client scripts
├── styles/ # Global styles
├── types/ # Type definitions
└── utils/ # Utilities
- Use
typenotinterface - Functional patterns over OOP
- Single quotes, semicolons (Biome enforced)
- 2 spaces for indentation, no tabs (Biome enforced)
- No unused imports/vars in
.astrofiles (Biome override)
client:only="react"required for React components (avoid SSR issues)- Browser APIs must be conditionally accessed
- Build outputs to
dist/ - Always run
npm run buildafter changes to verify
- When implementing features with Astro, consult https://docs.astro.build/llms.txt for official best practices and patterns
- Use
read_web_pagetool to fetch guidance when needed
All plans should be tracked in .agents/plans/ structure:
.agents/plans/
├── todo/
├── in-progress/
└── completed/
Plan Lifecycle:
- Create new plans in
.agents/plans/todo/[plan-name].md - For complex/multi-layer plans: Consult Oracle to review and simplify before starting work
- Move to
.agents/plans/in-progress/when work begins - Keep plans up to date while working on implementation
- Move to
.agents/plans/completed/when done - Update plan after completion with results
Guidelines:
- Plans should have specific, actionable steps
- Keep scope minimal: Focus on core functionality, defer nice-to-haves
- Include "Implementation Notes": Add context for key principles, pitfalls, testing strategy
- Update plan status and progress regularly during development
- Reference related files and code locations in plans
- Use plans to track multi-step changes across layers
- For blocked plans: note the blocker and next action in the plan
- [ ] **Task N: Short descriptive title**
- Scope: `path/to/affected/files` or module name
- Depends on: Task M (or "none")
- Acceptance:
- Specific, verifiable criterion 1
- Specific, verifiable criterion 2
- Notes: Optional implementation hintsTask markers:
| Marker | Meaning |
|---|---|
- [ ] |
Not started |
- [x] |
Completed |
- [ ] (blocked) |
Blocked, needs intervention |
- [ ] (manual-verify) |
Requires manual verification |
- Write clear, descriptive commit messages
- Reference plan numbers in commits (e.g., "Plan 001: Initial setup")
- Commit after each logical step