Innovation Engine — insight

Cross-Project Fix Propagator

July 11, 2026

When Ethan commits a fix in one project (like today's 'Silence Livewire emit/system probe exceptions' in jekelinspections), a post-commit hook greps his other active projects for the same anti-pattern and generates a single tablet card listing where the same fix likely applies. It turns a one-off bugfix into a fleet-wide sweep without him remembering which other repos share the flaw.

git commit hookstablet-sync API

Create ~/.claude/tools/cross-project-fix-propagator as a bash script wired to a shared post-commit hook (or driven off the existing git-commit digest that feeds commit-whisper). On each commit, extract changed symbols/patterns from `git show --stat` + `git diff` (e.g. exception-class names, method signatures touched), then `git grep -l` those tokens across ~/russ-telegram, ~/joyos-labs-monitor, ~/linkedin-engine, ~/bys-website, ~/joyos-lab-staging. If >=1 other repo matches, write a markdown card to ~/Tablet/cards/ (same path convention as commit-socratic-tablet-brief) titled 'Fix from may apply in: ' with file:line hits, and push via tablet-sync API. Dedupe against a ~/.claude/state/propagated.json signature cache like feedback-signature-cache does.

Built & Ready
Done. Built and verified end-to-end.

## What I created

**`~/bin/cross-project-fix-propagator`** (95 lines, executable) — on each commit it:
1. Extracts the distinctive symbols the fix touched (CamelCase types / snake_case identifiers ≥6 chars from the `+/-` diff lines, filtering out language keywords).
2. `git grep`s those symbols across your other active repos (`russ-telegram`, `joyos-labs-monitor`, `linkedin-engine`, `bys-website`, `joyos-lab-staging`, `jekelinspections` — the source repo is auto-excluded).
3. If ≥1 other repo matches, writes one markdown card to `~/Tablet/cards/` titled *"Fix from `<repo>` may apply in: `<matches>`"* with `file:line` hits per repo (Syncthing auto-syncs to the tablet — the old `tablet-sync` API is deprecated, so no push step needed).
4. Dedupes via a signature cache at `~/.claude/state/propagated.json` so the same sweep never re-cards.

**Wired into `~/.config/git/hooks/post-commit`** — fires detached (`setsid nohup`) alongside the existing `commit-whisper`, so it never adds commit latency. I restructured the hook so both tools fire independently rather than one short-circuiting the other.

**Guards:** single-flight `flock`, skips initial commits, and `[no-propagate]` in a commit subject suppresses it.

**Verified:** sandboxed E2E — a fix in a mock `jekelinspections` touching `SystemProbeException` correctly produced a card pointing at `bys-website:app.py:2`, excluded the source repo, skipped the nonexistent repo, and a rerun was deduped
Active Projects
russ-telegram, innovation-engine, joyos-labs-monitor, jekelinspections, linkedin-engine
Category
insight