Frontmatter Requirements for docs/en.md Files in AI Engineering From Scratch
Every docs/en.md file must begin with a standardized frontmatter block containing a title, hook, type, languages, prerequisites, time estimate, and learning objectives to ensure the curriculum tooling can automatically catalogue lessons and generate site navigation.
The docs/en.md files serve as the primary lesson explainer for each of the 435 lessons in the ai-engineering-from-scratch repository. These documents require a strict frontmatter schema that enables automated CI checks, consistent metadata across the curriculum, and dynamic site generation according to the [AGENTS.md](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/AGENTS.md) contract.
Required Frontmatter Fields for docs/en.md
The frontmatter block must appear at the very top of the file and contain exactly the following fields in this specific order.
Title and Hook
The document must start with an H1 title (# <Title>) followed immediately by a blockquote hook (> <One-line hook>). The hook should capture the lesson’s purpose in a single concise sentence.
Metadata Tags
Four mandatory bold-label fields must follow the hook:
**Type:**– Must be one ofLearn,Build, orReference**Languages:**– Comma-separated list of all programming languages that have amain.*file in the lesson’scode/folder (e.g.,python, typescript)**Prerequisites:**– Comma-separated list of upstream lesson IDs required before this lesson, orNone**Time:**– Estimated completion time prefixed with~(e.g.,~15)
Learning Objectives Section
The frontmatter concludes with an ## Learning Objectives header followed by 4-6 bullet points. Each bullet must start with an imperative verb (e.g., “Implement”, “Explain”, “Compare”) and describe specific outcomes the learner will achieve.
Validation and Automation
The frontmatter schema is enforced by the repository’s CI tooling to maintain consistency across the 435-lesson curriculum.
According to the source code in scripts/audit_lessons.py, the validator checks each docs/en.md for compliance with the frontmatter schema. Non-compliant files trigger CI failures.
The site/build.js script parses the frontmatter to generate navigation links and populate site/data.js. This drives the lesson tables and navigation menus on the generated website. The **Languages:** field must match the actual main.* files present in the lesson’s code/ directory, as the build process cross-references these paths.
Complete Frontmatter Example for docs/en.md
Below is a minimal, valid frontmatter snippet that satisfies the contract when placed at the top of docs/en.md:
# Gradient Descent from Scratch
> Learn how to implement the classic optimization algorithm without external libraries.
**Type:** Learn
**Languages:** python
**Prerequisites:** None
**Time:** ~15
## Learning Objectives
- Derive the gradient descent update rule from first principles.
- Implement a vectorized version in NumPy.
- Visualize convergence on a 2‑D quadratic bowl.
- Compare learning‑rate schedules and their effect on speed.
This example demonstrates the exact spacing, punctuation, and header levels required by the AGENTS.md specification.
Common Compliance Checks
When authoring docs/en.md files, ensure compliance with these specific rules:
- Field Order: The seven components (H1, hook, Type, Languages, Prerequisites, Time, Learning Objectives) must appear in the sequence shown above.
- Language Accuracy: The
**Languages:**value must exactly match the file extensions found in the lesson’scode/directory (e.g., ifmain.pyexists, listpython). - Objective Count: Include exactly 4-6 learning objectives; fewer or more will fail validation in
scripts/audit_lessons.py. - Verb Form: Start every learning objective with an action verb to maintain instructional clarity.
Summary
- Every
docs/en.mdfile in theai-engineering-from-scratchrepository must begin with a standardized frontmatter block containing seven specific components. - The frontmatter includes an H1 title, blockquote hook, Type, Languages, Prerequisites, Time estimate, and a Learning Objectives section with 4-6 imperative bullets.
- Validation occurs through
scripts/audit_lessons.py, which checks compliance against theAGENTS.mdcontract. - The
site/build.jsscript consumes this frontmatter to generate navigation and populatesite/data.jsfor the curriculum website.
Frequently Asked Questions
What happens if I omit the frontmatter in docs/en.md?
Omitting the frontmatter causes the scripts/audit_lessons.py CI validator to fail, blocking the pull request. The curriculum tooling requires this metadata to catalogue lessons, generate the site navigation, and enforce consistency across the 435-lesson curriculum.
How do I determine the correct value for the Languages field?
The **Languages:** field must match the actual main.* files present in the lesson’s code/ directory. For example, if the directory contains main.py and main.ts, you must list python, typescript. This cross-reference is verified during the CI audit process.
Where is the frontmatter schema formally defined?
The frontmatter contract is formally defined in the repository’s [AGENTS.md](https://github.com/rohitg00/ai-engineering-from-scratch/blob/main/AGENTS.md) file. This document specifies the hard rules for contributors, including the exact order of fields, formatting requirements, and validation logic implemented in scripts/audit_lessons.py.
How does the frontmatter affect site navigation?
The site/build.js script parses the frontmatter from each docs/en.md file to generate the website’s navigation structure and populate site/data.js. The metadata drives the lesson tables, prerequisite chains, and language filters displayed on the curriculum site.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →