git-investigate · git:20260321.4a2afd0 · 2026-03-21 · sha256 c6c7bea9d22e80cc

git-investigate git:20260321.4a2afd0A

Immutable. This exact content is served forever at /api/v1/blob/c6c7bea9d22e80cc.

---
name: git-investigate
description: "Git history investigation. Use when: tracking code changes, finding where bugs were introduced, root cause analysis. Not for: code exploration (use code-explore), issue analysis (use issue-analyze). Output: history trace + root cause report."
allowed-tools: Bash(git:*), Read, Grep, Glob, Agent
---

# Git Investigate Skill

## Trigger

- Keywords: code history, git blame, track changes, who wrote this, when was it changed, root cause, code archaeology

## When NOT to Use

- Code review (use codex-review)
- Feature development (use feature-dev)
- Just want to read code (use Read directly)

## Command

```bash
/git-investigate src/service/xxx.ts:123      # Specific line
/git-investigate processToken                 # Function name
/git-investigate "error message"              # Keyword
```

## Workflow

```
Locate code -> git blame -> find commit -> trace history -> analyze changes -> report
```

## Investigation Framework

| Question           | Method                        |
| ------------------ | ----------------------------- |
| Who wrote it?      | `git blame`                   |
| When was it changed?| `git log --follow`           |
| Why was it changed?| commit message + PR           |
| What was missed?   | `git diff` compare original vs problematic version |

## Common Patterns

| Pattern            | Symptom              | Root Cause                    |
| ------------------ | -------------------- | ----------------------------- |
| Type removed       | Enum value deleted   | Assumed no longer needed      |
| Condition simplified| If conditions reduced| Missed during refactoring    |
| Rename             | Partially unchanged  | Incomplete search-and-replace |
| Boundary ignored   | Only handles main flow| Edge cases not considered    |

## Output

```markdown
## Git Investigation Report
- **Target**: <file/feature>
- **Timeline**: <commit range>
- **Root cause**: <analysis>
- **Introduced by**: <commit hash + author>
```

## Verification

- Report includes: investigation target, author info, timeline, original vs problematic code
- Root cause has clear analysis
- Fix recommendation is specific and actionable

## References

- `references/commands.md` - Git command reference + report template

## Examples

```
Input: Who changed this line of code?
Action: git blame -> find commit -> trace PR -> output report
```

```
Input: When was this bug introduced?
Action: git log -p -S -> locate introduction point -> analyze cause -> output report
```