An unconstrained fixed point can become shell or Git-option injection
Source references: 3The Skill accepts an arbitrary user-supplied fixed point and inserts it directly into git diff, git log, and git rev-parse command templates. It does not require argument-safe execution, an option separator, or validation that the value is one Git reference.
If an agent executes a shell-built command containing metacharacters, additional commands could run with the agent's permissions. Even without a shell, a value beginning with a hyphen could be interpreted as a Git option and alter output or cause unintended file operations. The evidence does not show this has occurred.
The source supports a plausible risk, though exploitation depends on how the agent constructs the command. The user-provided fixed point is inserted into three Git command templates without requiring single-argument passing or rejection of shell metacharacters/options. If an executor interpolates it into a shell, a malicious or accidentally copied value could append commands; Git option parsing could also alter the operation. Resolving the ref and checking the diff do not remove that risk. Users can ask the author to resolve only an allowed ref to a commit SHA and require argument-array execution and option boundaries.
Whatever the user said is the fixed point (a commit SHA, branch name, tag, `main`, `HEAD~5`, etc.). If they didn't specify one, ask for it.Show 2 other places
Capture the diff command once: `git diff <fixed-point>...HEAD` (three-dot, so the comparison is against the merge-base). Also note the list of commits via `git log <fixed-point>..HEAD --oneline`.Before going further, confirm the fixed point resolves (`git rev-parse <fixed-point>`) and the diff is non-empty. A bad ref or empty diff should fail here, not inside two parallel sub-agents.