# Generated Artifact Policy SF keeps operational generated artifacts out of the project root unless a human explicitly promotes them into durable project documentation. ## Default Locations - `.sf/` stores SF-local operational state, generated harness notes, scaffold manifests, runtime caches, locks, and temporary agent files. - `docs/plans/`, `docs/specs/`, and `docs/adr/` store promoted or generated human-facing exports for review and git history. - Generated docs may change by design. Git keeps their human-facing history; SF-owned operational history belongs in `.sf`/SQLite when runtime replay, ledgers, memory, or drift analysis matter. - Root files such as `AGENTS.md`, `ARCHITECTURE.md`, and `.siftignore` are allowed only when they are part of the versioned scaffold contract. ## Harness Generated harness material belongs under `.sf/harness/`. Top-level `harness/` is not created by SF by default. If a project intentionally owns a top-level harness, SF leaves it alone unless the files still carry pending `sf-doc` markers proving they are old SF-generated residue. ## Doctor Cleanup `/sf doctor --fix` may remove root-level generated residue only when all of the following are true: - the file is under a legacy SF-generated path such as `harness/specs/`; - the file has an `sf-doc` marker; - the marker template matches the file path; - the marker state is `pending`; - the current body hash still matches the marker hash. Anything edited, completed, unmarked, or project-owned is reported conservatively or left untouched.