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/dist/mcp/tools.js.map
CHANGED
|
@@ -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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"}
|
package/dist/readers/git.d.ts
CHANGED
|
@@ -5,8 +5,13 @@ export interface CommitInfo {
|
|
|
5
5
|
message: string;
|
|
6
6
|
author: string;
|
|
7
7
|
body: string;
|
|
8
|
-
diff:
|
|
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
|
|
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;
|
|
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"}
|
package/dist/readers/git.js
CHANGED
|
@@ -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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
104
|
-
|
|
130
|
+
const totalFilesChanged = new Set(commits.flatMap((c) => c.filesChanged)).size;
|
|
131
|
+
const summary = {
|
|
105
132
|
commits,
|
|
106
|
-
totalFilesChanged
|
|
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);
|
package/dist/readers/git.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/readers/git.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/readers/git.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
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,
|
|
14
|
-
|
|
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
|
-
|
|
28
|
-
|
|
29
|
-
|
|
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**
|
|
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** +
|
|
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
|
-
|
|
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
|
-
|
|
131
|
-
`
|
|
132
|
-
|
|
133
|
-
|
|
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`.
|
|
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.
|