# 2026-04-16 — repo restructure

Folded three previously-separate pieces into this umbrella repo. Created the
initial layout, the root `CLAUDE.md`, `README.md`, `docs/architecture.md`,
and `fret-pipeline/CLAUDE.md`.

## What we did

- Created `~/Documents/pwr-hybrid-3-demo/` as the umbrella repo (`git init`,
  `main` branch, not yet pushed to any remote).
- Copied `~/Documents/fret_processing/` → `fret-pipeline/` via `rsync`
  excluding `.git`, `.DS_Store`, `.claude`, `__pycache__`. **Git history
  abandoned by explicit user decision** — the old single-commit history did
  not carry forward.
- Copied `~/Documents/PKE_Playground/` → `plant-model/` via `rsync`. Never
  was a git repo; nothing to abandon.
- Added `thesis/` as a submodule pointing at
  `ssh://git@gitea.danesabo.com:1738/danesabo/Thesis.git` (also has GitHub
  mirror at `namelessfaceless/dissertation`).
- Added `presentations/2026DICE/` as a submodule pointing at
  `ssh://git@gitea.danesabo.com:1738/danesabo/2026DICE.git`.
- Created empty placeholders: `reachability/`, `hardware/`, `docs/figures/`.

## What we decided and why

- **Monorepo with thesis as a submodule, not the reverse.** Code iterates
  daily, thesis weekly. A slow parent with fast children is painful; a fast
  parent pointing at a slow submodule matches the actual cadence. Also
  preserves the thesis's independent git history for advisor/committee use.
- **Copy, not move.** Old `~/Documents/fret_processing/` and
  `~/Documents/PKE_Playground/` still exist. User will delete them later;
  this gives a safe rollback window.
- **Folder renames:** `fret_processing` → `fret-pipeline` (more accurate —
  it's a pipeline, not a processing step), `PKE_Playground` → `plant-model`
  (describes function not content). Both switched to hyphens for consistency.
- **No `git init` on `PKE_Playground` before the move** — user said to skip
  it and fold in clean.
- **Used `git submodule add`, not `git subtree`.** Submodule pain
  acknowledged (detached HEAD, two-step commits, `--recurse-submodules` on
  clone) but accepted in exchange for preserving the thesis's independent
  git life. Revisit if pain outweighs benefit.

## Things that surprised us / are worth remembering

- The thesis's Figure 1 (Cold Shutdown → Heatup → Power Operation + SCRAM)
  and the `fret-pipeline/` running example `PWR_HYBRID_3` are the same
  automaton. This is the integration point — the figure should eventually
  be swapped from hand-drawn TikZ to `\includegraphics` of a generated
  state-machine PNG.
- The plant model's state vector `[n; C1..C6; T_f; T_c; T_cold]` exposes
  exactly the quantities the FRET predicates reference (`T_avg = T_c`,
  `T_hot = 2*T_c - T_cold`). The two layers are already semantically
  aligned; nobody wired them because they were in different folders.
- `Q_sg(t)` is the physical input, not `T_cold`. Cold leg temperature is a
  dynamic state that *results from* SG heat removal. This matters for the
  reachability/barrier-cert formulation where `Q_sg ∈ [Q_min, Q_max]` is
  the bounded disturbance.
- `fret_to_synth.py` adds a mutual-exclusion LTL constraint because
  decomposing `control_mode = q_X` into independent booleans lets the
  synthesizer assert multiple modes simultaneously. **This is a synthesis
  encoding artifact, not a missing FRET requirement.** Do not add it in
  FRET.

## Open items (for future sessions)

- **`presentations/2026DICE/` submodule reflects gitea HEAD, not user's
  local state.** The original `~/Documents/Writing/2026DICE/` had
  uncommitted changes: `M DANE_SABO_ABSTRACT.pages` plus three untracked
  PDFs (`DANE_SABO.pdf`, `DANE_SABO_ABSTRACT.pdf`, `DANE_SABO_ABSTRACT_V2.pdf`,
  `DANE_SABO_ABSTRACT_V3.pdf`). If user wants these in the submodule, commit
  from the original location, push to gitea, then from umbrella:
  `cd presentations/2026DICE && git pull` and commit the new pointer.
- **Old folders not yet deleted.** `~/Documents/fret_processing/` and
  `~/Documents/PKE_Playground/` still live at their old paths. Delete when
  user confirms the umbrella is working.
- **No initial commit yet.** Everything is staged but uncommitted. User
  wanted to review the four new docs before committing.
- **No remote yet.** Need to create `gitea.danesabo.com/danesabo/pwr-hybrid-3-demo`
  and `git remote add origin` + push.
- **`fret-pipeline/README.md` still says `fret_processing/` in its directory
  structure section.** Didn't update — it's a minor inconsistency but worth
  fixing on the next pass.
- **No bridge between discrete and continuous layers yet.** The whole point
  of the umbrella is to eventually wire them — `reachability/` is where
  that work lands. Not started.

## Paths touched

- Created: `/Users/danesabo/Documents/pwr-hybrid-3-demo/` (entire tree)
- Untouched: `/Users/danesabo/Documents/fret_processing/`,
  `/Users/danesabo/Documents/PKE_Playground/`,
  `/Users/danesabo/Documents/Writing/Thesis/`,
  `/Users/danesabo/Documents/Writing/2026DICE/` — all still present,
  unchanged.
