)]}'
{
  "commit": "f4047bbd0440a5cec265ef6805f97d18ca3b255e",
  "tree": "e8d00718fe1363d3826156bc5ce61fad1c25c582",
  "parents": [
    "e750ec9fb4821e241d6f0fbdfa1aeb031d025168"
  ],
  "author": {
    "name": "Josh Bleecher Snyder",
    "email": "josharian@gmail.com",
    "time": "Mon May 05 23:02:56 2025 +0000"
  },
  "committer": {
    "name": "Josh Bleecher Snyder",
    "email": "josharian@gmail.com",
    "time": "Mon May 05 18:20:24 2025 -0700"
  },
  "message": "claudetool/codereview: new package extracted from claudetool\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\n",
  "tree_diff": [
    {
      "type": "rename",
      "old_id": "2a9f9ea6156c14b72bdc09c53ecb33b77fa85a78",
      "old_mode": 33188,
      "old_path": "claudetool/codereview.go",
      "new_id": "bf118eeffa3282401061735dfc7f2ac0fbe912a5",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/codereview.go",
      "score": 98
    },
    {
      "type": "rename",
      "old_id": "e189584cdfdc2c411eb99a3926ebe06ad5023210",
      "old_mode": 33188,
      "old_path": "claudetool/codereview_test.go",
      "new_id": "29e05ec214946485b44ca512f472e175849b3f26",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/codereview_test.go",
      "score": 99
    },
    {
      "type": "rename",
      "old_id": "1d7ff6e7978fcc27ca294f2a02945f88e470e57b",
      "old_mode": 33188,
      "old_path": "claudetool/differential.go",
      "new_id": "6aa8dfe7dc600d57b653dc60a701190a034b867a",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/differential.go",
      "score": 99
    },
    {
      "type": "rename",
      "old_id": "920fc9fa00a5c78fa6afa7caaf23ec8196b672a3",
      "old_mode": 33188,
      "old_path": "claudetool/llm_codereview_prompt.txt",
      "new_id": "920fc9fa00a5c78fa6afa7caaf23ec8196b672a3",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/llm_codereview_prompt.txt",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "09d41b9b83c5d1f512d950e831dd003b797a2f3d",
      "old_mode": 33188,
      "old_path": "claudetool/llm_review.go",
      "new_id": "541ee5298778f955e54c89a108bda0002147e62c",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/llm_review.go",
      "score": 98
    },
    {
      "type": "rename",
      "old_id": "dba6df26888e3fedfbe5b1ce97f5fc6a42c92770",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/add_skipped_test.txtar",
      "new_id": "dba6df26888e3fedfbe5b1ce97f5fc6a42c92770",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/add_skipped_test.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "c32ebe9503ca6e7c2ee1e3e771d31d4c466421ee",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/basic_gofmt.txtar",
      "new_id": "c32ebe9503ca6e7c2ee1e3e771d31d4c466421ee",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/basic_gofmt.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "6b6a1bbc5772a1f49786ace664c9548f2a5ebd00",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/empty_testdir_add_file.txtar",
      "new_id": "6b6a1bbc5772a1f49786ace664c9548f2a5ebd00",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/empty_testdir_add_file.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "eea1b590b4817e498b08b73f2b3f8e37b4dda3a4",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/failing_to_failing.txtar",
      "new_id": "eea1b590b4817e498b08b73f2b3f8e37b4dda3a4",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/failing_to_failing.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "613d716054456b1d4f6024b08407d16bc496b5c0",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/fmt_hierarchy.txtar",
      "new_id": "613d716054456b1d4f6024b08407d16bc496b5c0",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/fmt_hierarchy.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "d1de43bc9c695fbb3ae4fc65732c6233f9017108",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/gopls_issue_unchanged.txtar",
      "new_id": "d1de43bc9c695fbb3ae4fc65732c6233f9017108",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/gopls_issue_unchanged.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "c0250ac8f40e250bc1cb8c229e473b436f2c03af",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/gopls_issues.txtar",
      "new_id": "c0250ac8f40e250bc1cb8c229e473b436f2c03af",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/gopls_issues.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "c7eeb37eaeb67fe06f71803f5ee8e1128a51d3f7",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/gopls_line_number_changed.txtar",
      "new_id": "c7eeb37eaeb67fe06f71803f5ee8e1128a51d3f7",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/gopls_line_number_changed.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "594ea93a471c68926793edc67488b17ffa754b3a",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/gopls_new_issue_with_existing.txtar",
      "new_id": "594ea93a471c68926793edc67488b17ffa754b3a",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/gopls_new_issue_with_existing.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "17f5168c490fa51437112c379cf0332ed766ccf9",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/mark_test_skipped.txtar",
      "new_id": "17f5168c490fa51437112c379cf0332ed766ccf9",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/mark_test_skipped.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "5c741cee556c256cb7f0a723133a72bddb21049f",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/multi_commit_review.txtar",
      "new_id": "5c741cee556c256cb7f0a723133a72bddb21049f",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/multi_commit_review.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "0024a489ef4779a057aa1979db251e635bd92216",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/multiple_format_issues.txtar",
      "new_id": "0024a489ef4779a057aa1979db251e635bd92216",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/multiple_format_issues.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "7a9166d81587a017a5c6ce361091e89805e1f623",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/new_test_build_error.txtar",
      "new_id": "7a9166d81587a017a5c6ce361091e89805e1f623",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/new_test_build_error.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "aab3f57a12c80bfe894f68a3d10b87e2a07c2ea0",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/no_fmt_autogenerated.txtar",
      "new_id": "aab3f57a12c80bfe894f68a3d10b87e2a07c2ea0",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/no_fmt_autogenerated.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "ceeb2a581d145a6ae3ffd3c1a62820cea3c9281f",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/no_tests.txtar",
      "new_id": "ceeb2a581d145a6ae3ffd3c1a62820cea3c9281f",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/no_tests.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "b15c1791c2b65f06ff063235187952ddc741d063",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/no_tests_to_failing_tests.txtar",
      "new_id": "b15c1791c2b65f06ff063235187952ddc741d063",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/no_tests_to_failing_tests.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "255f26d2ad004f3c25b6a17fa1a34888b471ad08",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/passing_to_build_error.txtar",
      "new_id": "255f26d2ad004f3c25b6a17fa1a34888b471ad08",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/passing_to_build_error.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "f96208b78da0bb90458c6bbb1b35f7540f4959a8",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/passing_to_failing.txtar",
      "new_id": "f96208b78da0bb90458c6bbb1b35f7540f4959a8",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/passing_to_failing.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "7aaef4a37d93783a99a66fd3ea3e86ebfee4c7e8",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/passing_to_failing_subdir.txtar",
      "new_id": "7aaef4a37d93783a99a66fd3ea3e86ebfee4c7e8",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/passing_to_failing_subdir.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "b15f325006a7ea75109979837427071efdffd2d5",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/related_files_cooccurrence.txtar",
      "new_id": "b15f325006a7ea75109979837427071efdffd2d5",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/related_files_cooccurrence.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "4bd864292e55f1a8d7e1652a7fb7e249e1793c44",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/skipped_to_build_error.txtar",
      "new_id": "4bd864292e55f1a8d7e1652a7fb7e249e1793c44",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/skipped_to_build_error.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "55c12a8cbe921fd40beef86046fe11ea3e0374ed",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/skipped_to_failing.txtar",
      "new_id": "55c12a8cbe921fd40beef86046fe11ea3e0374ed",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/skipped_to_failing.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "6f2c7c720b0f8099908771a45615235a58fdb2d0",
      "old_mode": 33188,
      "old_path": "claudetool/testdata/vet_error_test.txtar",
      "new_id": "6f2c7c720b0f8099908771a45615235a58fdb2d0",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/testdata/vet_error_test.txtar",
      "score": 100
    },
    {
      "type": "rename",
      "old_id": "a5b159bf1dc7ee6fd79592e0abb9c6b2b8ee0918",
      "old_mode": 33188,
      "old_path": "claudetool/teststatus_string.go",
      "new_id": "6c9ac90c15d86222d47176f8e63047cbb2c020c4",
      "new_mode": 33188,
      "new_path": "claudetool/codereview/teststatus_string.go",
      "score": 97
    },
    {
      "type": "modify",
      "old_id": "8c693be294e14203a922720f50d488107b907c12",
      "old_mode": 33188,
      "old_path": "claudetool/keyword.go",
      "new_id": "5d9f155e6444819adefc14fb76c44c9bf6099e4d",
      "new_mode": 33188,
      "new_path": "claudetool/keyword.go"
    },
    {
      "type": "modify",
      "old_id": "0886e667aa87d4cf55a80c557f6063163be000a6",
      "old_mode": 33188,
      "old_path": "claudetool/patch.go",
      "new_id": "419e966888dd85d1fd3b15ee79b46ed255ea5764",
      "new_mode": 33188,
      "new_path": "claudetool/patch.go"
    },
    {
      "type": "modify",
      "old_id": "f5f40edd481491e3a6bd89c0d5cb6ea780b3ca4c",
      "old_mode": 33188,
      "old_path": "loop/agent.go",
      "new_id": "2f0e56dfe28853bbad4c5af71cbed5e77d11d783",
      "new_mode": 33188,
      "new_path": "loop/agent.go"
    },
    {
      "type": "modify",
      "old_id": "b5358e97f389332f426f36afbb76e5000d2157cf",
      "old_mode": 33188,
      "old_path": "loop/donetool.go",
      "new_id": "48818d6f966bd8412319699690e18a060c04752c",
      "new_mode": 33188,
      "new_path": "loop/donetool.go"
    }
  ]
}
