git-impact 0.6.6 → 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 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/translation-rules.md
71
- ✅ .claude/skills/git-impact/references/html-template.md
72
- ✅ .cursor/rules/git-impact.mdc
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**, **Cursor**, and **Gemini CLI**. Claude Code and Gemini CLI get the full agentic experience (the skill auto-runs the MCP tools); Cursor and Copilot get the same instructions as paste-into-chat fallbacks.
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: a Claude Code **skill** that handles the prompting, 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.
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
- ├── .claude/
127
- │ └── skills/git-impact/
128
- │ ├── SKILL.md # Workflow (orchestrates MCP tools)
129
- │ └── references/
130
- │ ├── translation-rules.md # Loaded on demand
131
- └── html-template.md # Loaded on demand
132
- ├── .github/
133
- └── instructions/
134
- └── git-impact.instructions.md # GitHub Copilot
135
- ├── .cursor/
136
- │ └── rules/
137
- │ └── git-impact.mdc # Cursor
138
- ├── .gemini/
139
- │ └── commands/
140
- └── git-impact.md # Gemini CLI
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 # editor-specific instruction templates
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 # workflow (200 lines, orchestrates MCP tools)
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.6.6");
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" ? "✅" : f.action === "updated" ? "🔄" : "⏭️ ";
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
- `Open this repo in your AI editor and say "do my standup"`;
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}`);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -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
- * Creates all integration files, context.json, updates CLAUDE.md and .gitignore.
20
- * Returns a manifest of every file it touched.
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 stable order. Lets `init` skip the "which AI
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":"AAwBA,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,MAAM,WAAW,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAErE,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,CAAC;CAC3C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,aAAa,EAAE,CAyC7D;AAkHD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,WAAW,EAAE,CAU7D;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"}
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"}
@@ -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
- * Creates all integration files, context.json, updates CLAUDE.md and .gitignore.
56
- * Returns a manifest of every file it touched.
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. Per-integration files
69
- for (const integration of integrations) {
70
- installed.push(...installIntegration(repoRoot, integration));
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. Update CLAUDE.md if Claude integration selected
73
- if (integrations.includes("claude")) {
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.1.0",
103
+ version: "0.7.0",
79
104
  installedAt: new Date().toISOString(),
80
- integrations,
81
- files: installed.map((f) => path.relative(repoRoot, f.path)),
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
- // ─── Per-integration installers ───────────────────────────────────────────────
88
- function installIntegration(repoRoot, integration) {
89
- switch (integration) {
90
- case "claude":
91
- return installClaude(repoRoot);
92
- case "copilot":
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
- function installClaude(repoRoot) {
101
- const skillDir = path.join(repoRoot, ".claude", "skills", "git-impact");
102
- fs.mkdirSync(skillDir, { recursive: true });
103
- fs.mkdirSync(path.join(skillDir, "references"), { recursive: true });
104
- const src = shippedSkillDir();
105
- const installed = [];
106
- // Copy SKILL.md and any reference files from the shipped skill directory.
107
- installed.push(copyFile(path.join(src, "SKILL.md"), path.join(skillDir, "SKILL.md")));
108
- const refsSrc = path.join(src, "references");
109
- if (fs.existsSync(refsSrc)) {
110
- for (const file of fs.readdirSync(refsSrc)) {
111
- installed.push(copyFile(path.join(refsSrc, file), path.join(skillDir, "references", file)));
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 installed;
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
- function installCursor(repoRoot) {
122
- const dir = path.join(repoRoot, ".cursor", "rules");
123
- fs.mkdirSync(dir, { recursive: true });
124
- return [writeFile(path.join(dir, "git-impact.mdc"), templates_1.CURSOR_RULES)];
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 installGemini(repoRoot) {
127
- const dir = path.join(repoRoot, ".gemini", "commands");
128
- fs.mkdirSync(dir, { recursive: true });
129
- return [writeFile(path.join(dir, "git-impact.md"), templates_1.GEMINI_COMMAND)];
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 stable order. Lets `init` skip the "which AI
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
- const checks = [
175
- { editor: "claude", relPath: ".claude" },
176
- { editor: "copilot", relPath: ".github" },
177
- { editor: "cursor", relPath: ".cursor" },
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: claude, copilot, cursor, gemini\n` +
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 = ALL_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) => ALL_INTEGRATIONS.includes(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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"}