A personal, local daemon that removes the triage-and-wait loop from PR reviews: by the time the reviewer looks, the review is already prepared.
Components
1. Review bundle (export/import) — the portable, restart-surviving form of a prepared review: threads (with replies and status) and walkthrough tours, as versioned JSON pinned to the PR's base/head SHA. diffity agent export-bundle from a session, diffity agent import-bundle into one (refusing a head mismatch, since anchors are working-tree lines). Also the future path to sharing prepared reviews (e.g. a GitHub Actions artifact any diffity user could import).
2. Watcher/preparer (diffity inbox) — polls gh search prs --review-requested=@me (configurable interval, default 5 min), tracks each PR in SQLite, and reacts to transitions:
- new interesting PR → prepare: isolated worktree from the base clone, agent runs the review skill producing local threads + a tour, bundle saved
- head moved → mark stale, re-prepare
- closed/merged → tear down worktree/instance, keep the bundle
- switched to draft → hide, keep state
Objective skips (draft, own PR, bot author) happen in code; subjective filtering ("skip payments-focused PRs") is free-text config injected into the prepare agent's prompt, which can answer SKIP with a reason instead of reviewing. The prepare command itself is a config template, so the agent runtime is not a diffity dependency.
3. Inbox page — a plain page on a fixed port for a pinned tab: what needs attention (prepared, smallest first), what's preparing, what's stale, what was skipped and why. One click ensures the diffity instance for that PR is running, opens it in a new tab, and parks a live agent on it to answer questions.
Nothing is ever posted to the forge by any of this — prepared reviews are local drafts the reviewer curates and submits themselves.
A personal, local daemon that removes the triage-and-wait loop from PR reviews: by the time the reviewer looks, the review is already prepared.
Components
1. Review bundle (export/import) — the portable, restart-surviving form of a prepared review: threads (with replies and status) and walkthrough tours, as versioned JSON pinned to the PR's base/head SHA.
diffity agent export-bundlefrom a session,diffity agent import-bundleinto one (refusing a head mismatch, since anchors are working-tree lines). Also the future path to sharing prepared reviews (e.g. a GitHub Actions artifact any diffity user could import).2. Watcher/preparer (
diffity inbox) — pollsgh search prs --review-requested=@me(configurable interval, default 5 min), tracks each PR in SQLite, and reacts to transitions:Objective skips (draft, own PR, bot author) happen in code; subjective filtering ("skip payments-focused PRs") is free-text config injected into the prepare agent's prompt, which can answer SKIP with a reason instead of reviewing. The prepare command itself is a config template, so the agent runtime is not a diffity dependency.
3. Inbox page — a plain page on a fixed port for a pinned tab: what needs attention (prepared, smallest first), what's preparing, what's stale, what was skipped and why. One click ensures the diffity instance for that PR is running, opens it in a new tab, and parks a live agent on it to answer questions.
Nothing is ever posted to the forge by any of this — prepared reviews are local drafts the reviewer curates and submits themselves.