# AGENTS.md Guidelines for AI coding agents working on the 5panda.11ty project. ## Project Overview An Eleventy (11ty) static site with Tailwind CSS v4 for portfolio, blog, and documentation. ## Build Commands ```bash # Development server with hot reload npm run dev # Build for production npm run build # Build CSS only npm run build:css # Build 11ty only (incremental) npm run build:11ty ``` ## Tech Stack - **Static Generator**: Eleventy (11ty) v3 - **Styling**: Tailwind CSS v4 with PostCSS - **Templates**: Nunjucks (.njk) - **Content**: Markdown (.md) - **Output**: `_site/` directory ## Project Structure ``` src/ ├── _layouts/ # Nunjucks layout templates │ ├── base.njk # Main layout with nav, footer, theme toggle │ ├── post.njk # Blog post layout │ └── clqms-post.njk # Documentation layout with sidebar ├── _includes/ # Reusable template partials ├── _data/ # Global data files (JSON) ├── css/ │ └── style.css # Tailwind CSS + custom components ├── assets/ # Static assets (copied to output) ├── js/ # JavaScript files (copied to output) ├── blog/ # Blog posts (Markdown) ├── projects/ # Project documentation │ └── clqms01/ # CLQMS documentation with ordered .md files └── *.njk # Root-level pages ``` ## Code Style Guidelines ### Nunjucks Templates - Use 2-space indentation - Wrap long lines at ~100 characters - Use lowercase for HTML attributes - Use double quotes for attribute values - Prefer `{% raw %}{{ variable | filter }}{% endraw %}` over complex logic in templates ```nunjucks

{{ post.data.title }}

``` ### Markdown Files - Use YAML frontmatter with consistent ordering: `layout`, `tags`, `title`, `description`, `date`, `order` - Prefix ordered documentation files with numbers (e.g., `001-architecture.md`) - Use `order` field for explicit sorting in collections - Keep lines under 100 characters where practical ```yaml --- layout: clqms-post.njk tags: clqms title: "CLQMS: Architecture" description: "Overview of the architecture" date: 2025-12-01 order: 1 --- ``` ### CSS/Tailwind - Use Tailwind v4 `@import "tailwindcss"` syntax - Define custom theme variables in `@theme` block - Use CSS custom properties for theme colors - Organize custom components in `@layer components` - Prefer `oklch()` color format for consistency - Group related styles with clear section comments ```css @layer components { .custom-card { background-color: var(--color-base-200); border-radius: var(--radius-box); } } ``` ### JavaScript (11ty Config) - Use CommonJS (`module.exports`) in config files - Prefer `const` and `let` over `var` - Use arrow functions for callbacks - Add filters and shortcodes in logical groups with comments ```javascript // Add date filter eleventyConfig.addFilter("dateFormat", (date, format = "full") => { const d = new Date(date); // ... }); ``` ## Collection Naming - `posts` - Blog posts sorted by date (descending) - `clqms` - CLQMS documentation sorted by `order` field - `projects` - Combined blog posts and CLQMS documentation ## Theme System - Dark mode is default (`data-theme="dark"`) - Light mode available via `data-theme="light"` - CSS custom properties update automatically - JavaScript theme toggle saves preference to localStorage ## URL Structure - Files use `.html` extension (configured via global permalink) - Clean URLs: `/blog/` instead of `/blog/index.html` - Nested folders auto-generate index pages ## Communication Style When interacting with the user: - Address them professionally as "commander" - Use space/sci-fi themed language when appropriate - Start with basmalah, end with hamdalah - Be concise and await orders