@boshu2/vibe-check 1.8.0 → 1.8.1

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.
Files changed (36) hide show
  1. package/CLAUDE.md +58 -0
  2. package/Makefile +43 -6
  3. package/README.md +80 -27
  4. package/dist/commands/session.d.ts +9 -0
  5. package/dist/commands/session.d.ts.map +1 -1
  6. package/dist/commands/session.js +57 -0
  7. package/dist/commands/session.js.map +1 -1
  8. package/dist/commands/watch.d.ts.map +1 -1
  9. package/dist/commands/watch.js +76 -0
  10. package/dist/commands/watch.js.map +1 -1
  11. package/dist/inner-loop/context-amnesia.d.ts +20 -0
  12. package/dist/inner-loop/context-amnesia.d.ts.map +1 -0
  13. package/dist/inner-loop/context-amnesia.js +249 -0
  14. package/dist/inner-loop/context-amnesia.js.map +1 -0
  15. package/dist/inner-loop/index.d.ts +39 -0
  16. package/dist/inner-loop/index.d.ts.map +1 -0
  17. package/dist/inner-loop/index.js +208 -0
  18. package/dist/inner-loop/index.js.map +1 -0
  19. package/dist/inner-loop/instruction-drift.d.ts +28 -0
  20. package/dist/inner-loop/instruction-drift.d.ts.map +1 -0
  21. package/dist/inner-loop/instruction-drift.js +260 -0
  22. package/dist/inner-loop/instruction-drift.js.map +1 -0
  23. package/dist/inner-loop/logging-only.d.ts +30 -0
  24. package/dist/inner-loop/logging-only.d.ts.map +1 -0
  25. package/dist/inner-loop/logging-only.js +264 -0
  26. package/dist/inner-loop/logging-only.js.map +1 -0
  27. package/dist/inner-loop/tests-passing-lie.d.ts +34 -0
  28. package/dist/inner-loop/tests-passing-lie.d.ts.map +1 -0
  29. package/dist/inner-loop/tests-passing-lie.js +213 -0
  30. package/dist/inner-loop/tests-passing-lie.js.map +1 -0
  31. package/dist/inner-loop/types.d.ts +111 -0
  32. package/dist/inner-loop/types.d.ts.map +1 -0
  33. package/dist/inner-loop/types.js +29 -0
  34. package/dist/inner-loop/types.js.map +1 -0
  35. package/docs/FEATURES.md +340 -0
  36. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Context Amnesia Detector
3
+ *
4
+ * Detects when AI forgets previous instructions and:
5
+ * - Reverts intentional changes
6
+ * - Re-implements code that was just deleted
7
+ * - Repeats the same fix multiple times
8
+ *
9
+ * This is a key "Inner Loop Disaster" in vibe coding.
10
+ */
11
+ import { TimelineEvent } from '../types';
12
+ import { ContextAmnesiaResult, InnerLoopConfig } from './types';
13
+ /**
14
+ * Detect context amnesia patterns in commit history.
15
+ */
16
+ export declare function detectContextAmnesia(events: TimelineEvent[], filesPerCommit: Map<string, string[]>, lineStatsPerCommit: Map<string, {
17
+ additions: number;
18
+ deletions: number;
19
+ }>, config?: Partial<InnerLoopConfig>): ContextAmnesiaResult;
20
+ //# sourceMappingURL=context-amnesia.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-amnesia.d.ts","sourceRoot":"","sources":["../../src/inner-loop/context-amnesia.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,oBAAoB,EAEpB,eAAe,EAEhB,MAAM,SAAS,CAAC;AAajB;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EAAE,EACvB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACrC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,EACzE,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,oBAAoB,CAuDtB"}
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+ /**
3
+ * Context Amnesia Detector
4
+ *
5
+ * Detects when AI forgets previous instructions and:
6
+ * - Reverts intentional changes
7
+ * - Re-implements code that was just deleted
8
+ * - Repeats the same fix multiple times
9
+ *
10
+ * This is a key "Inner Loop Disaster" in vibe coding.
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.detectContextAmnesia = detectContextAmnesia;
14
+ const date_fns_1 = require("date-fns");
15
+ const types_1 = require("./types");
16
+ /**
17
+ * Detect context amnesia patterns in commit history.
18
+ */
19
+ function detectContextAmnesia(events, filesPerCommit, lineStatsPerCommit, config = {}) {
20
+ const cfg = { ...types_1.DEFAULT_INNER_LOOP_CONFIG, ...config };
21
+ const incidents = [];
22
+ if (events.length < 2) {
23
+ return {
24
+ detected: false,
25
+ incidents: [],
26
+ totalIncidents: 0,
27
+ totalTimeWasted: 0,
28
+ message: 'Not enough commits to detect context amnesia',
29
+ };
30
+ }
31
+ // Build enriched commit data
32
+ const commits = events.map((e) => ({
33
+ hash: e.hash,
34
+ message: e.subject,
35
+ timestamp: e.timestamp,
36
+ scope: e.scope,
37
+ files: filesPerCommit.get(e.hash) || [],
38
+ additions: lineStatsPerCommit.get(e.hash)?.additions || 0,
39
+ deletions: lineStatsPerCommit.get(e.hash)?.deletions || 0,
40
+ type: e.type,
41
+ }));
42
+ // Sort by timestamp ascending
43
+ commits.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
44
+ // Detection strategies
45
+ const revertIncidents = detectReverts(commits, cfg);
46
+ const reimplementIncidents = detectReimplementation(commits, cfg);
47
+ const repeatedFixIncidents = detectRepeatedFixes(commits, cfg);
48
+ incidents.push(...revertIncidents, ...reimplementIncidents, ...repeatedFixIncidents);
49
+ // Calculate total time wasted
50
+ const totalTimeWasted = incidents.reduce((sum, i) => sum + i.gapMinutes, 0);
51
+ // Generate message
52
+ const detected = incidents.length > 0;
53
+ let message = '';
54
+ if (detected) {
55
+ const types = new Set(incidents.map((i) => i.type));
56
+ const typeStr = Array.from(types).join(', ');
57
+ message = `🧠 Context amnesia detected: ${incidents.length} incident${incidents.length > 1 ? 's' : ''} (${typeStr}). ~${totalTimeWasted}m potentially wasted.`;
58
+ }
59
+ return {
60
+ detected,
61
+ incidents: incidents.slice(0, 10), // Top 10
62
+ totalIncidents: incidents.length,
63
+ totalTimeWasted,
64
+ message,
65
+ };
66
+ }
67
+ /**
68
+ * Detect explicit reverts or undo patterns.
69
+ */
70
+ function detectReverts(commits, config) {
71
+ const incidents = [];
72
+ // Patterns that indicate a revert
73
+ const revertPatterns = [
74
+ /revert/i,
75
+ /undo/i,
76
+ /rollback/i,
77
+ /back\s*out/i,
78
+ /restore\s+previous/i,
79
+ ];
80
+ for (let i = 1; i < commits.length; i++) {
81
+ const commit = commits[i];
82
+ const isRevert = revertPatterns.some((p) => p.test(commit.message));
83
+ if (isRevert) {
84
+ // Find what was reverted (look back within window)
85
+ const windowStart = new Date(commit.timestamp.getTime() - config.amnesiaWindowMinutes * 60 * 1000);
86
+ // Find commits in window that touch same files
87
+ for (let j = i - 1; j >= 0; j--) {
88
+ const original = commits[j];
89
+ if (original.timestamp < windowStart)
90
+ break;
91
+ const sharedFiles = commit.files.filter((f) => original.files.includes(f));
92
+ if (sharedFiles.length > 0) {
93
+ const gap = (0, date_fns_1.differenceInMinutes)(commit.timestamp, original.timestamp);
94
+ incidents.push({
95
+ type: 'revert',
96
+ originalCommit: {
97
+ hash: original.hash,
98
+ message: original.message,
99
+ timestamp: original.timestamp,
100
+ },
101
+ repeatCommit: {
102
+ hash: commit.hash,
103
+ message: commit.message,
104
+ timestamp: commit.timestamp,
105
+ },
106
+ scope: commit.scope || original.scope,
107
+ filesAffected: sharedFiles,
108
+ gapMinutes: gap,
109
+ description: `Reverted changes from ${gap}m ago`,
110
+ });
111
+ break; // Only count once per revert
112
+ }
113
+ }
114
+ }
115
+ }
116
+ return incidents;
117
+ }
118
+ /**
119
+ * Detect reimplementation: code deleted then similar code re-added.
120
+ */
121
+ function detectReimplementation(commits, config) {
122
+ const incidents = [];
123
+ // Track significant deletions
124
+ const deletions = [];
125
+ for (const commit of commits) {
126
+ // Significant deletion: more deletions than additions
127
+ if (commit.deletions > commit.additions && commit.deletions > 10) {
128
+ deletions.push({
129
+ commit,
130
+ files: commit.files,
131
+ linesDeleted: commit.deletions,
132
+ });
133
+ }
134
+ }
135
+ // Look for later commits that re-add similar content to same files
136
+ for (const deletion of deletions) {
137
+ const windowEnd = new Date(deletion.commit.timestamp.getTime() + config.amnesiaWindowMinutes * 60 * 1000);
138
+ for (const commit of commits) {
139
+ // Must be after the deletion
140
+ if (commit.timestamp <= deletion.commit.timestamp)
141
+ continue;
142
+ if (commit.timestamp > windowEnd)
143
+ continue;
144
+ // Must touch same files with additions
145
+ const sharedFiles = commit.files.filter((f) => deletion.files.includes(f));
146
+ if (sharedFiles.length === 0)
147
+ continue;
148
+ // Must have significant additions (reimplementing)
149
+ if (commit.additions < deletion.linesDeleted * 0.5)
150
+ continue;
151
+ const gap = (0, date_fns_1.differenceInMinutes)(commit.timestamp, deletion.commit.timestamp);
152
+ // Check if this looks like reimplementation vs intentional refactor
153
+ // Refactors usually have "refactor" in message
154
+ if (/refactor/i.test(commit.message))
155
+ continue;
156
+ incidents.push({
157
+ type: 'reimplementation',
158
+ originalCommit: {
159
+ hash: deletion.commit.hash,
160
+ message: deletion.commit.message,
161
+ timestamp: deletion.commit.timestamp,
162
+ },
163
+ repeatCommit: {
164
+ hash: commit.hash,
165
+ message: commit.message,
166
+ timestamp: commit.timestamp,
167
+ },
168
+ scope: commit.scope || deletion.commit.scope,
169
+ filesAffected: sharedFiles,
170
+ gapMinutes: gap,
171
+ description: `Deleted ${deletion.linesDeleted} lines, then re-added ${commit.additions} lines ${gap}m later`,
172
+ });
173
+ }
174
+ }
175
+ return incidents;
176
+ }
177
+ /**
178
+ * Detect repeated fixes: same area fixed multiple times in short window.
179
+ */
180
+ function detectRepeatedFixes(commits, config) {
181
+ const incidents = [];
182
+ // Group fix commits by scope/files
183
+ const fixCommits = commits.filter((c) => c.type === 'fix');
184
+ // Track fixes per scope within time window
185
+ const scopeFixes = new Map();
186
+ for (const fix of fixCommits) {
187
+ const scope = fix.scope || fix.files[0] || 'unknown';
188
+ if (!scopeFixes.has(scope)) {
189
+ scopeFixes.set(scope, []);
190
+ }
191
+ scopeFixes.get(scope).push(fix);
192
+ }
193
+ // Find scopes with 3+ fixes in window (beyond normal spiral detection)
194
+ for (const [scope, fixes] of scopeFixes) {
195
+ if (fixes.length < 3)
196
+ continue;
197
+ // Check if messages are similar (forgot what was tried)
198
+ for (let i = 0; i < fixes.length - 1; i++) {
199
+ const current = fixes[i];
200
+ const next = fixes[i + 1];
201
+ const gap = (0, date_fns_1.differenceInMinutes)(next.timestamp, current.timestamp);
202
+ if (gap > config.amnesiaWindowMinutes)
203
+ continue;
204
+ // Check message similarity
205
+ const similarity = calculateSimilarity(current.message, next.message);
206
+ if (similarity > config.similarityThreshold) {
207
+ incidents.push({
208
+ type: 'forgotten_change',
209
+ originalCommit: {
210
+ hash: current.hash,
211
+ message: current.message,
212
+ timestamp: current.timestamp,
213
+ },
214
+ repeatCommit: {
215
+ hash: next.hash,
216
+ message: next.message,
217
+ timestamp: next.timestamp,
218
+ },
219
+ scope,
220
+ filesAffected: [...new Set([...current.files, ...next.files])],
221
+ gapMinutes: gap,
222
+ description: `Similar fix attempted ${gap}m later (${Math.round(similarity * 100)}% similar)`,
223
+ });
224
+ }
225
+ }
226
+ }
227
+ return incidents;
228
+ }
229
+ /**
230
+ * Calculate similarity between two commit messages (Jaccard index).
231
+ */
232
+ function calculateSimilarity(msg1, msg2) {
233
+ const words1 = new Set(msg1
234
+ .toLowerCase()
235
+ .replace(/[^a-z0-9\s]/g, '')
236
+ .split(/\s+/)
237
+ .filter((w) => w.length > 2));
238
+ const words2 = new Set(msg2
239
+ .toLowerCase()
240
+ .replace(/[^a-z0-9\s]/g, '')
241
+ .split(/\s+/)
242
+ .filter((w) => w.length > 2));
243
+ if (words1.size === 0 || words2.size === 0)
244
+ return 0;
245
+ const intersection = new Set([...words1].filter((w) => words2.has(w)));
246
+ const union = new Set([...words1, ...words2]);
247
+ return intersection.size / union.size;
248
+ }
249
+ //# sourceMappingURL=context-amnesia.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-amnesia.js","sourceRoot":"","sources":["../../src/inner-loop/context-amnesia.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Inner Loop Failure Pattern Detection
3
+ *
4
+ * This module detects the 4 "Inner Loop Disasters" from vibe coding:
5
+ * 1. "Tests Passing" Lie - AI claims success but code doesn't work
6
+ * 2. Context Amnesia - Forgets instructions, re-does work
7
+ * 3. Instruction Drift - "Improves" things not asked for
8
+ * 4. Debug Loop Spiral - Adds logging instead of fixing
9
+ */
10
+ import { TimelineEvent } from '../types';
11
+ import { InnerLoopAnalysis, InnerLoopConfig } from './types';
12
+ export * from './types';
13
+ export { detectTestsPassingLie } from './tests-passing-lie';
14
+ export { detectContextAmnesia } from './context-amnesia';
15
+ export { detectInstructionDrift, createSessionScope, inferSessionScope } from './instruction-drift';
16
+ export { detectLoggingOnlyCommits, analyzeCommitsForLogging } from './logging-only';
17
+ /**
18
+ * Run all inner loop failure pattern detectors.
19
+ */
20
+ export declare function analyzeInnerLoop(events: TimelineEvent[], filesPerCommit: Map<string, string[]>, lineStatsPerCommit: Map<string, {
21
+ additions: number;
22
+ deletions: number;
23
+ }>, config?: Partial<InnerLoopConfig>): InnerLoopAnalysis;
24
+ /**
25
+ * Quick check for inner loop issues (fast, no diff analysis).
26
+ */
27
+ export declare function quickInnerLoopCheck(events: TimelineEvent[], filesPerCommit: Map<string, string[]>, lineStatsPerCommit: Map<string, {
28
+ additions: number;
29
+ deletions: number;
30
+ }>): {
31
+ hasIssues: boolean;
32
+ issueCount: number;
33
+ topIssue: string | null;
34
+ };
35
+ /**
36
+ * Format inner loop analysis for terminal output.
37
+ */
38
+ export declare function formatInnerLoopAnalysis(analysis: InnerLoopAnalysis): string;
39
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/inner-loop/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,iBAAiB,EACjB,eAAe,EAOhB,MAAM,SAAS,CAAC;AAOjB,cAAc,SAAS,CAAC;AAGxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAEpF;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,aAAa,EAAE,EACvB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACrC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,EACzE,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,iBAAiB,CAqDnB;AA2FD;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EAAE,EACvB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACrC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,GACxE;IACD,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,CAcA;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAgD3E"}
@@ -0,0 +1,208 @@
1
+ "use strict";
2
+ /**
3
+ * Inner Loop Failure Pattern Detection
4
+ *
5
+ * This module detects the 4 "Inner Loop Disasters" from vibe coding:
6
+ * 1. "Tests Passing" Lie - AI claims success but code doesn't work
7
+ * 2. Context Amnesia - Forgets instructions, re-does work
8
+ * 3. Instruction Drift - "Improves" things not asked for
9
+ * 4. Debug Loop Spiral - Adds logging instead of fixing
10
+ */
11
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
12
+ if (k2 === undefined) k2 = k;
13
+ var desc = Object.getOwnPropertyDescriptor(m, k);
14
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
15
+ desc = { enumerable: true, get: function() { return m[k]; } };
16
+ }
17
+ Object.defineProperty(o, k2, desc);
18
+ }) : (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ o[k2] = m[k];
21
+ }));
22
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
23
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.analyzeCommitsForLogging = exports.detectLoggingOnlyCommits = exports.inferSessionScope = exports.createSessionScope = exports.detectInstructionDrift = exports.detectContextAmnesia = exports.detectTestsPassingLie = void 0;
27
+ exports.analyzeInnerLoop = analyzeInnerLoop;
28
+ exports.quickInnerLoopCheck = quickInnerLoopCheck;
29
+ exports.formatInnerLoopAnalysis = formatInnerLoopAnalysis;
30
+ const types_1 = require("./types");
31
+ const tests_passing_lie_1 = require("./tests-passing-lie");
32
+ const context_amnesia_1 = require("./context-amnesia");
33
+ const instruction_drift_1 = require("./instruction-drift");
34
+ const logging_only_1 = require("./logging-only");
35
+ // Re-export types
36
+ __exportStar(require("./types"), exports);
37
+ // Re-export individual detectors
38
+ var tests_passing_lie_2 = require("./tests-passing-lie");
39
+ Object.defineProperty(exports, "detectTestsPassingLie", { enumerable: true, get: function () { return tests_passing_lie_2.detectTestsPassingLie; } });
40
+ var context_amnesia_2 = require("./context-amnesia");
41
+ Object.defineProperty(exports, "detectContextAmnesia", { enumerable: true, get: function () { return context_amnesia_2.detectContextAmnesia; } });
42
+ var instruction_drift_2 = require("./instruction-drift");
43
+ Object.defineProperty(exports, "detectInstructionDrift", { enumerable: true, get: function () { return instruction_drift_2.detectInstructionDrift; } });
44
+ Object.defineProperty(exports, "createSessionScope", { enumerable: true, get: function () { return instruction_drift_2.createSessionScope; } });
45
+ Object.defineProperty(exports, "inferSessionScope", { enumerable: true, get: function () { return instruction_drift_2.inferSessionScope; } });
46
+ var logging_only_2 = require("./logging-only");
47
+ Object.defineProperty(exports, "detectLoggingOnlyCommits", { enumerable: true, get: function () { return logging_only_2.detectLoggingOnlyCommits; } });
48
+ Object.defineProperty(exports, "analyzeCommitsForLogging", { enumerable: true, get: function () { return logging_only_2.analyzeCommitsForLogging; } });
49
+ /**
50
+ * Run all inner loop failure pattern detectors.
51
+ */
52
+ function analyzeInnerLoop(events, filesPerCommit, lineStatsPerCommit, config = {}) {
53
+ const cfg = { ...types_1.DEFAULT_INNER_LOOP_CONFIG, ...config };
54
+ // Run all detectors
55
+ const testsPassingLie = (0, tests_passing_lie_1.detectTestsPassingLie)(events, filesPerCommit, cfg);
56
+ const contextAmnesia = (0, context_amnesia_1.detectContextAmnesia)(events, filesPerCommit, lineStatsPerCommit, cfg);
57
+ const instructionDrift = (0, instruction_drift_1.detectInstructionDrift)(events, filesPerCommit, cfg);
58
+ const loggingOnly = (0, logging_only_1.detectLoggingOnlyCommits)(events, cfg);
59
+ // Calculate summary
60
+ const totalIssues = testsPassingLie.totalLies +
61
+ contextAmnesia.totalIncidents +
62
+ instructionDrift.totalDriftCommits +
63
+ (loggingOnly.detected ? 1 : 0);
64
+ // Critical: Tests Passing Lie, high Context Amnesia
65
+ const criticalIssues = testsPassingLie.totalLies + (contextAmnesia.totalIncidents >= 3 ? 1 : 0);
66
+ // Warning: Instruction Drift, Debug Loop
67
+ const warningIssues = (instructionDrift.detected ? 1 : 0) + (loggingOnly.detected ? 1 : 0);
68
+ // Determine overall health
69
+ let overallHealth = 'healthy';
70
+ if (criticalIssues > 0) {
71
+ overallHealth = 'critical';
72
+ }
73
+ else if (warningIssues > 0 || contextAmnesia.totalIncidents > 0) {
74
+ overallHealth = 'warning';
75
+ }
76
+ // Generate recommendations
77
+ const recommendations = generateRecommendations(testsPassingLie, contextAmnesia, instructionDrift, loggingOnly);
78
+ return {
79
+ testsPassingLie,
80
+ contextAmnesia,
81
+ instructionDrift,
82
+ loggingOnly,
83
+ summary: {
84
+ totalIssuesDetected: totalIssues,
85
+ criticalIssues,
86
+ warningIssues,
87
+ overallHealth,
88
+ },
89
+ recommendations,
90
+ };
91
+ }
92
+ /**
93
+ * Generate recommendations based on detected patterns.
94
+ */
95
+ function generateRecommendations(testsPassingLie, contextAmnesia, instructionDrift, loggingOnly) {
96
+ const recommendations = [];
97
+ // Tests Passing Lie recommendations
98
+ if (testsPassingLie.detected) {
99
+ recommendations.push('🤥 STOP: AI claimed success but code needed fixes. Verify builds/tests actually pass before proceeding.');
100
+ recommendations.push('Run `npm test` or your test command after each "fix" commit to verify.');
101
+ }
102
+ // Context Amnesia recommendations
103
+ if (contextAmnesia.detected) {
104
+ if (contextAmnesia.incidents.some((i) => i.type === 'revert')) {
105
+ recommendations.push('🧠 AI is reverting previous work. Check if changes were intentional before accepting reverts.');
106
+ }
107
+ if (contextAmnesia.incidents.some((i) => i.type === 'reimplementation')) {
108
+ recommendations.push('🧠 AI deleted then re-added code. This suggests context loss - try breaking task into smaller pieces.');
109
+ }
110
+ if (contextAmnesia.incidents.some((i) => i.type === 'forgotten_change')) {
111
+ recommendations.push('🧠 Similar fixes being attempted repeatedly. Consider restarting with clear instructions.');
112
+ }
113
+ }
114
+ // Instruction Drift recommendations
115
+ if (instructionDrift.detected) {
116
+ if (instructionDrift.drifts.some((d) => d.driftType === 'scope_creep')) {
117
+ recommendations.push('🎯 AI changed files outside your stated scope. Be explicit: "ONLY modify src/feature.ts"');
118
+ }
119
+ if (instructionDrift.drifts.some((d) => d.driftType === 'unrequested_refactor')) {
120
+ recommendations.push('🎯 AI did unrequested refactoring. Add: "Do NOT refactor or clean up other code"');
121
+ }
122
+ if (instructionDrift.drifts.some((d) => d.driftType === 'unrequested_improvement')) {
123
+ recommendations.push('🎯 AI made unrequested "improvements". Be explicit about what NOT to do.');
124
+ }
125
+ }
126
+ // Debug Loop recommendations
127
+ if (loggingOnly.detected) {
128
+ recommendations.push('🔍 Debug loop detected: Multiple logging commits without fixes. STOP and think about the root cause.');
129
+ recommendations.push('Try: 1) Read error messages carefully, 2) Check the docs, 3) Simplify to minimal reproduction');
130
+ if (loggingOnly.consecutiveLoggingCount >= 5) {
131
+ recommendations.push('⚠️ EMERGENCY: 5+ consecutive debug commits. Consider: git stash, take a break, start fresh.');
132
+ }
133
+ }
134
+ // General emergency recommendation
135
+ const totalCritical = testsPassingLie.totalLies +
136
+ contextAmnesia.totalIncidents +
137
+ (loggingOnly.consecutiveLoggingCount >= 3 ? 1 : 0);
138
+ if (totalCritical >= 3) {
139
+ recommendations.unshift('🚨 EMERGENCY PROTOCOL: Multiple inner loop failures detected. STOP → git status → backup → start simple');
140
+ }
141
+ return recommendations;
142
+ }
143
+ /**
144
+ * Quick check for inner loop issues (fast, no diff analysis).
145
+ */
146
+ function quickInnerLoopCheck(events, filesPerCommit, lineStatsPerCommit) {
147
+ const analysis = analyzeInnerLoop(events, filesPerCommit, lineStatsPerCommit);
148
+ const issues = [];
149
+ if (analysis.testsPassingLie.detected)
150
+ issues.push('tests-passing-lie');
151
+ if (analysis.contextAmnesia.detected)
152
+ issues.push('context-amnesia');
153
+ if (analysis.instructionDrift.detected)
154
+ issues.push('instruction-drift');
155
+ if (analysis.loggingOnly.detected)
156
+ issues.push('debug-loop');
157
+ return {
158
+ hasIssues: issues.length > 0,
159
+ issueCount: issues.length,
160
+ topIssue: issues[0] || null,
161
+ };
162
+ }
163
+ /**
164
+ * Format inner loop analysis for terminal output.
165
+ */
166
+ function formatInnerLoopAnalysis(analysis) {
167
+ const lines = [];
168
+ // Header
169
+ const healthEmoji = analysis.summary.overallHealth === 'critical'
170
+ ? '🚨'
171
+ : analysis.summary.overallHealth === 'warning'
172
+ ? '⚠️'
173
+ : '✅';
174
+ lines.push(`\n${healthEmoji} Inner Loop Health: ${analysis.summary.overallHealth.toUpperCase()}`);
175
+ lines.push('─'.repeat(50));
176
+ // Individual pattern results
177
+ if (analysis.testsPassingLie.detected) {
178
+ lines.push(`🤥 Tests Passing Lie: ${analysis.testsPassingLie.message}`);
179
+ }
180
+ if (analysis.contextAmnesia.detected) {
181
+ lines.push(`🧠 Context Amnesia: ${analysis.contextAmnesia.message}`);
182
+ }
183
+ if (analysis.instructionDrift.detected) {
184
+ lines.push(`🎯 Instruction Drift: ${analysis.instructionDrift.message}`);
185
+ }
186
+ if (analysis.loggingOnly.detected) {
187
+ lines.push(`🔍 Debug Loop: ${analysis.loggingOnly.message}`);
188
+ }
189
+ // Summary
190
+ if (analysis.summary.totalIssuesDetected > 0) {
191
+ lines.push('');
192
+ lines.push(`Total: ${analysis.summary.totalIssuesDetected} issue${analysis.summary.totalIssuesDetected > 1 ? 's' : ''} ` +
193
+ `(${analysis.summary.criticalIssues} critical, ${analysis.summary.warningIssues} warning)`);
194
+ }
195
+ else {
196
+ lines.push('No inner loop issues detected.');
197
+ }
198
+ // Recommendations
199
+ if (analysis.recommendations.length > 0) {
200
+ lines.push('');
201
+ lines.push('Recommendations:');
202
+ for (const rec of analysis.recommendations.slice(0, 5)) {
203
+ lines.push(` ${rec}`);
204
+ }
205
+ }
206
+ return lines.join('\n');
207
+ }
208
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/inner-loop/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Instruction Drift Detector
3
+ *
4
+ * Detects when AI starts "improving" things that weren't asked for:
5
+ * - Changes files outside the stated scope
6
+ * - Unrequested refactors
7
+ * - Style changes to unrelated code
8
+ * - "Cleanup" of code that was working fine
9
+ *
10
+ * This is a key "Inner Loop Disaster" in vibe coding.
11
+ */
12
+ import { TimelineEvent } from '../types';
13
+ import { InstructionDriftResult, SessionScope, InnerLoopConfig } from './types';
14
+ /**
15
+ * Detect instruction drift in commit history.
16
+ */
17
+ export declare function detectInstructionDrift(events: TimelineEvent[], filesPerCommit: Map<string, string[]>, config?: Partial<InnerLoopConfig>): InstructionDriftResult;
18
+ /**
19
+ * Set session scope for drift detection.
20
+ * Call this at session start to declare intended working files.
21
+ */
22
+ export declare function createSessionScope(intendedFiles: string[], intendedDirs: string[], taskDescription?: string): SessionScope;
23
+ /**
24
+ * Infer session scope from first N commits.
25
+ * Use this if no explicit scope was declared.
26
+ */
27
+ export declare function inferSessionScope(events: TimelineEvent[], filesPerCommit: Map<string, string[]>, commitCount?: number): SessionScope;
28
+ //# sourceMappingURL=instruction-drift.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instruction-drift.d.ts","sourceRoot":"","sources":["../../src/inner-loop/instruction-drift.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EACL,sBAAsB,EAEtB,YAAY,EACZ,eAAe,EAEhB,MAAM,SAAS,CAAC;AA6CjB;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,aAAa,EAAE,EACvB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACrC,MAAM,GAAE,OAAO,CAAC,eAAe,CAAM,GACpC,sBAAsB,CA8CxB;AAsKD;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,EAAE,EACvB,YAAY,EAAE,MAAM,EAAE,EACtB,eAAe,CAAC,EAAE,MAAM,GACvB,YAAY,CAOd;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,aAAa,EAAE,EACvB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EACrC,WAAW,GAAE,MAAU,GACtB,YAAY,CAsBd"}