Generator / Templates / Astro content site
AGENTS.md for Astro content site
Static-first Astro site with Tailwind and SEO. This AGENTS.md template combines 107 rules from 13 packs and runs to 147 lines.
Open this template in the AGENTS.md generatorWhat is inside
- Agent behavior 18 rules
- Design system and UI 9 rules
- Testing 12 rules
- Git and pull requests 12 rules
- Security 14 rules
- Workflow and tooling 12 rules
- Verification and CI feedback 5 rules
- TypeScript 6 rules
- Tailwind CSS 5 rules
- Astro 3 rules
- CSS 4 rules
- HTML 4 rules
- SEO and web performance 3 rules
The generated AGENTS.md
This is the file the generator produces for the Astro content site preset, before you add your project name and commands.
# AGENTS.md
## Agent behavior
- For changes touching more than three files, outline the plan and wait for confirmation before editing.
- Ask a clarifying question when requirements are ambiguous instead of guessing.
- Keep diffs small and focused on the request; do not refactor unrelated code.
- Run the relevant tests, linter and type checker before reporting a task as done, and report failures honestly.
- Never delete, skip or loosen a failing test to make it pass; fix the cause.
- Do not add new dependencies without explicit approval; prefer the standard library and existing packages.
- Do not edit generated or vendored files; change the source and regenerate.
- Never read, print or commit secrets, .env files or credentials.
- Read the relevant code and tests before proposing a change; do not edit files you have not read.
- Fix the root cause rather than suppressing the symptom with a workaround or silenced warning.
- Do not add lint or type suppressions to get a clean run; fix the underlying issue.
- Report failing tests, skipped steps and unverified claims plainly; never claim success without evidence.
- Verify library APIs in the installed version or its docs before using them; do not invent functions.
- Do not change public behavior, file formats or APIs unless the task asks for it.
- Never hardcode values or special-case inputs to satisfy a test.
- If an approach fails twice, stop and ask instead of trying increasingly invasive workarounds.
- Before editing a directory, read the nearest AGENTS.md and follow it over the root file where they differ.
- Preserve unrelated working tree changes. Never revert or rewrite edits you did not make.
## Design system and UI
- Use design tokens for colors, spacing, typography and radii; never hardcode them.
- Reuse existing components before creating new ones; extend variants instead of duplicating.
- Meet WCAG 2.1 AA: semantic HTML, visible focus, keyboard operability, sufficient contrast, labelled controls.
- Design mobile-first and verify layouts at phone, tablet and desktop widths.
- Handle loading, empty, error and disabled states for every data-driven view.
- Use the spacing scale for margins and padding; no one-off pixel values.
- Use the typography scale for sizes and weights.
- Add a variant or prop to an existing component instead of copying it.
- Use semantic color tokens (text-primary, surface) instead of palette values in components.
## Testing
- Add or update tests for every behavior change and bug fix.
- For bug fixes, write a failing test that reproduces the bug before fixing it.
- Prefer many fast unit tests, fewer integration tests and a small number of end-to-end tests.
- Mock only external boundaries (network, clock, filesystem); use real collaborators otherwise.
- Keep tests deterministic: no real time, randomness or network without control.
- Keep tests independent; no shared mutable state or required execution order.
- Structure tests as arrange, act, assert with one behavior per test.
- Build test data with small factories instead of large shared fixtures.
- Treat a flaky test as a bug: find the cause instead of adding retries or sleeps.
- Use snapshot tests only for small stable outputs and review snapshot diffs carefully.
- Test public behavior rather than private functions or implementation details.
- Make assertions specific enough that the test fails if the behavior breaks.
## Git and pull requests
- Write commit messages in Conventional Commits format (feat:, fix:, docs:, refactor:, test:, chore:) and mark breaking changes with ! or a BREAKING CHANGE footer.
- Keep pull requests small and focused on one change.
- Write commit subjects in the imperative mood, 72 characters or fewer.
- Never force-push to shared branches and never rewrite published history.
- Run lint, type check and tests before committing.
- Never commit secrets, build output or large binaries.
- Describe motivation, approach and testing in the pull request description.
- Make each commit one logical change that builds and passes tests.
- Do not amend or rebase commits that are already pushed to a shared branch.
- Add build output, local env files and editor files to .gitignore instead of committing them.
- Open pull requests only when CI is green and the diff is self-reviewed.
- Never bypass commit hooks or signing with --no-verify unless explicitly instructed.
## Security
- Load secrets from environment variables or a secret manager; never hardcode them.
- Use parameterized queries and safe APIs; never build SQL, shell commands or HTML by string concatenation with user input.
- Enforce authentication and authorization on the server for every protected operation.
- Pin dependency versions, commit lockfiles and review new packages before adding them.
- Grant the minimum permissions needed for tokens, service accounts and containers.
- Use well-reviewed cryptographic libraries; never invent your own algorithms or store plain passwords.
- Encode output for its context and avoid injecting raw HTML; sanitize rich text with a vetted library.
- Protect state-changing browser requests with CSRF tokens or SameSite cookies.
- Configure CORS with explicit origins; never reflect arbitrary origins with credentials.
- Use HttpOnly, Secure, SameSite cookies and rotate session identifiers on login.
- Validate and allow-list URLs before fetching user-supplied addresses to prevent SSRF.
- Hash passwords with Argon2id, or scrypt or bcrypt where it is unavailable, with a unique salt; never use fast hashes such as SHA-256.
- Run secret scanning in CI and rotate any credential that has been exposed.
- Validate untrusted input against a schema. Never run eval, exec or unpickling on it.
## Workflow and tooling
- Run tools through the project scripts (npm run, make, task) instead of invoking underlying binaries directly, so flags and environments match CI.
- Run the single aggregate check command (for example pre-commit or a lint script) before finishing; fix every failure and re-run until it passes.
- Run the specific test files related to your change first, and run the full suite only before handing off.
- Before editing a directory, read the README and any nested AGENTS.md that applies to it.
- Put throwaway scripts and experiment output in a gitignored scratch directory and delete them when done.
- After switching branches or pulling dependency changes, reinstall and rebuild before running tests.
- When CI fails, find the exact failing job and command, reproduce it locally, then fix the cause instead of re-running blindly.
- Stop any dev servers or watchers you started once you are done.
- Ask before running destructive or irreversible commands such as dropping databases, deleting branches, rm -rf or force operations.
- Prefer existing scripts, generators and templates in the repo over writing new ad hoc tooling.
- When the repository documents skills or runbooks for a task (migrations, releases, dependency bumps), follow them instead of improvising.
- Never start long-running dev servers or watchers in the foreground. Use targeted one-shot commands.
## Verification and CI feedback
- Run the narrowest relevant test first, then widen to the package and workspace checks as confidence grows.
- Run the project formatter and linter on changed files before committing, using the repo scripts or hooks.
- For a bug fix, reproduce the failure first, then show the regression test failing without the fix and passing with it.
- Report a task as done only after running the checks that prove it. If you could not run them, say so.
- Before finishing, re-read the full diff as a reviewer with no knowledge of this session and fix what would confuse them.
## TypeScript conventions
- Enable "strict" in tsconfig and keep it on.
- Do not use any; use unknown and narrow, or model the type properly.
- Validate untrusted data at runtime with a schema library instead of casting.
- Avoid non-null assertions (!) and unchecked type assertions (as).
- Model variants with discriminated unions and exhaustive switch checks.
- Do not use @ts-ignore; use @ts-expect-error with a reason only when unavoidable.
## Tailwind CSS conventions
- Style with utility classes; extract components rather than long @apply blocks.
- Define colors, spacing and fonts in the Tailwind theme and use them instead of arbitrary values.
- Use responsive, dark and state variants instead of custom media queries.
- Do not build class names by interpolation such as text-${color}-600; map values to complete class names so Tailwind can detect them.
- Extract repeated utility groups into components, not into custom CSS.
## Astro conventions
- Ship zero JavaScript by default and hydrate only interactive islands with the lightest client directive.
- Model content with content collections and a zod schema.
- Prefer static generation and opt into server rendering only for dynamic pages.
## CSS conventions
- Define colors, spacing and fonts as CSS custom properties.
- Use grid and flexbox for layout; avoid floats and fixed pixel heights.
- Keep selectors flat and low in specificity; avoid !important and id selectors.
- Use rem for type and spacing so user font settings are respected.
## HTML conventions
- Include doctype, lang attribute, charset and viewport meta on every page.
- Use one h1 and a logical heading hierarchy.
- Use header, nav, main and footer landmarks.
- Set width, height and loading="lazy" on below-the-fold images.
## SEO and web performance conventions
- Keep LCP, INP and CLS within the recommended thresholds.
- Set canonical URLs and provide sitemap.xml and robots.txt.
- Make sure primary content is in the initial HTML, not only rendered client-side.
How to use it
- Save the text as
AGENTS.mdin your repository root, or export it as CLAUDE.md, a Cursor rule or Copilot instructions in the generator. - Add your install, dev, build, test and lint commands. Commands are the most useful lines in the file.
- Delete rules that do not match your project. Shorter files are followed more reliably.
- For a monorepo, add a nested file per folder in the generator.
Related guides
- What is AGENTS.md?
- AGENTS.md vs CLAUDE.md
- AGENTS.md best practices
- AGENTS.md for monorepos
- Keep AGENTS.md up to date
More AGENTS.md templates
- .NET APIASP.NET Core API with xUnit.
- AI agentAutonomous agent with tools.
- AI SDK appNext.js app with the Vercel AI SDK, structured output and tools.
- Android with ComposeNative Android app.
- Angular appStandalone components and signals.
- Bazel monorepoMulti-language repo built and tested with Bazel.
- Browser extensionManifest V3 extension.
- C++ projectModern C++ with sanitizers and clang-tidy.