Analyze staged files, group by category, and generate conventional commit specs as JSON.
This skill analyzes staged git files and returns commit specifications as JSON. It:
| Arg | Default | Description |
|---|---|---|
--lang | context | Message language (conversation context → system locale → en) |
This skill ALWAYS returns JSON. The caller executes git commands based on this output.
Success:
{
"commits": [
{"message": "type(scope): subject\n\nBody", "files": ["file1", "file2"]}
],
"summary": {"total_commits": 1, "total_files": 2}
}
Error:
{"error": "description", "error_code": "CODE"}
${CLAUDE_PLUGIN_ROOT}/skills/collect-commit-info/scripts/collect-info.sh --lang <code>
Script returns JSON with temp_dir, files array (with categories), and paths.diff_content.
On error JSON → return it immediately and stop.
Read the file at paths.diff_content to understand what changed.
Group files from the files array. Commit order:
deps - Dependencies (package.json, lock files)ci - CI/CD (.github/*)config - Configuration (*.yml, *.toml, rc files)source - Source codetest - Tests (_test., .test., .spec.)docs - Documentation (.md, docs/)For each group, create a conventional commit message:
type(scope): imperative subject (max 50 chars)
Optional body explaining what and why.
Type by category:
| Category | Type |
|---|---|
| deps | chore |
| ci | ci |
| config | chore |
| source | feat/fix/refactor (analyze diff) |
| test | test |
| docs | docs |
For source files, analyze diff to determine type:
featfixrefactorScope: Derive from paths (e.g., src/auth/* → auth)
Language: Use lang.effective from script output. If conversation context indicates a preferred language, use that instead.
${CLAUDE_PLUGIN_ROOT}/skills/collect-commit-info/scripts/cleanup.sh <temp_dir>
Return the JSON commit specs.