Your first site

What DeepDoc just created, how to read it, and which parts are yours to edit.

deepdoc generate writes three things into your repository. Knowing which is which tells you what is safe to edit and what gets overwritten.

.deepdoc.yaml
index.md
getting-started.md
whats-changed.md

What each one is for

deepdoc-docs/ is plain Markdown, one file per page. Readable, diffable, and reviewable in a pull request like any other file.

deepdoc-site/ is the site that renders it. Treat it as build output — DeepDoc owns every file in there and rewrites them on each run.

.deepdoc/ is the saved state, and it is the reason theming is free. plan.json holds the page structure, so changing colours or reordering the sidebar rebuilds the site from that file instead of re-reading your code.

Commit .deepdoc/

Without plan.json, DeepDoc cannot rebuild the site from your config and has to regenerate — which costs LLM calls. Commit it alongside your docs.

Adding your own pages

Drop a Markdown file into deepdoc-docs/ and it is published. DeepDoc only deletes files it created — it tracks its own output in ledger.json — so hand-written pages survive every regeneration.

echo "# Runbook" > deepdoc-docs/runbook.md

That page is now live at /runbook, but it will not appear in the sidebar. The sidebar comes from the plan, and the plan does not know about it. Add it:

.deepdoc.yaml
site:
  nav:
    extra:
      - { slug: runbook, title: "Runbook", section: "Guides" }

DeepDoc tells you when this applies to you:

2 page(s) are not in the sidebar: runbook, faq. Add them under site.nav.extra.

What gets overwritten

Next