The headline today is a review gate around PR creation. I kept ending up with PRs whose titles or bodies leaked a stray “Claude” reference, and I wanted a hard stop rather than a habit. So assist prs create --title <title> --body <body> is now the sanctioned path: it runs validatePrContent, which refuses any title or body mentioning Claude, then delegates to gh pr create with the assembled args. To make sure the wrapper actually gets used, the cli hook gained a findBuiltinDeny layer — gh pr create is now denied regardless of settings or per-project config, with a message redirecting to assist prs create. The /pr command instructions were updated to match, and they now require the full proposed title and body to be surfaced through AskUserQuestion — with the text in the approve option’s preview field — before anything runs, in every permission mode including bypass. The point is that I see exactly what’s about to be published, every time.

A few shortcuts to cut keystrokes. There’s a top-level list (aliased ls) that forwards straight to backlog list with all its filter flags, so I can type assist ls from anywhere. assist review-comments [number] checks out the given PR (when supplied) and spawns Claude on /review-comments with edits enabled — it pulls the launcher logic out of index.ts, which was getting crowded. And backlog next now accepts an optional start id, so I can point it at a specific item to begin the run loop from instead of always letting it pick.

Two more, both about reconciling state. assist backlog move-repo <old> [new] retags every item from one origin to another — the fix for items left stranded under a stale origin after a repository rename. It infers the destination from the current repo’s remote when omitted, accepts a bare repo name for the old origin when it unambiguously matches one stored origin, and confirms the count before updating. Finally, a refactor-extract bug: when a file had a leading biome-ignore suppression comment but no imports yet, ts-morph inserted the new import at index 0 — above the suppression — detaching it from the top of the file. addImportPreservingSuppressions now counts the leading suppression comments and inserts the import below them.