@m2015agg/git-skill 0.3.0 → 0.3.1

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.
package/README.md CHANGED
@@ -148,6 +148,8 @@ git-skill why <hash> # View enrichment for a commit
148
148
  | `git-skill diff-summary <range>` | Range summary (e.g., `v1.0..v1.1`) |
149
149
  | `git-skill why <hash>` | Commit intent/reasoning |
150
150
  | `git-skill regression` | Change-point detection |
151
+ | `git-skill verify` | Check staged changes against history (was this tried before?) |
152
+ | `git-skill context-update` | Refresh Claude memory with codebase health |
151
153
  | `git-skill doctor` | Health check |
152
154
 
153
155
  ### Write (require confirmation)
@@ -198,6 +200,43 @@ Automatically tracked per commit:
198
200
  - **Time-to-commit** — time between commits
199
201
  - **Same-file churn** — same file 3+ times in recent commits (thrashing)
200
202
 
203
+ ## Smart Churn Alerts
204
+
205
+ Automatically detected and written to Claude's memory on every commit:
206
+
207
+ - **Thrashing** — `[WARN] Thrashing: block_generator.py edited 5 times in last 10 commits`
208
+ - **Revert chains** — `[WARN] Reverted: rag.py involved in 2 reverts recently`
209
+ - **Fix-on-fix** — `[WARN] Fix-on-fix: semantic_tier.py has 3 sequential fixes`
210
+ - **Elevated rates** — `[WARN] Revert rate: 10.0% (threshold: 5%)`
211
+
212
+ These appear in Claude's memory at session start. No manual action needed — the post-commit hook keeps them fresh.
213
+
214
+ ## Verify: "Was This Tried Before?"
215
+
216
+ Check staged changes against enriched history before committing:
217
+
218
+ ```bash
219
+ git-skill verify # Check all staged changes
220
+ git-skill verify --file src/foo.py # Check specific file
221
+ git-skill verify --json # Structured output
222
+ ```
223
+
224
+ Example output:
225
+ ```
226
+ [BLOCK] block_generator.py — max_tokens value
227
+ You're setting max_tokens to 150. This value has been tried before:
228
+ - ea2761a (Mar 27): Set to 150, caused Sonnet to write paragraphs
229
+ - 0090014 (Mar 27): Increased to 200 because 150 truncated Day 2 content
230
+ Suggestion: The problem isn't the token count — it's the prompt structure.
231
+
232
+ [WARN] rag.py — source truncation pattern
233
+ Similar approach tried in eeea6a4 and reverted in e0137be (prod risk).
234
+
235
+ [PASS] api/routes.py — no concerning history
236
+ ```
237
+
238
+ Works without an LLM configured (local-only analysis shows edit counts and revert history). With an LLM configured, provides deep reasoning about why previous attempts failed.
239
+
201
240
  ## Need Help?
202
241
 
203
242
  git-skill is designed for AI agents. If you're using Claude Code, just ask:
@@ -222,7 +261,9 @@ Claude can read the config, run the commands, and interpret the results. When in
222
261
 
223
262
  - [Design Spec](docs/specs/2026-03-31-git-skill-design.md) — Full architecture, schema, algorithms, and test strategy
224
263
  - [GeorgeWorks: Memory Integration](docs/specs/context-injection.md) — How context-update writes to Claude's memory system, internal architecture of `findRelevantMemories`, consolidation phases, and thresholds
225
- - [Opus Verification Layer](docs/specs/opus-verification-layer.md) — Concept for pre-commit AI verification that catches reverted re-introductions and thrashing patterns
264
+ - [Opus Verification Layer](docs/specs/opus-verification-layer.md) — Design and real-world case studies for the verify command
265
+ - [Churn Alerts + Verify](docs/specs/churn-alerts-and-verify.md) — Passive alerts and active verification implementation details
266
+ - [Team Collaboration](docs/specs/team-collaboration.md) — Brainstorm on sharing enrichments across teams
226
267
 
227
268
  ## License
228
269
 
@@ -17,6 +17,8 @@ export function getSkillDoc() {
17
17
  | \`git-skill diff-summary <range>\` | Range summary |
18
18
  | \`git-skill why <hash>\` | Commit intent/reasoning |
19
19
  | \`git-skill regression\` | Change-point detection |
20
+ | \`git-skill verify\` | Check staged changes against history (was this tried before?) |
21
+ | \`git-skill context-update\` | Refresh Claude memory with codebase health |
20
22
  | \`git-skill doctor\` | Health check |
21
23
 
22
24
  ### Write Commands (require confirmation)
@@ -25,6 +27,12 @@ export function getSkillDoc() {
25
27
  | \`git-skill release-notes <range>\` | Generate release notes |
26
28
  | \`git-skill embed\` | Generate embeddings |
27
29
 
30
+ ### Smart Alerts (automatic, written to Claude memory)
31
+ - Thrashing detection: files edited 3+ times in last 10 commits
32
+ - Revert chain detection: files involved in recent reverts
33
+ - Fix-on-fix detection: sequential fix commits on same file
34
+ - Runs on every commit (post-commit hook) and nightly (cron)
35
+
28
36
  ### Global Flags
29
37
  - \`--json\` — structured output
30
38
  - \`--limit N\` — cap results
@@ -1 +1 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,SAAS,KAAK,CAAC,GAAW,IAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEhE,MAAM,UAAU,WAAW;IACzB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;wDA2B+C,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/commands/docs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,SAAS,KAAK,CAAC,GAAW,IAAU,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEhE,MAAM,UAAU,WAAW;IACzB,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAmC+C,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC;SACvB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@m2015agg/git-skill",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Git history intelligence for LLMs — institutional memory over codebase evolution",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",