# V2 Sophia Release-Candidate Ingestion

`@v2/sophia-release-candidate-ingestion` wires the V2 balance corpus into
`@sophia/ingestion` for every release-candidate cook. It does not replace the
Sophia pipeline; it supplies the V2-specific cook hook, input validation, and
manifest format around the canonical ingestion package.

## Inputs

- Frame-data spreadsheet: `V2/balance/data/frame-data.csv`
- Frame-data schema: `V2/balance/schema/frame-data.schema.json`
- Patch-notes corpus: `V2/balance/patch-notes/*.md`
- Cook metadata: release-candidate id and target platform

Patch notes must include `Release-Candidate:` metadata and at least one
`move_id:` reference. The hook fails before cook if a note references a move not
present in the spreadsheet.

## Cook Hook

BuildGraph and both `cook-all` wrappers call
`V2/ue/Tools/run-sophia-release-candidate-ingest.py` before `Cook` or
`BuildCookRun`. The runner invokes the TypeScript CLI and writes
`release-candidate-ingestion.json` under the cook archive's `Sophia/<platform>/`
directory.

The manifest records:

- V2 bridge package: `@v2/sophia-release-candidate-ingestion`
- Source of truth package: `@sophia/ingestion`
- Cook hook: `SophiaReleaseCandidateIngestion`
- The frame-data spreadsheet and patch-notes corpus content hashes
- The six Sophia ingestion stages for each document
- `mayInfluenceRollback: false`

## Rollback Boundary

The ingestion output may feed citations, wiki content, companion-app frame-data
answers, and human release review. It is not rollback authority and is not read
by deterministic combat simulation.
