)]}'
{
  "log": [
    {
      "commit": "106f6f5472c233011b6abee307cb6cd0e962f718",
      "tree": "06caf9e7ab2a1ecafebdc6d9a3a9846d8cfe161c",
      "parents": [
        "cf724583660cf683efa7fd8eb9b32e120e88beb7"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon Jul 21 15:22:00 2025 -0700"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Mon Jul 21 19:46:45 2025 -0700"
      },
      "message": "claudetool: tweak bashkit error message when changing branches\n\n- remove reference to outie (normal sketch sessions\n  don\u0027t have the concept introduced in the prompt anywhere)\n- tweak wording for precision\n- add some extra details\n- point out the Push button\n- let claude rewrite a bit for concision\n"
    },
    {
      "commit": "19a32eaa120562170595e42584f3fc4b40828b97",
      "tree": "eaa6cac6a052a02a97a94a62a2fc13adadd50a6e",
      "parents": [
        "2be768e4f4d28dc56c7e0b10df342c607ef04833"
      ],
      "author": {
        "name": "banksean",
        "email": "banksean@gmail.com",
        "time": "Fri Jul 18 18:29:31 2025 +0000"
      },
      "committer": {
        "name": "banksean",
        "email": "banksean@gmail.com",
        "time": "Fri Jul 18 12:04:31 2025 -0700"
      },
      "message": "claudetool/bashkit: add sketch-wip branch protection with process-level tracking\n\nAdd a best-effort check to reject git commands that would change the\ncontainer-side \u0027sketch-wip\u0027 git branch. The protection prevents:\n\n1. Branch renaming: git branch -m sketch-wip newname\n2. Branch switching: git checkout otherbranch, git switch otherbranch\n3. Force branch renaming: git branch -M sketch-wip newname\n\nThe check allows legitimate operations like:\n- File checkout: git checkout -- file.txt\n- Path operations: git checkout src/main.go\n- Branch creation: git switch -c newbranch\n- Standard git operations: git commit, git status, etc.\n\nKey features:\n- Process-level tracking: Shows warning only once per process\n- Informative error message explaining why it\u0027s blocked\n- Suggests using \u0027set-slug\u0027 tool for external branch naming\n- Tells user they can repeat the command if really needed\n\nImplementation:\n- Added process-aware check alongside existing static checks\n- Process-level tracking via mutex-protected boolean\n- Comprehensive test coverage including edge cases\n- Maintains backward compatibility with existing Check() function\n\nThis prevents agents from inadvertently breaking the outie\u0027s ability\nto detect and push changes to GitHub by changing the expected branch name.\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\nChange-ID: s3bb00ecac8a4badek\n"
    },
    {
      "commit": "dbfd36a4149c03a501be12aacfecdbe237c7b7bf",
      "tree": "c8928ebe5568b7c5330f9211538ab8139832652f",
      "parents": [
        "afeafea91f20db4e5b99620df98baa1628bfeaf1"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Fri May 23 20:57:50 2025 +0000"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Fri May 23 14:25:55 2025 -0700"
      },
      "message": "claudetool/bashkit: add validation to reject blind git add commands\n\nImplements new validation function to prevent bash commands that blindly\nadd all files to git commits, requiring agents to specify files explicitly.\n\nChanges include:\n\n1. New noBlindGitAdd validation function that rejects:\n   - git add -A (add all)\n   - git add --all (add all)\n   - git add . (add current directory)\n   - git add * (add all files via glob)\n\n2. Enhanced hasBlindGitAdd helper function:\n   - Parses git command structure using existing AST approach\n   - Finds \u0027add\u0027 subcommand and checks subsequent arguments\n   - Handles git flags before \u0027add\u0027 subcommand correctly\n   - Allows legitimate specific file additions like \u0027git add main.go\u0027\n\n3. Comprehensive test coverage for all blind add patterns:\n   - Tests rejection of all blind patterns including flags combinations\n   - Tests acceptance of specific file additions and valid use cases\n   - Tests multiline scripts and edge cases like filenames that look\n     like flags (e.g., \u0027file.A\u0027)\n\n4. Integration with existing validation framework:\n   - Added noBlindGitAdd to the checks slice alongside existing\n     noGitConfigUsernameEmailChanges validation\n   - Uses same error reporting pattern and AST parsing infrastructure\n\nThis prevents agents from accidentally committing unintended files or\nbuild artifacts by forcing explicit file specification in git add\ncommands. The validation maintains the existing pattern of being\nmistake-prevention rather than security-focused.\n\nError message provides clear guidance: \u0027blind git add commands (git add -A,\ngit add ., git add --all, git add *) are not allowed, specify files explicitly\u0027\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\nChange-ID: s4d8fe71ef5816b36k\n"
    },
    {
      "commit": "dae19073cfdc420af8da311c4f3974ac6db77b46",
      "tree": "d2744d5ff7a9477e34537d7be9b772a3d3de522b",
      "parents": [
        "a9b3822fd2cfdc035e7daa8b59496f9838a4b2c6"
      ],
      "author": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Wed Apr 30 01:08:57 2025 +0000"
      },
      "committer": {
        "name": "Josh Bleecher Snyder",
        "email": "josharian@gmail.com",
        "time": "Tue Apr 29 19:06:19 2025 -0700"
      },
      "message": "Add WillRunGitCommit function to bashkit\n\nThis function inspects a bash script to determine if it will run \u0027git commit\u0027 commands.\nThe implementation is similar to the existing Check function but is kept separate as requested.\n\nCo-Authored-By: sketch \u003chello@sketch.dev\u003e\n"
    },
    {
      "commit": "2e463fb649fcff14d4025ddb91f630a98e7da526",
      "tree": "0e86854d80d2759a913870655f13226c31f9d30c",
      "parents": [],
      "author": {
        "name": "Earl Lee",
        "email": "earl.lee@sketch.dev",
        "time": "Thu Apr 17 11:22:22 2025 -0700"
      },
      "committer": {
        "name": "Earl Lee",
        "email": "earl.lee@sketch.dev",
        "time": "Thu Apr 17 11:35:33 2025 -0700"
      },
      "message": "Initial commit\n"
    }
  ]
}
