Make the outputs/ commit boundary obvious (public tier committed, raw+normalized ignored) #5

Closed
opened 2026-06-06 06:28:19 +00:00 by coilysiren · 1 comment
Owner

Summary

It is not obvious that outputs/ is partially gitignored. .gitignore ignores only:

outputs/**/raw/
outputs/**/normalized/

while outputs/**/public/ is tracked and committed. So "is outputs/ gitignored?" has no single answer — raw + normalized are local-only, public is committed. A reader (human or agent) skimming git status sees an untracked outputs/<src>__<tgt>/ directory and can reasonably conclude the whole tree is local, or conversely can fail to notice that the public/ tier underneath it will be staged by git add outputs/.

Why it bites

  • The public tier is the one that gets committed and posted to o2r, so a wrong mental model here is a leak vector (see #3 — the normalize.text public tier still carries timestamps/opaque ids).
  • During the C1 on-box battery, outputs/kai-server__kai-server/ showed up as a single untracked ?? entry; the only thing keeping the leaky public tiers out of the commit was remembering to git add specific parser files instead of git add outputs/. That safety should be structural, not vigilance-based.

Options (pick one)

  1. Per-directory .gitignore at outputs/ documenting the split inline, e.g. an outputs/.gitignore with comments stating raw/normalized are ignored and only public/ is committed.
  2. Invert to allow-list: ignore outputs/** then re-include !outputs/**/public/ (and the dirs leading to it), with a comment — makes "everything is local except public" the explicit default.
  3. A short outputs/README.md (or a stanza in the top-level README "Capture once, parse thrice" table) calling out which tiers are committed vs local, co-located with the data.

Leaning (2) + (3): the allow-list makes the default fail-safe (new tiers are local unless explicitly public), and a co-located note makes it legible. Whichever lands, the goal is that the commit/leak boundary is obvious at the outputs/ level, not only buried in the top-level .gitignore.

Provenance

Raised by Kai while reviewing the C1 commit on channel 9KP5; related to #3 (public-tier scrubbing).

## Summary It is not obvious that `outputs/` is **partially** gitignored. `.gitignore` ignores only: ``` outputs/**/raw/ outputs/**/normalized/ ``` while `outputs/**/public/` is **tracked and committed**. So "is `outputs/` gitignored?" has no single answer — raw + normalized are local-only, public is committed. A reader (human or agent) skimming `git status` sees an untracked `outputs/<src>__<tgt>/` directory and can reasonably conclude the whole tree is local, or conversely can fail to notice that the `public/` tier underneath it *will* be staged by `git add outputs/`. ## Why it bites - The public tier is the one that gets committed **and** posted to o2r, so a wrong mental model here is a leak vector (see #3 — the `normalize.text` public tier still carries timestamps/opaque ids). - During the C1 on-box battery, `outputs/kai-server__kai-server/` showed up as a single untracked `??` entry; the only thing keeping the leaky public tiers out of the commit was remembering to `git add` specific parser files instead of `git add outputs/`. That safety should be structural, not vigilance-based. ## Options (pick one) 1. **Per-directory `.gitignore`** at `outputs/` documenting the split inline, e.g. an `outputs/.gitignore` with comments stating raw/normalized are ignored and only `public/` is committed. 2. **Invert to allow-list**: ignore `outputs/**` then re-include `!outputs/**/public/` (and the dirs leading to it), with a comment — makes "everything is local except public" the explicit default. 3. **A short `outputs/README.md`** (or a stanza in the top-level README "Capture once, parse thrice" table) calling out which tiers are committed vs local, co-located with the data. Leaning (2) + (3): the allow-list makes the default fail-safe (new tiers are local unless explicitly public), and a co-located note makes it legible. Whichever lands, the goal is that the commit/leak boundary is obvious at the `outputs/` level, not only buried in the top-level `.gitignore`. ## Provenance Raised by Kai while reviewing the C1 commit on channel `9KP5`; related to #3 (public-tier scrubbing).
Author
Owner

Closing. o2r is archived in the June 2026 surface reduction - an optional agent channel, unused autonomously. Handover doctrine moves to human-mediated.

Closing. o2r is archived in the June 2026 surface reduction - an optional agent channel, unused autonomously. Handover doctrine moves to human-mediated.
Commenting is not possible because the repository is archived.
No description provided.