Best Practiceswarn by defaultrecommended preset
astro-doctor/require-content-configrequire-content-config
Add a content config when src/content contains entries.
Why
A content config defines collections and their schemas so Astro can type and validate content entries. Content files without defineCollection() lose those guarantees and allow invalid frontmatter to reach a build or production page.
Examples
Incorrect
Content entries exist without src/content.config.ts
src/
content/
blog/
first-post.mdCorrect
Define and export the collection
import { defineCollection, z } from 'astro:content'
const blog = defineCollection({
schema: z.object({
title: z.string(),
}),
})
export const collections = { blog }Configuration
Project audits are configured in doctor.config.ts:
export default {
rules: {
'astro-doctor/require-content-config': 'error', // or 'warn' or 'off'
},
}All rules
astro-doctor/no-client-load-overuseastro-doctor/use-astro-imageastro-doctor/require-image-dimensionsastro-doctor/no-missing-altastro-doctor/no-set-htmlastro-doctor/no-public-secret-envastro-doctor/prefer-class-listastro-doctor/no-blocking-scriptastro-doctor/no-unprocessed-script-surprisesastro-doctor/no-missing-langastro-doctor/require-island-fallbackastro-doctor/no-process-envastro-doctor/prefer-content-collectionsastro-doctor/no-disabled-origin-checkastro-doctor/no-insecure-session-cookieastro-doctor/no-open-allowed-domainsastro-doctor/prefer-env-schemaastro-doctor/prefer-pnpmastro-doctor/require-action-input-schemaastro-doctor/require-client-router-script-lifecycleastro-doctor/require-content-config(this page)