# Source Classification

Status: PENDING VERIFICATION

## Classes

### C0 - Never Public

Files that must not enter public repos.

- production `.git` history;
- vendor/plugin folders;
- raw production art/audio/model/source media;
- production scenes and prefabs;
- baked data: `.h8bin`, `.bytes`, generated binary databases;
- internal specs, economy, progression, lore spoilers;
- agent logs, reports, prompts, status files, archives;
- local build/cache/artifact folders;
- production `AGENTS.md`, `TASTE.md`, and production package manifests.

Route:

- private production only;
- private contractor slice only if explicitly scoped and reviewed.

### C1 - Private By Default

Files that may be shared only after human review.

- first-party runtime implementations;
- editor tools that encode production workflows;
- architecture docs with current domain layout;
- test fixtures generated from production behavior.

Route:

- private repo;
- manual rewrite/copy into public only if reduced to contract or example.

### C2 - Public Candidate

Files that can become public after sanitation.

- interfaces;
- DTO shells;
- analyzer rules;
- public route card templates;
- public quality gates;
- small example systems with placeholder data;
- documentation stripped of internal state and production names where needed.

Route:

- copy or rewrite into explicit public-facing folders;
- run gate;
- human review.

### C3 - Public Safe

Files designed for public use from birth.

- public SDK README;
- public contribution rules;
- placeholder assets made for public release;
- examples that never depended on production data;
- tests against mock data.

Route:

- public repo.

## Default Answer

If a file was born in production and is not explicitly classified, it is C1 or C0.
It is not public by default.

## Promotion Rule

Promotion from C1 to C2/C3 requires:

- owner;
- reason;
- public repo target;
- denylist gate pass;
- human review of every copied file.

Use `tools/Get-H8PublicationClassification.ps1` to generate a static classification
artifact. The artifact is a review input, not final approval.

Use `tools/New-H8PromotionRecord.ps1` for specific production paths before moving
them into a public allow profile. It records target repo, owner, reason,
classification, deny/candidate match, and SHA-256 without copying the file.
