|
| 1 | +# Gut — PyAutoGut |
| 2 | + |
| 3 | +**What it owns:** the lifecycle of *condemned self-material* — the stale |
| 4 | +branches, `git stash` entries, dead code and retired tests a hygiene sweep is |
| 5 | +95%-but-not-100% sure is trash. Code that is not *wrong*, just *done*. Gut is |
| 6 | +the storage mirror of Memory: Memory holds what the organism **keeps**, Gut |
| 7 | +holds what it **sheds** — retention ↔ release. |
| 8 | + |
| 9 | +**Repo:** [PyAutoLabs/PyAutoGut](https://github.com/PyAutoLabs/PyAutoGut) |
| 10 | + |
| 11 | +## The defining function: elimination |
| 12 | + |
| 13 | +Gut is a storage organ that ends in **deletion** — it performs the final void |
| 14 | +itself. (An organ that only filtered and handed waste downstream would be a |
| 15 | +spleen; the one that *voids* is the gut.) Between condemnation and deletion it |
| 16 | +holds each item in a **transit window**: a staging state that is neither "keep" |
| 17 | +nor "delete now", with a clock on it. |
| 18 | + |
| 19 | +## Lifecycle: condemn → transit → void |
| 20 | + |
| 21 | +- **Condemn** — the Brain's hygiene conductor files an entry into the |
| 22 | + `condemned.md` manifest in the Mind (symmetric to `parked.md`). Fragile forms |
| 23 | + — local unmerged branches, stashes — are archived to a durable ref here |
| 24 | + *first*. |
| 25 | +- **Transit** — the entry carries a `sweep-after` date. Until then it is |
| 26 | + **recoverable**: restore the branch or stash from its archive ref. The |
| 27 | + holding window *is* the gut's transit time, with a clock on it. |
| 28 | +- **Void** — a batch `sweep` runs the existing `repo_cleanup` safety gates |
| 29 | + against entries past their date and eliminates them. |
| 30 | + |
| 31 | +## Storage model |
| 32 | + |
| 33 | +- **Payload = durable git refs, never lossy markdown.** Fragile forms are |
| 34 | + materialised as real commits and pushed under the |
| 35 | + `refs/heads/archive/condemned/<name>` prefix into this repo — the *attic |
| 36 | + remote* — before the local copy is deleted. Recovery is a checkout. (It is a |
| 37 | + branch prefix, not a custom `refs/archive/*` namespace: GitHub only accepts |
| 38 | + pushes to `refs/heads/*` and `refs/tags/*`.) |
| 39 | +- **Catalog = `condemned.md` in the Mind** (symmetric to `parked.md`). The |
| 40 | + `.md` is the index; the refs here are the payload. Merged branches skip the |
| 41 | + pen entirely — reachable from `main` forever, so the conductor recommends them |
| 42 | + straight to deletion. |
| 43 | + |
| 44 | +## The driver split |
| 45 | + |
| 46 | +Gut *holds and voids*; it decides nothing. The Brain's hygiene conductor decides |
| 47 | +what to condemn and when to sweep — the same split as **Heart ↔ vitals**: the |
| 48 | +organ does the work, the conductor reasons. The `bin/pyauto-gut` entrypoint |
| 49 | +provides the mechanics: `archive`, `recover`, `list`, `void`. |
| 50 | + |
| 51 | +## For an adopter |
| 52 | + |
| 53 | +You do not fork this repo's contents — the condemned refs are your organism's |
| 54 | +own shed material. You create your own Gut with the same shape: an attic remote |
| 55 | +that accepts `archive/condemned/*` refs, the `condemned.md` catalog in your |
| 56 | +Mind, and the hygiene conductor wired to drive it. Like Mind and Memory, Gut is |
| 57 | +an **instance organ** — inherently yours. |
0 commit comments