Theme
Start Here
Forge is both a real application and the course through which you will learn to build it. You do not need to read the whole repository before you begin.
Every build session
- Read the current status.
- Open the current lesson from the course.
- Read only the architecture/design pages linked from that lesson.
- Build the real Forge increment.
- Run the lesson's completion gate.
- Update status and, when useful, the learning log.
- Commit a small coherent unit of work.
The project itself is the exercise.
Read these first
- Vocabulary — the words used throughout Forge.
- Product requirements — what we are building.
- Architecture overview — the major boundaries.
- Course overview — the lesson sequence.
- Master build plan — the larger picture when you need it.
- Reference library — primary docs, repos, and deeper reading.
The first product loop we are aiming for
text
create task
↓
start agent in isolated worktree
↓
see useful progress
↓
agent produces a candidate revision
↓
review
↓
request changes if needed
↓
agent revises
↓
human approves
↓
DoneDo not begin by implementing every provider, a plugin platform, full event sourcing, or a beautiful dashboard. Sophisticated machinery earns its place by making this loop safer, clearer, or more useful.
How documentation is maintained
Canonical product, architecture, and design docs must describe the current system. ADRs preserve the reason behind consequential decisions. We do not leave known-wrong paragraphs in canonical docs and ask future agents to mentally patch them with ADRs.
When a decision changes:
text
make decision
↓
update canonical doc
↓
write/amend ADR if the reason is important
↓
update plan/course if sequencing changed
↓
update current statusSee the documentation site guide for the Bun/VitePress commands.
When an AI coding agent helps
Give it the current lesson, the relevant architecture page, and the repository-root AGENTS.md. Do not dump the entire documentation tree into its context by default. Use agents to accelerate implementation, not to bypass your understanding: if the agent introduces something you cannot explain in simple language afterward, the lesson is not complete yet.