# PFES History Import Plan

## Goal

Convert the accepted cumulative PFES ZIP sequence into auditable Git history
without losing the ZIPs as provenance-bearing release artifacts.

## Mainline rule

The import register begins at v0.8.1, the first accepted consolidated snapshot
in the current mainline list. Each snapshot becomes one commit and one annotated
tag. Earlier reconstructed, draft, alternate, and repository-snapshot archives
remain outside main until their lineage is explicitly reviewed.

## Import mechanics

1. Create an empty local repository with default branch `main`.
2. Use `PFES_SNAPSHOT_IMPORT_REGISTER.json` and the included importer in dry-run
   mode.
3. Verify every archive SHA-256 before extraction.
4. Replace the worktree with each snapshot's content root, preserving the Git
   directory.
5. Commit the complete tree and create an annotated `pfes-vX.Y.Z` tag.
6. After the last imported predecessor, replace the tree with this v0.15.0
   snapshot and commit it manually using its delivered SHA-256.
7. Clone the finished repository into a second directory and compare the tag,
   commit, manifest, and file hashes.
8. Push only after local import and independent clone validation pass.

The ZIP files remain in the release store and are not committed into the PFES
working tree.

## Authority transition

Git does not become canonical merely because a repository exists. The authority
transition occurs in a later PFES revision after the imported history, tags,
release ZIPs, and independent clone are accepted. Until then, the latest complete
steward-generated and delivered ZIP remains authoritative.
