# 08 — ISSUE PACKAGE AND FILE RULES

## One folder = one issue

Canonical structure:

```text
/issues/{issue-slug}/
    manifest.json
    issue.json
    chapters.json
    pages.json
    theme.css

    /layouts/
    /assets/
    /docs/
```

## Engine vs issue

Engine:
- rendering system
- admin
- DB
- global fallbacks

Issue package:
- content
- design
- assets
- issue-specific layouts
- issue documentation

Do not mix the two.

## Rendering rule

The renderer asks the issue package for its requested layout first.

If an issue-local layout is absent, only then may it fall back to a global layout.

## Database

The issue folder is the portable shared master.

The DB is the runtime / CMS representation.

CMS edits should synchronize back to the issue package JSON when supported.

## New issue

1. copy `_template`
2. rename folder to issue slug
3. update issue + manifest slug
4. author issue
5. validate
6. dry run
7. sync to DB

## Reader content

Reader-generated files belong to the reader/generation layer.

Do not modify the shared issue package for every reader.
