@m2015agg/git-skill 0.4.3 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@ import { installHook } from "../util/hooks.js";
6
6
  import { isGitRepo } from "../util/git.js";
7
7
  import { upsertSection } from "../util/claude-md.js";
8
8
  import { getSkillDoc } from "./docs.js";
9
- import { WALKTHROUGH } from "../templates/walkthrough.js";
9
+ import { WALKTHROUGH, REVIEW_COMMAND } from "../templates/walkthrough.js";
10
10
  function write(msg) { process.stdout.write(msg); }
11
11
  export function initCommand() {
12
12
  return new Command("init")
@@ -49,12 +49,27 @@ export function initCommand() {
49
49
  write("3. Writing CLAUDE.md...\n");
50
50
  const claudeMdResult = upsertSection(join(cwd, "CLAUDE.md"), getSkillDoc());
51
51
  write(` CLAUDE.md: ${claudeMdResult}\n`);
52
- // 5. Write walkthrough
53
- write("4. Writing walkthrough...\n");
52
+ // 5. Write walkthrough + review command
53
+ write("4. Writing slash commands...\n");
54
54
  const walkthroughDir = join(cwd, ".claude", "commands");
55
55
  mkdirSync(walkthroughDir, { recursive: true });
56
56
  writeFileSync(join(walkthroughDir, "git-history.md"), WALKTHROUGH);
57
- write(" Walkthrough written to .claude/commands/git-history.md\n");
57
+ write(" /git-history — explore repo history\n");
58
+ // Install review command if it doesn't already exist (don't overwrite user customizations)
59
+ const reviewPath = join(walkthroughDir, "review.md");
60
+ if (!existsSync(reviewPath)) {
61
+ writeFileSync(reviewPath, REVIEW_COMMAND);
62
+ write(" /review — code review with git-skill verify (NEW)\n");
63
+ write("\n");
64
+ write(" The /review command adds git history verification to your code review.\n");
65
+ write(" It runs git-skill verify to check if staged changes repeat past mistakes,\n");
66
+ write(" flags files in churn hotspots, and blocks re-introduction of reverted code.\n");
67
+ write(" Customize it at .claude/commands/review.md\n");
68
+ write("\n");
69
+ }
70
+ else {
71
+ write(" /review — already exists (not overwritten)\n");
72
+ }
58
73
  // 6. Run snapshot
59
74
  if (!opts.skipSnapshot) {
60
75
  write("5. Running initial snapshot...\n");
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -1 +1,2 @@
1
1
  export declare const WALKTHROUGH = "# Git History Walkthrough\n\nUse git-skill to explore this repository's history.\n\n## Quick Start\n```\ngit-skill doctor # Check setup health\ngit-skill hotspots # Find churning files\ngit-skill trends # View metric trends\ngit-skill search \"auth\" # Search history\n```\n";
2
+ export declare const REVIEW_COMMAND = "---\ndescription: \"Code review with git history verification \u2014 checks for repeated mistakes before merge\"\n---\n\n# Code Review with History Verification\n\nReview the current branch changes before merging.\n\n**PROCESS:**\n\n1. **Run tests**:\n ```bash\n # Run the project's test suite (adjust command for your project)\n npm test # Node.js\n # pytest # Python\n # cargo test # Rust\n ```\n\n2. **Git History Verification** (prevent re-trying failed approaches):\n ```bash\n git-skill verify\n ```\n If `git-skill verify` returns WARN or BLOCK:\n - **BLOCK**: STOP. This change re-introduces something that was explicitly reverted. Ask the user before proceeding.\n - **WARN**: Note the warning. Check if the current approach addresses the previous failure. Proceed with caution.\n - **PASS**: No concerns from history.\n\n3. **Check codebase health**:\n ```bash\n git-skill doctor\n git-skill hotspots --limit 5\n ```\n Flag any files being modified that appear in the hotspots list.\n\n4. **Review against criteria**:\n - **Critical** (must fix): Security vulnerabilities, data loss risks, breaking changes, tests failing\n - **Major** (should fix): Missing error handling, pattern violations, missing tests\n - **Minor** (optional): Style, docs, optimization\n\n5. **Auto-fix critical/major issues**:\n - Fix issues following established patterns\n - Run tests after each fix\n - Commit fixes separately\n\n6. **Report findings**:\n - List issues found and fixed\n - List any WARN/BLOCK from git-skill verify\n - Provide verification commands\n - Recommend proceeding or returning to implementation\n\n**IMPORTANT:**\n- `git-skill verify` is authoritative \u2014 if it says something was reverted before, take it seriously\n- Auto-fix critical/major issues, don't just report them\n- Always run tests after fixes\n";
@@ -10,4 +10,59 @@ git-skill trends # View metric trends
10
10
  git-skill search "auth" # Search history
11
11
  \`\`\`
12
12
  `;
13
+ export const REVIEW_COMMAND = `---
14
+ description: "Code review with git history verification — checks for repeated mistakes before merge"
15
+ ---
16
+
17
+ # Code Review with History Verification
18
+
19
+ Review the current branch changes before merging.
20
+
21
+ **PROCESS:**
22
+
23
+ 1. **Run tests**:
24
+ \`\`\`bash
25
+ # Run the project's test suite (adjust command for your project)
26
+ npm test # Node.js
27
+ # pytest # Python
28
+ # cargo test # Rust
29
+ \`\`\`
30
+
31
+ 2. **Git History Verification** (prevent re-trying failed approaches):
32
+ \`\`\`bash
33
+ git-skill verify
34
+ \`\`\`
35
+ If \`git-skill verify\` returns WARN or BLOCK:
36
+ - **BLOCK**: STOP. This change re-introduces something that was explicitly reverted. Ask the user before proceeding.
37
+ - **WARN**: Note the warning. Check if the current approach addresses the previous failure. Proceed with caution.
38
+ - **PASS**: No concerns from history.
39
+
40
+ 3. **Check codebase health**:
41
+ \`\`\`bash
42
+ git-skill doctor
43
+ git-skill hotspots --limit 5
44
+ \`\`\`
45
+ Flag any files being modified that appear in the hotspots list.
46
+
47
+ 4. **Review against criteria**:
48
+ - **Critical** (must fix): Security vulnerabilities, data loss risks, breaking changes, tests failing
49
+ - **Major** (should fix): Missing error handling, pattern violations, missing tests
50
+ - **Minor** (optional): Style, docs, optimization
51
+
52
+ 5. **Auto-fix critical/major issues**:
53
+ - Fix issues following established patterns
54
+ - Run tests after each fix
55
+ - Commit fixes separately
56
+
57
+ 6. **Report findings**:
58
+ - List issues found and fixed
59
+ - List any WARN/BLOCK from git-skill verify
60
+ - Provide verification commands
61
+ - Recommend proceeding or returning to implementation
62
+
63
+ **IMPORTANT:**
64
+ - \`git-skill verify\` is authoritative — if it says something was reverted before, take it seriously
65
+ - Auto-fix critical/major issues, don't just report them
66
+ - Always run tests after fixes
67
+ `;
13
68
  //# sourceMappingURL=walkthrough.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"walkthrough.js","sourceRoot":"","sources":["../../src/templates/walkthrough.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;CAW1B,CAAC"}
1
+ {"version":3,"file":"walkthrough.js","sourceRoot":"","sources":["../../src/templates/walkthrough.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;CAW1B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsD7B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m2015agg/git-skill",
3
- "version": "0.4.3",
3
+ "version": "0.4.4",
4
4
  "description": "Git history intelligence for LLMs — institutional memory over codebase evolution",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",