# PFES-TR-009 — Repository, Artifact, and Storage Architecture

**Status:** Active  
**Applies from:** PFES v0.15.4

## Authorities

| Domain | Authority |
|---|---|
| PFES | `/srv/project-frankenstein/repos/pfes.git` canonical `main` plus accepted annotated tags and retained cumulative release ZIPs |
| `xbox-dvd-tools` | Git `main` at `8ac5f094391fb67dfb8d9a5ca270e109e97e7dd4` |
| MN103S emulator | Separate repository pending PFES-REPO-006 |
| Research corpora | External preserved evidence and future research repository/snapshots |

## PFES release identity

A PFES release is accepted only when its Git commit tree, annotated tag, manifest,
release ZIP, and recorded SHA-256 agree.

The release ZIP remains a first-class archival representation. Git authority
does not permit deletion of accepted release ZIPs.

## Artifact identity

`PFART-*` identifies a logical artifact. SHA-256 identifies a byte
representation. Provenance-distinct records remain separate even when bytes
match.

## Representation identity

Canonical Git blobs and checkout/export files may differ because of
`.gitattributes`. Hash records must identify the representation.

## Storage

The active data volume is mounted at `/srv/project-frankenstein` on the existing
single HDD. Same-disk bundles are recovery aids, not backups.

## Service-account staging

Inputs consumed by the `git` service account are staged under the server
temporary root, hash-verified after copying, and removed after the transaction.
Home-directory permissions are not broadened to make automation work.


## MN103S Emulator Repository

Canonical path:

```text
/srv/project-frankenstein/repos/mn103s-emulator.git
```

Accepted baseline:

```text
main 6bd952317b97d8cbcaca407265e6326ddb74a50d
tree 48e2f168678f4ffc94ee1e041f12a7d103c1a777
tag v258
```

The repository holds maintained source/configuration/document material. Large
runtime artifacts and research datasets remain external.
