@boshu2/vibe-check 1.5.0 → 1.6.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/.agents/bundles/insight-mining-dashboard-research-2025-11-30.md +400 -0
- package/.agents/bundles/storage-enhancement-research-2025-11-30.md +292 -0
- package/.agents/bundles/timeline-feature-research-complete-2025-11-30.md +301 -0
- package/.agents/plans/insight-dashboard-plan-2025-11-30.md +1130 -0
- package/.agents/plans/json-storage-enhancement-plan.md +717 -0
- package/.agents/plans/storage-hardening-and-cache-plan.md +592 -0
- package/.agents/plans/test-coverage-gaps-plan.md +1117 -0
- package/.agents/plans/timeline-feature-plan.md +193 -0
- package/.agents/plans/vibe_timeline_research_findings.md +553 -0
- package/.claude/settings.local.json +1 -0
- package/.vibe-check/.gitignore +6 -0
- package/CHANGELOG.md +46 -0
- package/CLAUDE.md +24 -0
- package/CONTRIBUTING.md +227 -0
- package/README.md +200 -143
- package/claude-progress.json +191 -9
- package/claude-progress.txt +257 -0
- package/dashboard/app.js +75 -2
- package/dashboard/dashboard-data.json +653 -0
- package/dashboard/index.html +13 -0
- package/dashboard/styles.css +61 -0
- package/dist/analysis/cross-session-analysis.d.ts +68 -0
- package/dist/analysis/cross-session-analysis.d.ts.map +1 -0
- package/dist/analysis/cross-session-analysis.js +174 -0
- package/dist/analysis/cross-session-analysis.js.map +1 -0
- package/dist/analysis/index.d.ts +2 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/analysis/index.js +12 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/cli.js +10 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts +2 -0
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +105 -2
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/cache.d.ts +6 -0
- package/dist/commands/cache.d.ts.map +1 -0
- package/dist/commands/cache.js +168 -0
- package/dist/commands/cache.js.map +1 -0
- package/dist/commands/dashboard.d.ts +8 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +109 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +8 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/timeline.d.ts +14 -0
- package/dist/commands/timeline.d.ts.map +1 -0
- package/dist/commands/timeline.js +462 -0
- package/dist/commands/timeline.js.map +1 -0
- package/dist/git.d.ts +24 -0
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +94 -0
- package/dist/git.js.map +1 -1
- package/dist/insights/generators.d.ts +44 -0
- package/dist/insights/generators.d.ts.map +1 -0
- package/dist/insights/generators.js +289 -0
- package/dist/insights/generators.js.map +1 -0
- package/dist/insights/index.d.ts +16 -0
- package/dist/insights/index.d.ts.map +1 -0
- package/dist/insights/index.js +171 -0
- package/dist/insights/index.js.map +1 -0
- package/dist/insights/types.d.ts +93 -0
- package/dist/insights/types.d.ts.map +1 -0
- package/dist/insights/types.js +6 -0
- package/dist/insights/types.js.map +1 -0
- package/dist/output/timeline-html.d.ts +6 -0
- package/dist/output/timeline-html.d.ts.map +1 -0
- package/dist/output/timeline-html.js +389 -0
- package/dist/output/timeline-html.js.map +1 -0
- package/dist/output/timeline-markdown.d.ts +6 -0
- package/dist/output/timeline-markdown.d.ts.map +1 -0
- package/dist/output/timeline-markdown.js +167 -0
- package/dist/output/timeline-markdown.js.map +1 -0
- package/dist/output/timeline.d.ts +9 -0
- package/dist/output/timeline.d.ts.map +1 -0
- package/dist/output/timeline.js +318 -0
- package/dist/output/timeline.js.map +1 -0
- package/dist/patterns/detour.d.ts +32 -0
- package/dist/patterns/detour.d.ts.map +1 -0
- package/dist/patterns/detour.js +137 -0
- package/dist/patterns/detour.js.map +1 -0
- package/dist/patterns/flow-state.d.ts +16 -0
- package/dist/patterns/flow-state.d.ts.map +1 -0
- package/dist/patterns/flow-state.js +40 -0
- package/dist/patterns/flow-state.js.map +1 -0
- package/dist/patterns/index.d.ts +8 -0
- package/dist/patterns/index.d.ts.map +1 -0
- package/dist/patterns/index.js +22 -0
- package/dist/patterns/index.js.map +1 -0
- package/dist/patterns/intervention-effectiveness.d.ts +42 -0
- package/dist/patterns/intervention-effectiveness.d.ts.map +1 -0
- package/dist/patterns/intervention-effectiveness.js +196 -0
- package/dist/patterns/intervention-effectiveness.js.map +1 -0
- package/dist/patterns/late-night.d.ts +30 -0
- package/dist/patterns/late-night.d.ts.map +1 -0
- package/dist/patterns/late-night.js +141 -0
- package/dist/patterns/late-night.js.map +1 -0
- package/dist/patterns/post-delete-sprint.d.ts +28 -0
- package/dist/patterns/post-delete-sprint.d.ts.map +1 -0
- package/dist/patterns/post-delete-sprint.js +85 -0
- package/dist/patterns/post-delete-sprint.js.map +1 -0
- package/dist/patterns/spiral-regression.d.ts +49 -0
- package/dist/patterns/spiral-regression.d.ts.map +1 -0
- package/dist/patterns/spiral-regression.js +219 -0
- package/dist/patterns/spiral-regression.js.map +1 -0
- package/dist/patterns/thrashing.d.ts +25 -0
- package/dist/patterns/thrashing.d.ts.map +1 -0
- package/dist/patterns/thrashing.js +111 -0
- package/dist/patterns/thrashing.js.map +1 -0
- package/dist/storage/atomic.d.ts +40 -0
- package/dist/storage/atomic.d.ts.map +1 -0
- package/dist/storage/atomic.js +155 -0
- package/dist/storage/atomic.js.map +1 -0
- package/dist/storage/commit-log.d.ts +35 -0
- package/dist/storage/commit-log.d.ts.map +1 -0
- package/dist/storage/commit-log.js +128 -0
- package/dist/storage/commit-log.js.map +1 -0
- package/dist/storage/index.d.ts +5 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +33 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/schema.d.ts +32 -0
- package/dist/storage/schema.d.ts.map +1 -0
- package/dist/storage/schema.js +37 -0
- package/dist/storage/schema.js.map +1 -0
- package/dist/storage/timeline-store.d.ts +117 -0
- package/dist/storage/timeline-store.d.ts.map +1 -0
- package/dist/storage/timeline-store.js +438 -0
- package/dist/storage/timeline-store.js.map +1 -0
- package/dist/types.d.ts +96 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/ARCHITECTURE.md +458 -0
- package/docs/DATA-ARCHITECTURE.md +565 -0
- package/docs/GAMIFICATION.md +564 -0
- package/docs/JSON-STORAGE-PATTERNS.md +512 -0
- package/docs/METRICS-EXPLAINED.md +394 -0
- package/docs/UNIFIED-ECOSYSTEM.md +560 -0
- package/docs/VIBE-ECOSYSTEM.md +406 -0
- package/feature-list.json +48 -0
- package/package.json +2 -1
- package/vitest.config.ts +1 -5
- package/.vibe-check/calibration.json +0 -38
- package/.vibe-check/latest.json +0 -114
- package/.vibe-check/sessions.json +0 -44
- package/PLAN-ultimate-game.md +0 -1362
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
# vibe-check timeline: Complete Research Bundle
|
|
2
|
+
|
|
3
|
+
**Type:** Research Synthesis
|
|
4
|
+
**Created:** 2025-11-30
|
|
5
|
+
**Agents:** 3 parallel (Git Data, Pattern Detection, UX/Visualization)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Executive Summary
|
|
10
|
+
|
|
11
|
+
The `vibe-check timeline` command will transform vibe-check from a point-in-time metrics tool into a **retrospective storytelling tool**. Based on analysis of the actual vibe-check git repository (43 commits, 9 sessions, 3 days), we have comprehensive data on what's possible and valuable.
|
|
12
|
+
|
|
13
|
+
**Key Finding:** Git provides everything we need - no external storage required. The timeline can show ~10 hours of actual coding time vs. 45 hours wall clock, highlight the 2h 24m ML detour, and surface patterns like "5 features in 1h 58m post-delete."
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## The Numbers (From Real Data)
|
|
18
|
+
|
|
19
|
+
| Metric | Value | Source |
|
|
20
|
+
|--------|-------|--------|
|
|
21
|
+
| Sessions detected | 9 | 1-hour gap threshold |
|
|
22
|
+
| Active coding time | ~10 hours | Sum of session durations |
|
|
23
|
+
| Wall clock time | 45 hours | First to last commit |
|
|
24
|
+
| Commits | 43 | git log |
|
|
25
|
+
| Features | 16 | feat commits |
|
|
26
|
+
| Lines deleted | 1,563 | ML detour |
|
|
27
|
+
| Peak productivity | 12pm-2pm (42%) | Time analysis |
|
|
28
|
+
| Commit gap <30m | 69% | Tight feedback loops |
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Pattern Detection (Must-Have)
|
|
33
|
+
|
|
34
|
+
### 1. Debug Spirals ✅ (Already Implemented)
|
|
35
|
+
- 3+ consecutive fix commits = spiral
|
|
36
|
+
- Pattern classification: SECRETS_AUTH, VOLUME_CONFIG, etc.
|
|
37
|
+
- Threshold: Elite <15m, Low >45m
|
|
38
|
+
|
|
39
|
+
### 2. Flow States 🌊 (New)
|
|
40
|
+
```
|
|
41
|
+
Definition: 5+ non-fix commits, no gap >30m, duration >45m
|
|
42
|
+
Value: Shows when you're in the zone
|
|
43
|
+
Display: Session highlighted with 🌊, velocity shown
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 3. Post-Delete Sprints ⚡ (New)
|
|
47
|
+
```
|
|
48
|
+
Definition: Deletions > 2× additions, then velocity >50% above baseline
|
|
49
|
+
Value: Shows ROI of simplification
|
|
50
|
+
Display: Sprint box with before/after velocity comparison
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 4. Detours 🚧 (New)
|
|
54
|
+
```
|
|
55
|
+
Definition: Code added then deleted in same analysis window
|
|
56
|
+
Value: Track wasted time, learn from experiments
|
|
57
|
+
Display: Time lost, files affected, lesson learned
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### 5. Thrashing 🔄 (New)
|
|
61
|
+
```
|
|
62
|
+
Definition: Same file touched 5+ times in 2 hours, low net change
|
|
63
|
+
Value: Identify incomplete understanding
|
|
64
|
+
Display: File list with touch count and efficiency
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 6. Late Night Spirals 🌙 (New)
|
|
68
|
+
```
|
|
69
|
+
Definition: Debug session after 22:00 with 3+ fix commits
|
|
70
|
+
Value: Show tired debugging is inefficient
|
|
71
|
+
Display: Duration, outcome, "fresh eyes" comparison
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## Timeline Format (Hybrid Recommended)
|
|
77
|
+
|
|
78
|
+
### Default View
|
|
79
|
+
```
|
|
80
|
+
════════════════════════════════════════════════════════════════
|
|
81
|
+
VIBE-CHECK TIMELINE
|
|
82
|
+
Nov 28 - Nov 30 (3 days)
|
|
83
|
+
════════════════════════════════════════════════════════════════
|
|
84
|
+
|
|
85
|
+
TREND ▂▆▁▂▇▁ Active: ~10h Commits: 43 Features: 16
|
|
86
|
+
|
|
87
|
+
📅 Thu Nov 28 ─────────────────────────── 68% MEDIUM
|
|
88
|
+
3 sessions, 13 commits, 0 spirals, +95 XP
|
|
89
|
+
✓ feat: initial CLI (12:09-13:56, 1h 47m)
|
|
90
|
+
○ ML detour begins (17:07)
|
|
91
|
+
|
|
92
|
+
📅 Fri Nov 29 ─────────────────────────── 87% ELITE 🏆
|
|
93
|
+
4 sessions, 26 commits, 0 spirals, +185 XP
|
|
94
|
+
✗ ML deleted (15:35, -1,563 lines)
|
|
95
|
+
⚡ Post-delete sprint: 5 features in 1h 58m
|
|
96
|
+
✓ v1.5.0 shipped (17:33)
|
|
97
|
+
|
|
98
|
+
📅 Sat Nov 30 ─────────────────────────── 84% HIGH
|
|
99
|
+
1 session, 3 commits, 0 spirals, +40 XP
|
|
100
|
+
✓ Test cleanup + retrospective
|
|
101
|
+
|
|
102
|
+
════════════════════════════════════════════════════════════════
|
|
103
|
+
INSIGHTS
|
|
104
|
+
|
|
105
|
+
⚡ Post-delete sprint: 2.3× faster after removing ML
|
|
106
|
+
🚧 ML Detour: 2h 24m building, deleted 21h later
|
|
107
|
+
🌊 Flow states: 3 detected (avg 82 min)
|
|
108
|
+
|
|
109
|
+
💡 Recommendation: Trust simplification impulses
|
|
110
|
+
════════════════════════════════════════════════════════════════
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Symbols
|
|
114
|
+
- `●` feat commit
|
|
115
|
+
- `◆` shipped version
|
|
116
|
+
- `○` milestone/other
|
|
117
|
+
- `✗` deleted code
|
|
118
|
+
- `✓` clean work
|
|
119
|
+
- `⚠` spiral warning
|
|
120
|
+
|
|
121
|
+
### Color Scheme (Match Existing)
|
|
122
|
+
- **Green:** ELITE, flow states, clean sessions
|
|
123
|
+
- **Cyan:** Headers, borders, structure
|
|
124
|
+
- **Yellow:** MEDIUM, warnings, spirals
|
|
125
|
+
- **Red:** LOW, deletions, problems
|
|
126
|
+
- **Gray:** Metadata, timestamps, hints
|
|
127
|
+
- **Magenta:** Patterns, insights
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
## Data Schema
|
|
132
|
+
|
|
133
|
+
```typescript
|
|
134
|
+
interface TimelineEvent {
|
|
135
|
+
// Git data
|
|
136
|
+
hash: string;
|
|
137
|
+
timestamp: Date;
|
|
138
|
+
author: string;
|
|
139
|
+
subject: string;
|
|
140
|
+
type: CommitType;
|
|
141
|
+
scope: string | null;
|
|
142
|
+
|
|
143
|
+
// Change metrics
|
|
144
|
+
filesChanged: number;
|
|
145
|
+
insertions: number;
|
|
146
|
+
deletions: number;
|
|
147
|
+
netChange: number;
|
|
148
|
+
|
|
149
|
+
// Session context
|
|
150
|
+
sessionId: string;
|
|
151
|
+
sessionPosition: number;
|
|
152
|
+
gapMinutes: number;
|
|
153
|
+
|
|
154
|
+
// Pattern flags
|
|
155
|
+
isRefactor: boolean;
|
|
156
|
+
isLargeFeature: boolean;
|
|
157
|
+
spiralDepth: number;
|
|
158
|
+
isAiAssisted: boolean;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
interface TimelineSession {
|
|
162
|
+
id: string;
|
|
163
|
+
start: Date;
|
|
164
|
+
end: Date;
|
|
165
|
+
duration: number;
|
|
166
|
+
commits: TimelineEvent[];
|
|
167
|
+
|
|
168
|
+
// Metrics
|
|
169
|
+
vibeScore: number;
|
|
170
|
+
overall: Rating;
|
|
171
|
+
trustPassRate: number;
|
|
172
|
+
reworkRatio: number;
|
|
173
|
+
|
|
174
|
+
// Patterns detected
|
|
175
|
+
flowState: boolean;
|
|
176
|
+
spirals: FixChain[];
|
|
177
|
+
thrashing: ThrashingPattern[];
|
|
178
|
+
|
|
179
|
+
// Gamification
|
|
180
|
+
xpEarned: number;
|
|
181
|
+
achievements: string[];
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
interface TimelineDay {
|
|
185
|
+
date: string;
|
|
186
|
+
sessions: TimelineSession[];
|
|
187
|
+
dayScore: number;
|
|
188
|
+
dayRating: Rating;
|
|
189
|
+
|
|
190
|
+
// Aggregates
|
|
191
|
+
totalCommits: number;
|
|
192
|
+
totalDuration: number;
|
|
193
|
+
totalXp: number;
|
|
194
|
+
}
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## Implementation Plan
|
|
200
|
+
|
|
201
|
+
### Phase 1: Core Timeline (MVP)
|
|
202
|
+
- [ ] `vibe-check timeline` command
|
|
203
|
+
- [ ] Session detection (1-hour gap)
|
|
204
|
+
- [ ] Day grouping
|
|
205
|
+
- [ ] Hybrid format output
|
|
206
|
+
- [ ] Basic flags: --since, --until, --expand
|
|
207
|
+
|
|
208
|
+
**Files:**
|
|
209
|
+
- `src/commands/timeline.ts`
|
|
210
|
+
- `src/output/timeline.ts`
|
|
211
|
+
|
|
212
|
+
### Phase 2: Pattern Detection
|
|
213
|
+
- [ ] Flow state detection
|
|
214
|
+
- [ ] Post-delete sprint detection
|
|
215
|
+
- [ ] Thrashing detection
|
|
216
|
+
- [ ] Enhanced git stats (file changes)
|
|
217
|
+
|
|
218
|
+
**Files:**
|
|
219
|
+
- `src/patterns/flow-state.ts`
|
|
220
|
+
- `src/patterns/post-delete-sprint.ts`
|
|
221
|
+
- `src/patterns/thrashing.ts`
|
|
222
|
+
- `src/git.ts` (extend for stats)
|
|
223
|
+
|
|
224
|
+
### Phase 3: Insights Engine
|
|
225
|
+
- [ ] Detour detection (add → delete tracking)
|
|
226
|
+
- [ ] Late night spiral detection
|
|
227
|
+
- [ ] Automatic recommendations
|
|
228
|
+
- [ ] Pattern trend analysis
|
|
229
|
+
|
|
230
|
+
**Files:**
|
|
231
|
+
- `src/patterns/detour.ts`
|
|
232
|
+
- `src/patterns/late-night.ts`
|
|
233
|
+
- `src/insights/recommendations.ts`
|
|
234
|
+
|
|
235
|
+
### Phase 4: Export & Integration
|
|
236
|
+
- [ ] JSON export
|
|
237
|
+
- [ ] Markdown export
|
|
238
|
+
- [ ] HTML export (shareable)
|
|
239
|
+
- [ ] Dashboard integration
|
|
240
|
+
|
|
241
|
+
**Files:**
|
|
242
|
+
- `src/output/timeline-json.ts`
|
|
243
|
+
- `src/output/timeline-markdown.ts`
|
|
244
|
+
- `dashboard/timeline.html`
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## CLI Interface
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# Basic usage
|
|
252
|
+
vibe-check timeline # Last 7 days
|
|
253
|
+
vibe-check timeline --since "1 month" # Custom range
|
|
254
|
+
|
|
255
|
+
# Filtering
|
|
256
|
+
vibe-check timeline --filter spirals # Only sessions with spirals
|
|
257
|
+
vibe-check timeline --filter feat # Only feat commits
|
|
258
|
+
vibe-check timeline --min-score 80 # Only HIGH/ELITE
|
|
259
|
+
|
|
260
|
+
# Expansion
|
|
261
|
+
vibe-check timeline --expand # Show all details
|
|
262
|
+
vibe-check timeline --expand Nov-29 # Expand specific day
|
|
263
|
+
|
|
264
|
+
# Export
|
|
265
|
+
vibe-check timeline --output report.json
|
|
266
|
+
vibe-check timeline --output report.md
|
|
267
|
+
vibe-check timeline --share # Generate shareable HTML
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## Success Metrics
|
|
273
|
+
|
|
274
|
+
| Metric | Target | Measurement |
|
|
275
|
+
|--------|--------|-------------|
|
|
276
|
+
| Adoption | 30% of users run weekly | Analytics |
|
|
277
|
+
| Insight discovery | "Didn't know I did X" | User feedback |
|
|
278
|
+
| Behavior change | Spiral duration decreases | Pre/post comparison |
|
|
279
|
+
| Sharing | Timeline screenshots shared | Social tracking |
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## Key Insights for Implementation
|
|
284
|
+
|
|
285
|
+
1. **Session Detection:** 1-hour gap is optimal (69% of gaps <30m, 19% >1hr)
|
|
286
|
+
|
|
287
|
+
2. **Time-of-Day:** Peak productivity 12pm-2pm (42% of commits) - could add "best hours" insight
|
|
288
|
+
|
|
289
|
+
3. **Commit Types:** 37% feat, 21% docs, 9% fix - healthy ratio, sessions with 5+ commits show type mixing
|
|
290
|
+
|
|
291
|
+
4. **AI Attribution:** 100% of commits have AI footer - could track AI-assisted vs manual
|
|
292
|
+
|
|
293
|
+
5. **Post-Delete Pattern:** Real example shows 5 features in 1h 58m after deleting 1,563 lines - this is the killer insight
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Ready for Implementation
|
|
298
|
+
|
|
299
|
+
This research provides everything needed to build the timeline feature. The hybrid format balances overview + detail, the pattern detection adds unique value, and the export formats enable sharing.
|
|
300
|
+
|
|
301
|
+
**Next step:** `/implement timeline-feature-research-complete-2025-11-30.md`
|