Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
e700ded
fix: stop Story Bible drawer from squishing Series Arc text and themes
atomantic May 27, 2026
19b48a7
docs: archive design plans in docs/plans + add archival convention
atomantic May 27, 2026
981437a
feat: Unified Story Builder (seed-mode) + series reader map
atomantic May 27, 2026
e1c0fd0
fix: address xhigh code-review findings on Story Builder + reader map
atomantic May 27, 2026
038c798
feat: Story Builder import intake (reverse-engineer a finished work)
atomantic May 27, 2026
e0180cb
feat: Story Builder AI provider/model picker drives every operation
atomantic May 27, 2026
88e7d11
feat: Story Builder 'Lock & continue' auto-advances to the next step
atomantic May 27, 2026
922b33a
feat: Story Builder generate button shows 'Re-generate' once content …
atomantic May 27, 2026
90af9fa
feat: Story Builder characters step generates styled preview images
atomantic May 27, 2026
7212d23
feat: base style-probe image on a universe (Universe Builder + Story …
atomantic May 27, 2026
47a56c9
fix: address xhigh code-review findings on Story Builder image renders
atomantic May 28, 2026
c085a11
fix: address local-review findings on Story Builder (data-loss class)
atomantic May 28, 2026
c080ec2
address review (codex): honor aesthetic lock + idea-step output in st…
atomantic May 28, 2026
301defe
Merge pull request #514 from atomantic/feat/unified-story-builder
atomantic May 28, 2026
f0cc052
feat(local-llm): inline "Upgrade Ollama & Retry" prompt on 412 pull e…
atomantic May 28, 2026
a739459
fix(local-llm): pick the right Ollama upgrade path per install source
atomantic May 28, 2026
dac25fe
fix(local-llm): auto-replace Ollama.app on 412, prominent upgrade banner
atomantic May 28, 2026
0f9f7f7
Polish settings and data UI
atomantic May 28, 2026
89ad018
fix: allow Tailscale MagicDNS hosts in Vite dev server
atomantic May 28, 2026
42e5e38
fix(universe): drop styleNotes from style-probe prompt, add regenerat…
atomantic May 28, 2026
a92c2bd
feat: add keyword search to Brain Links tab
atomantic May 28, 2026
3807aa8
feat: editable link URL + optional title/tags on add, fix Other Links…
atomantic May 28, 2026
df500e9
fix local Python setup for video gen on macOS Apple Silicon
atomantic May 28, 2026
e076590
address review (codex): debounce inline Python path input, gate arch …
atomantic May 28, 2026
13c6605
address review (gemini): triage out-of-scope findings to PLAN
atomantic May 28, 2026
c9e68ce
Merge pull request #515 from atomantic/fix-local-python-setup
atomantic May 28, 2026
4c15b8b
feat: link buckets (bookmark groups) on Brain Links tab
atomantic May 28, 2026
b88e4a5
add registry entries for big diffusion models (FLUX.2 bf16, HiDream, …
atomantic May 28, 2026
d6cd714
add Memory Management panel: unload Ollama / stop Whisper / unload Ko…
atomantic May 28, 2026
1269305
wire HiDream + Qwen runners and FLUX.2 native bf16 path
atomantic May 28, 2026
e134c7f
wire Wan 2.2 + HunyuanVideo MLX runtime (experimental) + changelog
atomantic May 28, 2026
8280ee6
inline HF model download badge on image + video gen forms
atomantic May 28, 2026
19d579c
address review (self): close listener before cache-inspect await; ded…
atomantic May 28, 2026
fd60d7a
fix(brain): make links draggable into buckets
atomantic May 28, 2026
bba51a4
address review (codex): kill before spawn, toast terminal SSE error, …
atomantic May 28, 2026
a953231
address review (gemini): line-buffer python child output, parallelize…
atomantic May 28, 2026
c8a1c97
address review (copilot): tighten isHfRepoId for Windows paths + 3 do…
atomantic May 28, 2026
8b0e098
Merge pull request #517 from atomantic/feat/inline-hf-model-download-…
atomantic May 28, 2026
eb5bf3d
address review (self): broken Ollama unload, HiDream/Qwen route gate,…
atomantic May 28, 2026
dae16bc
address review (codex): mountedRef StrictMode reset, exempt BYOV runt…
atomantic May 28, 2026
019865c
address review (gemini): hoist BYOV_VIDEO_RUNTIMES to module scope as…
atomantic May 28, 2026
554f739
address review (copilot): freeAll snapshot stale-closure + /unload id…
atomantic May 28, 2026
437d57c
Merge remote-tracking branch 'origin/main' into bigger-local-models
atomantic May 28, 2026
bd04942
Merge pull request #516 from atomantic/bigger-local-models
atomantic May 28, 2026
86d0f13
feat: extend Qwen/HiDream hi-res presets, step counter under preview,…
atomantic May 29, 2026
456f058
fix: scheduled reference-watch default must be writable to update PLA…
atomantic May 29, 2026
bb074f3
add in-app BYOV runtime installer + rewrite hunyuan runner to honor U…
atomantic May 29, 2026
3669e00
address review (claude): process-group kill on install cancel, atomic…
atomantic May 29, 2026
ef49861
pin HunyuanVideo to fp32 + mark deprecated; fix invisible progress on…
atomantic May 29, 2026
9df0539
address review (codex): scope flux2 to BYOV-only signal; exempt BYOV …
atomantic May 29, 2026
0df0eb8
address review (copilot): runtime-status 400 path, enqueue + probe-wi…
atomantic May 29, 2026
c27bb53
Merge pull request #518 from atomantic/feat/byov-install-banner-and-h…
atomantic May 29, 2026
80aa501
fix voice auto-install chain — use canonical lmstudio-community GGUF …
atomantic May 29, 2026
8fb5909
address review (codex): resolve effective voice provider before skipp…
atomantic May 29, 2026
626dfe2
perf([ref-watch-phosphene-pin-mlx-lazy-eval-cadence-envs]): pin MLX l…
atomantic May 29, 2026
03f13f0
fix([triage-gemini-pr515-out-of-scope-findings]): atomic writes for s…
atomantic May 29, 2026
de81578
Merge pull request #520 from atomantic/claim/ref-watch-phosphene-pin-…
atomantic May 29, 2026
8ff7580
Merge pull request #519 from atomantic/worktree-fix-voice-model-insta…
atomantic May 29, 2026
e4114e0
claim: gate /simplify + external review on agent judgment, not forced…
atomantic May 29, 2026
3c92537
test([test-route-suites-peer-fanout-mock-noise]): silence ~128 fake p…
atomantic May 29, 2026
4000e63
Merge pull request #521 from atomantic/claim/triage-gemini-pr515-out-…
atomantic May 29, 2026
8585cec
address review (gemini): comment why both mocks are needed despite gl…
atomantic May 29, 2026
bdd1090
Merge pull request #522 from atomantic/claim/test-route-suites-peer-f…
atomantic May 29, 2026
bcc86d1
fix: resume video-gen progress on page reload + propagate STATUS lines
atomantic May 29, 2026
b61f6dc
address review (codex): match /active queued selection to /cancel order
atomantic May 29, 2026
36c649f
address review (gemini): avoid 0% progress flash on resume
atomantic May 29, 2026
193fdf8
address review (copilot): whitelist /active params, guard resume agai…
atomantic May 29, 2026
4d63b3d
chore: defer keyframes restoration on video resume to PLAN.md
atomantic May 29, 2026
3ec39df
feat([flux2-multi-reference-python-runner]): wire diffusers KV multi-…
atomantic May 29, 2026
32bc9c6
docs([flux2-multi-reference-python-runner]): remove from PLAN.md and …
atomantic May 29, 2026
7c27502
fix: detect missing Python modules in BYOV video runtimes + match pre…
atomantic May 29, 2026
1f484c2
Merge pull request #523 from atomantic/worktree-fix-video-progress-re…
atomantic May 29, 2026
a26ef64
fix([flux2-multi-reference-python-runner]): address claude review
atomantic May 29, 2026
c9d9fd7
fix([flux2-multi-reference-python-runner]): address codex review
atomantic May 29, 2026
7b03a0e
fix: filter Video Gen model dropdown to ltx2 runtime in a2v mode + pi…
atomantic May 29, 2026
9e14011
address review (claude): use typeof guard for systemMemoryGb budget +…
atomantic May 29, 2026
5514bc1
fix([flux2-multi-reference-python-runner]): address gemini review
atomantic May 29, 2026
9a1ff91
Merge pull request #524 from atomantic/claim/flux2-multi-reference-py…
atomantic May 29, 2026
d282c21
Merge pull request #525 from atomantic/a2v-dropdown-filter-by-mode
atomantic May 29, 2026
5ab315a
extract `~/`-expanding `expandHome` to fileUtils + add HF download `-…
atomantic May 29, 2026
def036b
address review (claude): finish the expandHome consolidation, add dir…
atomantic May 29, 2026
f8efbce
log out-of-scope ltx2 FFLF resize-gate finding from gemini review
atomantic May 29, 2026
cdc18d7
address review (copilot): force real copies under `--local-dir` (no s…
atomantic May 29, 2026
b516f35
Merge pull request #526 from atomantic/extract-expandhome-helper
atomantic May 29, 2026
8a18d78
feat: honor per-reference strengths on FLUX.2 multi-reference renders
atomantic May 29, 2026
b2fda5f
chore: release v2.12.0
atomantic May 29, 2026
dd55b0b
address review (claude): migration for stale reference-watch readOnly…
atomantic May 29, 2026
3e44784
address review (codex): paginate brain links to 5000 cap, include HiD…
atomantic May 29, 2026
93377a1
address review (gemini): atomicWrite in new migrations (043-046), cla…
atomantic May 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 0 additions & 15 deletions .changelog/NEXT.md

This file was deleted.

120 changes: 120 additions & 0 deletions .changelog/v2.12.0.md

Large diffs are not rendered by default.

36 changes: 30 additions & 6 deletions .claude/commands/claim.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
description: Claim the next unclaimed PLAN.md item by its [slug] ID, do the work in an isolated worktree, ship a PR, and clean up.
argument-hint: "[<slug>] [--review-with=<copilot|codex|gemini|claude>]"
argument-hint: "[<slug>] [--review-with=<copilot|codex|gemini|claude>] [--no-review]"
---

# Claim — Pick the next PLAN.md item and ship it
Expand All @@ -12,7 +12,8 @@ Claim the next unclaimed `- [ ]` item from PLAN.md via the slug-ID system, work
**Arguments.** Parse `$ARGUMENTS` by splitting on whitespace — tokens starting with `--` are flags, the first remaining token is the slug. Either order works (`auth-bug --review-with=codex` and `--review-with=codex auth-bug` are equivalent).

- **`<slug>`** — claim THAT specific item instead of auto-picking. Useful for cherry-picking out-of-order work. The slug must already exist in PLAN.md as a `- [ ]` line; this command never assigns new IDs (that's `/do:replan`'s job).
- **`--review-with=<copilot|codex|gemini|claude>`** — pick which reviewer runs the post-PR review loop in Phase 6. Default: `copilot` (current behavior — `/do:pr` drives the GitHub Copilot review-and-fix loop). `codex`/`gemini`/`claude` skip the Copilot loop and run an iterative CLI-based review against the PR diff instead. Record the parsed value as `REVIEWER` and reference it in Phase 6.
- **`--review-with=<copilot|codex|gemini|claude>`** — pick which reviewer runs the post-PR review loop in Phase 6. **No default — when omitted, the agent decides in Phase 6 whether the diff warrants an external review at all** (a 3-line value swap doesn't; a multi-file feature change does). Pass this flag explicitly to force a review regardless of the agent's judgment. `copilot` drives the GitHub Copilot review-and-fix loop via `/do:pr`; `codex`/`gemini`/`claude` skip Copilot and run an iterative CLI-based review against the PR diff. Record the parsed value as `REVIEWER` (or `auto` when omitted) and reference it in Phase 6.
- **`--no-review`** — explicit opt-out from BOTH `/simplify` and the external review pass. Use when you want the agent to just ship without deliberation (e.g. a doc-only revert). Mutually exclusive with `--review-with`.

## Phase 1: Pick

Expand Down Expand Up @@ -121,13 +122,36 @@ git commit -m "docs([<slug>]): remove from PLAN.md and log to changelog"

## Phase 6: Review and ship

1. **`/simplify`** — run the three-agent reuse/quality/efficiency review against your own diff and fix findings in the same diff (per the `feedback_simplify_after_significant_work` memory). Do this BEFORE opening the PR, not retroactively.
**Decide the review intensity before doing any review work.** Three modes; pick exactly one:

2. **Open the PR and run the review loop.** Branch on `REVIEWER` (parsed from `--review-with`, default `copilot`):
| Mode | Trigger | What runs |
|---|---|---|
| **A. Forced** | `--review-with=<reviewer>` was passed | `/simplify` + the named reviewer's loop (6.2a or 6.2b) — no judgment, the user opted in |
| **B. Forced skip** | `--no-review` was passed | Neither `/simplify` nor an external reviewer runs; only the local-review gate inside `/do:pr` (or a manual `/do:review` if opening the PR by hand) — useful for trivial reverts, doc-only changes |
| **C. Judgment** | Neither flag passed (the common case) | The agent judges whether the diff merits each layer. **`/simplify` and the external review pass are independent decisions** — answer each on its own merits |

### 6.2a — `REVIEWER=copilot` (default)
**Heuristic for mode C — when to skip:**

Run **`/do:pr`**. It runs `/do:review` as a local-review gate AND drives the Copilot review-and-fix loop. Do NOT run `/do:review` separately first — `/do:pr` does it. Trust the loop. When `/do:pr` reports the PR is clean (zero unresolved Copilot comments, or you've judged the remaining findings to be nitpicks not worth another round), the PR is ready to merge.
| Layer | Skip when | Run when |
|---|---|---|
| **`/simplify`** | Diff is a literal value swap (e.g. `"0"` → `"1"`), a single-line typo/comment fix, a PLAN-only edit, or any change with no new code paths / abstractions / helpers — there's nothing for the reuse/quality/efficiency agents to find | New code (functions, classes, components), new abstractions, refactors that move logic between files, multi-file feature work, anything where reuse opportunities or efficiency concerns plausibly exist |
| **External reviewer** | Same as above PLUS the local-review gate (Tier 1+4 checklist in Phase 6.2) is clean AND the change is mechanically obvious (e.g. matches a published reference or follows an in-repo pattern verbatim) | New logic, security-adjacent code, schema/contract changes, route/handler additions, cross-file changes, anything where a second perspective on the *design* (not just the implementation) is worth a round-trip |

When in mode C, **state the call before acting**: "Diff is N lines across M files, all in <area>; skipping `/simplify` (no new code paths) and external review (matches published reference)." or "Diff adds a new schema + route handler; running `/simplify` and requesting copilot review." This makes the judgment visible to the user so they can override.

When in mode C with `/simplify` deferred but external review wanted, run `/simplify` first anyway — it's the cheaper of the two and may surface fixes that change what the reviewer sees.

1. **`/simplify`** — run iff mode A, or mode C and the heuristic says yes. Fix findings in the same diff (per the `feedback_simplify_after_significant_work` memory). Do this BEFORE opening the PR, not retroactively.

2. **Open the PR and run the review loop.** Pick the branch by `REVIEWER` (the parsed value from `--review-with`, or `auto` when not passed):

### 6.2a — `REVIEWER=copilot` OR (`REVIEWER=auto` AND heuristic says review)

Run **`/do:pr --review-with=copilot`**. It runs `/do:review` as a local-review gate AND drives the Copilot review-and-fix loop. Do NOT run `/do:review` separately first — `/do:pr` does it. Trust the loop. When `/do:pr` reports the PR is clean (zero unresolved Copilot comments, or you've judged the remaining findings to be nitpicks not worth another round), the PR is ready to merge.

### 6.2c — `REVIEWER=auto` AND heuristic says skip, OR `--no-review`

Skip the external review pass. Still run the local-review gate yourself by invoking **`/do:pr`** with NO `--review-with` flag — that runs the Tier 1+4 checklist against the diff (the spec calls this gate "REQUIRED" and it always fires) without requesting Copilot or any CLI reviewer. State the skip rationale ("3-line value swap, matches phosphene's published matrix, no external review") in the merge commit body so the audit trail is honest.

### 6.2b — `REVIEWER` is `codex`, `gemini`, or `claude`

Expand Down
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,5 +269,6 @@ port-error: #ef4444
- After each feature or bug fix, run `/simplify` and then commit and push code
- **Capture deferred work before finishing.** If during a task you identify a refactor, cleanup, abstraction, or enhancement that you decide *not* to do (out of scope, risk, time), append it to `PLAN.md` as a `- [ ]` item under the most relevant section (or a new sub-heading) with enough specificity that it can be picked up cold — file paths, line numbers, why it was skipped. Examples: code-review findings rated "skip for this PR," `/simplify` items deferred for scope, "we should also do X but later." Don't end a session with these living only in chat — they evaporate.
- If we have created enough commits to wrap up a feature or issue to warrant a production release, pull the latest main and release branches and then run `/do:release` from main
- **Archive approved design plans.** When a plan is approved out of plan mode, copy the finalized plan from `~/.claude/plans/` to `./docs/plans/YYYY-MM-DD-<slug>.md` (date of approval) as a design record before implementing. See `docs/plans/README.md`.

See `.changelog/README.md` for detailed format and best practices.
Loading
Loading