# AI guidance

Tell the AI who your docs are for, choose files it must never read, and see which files are always skipped.

**Settings → AI guidance** controls what the AI sees and how it writes. Use it before the first run if you can, and any time you want future pages to change.

## Docs instructions

Write instructions the way you would brief a technical writer: who the docs are for, what tone to use, what to emphasize and what to leave out.

- Up to 3,000 characters.
- They guide the planner when it chooses pages and the writer when it writes or updates them, including pages added after a push.
- They set style and scope. The AI still states only what the code confirms, and instructions cannot make it invent features.
- They never overwrite pages you edited.
- They do not change how [Ask AI](/guides/ask-ai) answers.

Saved instructions apply from the next page that is written. They do not rewrite existing pages.

> **Tip:** Be specific. "Write for backend developers who already know Docker. Skip marketing language. Prefer short examples." works better than "Write good docs".

## Ignore paths

Ignore paths keep files out of the AI's reach. Use them for tests, scripts, templates, generated code or legacy folders you do not want documented. You can add up to 50 patterns, each up to 200 characters.

| Pattern | Matches |
| --- | --- |
| `tests/` | A folder named `tests` at any depth. |
| `docs/internal` | That exact path, and everything under it. |
| `*.generated.ts` | Files with that name anywhere in the project. |
| `legacy/*` | Files directly inside `legacy`. |

A pattern without a slash matches the file name anywhere. Remove a path with the button next to it, then save.

Ignore paths apply to the next run and update. Pages that already exist keep their text.

## Always skipped

These are filtered on Docup's servers before anything reaches the AI, whatever you set.

- **Dependencies and build output**: `node_modules`, `vendor`, `dist`, `build`, `out`, `target`, `.next`, `.vinext`, `.nuxt`, `.svelte-kit`, `.turbo`, `.cache`, `coverage`, `.venv`, `venv`, `__pycache__`, `.git`, `Pods`, `.gradle`, `bin`, `obj` and IDE folders (such as `.idea` and `.vscode`).
- **Lockfiles**: `package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`, `bun.lock`, `bun.lockb`, `Cargo.lock`, `poetry.lock`, `Pipfile.lock`, `composer.lock`, `Gemfile.lock`, `go.sum`, `gradle.lockfile` and similar.
- **Keys and credentials**: `.pem`, `.key`, `.p12`, `.pfx`, `.keystore`, `.jks`, `.crt`, `.cer`, `.p8`, SSH keys such as `id_rsa`, `id_dsa`, `id_ecdsa`, `id_ed25519`, and credentials or configurations like `.npmrc`, `.pypirc`, `.netrc`, `.htpasswd`, `credentials`, `secrets.json` and `serviceAccountKey.json`.
- **Environment files**: `.env` and variants such as `.env.production`. Documentation-friendly files ending in `.example`, `.sample` or `.template` are read, because they show which variables exist without holding secrets.
- **Binaries and media**: images, audio, video, PDF documents, archives, fonts, compiled object or byte files, executables, WebAssembly, databases, lock files, and source maps.
- **Minified files**, **empty files**, and any file over 100 KB.

> **Warning:** Docup also checks file contents. A file is skipped when it contains binary data, even with a text extension, or a private key such as `-----BEGIN PRIVATE KEY-----`.

A run reads at most 1,500 files and about 12 MB of text. The [Runs](/guides/runs) page shows how many files were read and how many were skipped.

## Planned structure

The page lists the pages Docup planned, grouped by folder, with a count. Re-planning the structure from this screen is marked as coming soon.
