A tour of CodeReview

~/GIT/CodeReview · working tree
0/11 viewed
@@ -0,0 +1,3 @@ AppFeature.swift
+// Review a lot of code you did not write.
+// Judge every change. Write the finding where the fix belongs.
+// Without leaving the keyboard.
@@ -4,0 +4,3 @@ the problem
// You review more code than ever.
// Most of it, an agent wrote in seconds.
// Scroll, skim, approve. Nobody actually read it.
@@ -0,0 +9,5 @@ the fix
+// CodeReview hands you one hunk at a time, one keystroke apart.
+// - No scrollbar to skim past, so nothing slips through.
+// - It writes no findings and applies no fixes.
+// The judgment stays yours. The app just makes it fast.
+// - A hundred-file change still means a hundred files read.
@@ -0,0 +1,7 @@ one cursor, three depths
+// A review is one cursor that goes inward and comes back out.
+// l steps in, h steps out, and the depth decides what a key means.
+//
+// file-mode the changed files. Dismiss a generated one whole.
+// hunk-mode the ordinary unit, where most of the reading happens.
+// line-mode one hunk's changed lines, context skipped, for when
+// two changes got tangled into a single hunk.
@@ -30,5 +30,8 @@ every key, one hand
// Same keys at every depth. You pick the grain by moving, not with a tool.
// j / k next and previous. What "next" is depends on
// the depth, and always the obvious thing. Past a file's last hunk,
// j rolls into the next file: one stream, first hunk to last.
+// Space mark whatever you are on as dealt with.
+// i edit the real file, on the line you are reading.
+// t leave a review TODO above the change, marker in place.
// ? every keybinding, from anywhere.
R renamed ReviewCommentFeature.swift → CommentsFeature.swift
@@ -12,6 +12,7 @@ CommentsFeature.swift
func validate(_ token: Token) -> Bool {
+ // TODO(review): this still lets an empty string through
return token.value != nil
}
// - Deliberately distinct from an ordinary TODO, so a review's
// own notes stay findable afterwards.
// - On a pull request, t writes a comment instead.
@@ -20,2 +20,3 @@ DiffFeature.swift
// Found the problem? Don't go hunting for the file.
−// TODO: find the line again by hand
+// o Xcode opens it, on the line you were just reading.
+// Fix it while you still have the context.
@@ -8,5 +8,7 @@ where the marks live
+// On a working tree, a viewed hunk is a staged hunk. The mark goes
+// into git's index, not into a database this app keeps on the side.
// So it survives a quit, a crash, even deleting the app. And
// git add -p in a terminal reads as review progress here.
// Change a line and its mark clears. That judgment was about text
// that no longer exists. Its neighbours stay settled.
+// A review that reaches the last hunk has assembled the commit
+// on the way.
@@ -2,2 +2,3 @@ what the number claims
// The count up in the title bar is files viewed over files changed.
+// A file ticks itself off only once every one of its hunks is marked.
// f hide everything you have already dealt with.
@@ -1,3 +1,1 @@ on purpose
// Some of the best parts are the ones that aren't there.
−// telemetry, analytics, crash reporting. None, to anyone.
−// a network call on a working tree. Not one.
@@ -0,0 +1,3 @@ Installing.md

Try it on your next review

Available on the App Store. Want new builds first? The public beta on TestFlight has no waitlist. Requires macOS 26 or later. Reviewing your own working tree needs no account and no network.

@@ -0,0 +1,10 @@ LGTM.txt
+// read every hunk? that's the whole idea. questions,
+// bugs, or just to say hi: [email protected]
 ________
< LGTM! >
 --------
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||