Fleet Series 07 — soft-serve-with-sprinkles: a Git Forge That Speaks Agent
Working notes for a planned episode — an outline, not an article. Details will shift when it gets scripted. Series index: Building the Fleet.
Deep dive on the self-hosted forge: Soft Serve (Charm's SSH-first git server) forked into "sprinkles" — extended with a web UI, git-bug awareness, and rendering for everything the pipeline writes into git.
The hook
GitHub's API is a moat: every automation you build against it is a tenant, not an owner. The fleet's answer is a forge where the git repo itself is the API — issues are git-bug objects, reviews are git-appraise notes, provenance is refs and notes — and the forge is just a viewer with SSH access.
What the viewer walks away with
- The base: Soft Serve — SSH-first, TUI-native, push-to-create, refreshingly small
- What sprinkles adds: web UI (dark mode, compare pages, releases, raw/archive endpoints), TUI upgrades (in-repo grep, stats, activity feed, clone-URL keybinds), and git-bug awareness
- The design rule: forge-parity features go in only when they read state from git itself — the forge renders, it doesn't own
- No-PR-API automation: the fleet's dependency bumper is a full Dependabot equivalent that never touches a PR API — branches, git-native review notes, and an auto-merge gate do the whole dance
- The pipeline connection: sprinkles renders the provenance objects from episode 06, so the fleet's work is browsable where the code lives
Beats
- Open in the TUI over SSH: browse, grep, review — no browser yet
- Then the web UI: the same repo, now with the pipeline's provenance story rendered inline
- The Dependabot-without-GitHub segment: watch the dependency bumper open, review, gate, and land a bump against sprinkles
- Fork maintenance as dogfood: keeping the fork synced with upstream is itself pipeline work
- Positioning: not a GitHub competitor — a personal/fleet forge for people who want the repo to be the source of truth
Demo ideas
- Full loop: worker lands a leaf → provenance notes written → sprinkles web UI shows verdicts on the commit → git-bug task auto-closes
- A dependency-bump run end to end against a real repo on the self-hosted forge
Open questions
- Does upstream Soft Serve attribution/relationship need an explicit segment? (It's a fork with a sense of humor — worth a beat)
- Episode boundary with 06: this one is "the viewer", 06 is "the data" — keep it that way