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.
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -5,8 +5,13 @@ export interface CommitInfo {
5
5
  message: string;
6
6
  author: string;
7
7
  body: string;
8
- diff: string;
8
+ /** Diff stats from `git diff --stat`. Omitted by default — set `includeDiff:true` to fetch. */
9
+ diff?: string;
10
+ /** Changed files. Capped to MAX_FILES_PER_COMMIT; check filesChangedTruncated for overflow. */
9
11
  filesChanged: string[];
12
+ /** True when filesChanged was capped. The full count is in filesChangedCount. */
13
+ filesChangedTruncated?: boolean;
14
+ filesChangedCount?: number;
10
15
  }
11
16
  export interface GitSummary {
12
17
  commits: CommitInfo[];
@@ -17,8 +22,20 @@ export interface GitSummary {
17
22
  from: string;
18
23
  to: string;
19
24
  };
25
+ /** True when the commit list was capped to maxCommits. */
26
+ commitsTruncated?: boolean;
27
+ /** Total commits in the window, before any cap. */
28
+ commitsTotal?: number;
20
29
  }
21
- export declare function readGitActivity(repoPath: string, since: Date, until?: Date, redactCfg?: RedactConfig): Promise<GitSummary>;
30
+ export interface ReadGitOptions {
31
+ /** Cap how many commits to return. Older commits drop off the end. Default 200. */
32
+ maxCommits?: number;
33
+ /** When true, include per-commit `--stat` diff text. Default false (saves tokens). */
34
+ includeDiff?: boolean;
35
+ /** Cap files-per-commit. Older commits with huge file lists get truncated. Default 50. */
36
+ maxFilesPerCommit?: number;
37
+ }
38
+ export declare function readGitActivity(repoPath: string, since: Date, until?: Date, redactCfg?: RedactConfig, options?: ReadGitOptions): Promise<GitSummary>;
22
39
  export declare function startOfDay(date?: Date): Date;
23
40
  export declare function startOfDaysAgo(days: number): Date;
24
41
  //# sourceMappingURL=git.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/readers/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAA8B,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CACzC;AAaD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,IAAI,EACX,KAAK,GAAE,IAAiB,EACxB,SAAS,GAAE,YAAgC,GAC1C,OAAO,CAAC,UAAU,CAAC,CAqErB;AAED,wBAAgB,UAAU,CAAC,IAAI,GAAE,IAAiB,GAAG,IAAI,CAIxD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAKjD"}
1
+ {"version":3,"file":"git.d.ts","sourceRoot":"","sources":["../../src/readers/git.ts"],"names":[],"mappings":"AAEA,OAAO,EAA8B,YAAY,EAAE,MAAM,UAAU,CAAC;AAEpE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,+FAA+F;IAC/F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+FAA+F;IAC/F,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mDAAmD;IACnD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sFAAsF;IACtF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0FAA0F;IAC1F,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAmBD,wBAAsB,eAAe,CACnC,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,IAAI,EACX,KAAK,GAAE,IAAiB,EACxB,SAAS,GAAE,YAAgC,EAC3C,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,UAAU,CAAC,CA+FrB;AAED,wBAAgB,UAAU,CAAC,IAAI,GAAE,IAAiB,GAAG,IAAI,CAIxD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAKjD"}
@@ -42,6 +42,11 @@ exports.startOfDaysAgo = startOfDaysAgo;
42
42
  const simple_git_1 = __importDefault(require("simple-git"));
43
43
  const path = __importStar(require("path"));
44
44
  const redact_1 = require("./redact");
45
+ const DEFAULTS = {
46
+ maxCommits: 200,
47
+ includeDiff: false,
48
+ maxFilesPerCommit: 50,
49
+ };
45
50
  function stripCredentials(url) {
46
51
  try {
47
52
  const parsed = new URL(url);
@@ -53,7 +58,8 @@ function stripCredentials(url) {
53
58
  return url.replace(/\/\/[^@]+@/, "//");
54
59
  }
55
60
  }
56
- async function readGitActivity(repoPath, since, until = new Date(), redactCfg = { enabled: true }) {
61
+ async function readGitActivity(repoPath, since, until = new Date(), redactCfg = { enabled: true }, options = {}) {
62
+ const opts = { ...DEFAULTS, ...options };
57
63
  const git = (0, simple_git_1.default)(repoPath);
58
64
  const sinceStr = since.toISOString();
59
65
  const untilStr = until.toISOString();
@@ -73,44 +79,67 @@ async function readGitActivity(repoPath, since, until = new Date(), redactCfg =
73
79
  .slice(-2)
74
80
  .join("/") || path.basename(repoPath);
75
81
  const branch = await git.revparse(["--abbrev-ref", "HEAD"]);
76
- const commits = await Promise.all(log.all.map(async (entry) => {
77
- // Root commits don't have a parent; `<hash>^` blows up. Fall back to
78
- // `git show --stat` which works for both root and non-root commits.
79
- const diff = await git
80
- .diff([`${entry.hash}^`, entry.hash, "--stat"])
81
- .catch(() => git.show(["--stat", "--format=", entry.hash]));
82
+ // Cap commit count. Older commits drop off newest-first is what users care about.
83
+ const commitsTotal = log.all.length;
84
+ const entries = log.all.slice(0, opts.maxCommits);
85
+ const commitsTruncated = commitsTotal > entries.length;
86
+ const commits = await Promise.all(entries.map(async (entry) => {
87
+ // Files changed — always fetched (it's the primary structural signal).
88
+ // But cap per-commit so a 6,898-file commit doesn't dominate the response.
82
89
  const showOutput = await git.show([
83
90
  "--stat",
84
91
  "--name-only",
85
92
  "--format=",
86
93
  entry.hash,
87
94
  ]);
88
- const filesChanged = showOutput
95
+ const allFiles = showOutput
89
96
  .split("\n")
90
97
  .map((l) => l.trim())
91
98
  .filter((l) => l && !l.includes("|") && !l.startsWith("=>") && !l.match(/^\d+ file/))
92
99
  .map((f) => (0, redact_1.redactFilename)(f, redactCfg));
93
- return {
100
+ const filesChangedTruncated = allFiles.length > opts.maxFilesPerCommit;
101
+ const filesChanged = filesChangedTruncated
102
+ ? allFiles.slice(0, opts.maxFilesPerCommit)
103
+ : allFiles;
104
+ // Diff is opt-in — large diffs were the main culprit blowing past the
105
+ // MCP token budget on big weeks. Most translations don't need them;
106
+ // commit body + file list usually carries the signal.
107
+ let diff;
108
+ if (opts.includeDiff) {
109
+ const raw = await git
110
+ .diff([`${entry.hash}^`, entry.hash, "--stat"])
111
+ .catch(() => git.show(["--stat", "--format=", entry.hash]));
112
+ diff = (0, redact_1.redactText)(raw, redactCfg);
113
+ }
114
+ const commitInfo = {
94
115
  hash: entry.hash.slice(0, 8),
95
116
  date: entry.date,
96
117
  message: (0, redact_1.redactText)(entry.message, redactCfg),
97
118
  author: entry.author_name,
98
119
  body: (0, redact_1.redactText)(entry.body || "", redactCfg),
99
- diff: (0, redact_1.redactText)(diff, redactCfg),
100
120
  filesChanged,
101
121
  };
122
+ if (diff)
123
+ commitInfo.diff = diff;
124
+ if (filesChangedTruncated) {
125
+ commitInfo.filesChangedTruncated = true;
126
+ commitInfo.filesChangedCount = allFiles.length;
127
+ }
128
+ return commitInfo;
102
129
  }));
103
- const allFiles = new Set(commits.flatMap((c) => c.filesChanged));
104
- return {
130
+ const totalFilesChanged = new Set(commits.flatMap((c) => c.filesChanged)).size;
131
+ const summary = {
105
132
  commits,
106
- totalFilesChanged: allFiles.size,
133
+ totalFilesChanged,
107
134
  repoName,
108
135
  branch: branch.trim(),
109
- dateRange: {
110
- from: sinceStr,
111
- to: untilStr,
112
- },
136
+ dateRange: { from: sinceStr, to: untilStr },
113
137
  };
138
+ if (commitsTruncated) {
139
+ summary.commitsTruncated = true;
140
+ summary.commitsTotal = commitsTotal;
141
+ }
142
+ return summary;
114
143
  }
115
144
  function startOfDay(date = new Date()) {
116
145
  const d = new Date(date);
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/readers/git.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/readers/git.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "git-impact",
3
- "version": "0.6.5",
3
+ "version": "0.7.0",
4
4
  "description": "Translate your git commits into plain-English business impact — runs inside your AI editor, no API key.",
5
5
  "author": "Efraim Nafady",
6
6
  "license": "MIT",
package/skill/SKILL.md CHANGED
@@ -10,8 +10,9 @@ description: >
10
10
  review", "performance review prep", "review my commits", "what's blocked",
11
11
  "weekly summary". Trigger on any request to turn raw git output into
12
12
  something a non-technical manager can read. The skill orchestrates MCP
13
- tools (get_git_activity, get_last_standup_date, save_impact_entry, render_dashboard, get_history, update_context) — it does
14
- not run sqlite3 or other DB commands directly.
13
+ tools (get_git_activity, get_last_standup_date, save_impact_entry,
14
+ render_dashboard, get_history, update_context) it does not run sqlite3
15
+ or other DB commands directly.
15
16
  ---
16
17
 
17
18
  # git-impact
@@ -23,203 +24,31 @@ rules, and produce the output. The MCP server owns all data access (git, DB).
23
24
  You own the language.
24
25
 
25
26
  If the `git-impact` MCP server is not available in this conversation, tell
26
- the user: *"The git-impact MCP server isn't connected. Add it to
27
- `.claude/settings.json` (`mcpServers.git-impact.command = "npx"`,
28
- `args = ["git-impact-mcp"]`) and restart Claude Code."* Don't try to
29
- emulate the workflow with raw bash the SQLite schema is non-trivial
30
- and you'll diverge from the canonical writer.
31
-
32
- **Pass `repo_path` explicitly to every tool call after the first.** The
33
- first `get_git_activity` call returns `_repo_root` in its response. Save
34
- that value and pass it as `repo_path` to every subsequent call
35
- (`save_impact_entry`, `render_dashboard`, etc.). The MCP server caches
36
- the resolved path within a session, but explicit passing is more reliable
37
- when the server's cwd shifts.
38
-
39
- ---
27
+ the user: *"The git-impact MCP server isn't connected. Add it to your
28
+ editor's MCP config (`command = "npx"`, `args = ["git-impact-mcp"]`) and
29
+ restart."* Don't try to emulate the workflow with raw bash — the SQLite
30
+ schema is non-trivial and you'll diverge from the canonical writer.
40
31
 
41
32
  ## Pick a mode from the user's message
42
33
 
43
- | User says | Mode |
44
- |---|---|
45
- | "do my standup", "today", "/git-impact", no args | **standup** (default) |
46
- | "since yesterday", "since 3d", "since 2026-05-01" | **standup** with explicit `since_iso` |
47
- | "review", "performance review", "last 90 days", "Q2 review" | **review** |
48
- | "init", "set up context", "configure for this repo" | **init** |
49
- | "make a presentation", "make a slide", "make me a shareable" | **standup** + **bespoke HTML** (extra step) |
50
-
51
- The default standup writes to the rolling HTML dashboard at
52
- `.git-impact/result.html` (regenerated in step 7 via the
53
- `render_dashboard` MCP tool — *not* by asking the user to run a CLI).
54
- The per-day bespoke HTML is only created when the user explicitly asks
55
- for a presentation — don't write one by default; it's expensive and
56
- most days don't need it.
57
-
58
- If the message is ambiguous, default to **standup**.
59
-
60
- ---
61
-
62
- ## Mode: standup
63
-
64
- ### 1. Resolve the lookback window
65
-
66
- - If the user said an explicit "since X", convert to an ISO timestamp and use it.
67
- - Otherwise call **`get_last_standup_date`**. If it returns a date, use the
68
- start of the day after that date as `since_iso`. If it returns null,
69
- default to start-of-today.
70
-
71
- This is the "since last standup" default — it survives weekends and days off.
72
-
73
- ### 2. Fetch git activity
74
-
75
- Call **`get_git_activity`** with `since_iso` and (optionally) `until_iso`.
76
- You'll get back commits, file stats, branch, and `_repo_root` — the
77
- absolute path the MCP server resolved.
78
-
79
- > **CRITICAL: capture `_repo_root` from this response and pass it as
80
- > `repo_path` to every subsequent tool call** (`save_impact_entry`,
81
- > `render_dashboard`, `get_history`). The MCP server caches it after
82
- > the first successful call, but threading it explicitly is the safe
83
- > belt-and-suspenders move and removes any chance the second tool call
84
- > resolves to a different directory.
85
-
86
- If there are no commits in the window: tell the user clearly and stop. Do
87
- NOT save an empty entry.
88
-
89
- ### 3. Optional: enrich with GitHub PR data
90
-
91
- If the user has a `github_token` saved in their context (the
92
- `get_git_activity` response or a prior `get_github_activity` call will tell
93
- you), call **`get_github_activity`** to pull PR titles and descriptions.
94
- PR descriptions are the single best source for accurate "why it matters"
95
- text — strongly prefer them over inference.
96
-
97
- ### 4. Translate
98
-
99
- Read **`references/translation-rules.md`** for the prompt-engineering details.
100
- Key rules at a glance:
101
-
102
- - **What + why**, not what + how
103
- - **Apply the glossary** from `context.json` (returned by the context resource
104
- or visible in `get_git_activity` output)
105
- - **Provenance is mandatory** — every saved bullet gets `pr` / `commit_body` /
106
- `commit_message` / `ticket` / `inferred`
107
- - **Group related commits** into one bullet, not many
108
- - **2-5 bullets total**, never more
109
-
110
- ### 5. Print the user-facing output
111
-
112
- ```
113
- 📅 [Day, Date or date range]
114
-
115
- ✅ [Summary]
116
- → [Why it matters]
117
-
118
- ⏳ In progress: [What]
119
- → [Expected outcome]
120
-
121
- 🚫 Blocked: [What] (only if applicable)
122
- → [What's needed]
123
-
124
- 📁 [N] files across [areas]
125
- [N] commit(s) on [branch]
126
- ```
34
+ | User says | Mode | Read |
35
+ |---|---|---|
36
+ | "do my standup", "today", "/git-impact", no args | **standup** (default) | `references/mode-standup.md` |
37
+ | "since yesterday", "since 3d", "since 2026-05-01" | **standup** + explicit `since_iso` | `references/mode-standup.md` |
38
+ | "review", "performance review", "last 90 days", "Q2 review" | **review** | `references/mode-review.md` |
39
+ | "init", "set up context", "configure for this repo" | **init** | `references/mode-init.md` |
40
+ | "make a presentation", "make a slide", "make me a shareable" | **standup** + bespoke HTML | `references/mode-standup.md` + `references/html-template.md` |
127
41
 
128
- ### 6. Save to history
42
+ If the message is ambiguous, default to **standup**. Load only the
43
+ reference file(s) for the chosen mode — don't read all of them.
129
44
 
130
- Call **`save_impact_entry`** with the structured items including
131
- `provenance` for each. The MCP tool handles the SQLite write — never run
132
- `sqlite3` directly. Required fields per item: `status`, `summary`,
133
- `provenance`. Recommended: `impact`, `refs`.
134
-
135
- Example item:
136
- ```json
137
- {
138
- "status": "done",
139
- "summary": "Shipped multi-tenant data isolation",
140
- "impact": "Unblocks SOC2 sign-off, prevents cross-company data leaks",
141
- "provenance": "pr",
142
- "refs": ["PR #142", "ENG-1234"]
143
- }
144
- ```
145
-
146
- ### 7. Regenerate the rolling dashboard, then print its URL
147
-
148
- Call **`render_dashboard`** with the same `repo_path`. It rewrites
149
- `.git-impact/result.html` so today's entry is included, and returns
150
- the `file://` URL.
151
-
152
- End your reply with that URL on its own last line so the user can
153
- ⌘-click to open:
154
-
155
- ```
156
- 🎯 file:///<absolute-repo-path>/.git-impact/result.html
157
- ```
158
-
159
- Don't try to open a browser yourself — printing the URL is enough.
160
-
161
- **Only if the user explicitly asked for a "presentation", "slide",
162
- "shareable", or "screenshot-friendly" output**, ALSO read
163
- `references/html-template.md` and use your `Write` tool to create
164
- `<repo>/.git-impact/standups/YYYY-MM-DD.html` (plus update
165
- `standups/index.html`). Most days don't need this — skip by default.
166
-
167
- ---
168
-
169
- ## Mode: review
170
-
171
- 1. Parse the period from the user's message:
172
- - "last 30 days" / "30d" → `last_days: 30`
173
- - "last 90 days" / "90d" / no arg → `last_days: 90`
174
- - "Q2-2026" → `from_date: 2026-04-01`, `to_date: 2026-06-30`
175
- 2. Call **`get_history`** with the parsed window.
176
- 3. If no entries returned: tell the user
177
- *"No saved history yet for this period. Use the standup mode daily to
178
- build up history, then come back."* and stop.
179
- 4. Synthesise themes (Features, Reliability, Security, Code review,
180
- Infrastructure). Only include themes that apply.
181
- 5. Frame as **performance review prep** (evidence pack), not a finished
182
- review — bullets should include dates and refs the user can paste into
183
- their own writing.
184
-
185
- Output:
186
- ```
187
- Performance Review Prep — [Period]
188
-
189
- [One headline sentence — biggest contribution]
190
-
191
- 🚀 [High-impact theme]
192
- • Specific achievement [date, refs]
193
-
194
- ✅ [Medium-impact theme]
195
- • ...
196
-
197
- 🔧 [Lower-impact theme]
198
- • ...
199
-
200
- 📊 [N] commits across [N] working days
201
- ```
202
-
203
- ---
204
-
205
- ## Mode: init
206
-
207
- Ask one at a time:
208
-
209
- 1. *"What does your company/product do? (1–2 sentences)"*
210
- 2. *"What does your manager care most about?"*
211
- 3. *"Technical terms to translate? Format: RLS=data security, MFA=login security (blank to skip)"*
212
-
213
- Then call **`update_context`** with the answers. Tell the user:
214
- *"Saved to `.git-impact/context.json`. Commit this to share the glossary with your team."*
215
-
216
- If the install also wrote slash command files for other editors (Cursor,
217
- Copilot, Gemini), point that out so they know the same workflow works
218
- elsewhere.
219
-
220
- ---
45
+ The default standup writes to the rolling HTML dashboard at
46
+ `.git-impact/result.html` (regenerated via the `render_dashboard` MCP tool
47
+ *not* by asking the user to run a CLI). The per-day bespoke HTML is only
48
+ created when the user explicitly asks for a presentation — don't write one
49
+ by default; it's expensive and most days don't need it.
221
50
 
222
- ## Tone
51
+ ## Tone (applies to every mode)
223
52
 
224
53
  - Write for a non-technical manager. No jargon that isn't in the glossary.
225
54
  - Short sentences. No filler. Skip "this change" / "this commit" constructions.
@@ -229,5 +58,4 @@ elsewhere.
229
58
  - 2 accurate bullets beat 5 vague ones.
230
59
 
231
60
  For prompt details, anti-patterns, and the full output format, see
232
- `references/translation-rules.md`. For the bespoke daily HTML, see
233
- `references/html-template.md`.
61
+ `references/translation-rules.md`.
@@ -0,0 +1,16 @@
1
+ # Mode: init
2
+
3
+ Configure or update the repo's `context.json` interactively. Ask one
4
+ question at a time:
5
+
6
+ 1. *"What does your company/product do? (1–2 sentences)"*
7
+ 2. *"What does your manager care most about?"*
8
+ 3. *"Technical terms to translate? Format: RLS=data security, MFA=login security (blank to skip)"*
9
+
10
+ Then call **`update_context`** with the answers. Tell the user:
11
+ *"Saved to `.git-impact/context.json`. Commit this to share the glossary with your team."*
12
+
13
+ If the install also wrote SKILL.md folders for other editors (Cursor,
14
+ Copilot, Gemini, OpenCode, and any Agent Skills adopter that reads
15
+ `.agents/skills/` — Goose, Amp, Codex, Letta, Roo), point that out so
16
+ they know the same workflow works elsewhere.
@@ -0,0 +1,40 @@
1
+ # Mode: review
2
+
3
+ Synthesise saved standup history into a performance-review evidence pack.
4
+ Not a finished review — bullets carry dates and refs the user can paste
5
+ into their own writing.
6
+
7
+ ## Steps
8
+
9
+ 1. Parse the period from the user's message:
10
+ - "last 30 days" / "30d" → `last_days: 30`
11
+ - "last 90 days" / "90d" / no arg → `last_days: 90`
12
+ - "Q2-2026" → `from_date: 2026-04-01`, `to_date: 2026-06-30`
13
+ 2. Call **`get_history`** with the parsed window.
14
+ 3. If no entries returned: tell the user
15
+ *"No saved history yet for this period. Use the standup mode daily to
16
+ build up history, then come back."* and stop.
17
+ 4. Synthesise themes (Features, Reliability, Security, Code review,
18
+ Infrastructure). Only include themes that apply.
19
+ 5. Frame as **performance review prep** (evidence pack), not a finished
20
+ review — bullets should include dates and refs the user can paste into
21
+ their own writing.
22
+
23
+ ## Output
24
+
25
+ ```
26
+ Performance Review Prep — [Period]
27
+
28
+ [One headline sentence — biggest contribution]
29
+
30
+ 🚀 [High-impact theme]
31
+ • Specific achievement [date, refs]
32
+
33
+ ✅ [Medium-impact theme]
34
+ • ...
35
+
36
+ 🔧 [Lower-impact theme]
37
+ • ...
38
+
39
+ 📊 [N] commits across [N] working days
40
+ ```
@@ -0,0 +1,122 @@
1
+ # Mode: standup
2
+
3
+ The default mode. Translates commits since the user's last standup into
4
+ 2–5 plain-English bullets, prints them, saves to history, regenerates the
5
+ rolling HTML dashboard.
6
+
7
+ ## 0. Resolve the repo path FIRST (before any MCP call)
8
+
9
+ The MCP server's cwd is not your editor's cwd — it usually lives inside
10
+ the npx cache. Every tool call needs an explicit `repo_path`. Get it once
11
+ at the top of the standup:
12
+
13
+ ```bash
14
+ pwd # returns the absolute path of the open project
15
+ ```
16
+
17
+ Save that as `REPO_PATH` and pass it as `repo_path` to every MCP tool call
18
+ in this standup. If the user's message names a specific project ("for
19
+ ~/code/foo"), use that instead.
20
+
21
+ ## 1. Resolve the lookback window
22
+
23
+ - If the user said an explicit "since X", convert to an ISO timestamp and use it.
24
+ - Otherwise call **`get_last_standup_date`**. If it returns a date, use the
25
+ start of the day after that date as `since_iso`. If it returns null,
26
+ default to start-of-today.
27
+
28
+ This is the "since last standup" default — it survives weekends and days off.
29
+
30
+ ## 2. Fetch git activity
31
+
32
+ Call **`get_git_activity`** with `since_iso` and (optionally) `until_iso`.
33
+ You'll get back commits, file stats, branch, and `_repo_root` — the
34
+ absolute path the MCP server resolved.
35
+
36
+ > **CRITICAL: capture `_repo_root` from this response and pass it as
37
+ > `repo_path` to every subsequent tool call** (`save_impact_entry`,
38
+ > `render_dashboard`, `get_history`). The MCP server caches it after
39
+ > the first successful call, but threading it explicitly is the safe
40
+ > belt-and-suspenders move and removes any chance the second tool call
41
+ > resolves to a different directory.
42
+
43
+ If there are no commits in the window: tell the user clearly and stop. Do
44
+ NOT save an empty entry.
45
+
46
+ ## 3. Optional: enrich with GitHub PR data
47
+
48
+ If the user has a `github_token` saved in their context (the
49
+ `get_git_activity` response or a prior `get_github_activity` call will tell
50
+ you), call **`get_github_activity`** to pull PR titles and descriptions.
51
+ PR descriptions are the single best source for accurate "why it matters"
52
+ text — strongly prefer them over inference.
53
+
54
+ ## 4. Translate
55
+
56
+ Read **`references/translation-rules.md`** for the prompt-engineering details.
57
+ Key rules at a glance:
58
+
59
+ - **What + why**, not what + how
60
+ - **Apply the glossary** from `context.json` (returned by the context resource
61
+ or visible in `get_git_activity` output)
62
+ - **Provenance is mandatory** — every saved bullet gets `pr` / `commit_body` /
63
+ `commit_message` / `ticket` / `inferred`
64
+ - **Group related commits** into one bullet, not many
65
+ - **2-5 bullets total**, never more
66
+
67
+ ## 5. Print the user-facing output
68
+
69
+ ```
70
+ 📅 [Day, Date or date range]
71
+
72
+ ✅ [Summary]
73
+ → [Why it matters]
74
+
75
+ ⏳ In progress: [What]
76
+ → [Expected outcome]
77
+
78
+ 🚫 Blocked: [What] (only if applicable)
79
+ → [What's needed]
80
+
81
+ 📁 [N] files across [areas]
82
+ [N] commit(s) on [branch]
83
+ ```
84
+
85
+ ## 6. Save to history
86
+
87
+ Call **`save_impact_entry`** with the structured items including
88
+ `provenance` for each. The MCP tool handles the SQLite write — never run
89
+ `sqlite3` directly. Required fields per item: `status`, `summary`,
90
+ `provenance`. Recommended: `impact`, `refs`.
91
+
92
+ Example item:
93
+ ```json
94
+ {
95
+ "status": "done",
96
+ "summary": "Shipped multi-tenant data isolation",
97
+ "impact": "Unblocks SOC2 sign-off, prevents cross-company data leaks",
98
+ "provenance": "pr",
99
+ "refs": ["PR #142", "ENG-1234"]
100
+ }
101
+ ```
102
+
103
+ ## 7. Regenerate the rolling dashboard, then print its URL
104
+
105
+ Call **`render_dashboard`** with the same `repo_path`. It rewrites
106
+ `.git-impact/result.html` so today's entry is included, and returns
107
+ the `file://` URL.
108
+
109
+ End your reply with that URL on its own last line so the user can
110
+ ⌘-click to open:
111
+
112
+ ```
113
+ 🎯 file:///<absolute-repo-path>/.git-impact/result.html
114
+ ```
115
+
116
+ Don't try to open a browser yourself — printing the URL is enough.
117
+
118
+ **Only if the user explicitly asked for a "presentation", "slide",
119
+ "shareable", or "screenshot-friendly" output**, ALSO read
120
+ `references/html-template.md` and use your `Write` tool to create
121
+ `<repo>/.git-impact/standups/YYYY-MM-DD.html` (plus update
122
+ `standups/index.html`). Most days don't need this — skip by default.