# Content Layout v0

This document defines the on-disk content layout consumed by routing/build workflows.

## Root

- Content root directory is provided by the host (for example `qip dev ./docs`).
- Every regular file under the root is eligible input.
- File key is its relative path from the chosen root using `/` separators.

Examples:

- `<root>/index.html` -> `index.html`
- `<root>/blog/post-1/index.html` -> `blog/post-1/index.html`
- `<root>/images/logo.png` -> `images/logo.png`

## Path Rules

- Relative file keys must be UTF-8.
- `.` and `..` path segments are invalid.
- Paths beginning with `/` are invalid.
- Backslash `\` is invalid.

## Hashing

- Host computes content digest as SHA-256 of raw file bytes.
- Routing/build input tuple is:
  - `file_path_bytes | content_sha256_bytes(32)`

## Scope

- This contract does not define routing policy.
- Routing/build policy is handled by host logic and runtime router modules.
- Recipe discovery/order is defined in `docs/recipe_layout_v0.md`.
