# PFES-TR-010 — Project Incubation and Repository-Admission Records

## Purpose

Define the canonical record set used to admit, track, hand off, promote, or
archive a Project Frankenstein subproject.

## Record set

| Record | Purpose |
|---|---|
| `PROJECT_REGISTER.json` | Canonical project list and lifecycle state |
| `PROJECT_RECORD.json` | Machine-readable record for one project |
| `PROJECT_CHARTER.md` | Human-readable scope, goals, exclusions, and maturity |
| `ARTIFACT_INTAKE.json` | Exact identity and validation of supplied source packages |
| `AGENT_HANDOFF.md` | Minimal continuation instructions and safety boundaries |
| `PROJECT_ADMISSION_TEMPLATE.md` | Template for admitting another project |

## Required project fields

A project record must contain:

- project ID, canonical name, slug, and lifecycle state;
- PFES relationship and engineering domain;
- scope and non-goals;
- stewardship and handoff path;
- current revision and maturity statement;
- repository state and readiness-gate status;
- artifact references by filename, byte size, and SHA-256;
- safety constraints;
- completed, open, and blocked gates;
- next accepted engineering actions;
- archival or successor information when applicable.

## Lifecycle vocabulary

Only these lifecycle states are canonical:

```text
proposed
incubating
repository_ready
authority_active
maintenance
archived
```

Repository state is recorded separately because an incubating project may have
no repository, and an archived project may retain an immutable repository.

## Repository state vocabulary

Recommended values:

```text
not_requested
deferred_not_ready
candidate_in_review
staged_pending_promotion
authority_active
archived_immutable
merged_into_existing_authority
```

## Gate semantics

Each gate uses one of:

```text
not_started
open
blocked
pass
not_applicable
superseded
```

A `pass` applies only to the named gate. For example, `project_admission=pass`
does not imply `repository_readiness=pass`, `fabrication_release=pass`, or
`destructive_operation_authorization=pass`.

## Artifact handling

The project record may reference an external artifact rather than embedding it
in PFES. This is preferred when the artifact is an evolving source package or
belongs to a future project repository.

Every referenced package must record:

- supplied filename;
- canonical descriptive filename, if renamed later;
- SHA-256;
- exact byte size;
- ZIP CRC or equivalent container check;
- internal manifest verification status, when present;
- provenance and date received;
- role in the project;
- retention class and intended future destination.

## Authority rule

PFES authorizes project status. A project repository authorizes maintained
source only after its own promotion. Neither authority silently activates the
other.
