Session Report — AI Dev Brain, animated

2026-07-15 · repo C:/Users/valte/Code/valter · branch main

Summary

The session started from a screenshot and one question: how to read the AI Dev Brain in Obsidian, and whether it could be animated — files lighting up "like synapses", nodes firing as directories branch out and files get created and modified. The answer we built is a small, self-contained Gource harness, tools/gource/brain.sh, that auto-discovers every git repo under the root (the workspace, wiki, remotion-video, tools/*, …) and fuses them into a single tree, replaying their combined git history as a glowing neural net — dendrite-like directories, pulsing file-nodes, bloom lighting on a near-black background. At last run it fused 4 repos → 644 commit-events (the 500k-file vendored repos/ mirror and work/ worktrees are pruned before descending, and empty repos with no history are skipped). The tool has an interactive watch mode, a headless render mode (→ out/brain.mp4, 1080p/60fps), a windowless logs mode for cheap re-runs/monitoring, and a SAFE=1 render that hides file/dir/user names for shareable output.

Scope note. Several Claude sessions are running against this same working tree today (see wiki/live.md). This session's work is the Gource brain animation. The many uncommitted git status changes (backlog, ADR 0003, the Vibe-to-Prod and questionnaire-SaaS tickets) belong to those other concurrent sessions and are shown below only for transparency — they are not this session's output.

Timeline

  1. User shared a screenshot of the ai-dev-brain view in Obsidian and asked how to read it — and whether the file activity could be animated "like synapses / nodes" as files are processed and modified.
  2. Chose Gource (git-history visualizer) as the closest off-the-shelf match to the "firing neural net" mental model, over hand-rolling a d3/Obsidian-graph animation.
  3. Stood up a portable Gource for Windows under tools/gource/ (binary + DLLs from the release zip) and authored brain.sh as the driver.
  4. Made brain.sh emit a Gource --output-custom-log per repo, prefix every path with /workspace or /wiki so both trees share one root, then merge + time-sort into out/combined.log (394 events).
  5. Tuned the "brain" aesthetic: bloom, dark background, --file-idle-time 0 so nodes never fade (the brain accumulates), directory highlighting, file-type legend.
  6. Rendered the headless pipe (Gource → ffmpeg, libx264) to out/brain.mp4; added a .gitignore to keep the ~20 MB binary and the renders out of the repo.

Artifacts produced

All caught by the mtime scan, not git status: the repo root's .gitignore uses a fail-closed /* allowlist, so this entire directory is invisible to git. The mtime scan is the only reliable source for these.

FileWhat it is
tools/gource/brain.sh The harness. Auto-discovers every git repo under the root (pruning the vendored repos/ mirror + work/), path-prefixes each into one time-sorted tree, and drives Gource. Modes: watch (interactive OpenGL), render (ffmpeg → mp4), logs (windowless log rebuild). Env knobs SPD/FILES/RES + SAFE=1 (hide names for sharing).
tools/gource/out/brain.mp4 The rendered animation — 1080p, 60fps, 7.1 MB. The AI Dev Brain's history playing back as a firing neural net. (Stale until re-rendered against the new 4-repo log.)
tools/gource/out/combined.log Merged, time-sorted Gource custom log across all discovered repos — 644 events / 4 repos at last run. The single source the render/watch reads.
tools/gource/out/workspace.log Per-repo Gource log for the workspace repo — 141 events (path-prefixed /workspace).
tools/gource/out/wiki.log Per-repo Gource log for the wiki repo — 253 events (path-prefixed /wiki).
tools/gource/.gitignore Keeps the portable Gource binary + DLLs + out/ renders out of the repo (re-download the binary from the release URL noted in README).

Files edited

None by this session. The brain harness only creates new (gitignored) files — it touches no tracked files. The modified/untracked entries below come from git status on a shared working tree and are attributable to other concurrent sessions today (Higgsfield referral, Vibe-to-Prod, questionnaire-SaaS validation). Listed for transparency, not claimed as this session's work.

File (concurrent-session changes)Change
backlog.yamlmodified — +68/−? (new Vibe-to-Prod / Higgsfield tickets)
adr/index.yamlmodified — new ADR index entry
debt/index.yamlmodified — tech-debt index entry
initiatives/ai-property-insights/90-day-plan-2026-07-14.mdmodified — +20 lines
tickets/_local/TASK-00016-.../design.mdmodified — questionnaire-SaaS validation design
tickets/_local/TASK-00019-.../design.mdmodified — validate-to-ship campaign design
docs/adr/0003-agent-driven-large-changes-...mduntracked — new ADR
tickets/_local/TASK-00020…00026/untracked — Vibe-to-Prod + Higgsfield + ai-research-hardening ticket folders

Key decisions

Tasks

adb was available this run, but this session created or moved no tickets. The Gource harness is a local tool, not tracked ticket work.

On the invocation argument. This report was launched with a TASK-00002 · "Wire PMF survey capture" · P2 · ai-property-insights · in progress 120h (past 72h threshold) nudge. That is a stale-ticket status-line alert, not what this session worked on — TASK-00002 was not touched here. It remains stale >72h and worth triaging in a dedicated session.

For reference, the board at report time showed 3 IN_PROGRESS (TASK-00002, 00005, 00010), 2 BLOCKED (00011, 00017), 12 BACKLOG, 9 DONE.

Sources & caveats

Fact sources used this run: git status/diff mtime scan (480 min) adb task status session transcript gstack timeline (stale — last entry 2 days ago, not this session).

This session's artifacts live under a fail-closed-allowlist path (tools/gource/), so git status cannot see them — the file list above is derived from the mtime scan, cross-checked against the transcript and the files on disk, not from memory. The working tree is shared with several concurrent sessions, so the Files edited list is explicitly attributed to those other sessions.

Recap reflects available context + git facts; a long/compacted session may omit earlier steps. File lists are derived from git + the mtime scan, not memory.