git-impact 0.6.5 → 0.7.0
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 +32 -24
- package/dist/cli/index.js +7 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/init/installer.d.ts +29 -5
- package/dist/init/installer.d.ts.map +1 -1
- package/dist/init/installer.js +110 -65
- package/dist/init/installer.js.map +1 -1
- package/dist/init/installer.test.js +183 -13
- package/dist/init/installer.test.js.map +1 -1
- package/dist/init/templates.d.ts +6 -8
- package/dist/init/templates.d.ts.map +1 -1
- package/dist/init/templates.js +12 -98
- package/dist/init/templates.js.map +1 -1
- package/dist/mcp/repo.d.ts.map +1 -1
- package/dist/mcp/repo.js +11 -5
- package/dist/mcp/repo.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +35 -6
- package/dist/mcp/tools.js.map +1 -1
- package/dist/readers/git.d.ts +19 -2
- package/dist/readers/git.d.ts.map +1 -1
- package/dist/readers/git.js +46 -17
- package/dist/readers/git.js.map +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +23 -195
- package/skill/references/mode-init.md +16 -0
- package/skill/references/mode-review.md +40 -0
- package/skill/references/mode-standup.md +122 -0
package/README.md
CHANGED
|
@@ -52,7 +52,8 @@ The wizard auto-detects which AI editors you already use and installs for them.
|
|
|
52
52
|
>
|
|
53
53
|
|
|
54
54
|
Which AI editors should I install for? (comma-separated, or "all")
|
|
55
|
-
Options: claude, copilot, cursor, gemini
|
|
55
|
+
Options: claude, copilot, cursor, gemini, opencode
|
|
56
|
+
(.agents/skills/ is always written — covers Goose, Amp, Codex, Letta, Roo)
|
|
56
57
|
Detected in this repo: claude, cursor
|
|
57
58
|
[press Enter to use detected]
|
|
58
59
|
>
|
|
@@ -66,10 +67,12 @@ Then it creates everything and tells you what it did:
|
|
|
66
67
|
|
|
67
68
|
✅ .git-impact/context.json
|
|
68
69
|
✅ .gitignore
|
|
70
|
+
✅ .agents/skills/git-impact/SKILL.md ← cross-vendor baseline
|
|
71
|
+
✅ .agents/skills/git-impact/references/...
|
|
69
72
|
✅ .claude/skills/git-impact/SKILL.md
|
|
70
|
-
✅ .claude/skills/git-impact/references
|
|
71
|
-
✅ .
|
|
72
|
-
✅ .cursor/
|
|
73
|
+
✅ .claude/skills/git-impact/references/...
|
|
74
|
+
✅ .cursor/skills/git-impact/SKILL.md
|
|
75
|
+
✅ .cursor/skills/git-impact/references/...
|
|
73
76
|
✅ CLAUDE.md
|
|
74
77
|
✅ .git-impact/manifest.json
|
|
75
78
|
|
|
@@ -94,13 +97,13 @@ Once installed, just talk to your AI editor naturally:
|
|
|
94
97
|
| `make a presentation for today` | Adds a bespoke shareable HTML page (opt-in) |
|
|
95
98
|
| `set up context for this repo` | Re-runs the init questions inline |
|
|
96
99
|
|
|
97
|
-
Works in **Claude Code**, **GitHub Copilot**, **
|
|
100
|
+
Works in any editor that supports the [Agent Skills](https://agentskills.io) format. Five editors get a vendor-specific mirror (**Claude Code**, **Cursor**, **GitHub Copilot** + VS Code, **Gemini CLI**, **OpenCode**). Every other Agent Skills adopter — **Goose**, **Amp**, **OpenAI Codex**, **Letta**, **Roo Code**, and future ones — picks up the same skill from the cross-vendor `.agents/skills/` baseline that's always written. One canonical `SKILL.md` folder, mirrored where each vendor's docs say it needs to live.
|
|
98
101
|
|
|
99
102
|
---
|
|
100
103
|
|
|
101
104
|
## How it works
|
|
102
105
|
|
|
103
|
-
git-impact ships two things:
|
|
106
|
+
git-impact ships two things: an [Agent Skills](https://agentskills.io)–compatible **skill** that handles the prompting (Claude Code, Cursor, Copilot, Gemini CLI, OpenCode get a vendor-specific mirror; Goose, Amp, Codex, Letta, Roo pick up the `.agents/skills/` baseline), and an **MCP server** that exposes typed data tools (git activity, history, context). The skill calls the MCP tools — no `sqlite3` shelling, no hand-rolled SQL.
|
|
104
107
|
|
|
105
108
|
```
|
|
106
109
|
your commits → MCP get_git_activity → privacy redaction → AI translation
|
|
@@ -123,21 +126,21 @@ History is saved locally to `.git-impact/history.db` (SQLite, gitignored) so rev
|
|
|
123
126
|
|
|
124
127
|
```
|
|
125
128
|
your-project/
|
|
126
|
-
├── .
|
|
127
|
-
│ └── skills/git-impact/
|
|
128
|
-
│ ├── SKILL.md # Workflow (orchestrates MCP tools)
|
|
129
|
-
│ └── references/
|
|
130
|
-
│ ├──
|
|
131
|
-
│
|
|
132
|
-
├── .
|
|
133
|
-
│
|
|
134
|
-
│
|
|
135
|
-
├── .
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
├── .gemini/
|
|
139
|
-
|
|
140
|
-
│
|
|
129
|
+
├── .agents/
|
|
130
|
+
│ └── skills/git-impact/ # Cross-vendor Agent Skills baseline
|
|
131
|
+
│ ├── SKILL.md # Workflow router (orchestrates MCP tools)
|
|
132
|
+
│ └── references/ # Loaded on demand (progressive disclosure)
|
|
133
|
+
│ ├── mode-standup.md
|
|
134
|
+
│ ├── mode-review.md
|
|
135
|
+
│ ├── mode-init.md
|
|
136
|
+
│ ├── translation-rules.md
|
|
137
|
+
│ └── html-template.md
|
|
138
|
+
├── .claude/skills/git-impact/ # Same skill folder, mirrored for Claude Code
|
|
139
|
+
├── .cursor/skills/git-impact/ # …mirrored for Cursor
|
|
140
|
+
├── .github/skills/git-impact/ # …mirrored for GitHub Copilot + VS Code
|
|
141
|
+
├── .gemini/skills/git-impact/ # …mirrored for Gemini CLI
|
|
142
|
+
├── .opencode/skills/git-impact/ # …mirrored for OpenCode
|
|
143
|
+
│ (Goose, Amp, Codex, Letta, Roo — read from .agents/skills/ above, no mirror)
|
|
141
144
|
├── .git-impact/
|
|
142
145
|
│ ├── context.json # Team glossary ← commit this
|
|
143
146
|
│ ├── manifest.json # Install record ← commit this
|
|
@@ -308,7 +311,7 @@ src/
|
|
|
308
311
|
├── init/
|
|
309
312
|
│ ├── installer.ts # install() + runInitWizard() + detectEditors()
|
|
310
313
|
│ ├── installer.test.ts
|
|
311
|
-
│ └── templates.ts #
|
|
314
|
+
│ └── templates.ts # CLAUDE.md block + context.json template
|
|
312
315
|
├── readers/
|
|
313
316
|
│ ├── git.ts # reads git log, diffs, file changes
|
|
314
317
|
│ ├── github.ts # reads PRs via GitHub API (optional)
|
|
@@ -329,8 +332,11 @@ src/
|
|
|
329
332
|
└── cli/
|
|
330
333
|
└── index.ts # init + view commands
|
|
331
334
|
skill/
|
|
332
|
-
├── SKILL.md #
|
|
333
|
-
└── references/
|
|
335
|
+
├── SKILL.md # ~60-line router (picks a mode, points at references/)
|
|
336
|
+
└── references/ # loaded on demand (Agent Skills progressive disclosure)
|
|
337
|
+
├── mode-standup.md # default mode — translate commits → bullets
|
|
338
|
+
├── mode-review.md # synthesise history → performance review prep
|
|
339
|
+
├── mode-init.md # interactive context.json setup
|
|
334
340
|
├── translation-rules.md
|
|
335
341
|
└── html-template.md
|
|
336
342
|
```
|
|
@@ -347,6 +353,8 @@ Shipped:
|
|
|
347
353
|
- [x] Editor auto-detection in init
|
|
348
354
|
- [x] Test baseline (Vitest, 40 tests)
|
|
349
355
|
- [x] Multi-editor: Claude Code, Copilot, Cursor, Gemini CLI
|
|
356
|
+
- [x] Canonical SKILL.md format ([Agent Skills](https://agentskills.io)) — vendor mirrors for OpenCode; `.agents/` baseline picked up by Goose, Amp, Codex, Letta, Roo
|
|
357
|
+
- [x] Auto-migration from pre-0.7 per-editor instruction files
|
|
350
358
|
|
|
351
359
|
Next:
|
|
352
360
|
- [ ] **PR description writer** — `git-impact-pr` skill produces ready-to-paste PR bodies
|
package/dist/cli/index.js
CHANGED
|
@@ -45,7 +45,7 @@ const program = new commander_1.Command();
|
|
|
45
45
|
program
|
|
46
46
|
.name("git-impact")
|
|
47
47
|
.description("Install git-impact into a repo. Translation runs inside your AI editor (Claude Code skill / MCP) — no API key.")
|
|
48
|
-
.version("0.
|
|
48
|
+
.version("0.7.0");
|
|
49
49
|
// ─── init ─────────────────────────────────────────────────────────────────────
|
|
50
50
|
program
|
|
51
51
|
.command("init")
|
|
@@ -65,7 +65,10 @@ program
|
|
|
65
65
|
console.log(` git-impact installed\n`);
|
|
66
66
|
for (const f of installed) {
|
|
67
67
|
const rel = path.relative(repoRoot, f.path);
|
|
68
|
-
const icon = f.action === "created" ? "✅" :
|
|
68
|
+
const icon = f.action === "created" ? "✅" :
|
|
69
|
+
f.action === "updated" ? "🔄" :
|
|
70
|
+
f.action === "removed" ? "🗑️ " :
|
|
71
|
+
"⏭️ ";
|
|
69
72
|
console.log(` ${icon} ${rel}`);
|
|
70
73
|
}
|
|
71
74
|
// Editor-aware next-step hint based on what we actually installed.
|
|
@@ -73,7 +76,8 @@ program
|
|
|
73
76
|
integrations.includes("gemini") ? `In Gemini CLI: run "/git-impact" (or say "do my standup")` :
|
|
74
77
|
integrations.includes("cursor") ? `In Cursor chat: paste "@git-impact do my standup"` :
|
|
75
78
|
integrations.includes("copilot") ? `In Copilot Chat: open this repo and say "do my standup"` :
|
|
76
|
-
|
|
79
|
+
integrations.includes("opencode") ? `In OpenCode: open this repo and say "do my standup"` :
|
|
80
|
+
`Open this repo in your AI editor and say "do my standup"`;
|
|
77
81
|
console.log(`\n Next steps:`);
|
|
78
82
|
console.log(` 1. git add .git-impact/context.json && git commit -m "chore: add git-impact"`);
|
|
79
83
|
console.log(` 2. ${trigger}`);
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAAoC;AACpC,2CAA6B;AAC7B,iDAAmC;AACnC,sCAAsE;AACtE,sCAA8C;AAC9C,iDAA2D;AAC3D,6CAAgD;AAEhD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,gHAAgH,CAAC;KAC7H,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,iFAAiF;AAEjF,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sEAAsE,CAAC;KACnF,MAAM,CAAC,mBAAmB,EAAE,mDAAmD,CAAC;KAChF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAA,gBAAW,EAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,yBAAa,EAAC,QAAQ,CAAC,CAAC;IAEhE,MAAM,WAAW,GAAgB;QAC/B,GAAG,OAAO;QACV,WAAW,EAAE,QAAQ,EAAE,WAAW;KACnC,CAAC;IACF,IAAA,gBAAW,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEnC,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAE9E,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAAoC;AACpC,2CAA6B;AAC7B,iDAAmC;AACnC,sCAAsE;AACtE,sCAA8C;AAC9C,iDAA2D;AAC3D,6CAAgD;AAEhD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,gHAAgH,CAAC;KAC7H,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,iFAAiF;AAEjF,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,sEAAsE,CAAC;KACnF,MAAM,CAAC,mBAAmB,EAAE,mDAAmD,CAAC;KAChF,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,IAAA,gBAAW,EAAC,QAAQ,CAAC,CAAC;IAEvC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,MAAM,IAAA,yBAAa,EAAC,QAAQ,CAAC,CAAC;IAEhE,MAAM,WAAW,GAAgB;QAC/B,GAAG,OAAO;QACV,WAAW,EAAE,QAAQ,EAAE,WAAW;KACnC,CAAC;IACF,IAAA,gBAAW,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAEnC,MAAM,SAAS,GAAG,IAAA,mBAAO,EAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAE9E,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7C,MAAM,IAAI,GACR,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC/B,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBACR,KAAK,CAAC;QACjC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC;IACnC,CAAC;IAED,mEAAmE;IACnE,MAAM,OAAO,GACX,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAG,CAAC,CAAC,2DAA2D,CAAE,CAAC;QAClG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAG,CAAC,CAAC,2DAA2D,CAAG,CAAC;YACnG,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAG,CAAC,CAAC,mDAAmD,CAAY,CAAC;gBACpG,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAE,CAAC,CAAC,yDAAyD,CAAK,CAAC;oBACnG,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAS,CAAC;wBAC/D,0DAA0D,CAAC;IAEjG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,gFAAgF,CAAC,CAAC;IAC9F,OAAO,CAAC,GAAG,CAAC,QAAQ,OAAO,EAAE,CAAC,CAAC;IAC/B,OAAO,CAAC,GAAG,CAAC,+EAA+E,CAAC,CAAC;AAC/F,CAAC,CAAC,CAAC;AAEL,iFAAiF;AAEjF,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mDAAmD,CAAC;KAChE,MAAM,CAAC,mBAAmB,EAAE,mDAAmD,CAAC;KAChF,MAAM,CAAC,eAAe,EAAE,8DAA8D,CAAC;KACvF,MAAM,CAAC,WAAW,EAAE,kDAAkD,CAAC;KACvE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE;IACf,MAAM,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,MAAM,GAAG,IAAA,qBAAY,EAAC;QAC1B,QAAQ;QACR,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC,CAAC;IACH,IAAI,MAAM,CAAC,UAAU,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CACT,+BAA+B,QAAQ,KAAK;YAC5C,yDAAyD;YACzD,kCAAkC,MAAM,CAAC,QAAQ,IAAI,CACtD,CAAC;QACF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,UAAU,aAAa,CAAC,CAAC;IACtE,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEL,iFAAiF;AAEjF,SAAS,YAAY,CAAC,YAAqB;IACzC,IAAI,CAAC;QACH,OAAO,IAAA,sBAAe,EAAC,YAAY,CAAC,CAAC,IAAI,CAAC;IAC5C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,YAAa,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
package/dist/init/installer.d.ts
CHANGED
|
@@ -1,10 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Editors with verified Agent Skills install paths (per each vendor's
|
|
3
|
+
* published docs as of 2026-05). Adding a new editor here is a one-line
|
|
4
|
+
* change in EDITOR_PATHS below.
|
|
5
|
+
*
|
|
6
|
+
* Goose, Amp, OpenAI Codex, and Letta are NOT listed here because their
|
|
7
|
+
* docs point at the cross-vendor `.agents/skills/` baseline as the
|
|
8
|
+
* recommended project-local path — they're covered by the always-on
|
|
9
|
+
* baseline install, no vendor-specific mirror needed.
|
|
10
|
+
*
|
|
11
|
+
* Kiro, Roo, and Factory have vendor-specific dirs (`.kiro/`, `.roo/`,
|
|
12
|
+
* `.factory/`) that were not personally verified by the author. They
|
|
13
|
+
* may be added in a follow-up once each has been confirmed with a live
|
|
14
|
+
* install in the target editor.
|
|
15
|
+
*/
|
|
16
|
+
export type Integration = "claude" | "copilot" | "cursor" | "gemini" | "opencode" | "antigravity";
|
|
1
17
|
export interface InstallOptions {
|
|
2
18
|
repoRoot: string;
|
|
3
19
|
integrations: Integration[];
|
|
4
20
|
context: RepoContext;
|
|
5
21
|
silent?: boolean;
|
|
6
22
|
}
|
|
7
|
-
export type Integration = "claude" | "copilot" | "cursor" | "gemini";
|
|
8
23
|
export interface RepoContext {
|
|
9
24
|
companyDescription: string;
|
|
10
25
|
managerPriorities: string;
|
|
@@ -12,18 +27,27 @@ export interface RepoContext {
|
|
|
12
27
|
}
|
|
13
28
|
export interface InstalledFile {
|
|
14
29
|
path: string;
|
|
15
|
-
action: "created" | "updated" | "skipped";
|
|
30
|
+
action: "created" | "updated" | "skipped" | "removed";
|
|
16
31
|
}
|
|
17
32
|
/**
|
|
18
33
|
* Core install function — idempotent, safe to run multiple times.
|
|
19
|
-
*
|
|
20
|
-
*
|
|
34
|
+
*
|
|
35
|
+
* Behaviour:
|
|
36
|
+
* 1. Migrate away from pre-0.7 layout (deletes editor-specific instruction
|
|
37
|
+
* files that have been superseded by the canonical SKILL.md folder).
|
|
38
|
+
* 2. Always write `.agents/skills/git-impact/` (cross-vendor standard).
|
|
39
|
+
* 3. Mirror the same SKILL.md folder into each requested editor's path.
|
|
40
|
+
* 4. Touch context.json, .gitignore, CLAUDE.md, manifest.json.
|
|
21
41
|
*/
|
|
22
42
|
export declare function install(opts: InstallOptions): InstalledFile[];
|
|
23
43
|
/**
|
|
24
44
|
* Look for editor-specific directories in the repo. Returns whichever editors
|
|
25
|
-
* already have config there, in
|
|
45
|
+
* already have config there, in catalog order. Lets `init` skip the "which AI
|
|
26
46
|
* tools do you use?" question when the answer is obvious from the filesystem.
|
|
47
|
+
*
|
|
48
|
+
* Note: `agents` (the cross-vendor `.agents/skills/` baseline) is always
|
|
49
|
+
* written by `install()` regardless of detection, so it's excluded from this
|
|
50
|
+
* return value.
|
|
27
51
|
*/
|
|
28
52
|
export declare function detectEditors(repoRoot: string): Integration[];
|
|
29
53
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/init/installer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"installer.d.ts","sourceRoot":"","sources":["../../src/init/installer.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,WAAW,GACnB,QAAQ,GACR,SAAS,GACT,QAAQ,GACR,QAAQ,GACR,UAAU,GACV,aAAa,CAAC;AAgClB,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,WAAW;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAC;CACvD;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,EAAE,CAqD7D;AAqHD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAK7D;AAID;;;GAGG;AACH,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7D,OAAO,EAAE,WAAW,CAAC;IACrB,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC,CAmFD"}
|
package/dist/init/installer.js
CHANGED
|
@@ -50,14 +50,32 @@ function shippedSkillDir() {
|
|
|
50
50
|
// src/init/installer.ts → ../../skill
|
|
51
51
|
return path.resolve(__dirname, "..", "..", "skill");
|
|
52
52
|
}
|
|
53
|
+
const EDITOR_PATHS = {
|
|
54
|
+
agents: { skillsRoot: ".agents/skills", detectDir: ".agents" },
|
|
55
|
+
claude: { skillsRoot: ".claude/skills", detectDir: ".claude" },
|
|
56
|
+
copilot: { skillsRoot: ".github/skills", detectDir: ".github" },
|
|
57
|
+
cursor: { skillsRoot: ".cursor/skills", detectDir: ".cursor" },
|
|
58
|
+
gemini: { skillsRoot: ".gemini/skills", detectDir: ".gemini" },
|
|
59
|
+
opencode: { skillsRoot: ".opencode/skills", detectDir: ".opencode" },
|
|
60
|
+
antigravity: { skillsRoot: ".antigravity/skills", detectDir: ".antigravity" },
|
|
61
|
+
};
|
|
62
|
+
const ALL_EDITORS = ["claude", "copilot", "cursor", "gemini", "opencode", "antigravity"];
|
|
63
|
+
const SKILL_NAME = "git-impact";
|
|
53
64
|
/**
|
|
54
65
|
* Core install function — idempotent, safe to run multiple times.
|
|
55
|
-
*
|
|
56
|
-
*
|
|
66
|
+
*
|
|
67
|
+
* Behaviour:
|
|
68
|
+
* 1. Migrate away from pre-0.7 layout (deletes editor-specific instruction
|
|
69
|
+
* files that have been superseded by the canonical SKILL.md folder).
|
|
70
|
+
* 2. Always write `.agents/skills/git-impact/` (cross-vendor standard).
|
|
71
|
+
* 3. Mirror the same SKILL.md folder into each requested editor's path.
|
|
72
|
+
* 4. Touch context.json, .gitignore, CLAUDE.md, manifest.json.
|
|
57
73
|
*/
|
|
58
74
|
function install(opts) {
|
|
59
75
|
const { repoRoot, integrations, context } = opts;
|
|
60
76
|
const installed = [];
|
|
77
|
+
// 0. Migrate any legacy per-editor instruction files from the old installer.
|
|
78
|
+
installed.push(...migrateLegacyLayout(repoRoot));
|
|
61
79
|
// 1. Create .git-impact/ directory and context.json
|
|
62
80
|
const gitImpactDir = path.join(repoRoot, ".git-impact");
|
|
63
81
|
fs.mkdirSync(gitImpactDir, { recursive: true });
|
|
@@ -65,68 +83,94 @@ function install(opts) {
|
|
|
65
83
|
installed.push(writeFile(contextPath, (0, templates_1.CONTEXT_TEMPLATE)(context.companyDescription, context.managerPriorities, context.glossary)));
|
|
66
84
|
// 2. Update .gitignore
|
|
67
85
|
installed.push(ensureGitignore(repoRoot));
|
|
68
|
-
// 3.
|
|
69
|
-
|
|
70
|
-
|
|
86
|
+
// 3. Install the SKILL.md folder once per requested editor. `agents` is
|
|
87
|
+
// always included as a cross-vendor baseline (covers Goose/Amp/Codex/
|
|
88
|
+
// Letta/Roo and most modern Agent Skills adopters).
|
|
89
|
+
const targets = dedupe(["agents", ...integrations]);
|
|
90
|
+
for (const target of targets) {
|
|
91
|
+
installed.push(...installSkillFolder(repoRoot, target));
|
|
71
92
|
}
|
|
72
|
-
// 4.
|
|
73
|
-
|
|
93
|
+
// 4. Write CLAUDE.md when Claude Code is actually in scope. Detection
|
|
94
|
+
// matters because a Cursor-only user shouldn't get a top-level
|
|
95
|
+
// CLAUDE.md they didn't ask for; conversely, a user who later
|
|
96
|
+
// installs Claude Code should get the block on their next init
|
|
97
|
+
// even if `claude` wasn't passed explicitly.
|
|
98
|
+
if (integrations.includes("claude") || fs.existsSync(path.join(repoRoot, ".claude"))) {
|
|
74
99
|
installed.push(updateClaudeMd(repoRoot));
|
|
75
100
|
}
|
|
76
101
|
// 5. Write manifest
|
|
77
102
|
const manifest = {
|
|
78
|
-
version: "0.
|
|
103
|
+
version: "0.7.0",
|
|
79
104
|
installedAt: new Date().toISOString(),
|
|
80
|
-
integrations,
|
|
81
|
-
files: installed
|
|
105
|
+
integrations: targets,
|
|
106
|
+
files: installed
|
|
107
|
+
.filter((f) => f.action !== "removed")
|
|
108
|
+
.map((f) => path.relative(repoRoot, f.path)),
|
|
82
109
|
};
|
|
83
110
|
const manifestPath = path.join(gitImpactDir, "manifest.json");
|
|
84
111
|
fs.writeFileSync(manifestPath, JSON.stringify(manifest, null, 2) + "\n");
|
|
85
112
|
return installed;
|
|
86
113
|
}
|
|
87
|
-
// ───
|
|
88
|
-
function
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
return installCopilot(repoRoot);
|
|
94
|
-
case "cursor":
|
|
95
|
-
return installCursor(repoRoot);
|
|
96
|
-
case "gemini":
|
|
97
|
-
return installGemini(repoRoot);
|
|
98
|
-
}
|
|
114
|
+
// ─── Skill folder install ─────────────────────────────────────────────────────
|
|
115
|
+
function installSkillFolder(repoRoot, target) {
|
|
116
|
+
const spec = EDITOR_PATHS[target];
|
|
117
|
+
const destDir = path.join(repoRoot, spec.skillsRoot, SKILL_NAME);
|
|
118
|
+
// copyTree itself creates `destDir` recursively — no need to pre-create.
|
|
119
|
+
return copyTree(shippedSkillDir(), destDir);
|
|
99
120
|
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
fs.mkdirSync(
|
|
104
|
-
const src
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
121
|
+
/** Recursively mirror `src` → `dest`. Returns one InstalledFile per file copied. */
|
|
122
|
+
function copyTree(src, dest) {
|
|
123
|
+
const out = [];
|
|
124
|
+
fs.mkdirSync(dest, { recursive: true });
|
|
125
|
+
for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
|
|
126
|
+
const srcPath = path.join(src, entry.name);
|
|
127
|
+
const destPath = path.join(dest, entry.name);
|
|
128
|
+
if (entry.isDirectory()) {
|
|
129
|
+
out.push(...copyTree(srcPath, destPath));
|
|
130
|
+
}
|
|
131
|
+
else if (entry.isFile()) {
|
|
132
|
+
out.push(copyFile(srcPath, destPath));
|
|
112
133
|
}
|
|
113
134
|
}
|
|
114
|
-
return
|
|
115
|
-
}
|
|
116
|
-
function installCopilot(repoRoot) {
|
|
117
|
-
const dir = path.join(repoRoot, ".github", "instructions");
|
|
118
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
119
|
-
return [writeFile(path.join(dir, "git-impact.instructions.md"), templates_1.COPILOT_INSTRUCTIONS)];
|
|
135
|
+
return out;
|
|
120
136
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
137
|
+
// ─── Legacy migration ─────────────────────────────────────────────────────────
|
|
138
|
+
/**
|
|
139
|
+
* Files written by the pre-0.7 installer that are now superseded by the
|
|
140
|
+
* canonical SKILL.md folder. Deleted on next `init`. Parent dirs are NOT
|
|
141
|
+
* removed unless they were a git-impact-only location.
|
|
142
|
+
*/
|
|
143
|
+
const LEGACY_FILES = [
|
|
144
|
+
".github/instructions/git-impact.instructions.md",
|
|
145
|
+
".cursor/rules/git-impact.mdc",
|
|
146
|
+
".gemini/commands/git-impact.md",
|
|
147
|
+
];
|
|
148
|
+
function migrateLegacyLayout(repoRoot) {
|
|
149
|
+
const removed = [];
|
|
150
|
+
for (const rel of LEGACY_FILES) {
|
|
151
|
+
const abs = path.join(repoRoot, rel);
|
|
152
|
+
if (fs.existsSync(abs)) {
|
|
153
|
+
fs.unlinkSync(abs);
|
|
154
|
+
removed.push({ path: abs, action: "removed" });
|
|
155
|
+
// If the parent dir is now empty and was created solely for git-impact,
|
|
156
|
+
// clean it up too. Only touch dirs ending in `instructions`, `rules`,
|
|
157
|
+
// or `commands` — those are the pre-0.7 install locations.
|
|
158
|
+
tryRemoveEmptyDir(path.dirname(abs), ["instructions", "rules", "commands"]);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return removed;
|
|
125
162
|
}
|
|
126
|
-
function
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
163
|
+
function tryRemoveEmptyDir(dir, allowedBasenames) {
|
|
164
|
+
if (!allowedBasenames.includes(path.basename(dir)))
|
|
165
|
+
return;
|
|
166
|
+
try {
|
|
167
|
+
const entries = fs.readdirSync(dir);
|
|
168
|
+
if (entries.length === 0)
|
|
169
|
+
fs.rmdirSync(dir);
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
// Dir gone or not readable — nothing to do.
|
|
173
|
+
}
|
|
130
174
|
}
|
|
131
175
|
// ─── CLAUDE.md managed block ──────────────────────────────────────────────────
|
|
132
176
|
const BLOCK_START = "<!-- GIT-IMPACT START -->";
|
|
@@ -142,12 +186,10 @@ function updateClaudeMd(repoRoot) {
|
|
|
142
186
|
const startIdx = existing.indexOf(BLOCK_START);
|
|
143
187
|
const endIdx = existing.indexOf(BLOCK_END);
|
|
144
188
|
if (startIdx !== -1 && endIdx !== -1) {
|
|
145
|
-
// Replace existing block
|
|
146
189
|
const updated = existing.slice(0, startIdx) + block + existing.slice(endIdx + BLOCK_END.length);
|
|
147
190
|
fs.writeFileSync(claudeMdPath, updated);
|
|
148
191
|
return { path: claudeMdPath, action: "updated" };
|
|
149
192
|
}
|
|
150
|
-
// Append block
|
|
151
193
|
fs.writeFileSync(claudeMdPath, existing.trimEnd() + "\n\n" + block + "\n");
|
|
152
194
|
return { path: claudeMdPath, action: "updated" };
|
|
153
195
|
}
|
|
@@ -167,19 +209,18 @@ function ensureGitignore(repoRoot) {
|
|
|
167
209
|
// ─── Editor auto-detection ───────────────────────────────────────────────────
|
|
168
210
|
/**
|
|
169
211
|
* Look for editor-specific directories in the repo. Returns whichever editors
|
|
170
|
-
* already have config there, in
|
|
212
|
+
* already have config there, in catalog order. Lets `init` skip the "which AI
|
|
171
213
|
* tools do you use?" question when the answer is obvious from the filesystem.
|
|
214
|
+
*
|
|
215
|
+
* Note: `agents` (the cross-vendor `.agents/skills/` baseline) is always
|
|
216
|
+
* written by `install()` regardless of detection, so it's excluded from this
|
|
217
|
+
* return value.
|
|
172
218
|
*/
|
|
173
219
|
function detectEditors(repoRoot) {
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
{ editor: "gemini", relPath: ".gemini" },
|
|
179
|
-
];
|
|
180
|
-
return checks
|
|
181
|
-
.filter(({ relPath }) => fs.existsSync(path.join(repoRoot, relPath)))
|
|
182
|
-
.map(({ editor }) => editor);
|
|
220
|
+
return ALL_EDITORS.filter((id) => {
|
|
221
|
+
const dir = EDITOR_PATHS[id].detectDir;
|
|
222
|
+
return fs.existsSync(path.join(repoRoot, dir));
|
|
223
|
+
});
|
|
183
224
|
}
|
|
184
225
|
// ─── Interactive prompt ───────────────────────────────────────────────────────
|
|
185
226
|
/**
|
|
@@ -211,7 +252,8 @@ async function runInitWizard(repoRoot) {
|
|
|
211
252
|
? detected.join(", ")
|
|
212
253
|
: "none detected — defaulting to claude";
|
|
213
254
|
const integrationsInput = await ask(`\n Which AI editors should I install for? (comma-separated, or "all")\n` +
|
|
214
|
-
` Options:
|
|
255
|
+
` Options: ${ALL_EDITORS.join(", ")}\n` +
|
|
256
|
+
` (.agents/skills/ is always written — covers Goose, Amp, Codex, Letta, Roo)\n` +
|
|
215
257
|
` Detected in this repo: ${detectedLabel}\n` +
|
|
216
258
|
` [press Enter to use detected]\n` +
|
|
217
259
|
` > `);
|
|
@@ -226,21 +268,20 @@ async function runInitWizard(repoRoot) {
|
|
|
226
268
|
}
|
|
227
269
|
}
|
|
228
270
|
// Parse integrations
|
|
229
|
-
const ALL_INTEGRATIONS = ["claude", "copilot", "cursor", "gemini"];
|
|
230
271
|
let integrations;
|
|
231
272
|
const raw = integrationsInput.toLowerCase().trim();
|
|
232
273
|
if (!raw) {
|
|
233
|
-
// Empty input → use what we detected, or claude as the safe default.
|
|
234
274
|
integrations = detected.length > 0 ? detected : ["claude"];
|
|
235
275
|
}
|
|
236
276
|
else if (raw === "all") {
|
|
237
|
-
integrations =
|
|
277
|
+
integrations = ALL_EDITORS;
|
|
238
278
|
}
|
|
239
279
|
else {
|
|
280
|
+
const validIds = new Set(ALL_EDITORS);
|
|
240
281
|
integrations = raw
|
|
241
282
|
.split(",")
|
|
242
283
|
.map((s) => s.trim())
|
|
243
|
-
.filter((s) =>
|
|
284
|
+
.filter((s) => validIds.has(s));
|
|
244
285
|
if (integrations.length === 0)
|
|
245
286
|
integrations = detected.length > 0 ? detected : ["claude"];
|
|
246
287
|
}
|
|
@@ -261,9 +302,13 @@ function writeFile(filePath, content) {
|
|
|
261
302
|
}
|
|
262
303
|
function copyFile(srcPath, destPath) {
|
|
263
304
|
const existed = fs.existsSync(destPath);
|
|
305
|
+
fs.mkdirSync(path.dirname(destPath), { recursive: true });
|
|
264
306
|
fs.copyFileSync(srcPath, destPath);
|
|
265
307
|
return { path: destPath, action: existed ? "updated" : "created" };
|
|
266
308
|
}
|
|
309
|
+
function dedupe(xs) {
|
|
310
|
+
return Array.from(new Set(xs));
|
|
311
|
+
}
|
|
267
312
|
function loadExistingContext(repoRoot) {
|
|
268
313
|
const contextPath = path.join(repoRoot, ".git-impact", "context.json");
|
|
269
314
|
if (!fs.existsSync(contextPath))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/init/installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/init/installer.ts"],"names":[],"mappings":"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"}
|