00 · Orientation — devops-git: the git-and-beads methodology, and the github-like layer over it (Devops Git)

**Note** from Bead: Devops Git · [canonical source](https://redfish.acequia.io/guerin/.agents/974d57e3-b2f1-44d6-930c-73d9aad07aeb/2026-06-18/notes/00-orientation.md) · session 2026-06-18 · discussion: Talk: Devops Git

Read first. This note carries the conceptual frame a denovo agent needs that isn't in `about.md`.

## What Stephen asked for (verbatim, 2026-06-18) > "have it look through all the beads in the last 2 weeks mentioning git and the our dev methodology. eg > keep the git with the bead and reference the bead in the deployments > > i want devops to start having github-like functionality that can search for and keep an index of the > current gits in the beads. > > We also sometimes put the .git with the application uri's tha we deploy. that would be treated as a > fork. > > We also have our /src directory one level up from /sites/ that manages external repos like taos-engine. > Or agentscript.org as a .git repository too. > > one first task is to make an html artifact that let's me select one of the gits (i'll start with > image-pose-uxui bead) and see its commit tree and history"

## The methodology this bead operationalizes (ratified, not invented here) The git-and-beads rules are already settled across `#git-and-beads` (`d9dfa5e4`) and the `#devops` charter (`64be6d29/agent.md`). The four that this bead's **taxonomy** mirrors directly: 1. **Git lives IN the bead.** Ecology-owned, self-contained source → `git init` at the bead root or `<bead>/repo/`. The `.git` is the bead's **"history face"** (the bead has a file/folder/agent/history face). → taxonomy kind **`bead-repo`**. 2. **`/src` is for vendor / build-coupled clones only.** `taos-engine`, external repos you don't own and shouldn't publish; the bead *mounts* them by `names.json` pointer, never imports. `Documents/src/` is one level up from `sites/`, outside the shared namespace. → kind **`external-src`** (plus **`external-mirror`** for clones parked under `sites/github.com/<org>/<repo>`). 3. **Fork, don't write-through.** A `.git` living **beside a deployed app URI** under `sites/<domain>/…` is a **fork** (a CDN replica of some upstream history face); the upstream is recorded in `names.json` `upstream`. → kind **`deploy-fork`**. 4. **Reference the bead in the deployments.** A deployed artifact carries a `README.md` that links back to the bead(s) that authored it and their collective `.git`s. Deploy is a **copy out of `repo/`**, not the git tree. (This backlink is the edge `#git-interactive-visualization` wants to make machine-readable.) Plus the hygiene rule: **`git gc` to packfiles before any `/bead-sync`** (`.git` object stores are many tiny files; WebDAV PUT-per-file + HostGo inodes punish that). The scanner does not gc; do it by hand before syncing a bead that contains a repo.

## Where this bead sits among the git beads (don't duplicate them) - `#git-and-beads` `d9dfa5e4` = the **rule** (placement). - `#devops` `64be6d29` = the **policy charter** (the four defaults + acequia-git substrate). - `#acequia-git` `ab96c2ea` = the **serving substrate** (decentralized git node: clone/fetch a bead's history face over dumb-HTTP/WebDAV; the GitHub→acequia primitive map; liveness ladder static→SW isomorphic-git→OS animator). - `#git-interactive-visualization` `9206f228` = the **vision** (app↔beads↔git provenance graph; vision note only, no code yet). - **`#devops-git` (this) = the runnable index + the first viewer.** It is the "search for and keep an index" tool and the "pick a git, see its commit tree" artifact. It is a *projection*, never authority.

## The build (what exists now) - `scan-gits.mjs` → `gits-index.json`: 27 repos found, classified into the four kinds above. See [01-git-index.md](01-git-index.md) for the catalog and counts. - `dump-log.mjs` / `build-logs.mjs` → `logs/<logId>.json`: each repo's full commit DAG as a small JSON. This is the deliberate answer to `9206f228`'s open-Q #2 ("render git in-browser via isomorphic-git over the `.git`, **or** a precomputed commit-graph JSON?") — **precomputed JSON**, because it is WebDAV-native (plain GET), cheap, and needs no git backend in the browser. The heavier isomorphic-git path stays open for live `?at=<sha>` time-travel later. - `commit-tree.html`: the viewer. Lane-assignment railroad graph + commit list, sidebar grouped by kind with a filter, defaults to `#image-pose-uxui`.

## Next slices (open, when greenlit — mostly belong to the sibling beads) 1. **Cross-bead provenance graph** — extend from "one repo's DAG" to the app↔beads↔commits graph of `9206f228` (needs the README→beads backlink ratified as structured `provenance.json` / `authored-by:`). 2. **Live source instead of snapshot** — feed the index from `#bead-orchestrator`'s registry and read commits from `#acequia-git`'s served faces, so it isn't a stale local scan. 3. **Time-travel + diff** — scrub a DAG by date/sha; select two commits and diff. This is where in-browser isomorphic-git (open-Q #2's other horn) earns its weight. 4. **Deploy backlinks** — once apps carry structured `authored-by:`, draw the deploy-fork → upstream bead edges the taxonomy already records via `names.json upstream`.

## For the next agent - Read order: this note → [01-git-index.md](01-git-index.md) → open `artifacts/commit-tree.html` (served, not `file://` — it `fetch()`es sibling JSON). - Regenerate data, never hand-edit it: `node skills/git-index/scan-gits.mjs && node skills/git-index/build-logs.mjs`. - Stay a projection. Do not move or rewrite another bead's `.git`. Honor the mounts in `about.md`.