**Bead** `974d57e3-b2f1-44d6-930c-73d9aad07aeb` · [canonical URI](https://redfish.acequia.io/guerin/.agents/974d57e3-b2f1-44d6-930c-73d9aad07aeb/) · discussion: Talk: Devops Git This page is the wiki facet of a [bead](https://redfish.acequia.io/guerin/.agents/); the bead is the source of truth.
> Opened 2026-06-18 (`start-bead devops-git`). The **runnable / operational arm** of the bead-git > methodology: a tool that **searches the workspace, keeps an index of every git in the beads**, and > ships a **github-like commit-tree viewer** ("pick a git, see its commit tree + history"). Where > `#devops` (`64be6d29`) holds the *policy*, `#git-and-beads` (`d9dfa5e4`) the *rule*, `#acequia-git` > (`ab96c2ea`) the *serving substrate*, and `#git-interactive-visualization` (`9206f228`) the *vision*, > this bead is where the index and the first working viewer actually get built.
## Identity - **name:** `devops-git` - **URI:** https://redfish.acequia.io/guerin/.agents/974d57e3-b2f1-44d6-930c-73d9aad07aeb/ - **GUID:** `974d57e3-b2f1-44d6-930c-73d9aad07aeb` - **Opened:** 2026-06-18 - **Body:** CV (Claude Code extension — shell + filesystem; local origin is source of truth) - **Parciante:** Stephen Guerin (guerin)
## Motivation (why a GUID) Stephen: *"i want devops to start having github-like functionality that can search for and keep an index of the current gits in the beads."* The git-and-beads methodology is already ratified in prose across several beads (keep the `.git` **with** the bead; **reference the bead in the deployments**; a `.git` beside a deployed app URI is a **fork**; the `/src` dir one level up from `/sites/` holds external repos like `taos-engine` / `agentscript`). What was missing was a **projection over** that distributed truth: a single index of *which gits exist, where, and of what kind*, and an interactive way to **browse any one of them**. That is this bead. First concrete deliverable per Stephen: select a git (starting with `#image-pose-uxui`) and **see its commit tree and history**.
## Mechanism (what this bead does) Three things, all dependency-free (Node stdlib + `git`, static HTML over WebDAV): 1. **`skills/git-index/scan-gits.mjs`** — walks `sites/` + `src/`, finds every `.git`, **classifies** it (`bead-repo` / `deploy-fork` / `external-src` / `external-mirror`), records HEAD, branches, commit count, root commits, remotes, and (for beads) the slug + `names.json` `upstream` → emits [`artifacts/gits-index.json`](2026-06-18/artifacts/gits-index.json). 2. **`skills/git-index/dump-log.mjs`** + **`build-logs.mjs`** — export each repo's full commit **DAG** (hash, parents, author, date, refs, subject) to a small `artifacts/logs/<logId>.json`. This is the "light projection" answer to `9206f228`'s open-Q #2: precomputed commit-graph JSON, no in-browser `.git`, served over plain WebDAV GET. 3. **[`artifacts/commit-tree.html`](2026-06-18/artifacts/commit-tree.html)** — the github-like viewer. Sidebar lists all repos grouped by kind with live filter; selecting one renders a **railroad commit graph** (lane assignment + bezier edges) beside the commit list (sha / refs / subject / author / date). Defaults to `#image-pose-uxui`. What does **not** go here: it does not move, rewrite, or own any other bead's `.git` (those are the history faces of their own beads). It is strictly a **projection / view** — never a source of truth. Regenerate the data, never hand-edit it.
## Folder Layout ``` 974d57e3-.../ ├── about.md (this) ├── README.md front door ├── names.json mounts (read bindings) ├── uploads/README.md inbound dock ├── skills/git-index/ │ ├── scan-gits.mjs discover + classify all repos -> gits-index.json │ ├── dump-log.mjs export one repo's commit DAG -> logs/<id>.json │ └── build-logs.mjs dump every repo in the index └── 2026-06-18/ ├── notes/00-orientation.md the git-and-beads methodology + the github-like vision ├── notes/01-git-index.md the index: what was found, the four kinds, the counts ├── artifacts/commit-tree.html the viewer ├── artifacts/gits-index.json the index (generated) ├── artifacts/logs/*.json per-repo commit DAGs (generated) └── chats/ verbatim chat log ```
## Mounts (read) - [`64be6d29` `#devops`](https://redfish.acequia.io/guerin/.agents/64be6d29-d133-4ade-9dce-f62701003e37/agent.md) — the git-and-beads **policy charter** (4 defaults: git-in-bead, fork-don't-write-through, PR-over-dock, acequia-git substrate). This bead implements its index/view layer. - [`d9dfa5e4` `#git-and-beads`](https://redfish.acequia.io/guerin/.agents/d9dfa5e4-3c92-4216-bd53-13b520c59a5e/2026-06-11/notes/git-and-beads.md) — the canonical **placement rule** (in-bead vs `src/`) and the bead-as-"history face" framing. - [`ab96c2ea` `#acequia-git`](https://redfish.acequia.io/guerin/.agents/ab96c2ea-c036-4163-bf09-ab228c7252b4/about.md) — the decentralized **git-serving node** (dumb-HTTP/WebDAV history faces, GitHub→acequia primitive map). The eventual backend this viewer's projection would read live. - [`9206f228` `#git-interactive-visualization`](https://redfish.acequia.io/guerin/.agents/9206f228-9d6d-4f94-931f-5d410ef319eb/2026-06-17/notes/00-vision.md) — the **vision** for the app↔beads↔git provenance graph. This bead is its first runnable slice (the per-repo commit DAG view); the cross-bead provenance graph is the next slice. - [`6f5044df` `#bead-orama`](https://redfish.acequia.io/guerin/.agents/6f5044df-cd90-459d-a150-e0250e98039a/2026-06-14/skills/bead-graph/) — prior-art `bead-graph.mjs` (bipartite bead↔file graph) the provenance view generalizes. - [`4c6470f9` `#bead-orchestrator`](https://redfish.acequia.io/guerin/.agents/4c6470f9-b74a-4aba-b436-5e998f469cce/about.md) — the conformance/version **registry** across endpoints; the natural live source for "which beads exist and where their faces live." - [`74c30681` `#image-pose-uxui`](https://redfish.acequia.io/guerin/.agents/74c30681-2b0c-48b2-b2a8-9e21190a4926/about.md) — first repo browsed (its `repo/` = 41-commit branch-per-step DAG, the demo case).
## Session Log - **2026-06-18** — Opened. Surveyed two weeks of git/methodology beads; built `scan-gits` + `dump-log` + `build-logs`; scanned **27 repos** (12 bead-repo / 11 deploy-fork / 2 external-src / 2 external-mirror); shipped `commit-tree.html` and verified it headless against `#image-pose-uxui`'s 41-commit DAG.
## Modus Operandi (how to interact) - `#devops-git` to read; `@devops-git` (PUT into `uploads/`) to message. - **Refresh the index** after any git activity: `node skills/git-index/scan-gits.mjs && node skills/git-index/build-logs.mjs`. - The generated `gits-index.json` and `logs/*.json` are **derived projections** — regenerate, do not edit. - New notes → `2026-06-18/notes/` (or a new dated folder); chats → `chats/`; never write into other beads.
## Capabilities Hosts: a workspace git-discovery + classification scanner, a commit-DAG exporter, and a static commit-tree viewer. Can be cited for: the repo index/registry view, the four-way repo taxonomy, and the "precomputed commit-graph JSON over WebDAV" pattern. Does **not** produce: a live git server (that is `#acequia-git`), the cross-bead provenance graph (next slice, ground in `#git-interactive-visualization`), or any authority over other beads' repos.
## Lifecycle Energized while the bead commons accrues in-bead git and the team wants to browse it. Re-run the scanner to keep current. Apoptosis: folds into `#acequia-git` / `#git-interactive-visualization` if those absorb the index+viewer into a live, registry-fed tool. Sync via `/bead-sync`.
## Limitations - A **view, not a source of truth.** The authoritative location of each repo is the bead's own `.git`; this index is a snapshot, stale the moment a commit lands until re-scanned. - Static/precomputed: no time-travel `?at=<sha>`, no diff, no in-browser `.git` yet (those are open slices). Two corrupt/empty repos (`ecostem`, `ecostem/redfish-core`) have no log. - Scoped to the local workspace origin; does not yet resolve N-replicated faces across acequia peers (that is `#bead-orchestrator` / `#acequia-git` territory).
## References (bead cross-links) - Bead: Devops · [canonical](https://redfish.acequia.io/guerin/.agents/64be6d29-d133-4ade-9dce-f62701003e37/) - Bead: Agentify Bead · [canonical](https://redfish.acequia.io/guerin/.agents/d9dfa5e4-3c92-4216-bd53-13b520c59a5e/) - Bead: Acequia Git · [canonical](https://redfish.acequia.io/guerin/.agents/ab96c2ea-c036-4163-bf09-ab228c7252b4/) - Bead: Git Interactive Visualization · [canonical](https://redfish.acequia.io/guerin/.agents/9206f228-9d6d-4f94-931f-5d410ef319eb/) - Bead: Orama Bead · [canonical](https://redfish.acequia.io/guerin/.agents/6f5044df-cd90-459d-a150-e0250e98039a/) - Bead: Orchestrator · [canonical](https://redfish.acequia.io/guerin/.agents/4c6470f9-b74a-4aba-b436-5e998f469cce/) - Bead: Image Pose Uxui · [canonical](https://redfish.acequia.io/guerin/.agents/74c30681-2b0c-48b2-b2a8-9e21190a4926/)
See all: Beads