You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Remove Phase 2 (auto-enrichment) - introduces hidden coupling
- Remove Phase 4 (pattern mining) - premature optimization
- Keep Phase 3 as optional convenience wrapper, gated by usage data
- Explicit composition is the right default: traceable, works without
commitmux, no storage bloat, always fresh data
Explicit > implicit for developer tools
**What:**Enrich cross-session memory with commit details from commitmux. Connect the "why" (task goals, blockers) with the "what" (actual code changes).
183
+
**Status:**Phase 1 shipped. Phase 2 deferred (needs usage data to justify).
184
184
185
-
**Why:** Memory currently stores commit SHAs as strings. Claude has to manually query commitmux to see what changed. Automatic enrichment creates a complete narrative: "We attempted X, hit blocker Y in file Z, solved it with commit ABC: [diff summary]."
185
+
**Current state (Phase 1):** Memory stores commit SHAs as strings. Claude queries both systems manually:
186
+
1.`get_task_history(query="auth")` → returns task with `commits=["abc123"]`
187
+
2.`commitmux_get_patch(sha="abc123")` → returns full diff and message
188
+
3. Claude synthesizes answer from both sources
186
189
187
-
**Approach (phased):**
190
+
**This explicit composition is the right default.** It's verbose but traceable, works without commitmux (step 2 just skips), and keeps concerns separated.
188
191
189
-
**Phase 1 (passive):** Already shipped. Memory stores commit SHAs, Claude queries both tools manually.
Guard: only runs if commitmux binary exists and repo is indexed.
194
+
IF usage data shows Claude frequently queries both systems together (≥5x per session over 20+ sessions), consider adding `enrich_commits` parameter to `get_task_history` as a convenience wrapper:
200
195
201
-
**Phase 3 (MCP enrichment):** Add `enrich_commits` parameter to `get_task_history`:
202
196
```json
203
197
{
204
198
"query": "auth",
205
-
"enrich_commits": true// Fetch full commit details from commitmux
199
+
"enrich_commits": true// Explicit opt-in
206
200
}
207
201
```
208
-
Returns task history WITH commit messages and diff summaries on-demand.
209
202
210
-
**Phase 4 (solution mining):** Extract patterns from diffs ("added retry logic", "fixed race condition"), store pattern taxonomy, enable pattern-based search: "How did we solve retry logic before?"
203
+
**Implementation requirements:**
204
+
- Must be explicit parameter (no auto-magic)
205
+
- Must degrade gracefully when commitmux unavailable (return SHAs only)
206
+
- Enrichment happens at query time (no storage of commit data in memory files)
207
+
- Returns commit SHAs with inline diff summaries
208
+
209
+
**Why defer Phase 2:**
210
+
- Saves Claude one MCP call, but adds complexity
211
+
- Hidden dependency on commitmux creates confusion
212
+
- Need data proving the convenience is worth the coupling
- ❌ Solution pattern mining (premature optimization, no proven need)
211
217
212
-
**Decision criteria:**Measure memory query usage for 10-20 sessions. If Claude uses `get_task_history` ≥3x per session, Phase 2 ROI is clear.
218
+
**Decision gate:**Deploy current state, measure `get_task_history`usage for 20+ sessions. If frequency ≥5x per session, revisit. Otherwise, explicit composition wins.
0 commit comments