@boshu2/vibe-check 1.0.1 → 1.1.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/ml-learning-loop-complete-plan-2025-11-28.md +908 -0
- package/.agents/bundles/unified-vibe-system-plan-phase1-2025-11-28.md +962 -0
- package/.agents/bundles/unified-vibe-system-research-2025-11-28.md +1003 -0
- package/.agents/bundles/vibe-check-ecosystem-plan-2025-11-29.md +635 -0
- package/.agents/bundles/vibe-check-gamification-complete-2025-11-29.md +132 -0
- package/.agents/bundles/vibe-score-scientific-framework-2025-11-28.md +602 -0
- package/.vibe-check/calibration.json +38 -0
- package/.vibe-check/latest.json +114 -0
- package/CHANGELOG.md +46 -0
- package/CLAUDE.md +178 -0
- package/README.md +265 -63
- package/action.yml +270 -0
- package/dashboard/app.js +494 -0
- package/dashboard/index.html +235 -0
- package/dashboard/styles.css +647 -0
- package/dist/calibration/ece.d.ts +26 -0
- package/dist/calibration/ece.d.ts.map +1 -0
- package/dist/calibration/ece.js +93 -0
- package/dist/calibration/ece.js.map +1 -0
- package/dist/calibration/index.d.ts +3 -0
- package/dist/calibration/index.d.ts.map +1 -0
- package/dist/calibration/index.js +15 -0
- package/dist/calibration/index.js.map +1 -0
- package/dist/calibration/storage.d.ts +34 -0
- package/dist/calibration/storage.d.ts.map +1 -0
- package/dist/calibration/storage.js +188 -0
- package/dist/calibration/storage.js.map +1 -0
- package/dist/cli.js +30 -76
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts +16 -0
- package/dist/commands/analyze.d.ts.map +1 -0
- package/dist/commands/analyze.js +256 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/index.d.ts +4 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +11 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/level.d.ts +3 -0
- package/dist/commands/level.d.ts.map +1 -0
- package/dist/commands/level.js +277 -0
- package/dist/commands/level.js.map +1 -0
- package/dist/commands/profile.d.ts +4 -0
- package/dist/commands/profile.d.ts.map +1 -0
- package/dist/commands/profile.js +143 -0
- package/dist/commands/profile.js.map +1 -0
- package/dist/gamification/achievements.d.ts +15 -0
- package/dist/gamification/achievements.d.ts.map +1 -0
- package/dist/gamification/achievements.js +273 -0
- package/dist/gamification/achievements.js.map +1 -0
- package/dist/gamification/index.d.ts +8 -0
- package/dist/gamification/index.d.ts.map +1 -0
- package/dist/gamification/index.js +30 -0
- package/dist/gamification/index.js.map +1 -0
- package/dist/gamification/profile.d.ts +46 -0
- package/dist/gamification/profile.d.ts.map +1 -0
- package/dist/gamification/profile.js +272 -0
- package/dist/gamification/profile.js.map +1 -0
- package/dist/gamification/streaks.d.ts +26 -0
- package/dist/gamification/streaks.d.ts.map +1 -0
- package/dist/gamification/streaks.js +132 -0
- package/dist/gamification/streaks.js.map +1 -0
- package/dist/gamification/types.d.ts +111 -0
- package/dist/gamification/types.d.ts.map +1 -0
- package/dist/gamification/types.js +26 -0
- package/dist/gamification/types.js.map +1 -0
- package/dist/gamification/xp.d.ts +37 -0
- package/dist/gamification/xp.d.ts.map +1 -0
- package/dist/gamification/xp.js +115 -0
- package/dist/gamification/xp.js.map +1 -0
- package/dist/git.d.ts +11 -0
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +52 -0
- package/dist/git.js.map +1 -1
- package/dist/metrics/code-stability.d.ts +13 -0
- package/dist/metrics/code-stability.d.ts.map +1 -0
- package/dist/metrics/code-stability.js +74 -0
- package/dist/metrics/code-stability.js.map +1 -0
- package/dist/metrics/file-churn.d.ts +8 -0
- package/dist/metrics/file-churn.d.ts.map +1 -0
- package/dist/metrics/file-churn.js +75 -0
- package/dist/metrics/file-churn.js.map +1 -0
- package/dist/metrics/time-spiral.d.ts +8 -0
- package/dist/metrics/time-spiral.d.ts.map +1 -0
- package/dist/metrics/time-spiral.js +69 -0
- package/dist/metrics/time-spiral.js.map +1 -0
- package/dist/metrics/velocity-anomaly.d.ts +13 -0
- package/dist/metrics/velocity-anomaly.d.ts.map +1 -0
- package/dist/metrics/velocity-anomaly.js +67 -0
- package/dist/metrics/velocity-anomaly.js.map +1 -0
- package/dist/output/index.d.ts +6 -3
- package/dist/output/index.d.ts.map +1 -1
- package/dist/output/index.js +4 -3
- package/dist/output/index.js.map +1 -1
- package/dist/output/json.d.ts +2 -2
- package/dist/output/json.d.ts.map +1 -1
- package/dist/output/json.js +54 -0
- package/dist/output/json.js.map +1 -1
- package/dist/output/markdown.d.ts +2 -2
- package/dist/output/markdown.d.ts.map +1 -1
- package/dist/output/markdown.js +34 -1
- package/dist/output/markdown.js.map +1 -1
- package/dist/output/terminal.d.ts +6 -2
- package/dist/output/terminal.d.ts.map +1 -1
- package/dist/output/terminal.js +131 -3
- package/dist/output/terminal.js.map +1 -1
- package/dist/recommend/index.d.ts +3 -0
- package/dist/recommend/index.d.ts.map +1 -0
- package/dist/recommend/index.js +14 -0
- package/dist/recommend/index.js.map +1 -0
- package/dist/recommend/ordered-logistic.d.ts +49 -0
- package/dist/recommend/ordered-logistic.d.ts.map +1 -0
- package/dist/recommend/ordered-logistic.js +153 -0
- package/dist/recommend/ordered-logistic.js.map +1 -0
- package/dist/recommend/questions.d.ts +19 -0
- package/dist/recommend/questions.d.ts.map +1 -0
- package/dist/recommend/questions.js +73 -0
- package/dist/recommend/questions.js.map +1 -0
- package/dist/score/index.d.ts +21 -0
- package/dist/score/index.d.ts.map +1 -0
- package/dist/score/index.js +48 -0
- package/dist/score/index.js.map +1 -0
- package/dist/score/weights.d.ts +16 -0
- package/dist/score/weights.d.ts.map +1 -0
- package/dist/score/weights.js +28 -0
- package/dist/score/weights.js.map +1 -0
- package/dist/types.d.ts +83 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +10 -9
|
@@ -0,0 +1,635 @@
|
|
|
1
|
+
# Vibe-Check Ecosystem: Full Product Vision
|
|
2
|
+
|
|
3
|
+
**Type:** Plan
|
|
4
|
+
**Created:** 2025-11-29
|
|
5
|
+
**Loop:** Outer → Middle (strategic vision + phased execution)
|
|
6
|
+
**Tags:** vibe-check, showcase, gamification, FAAFO, github-action, dashboard, vscode
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Vision: FAAFO-Enabled Development
|
|
11
|
+
|
|
12
|
+
**The Goal:** Make developers WANT to improve their vibe score.
|
|
13
|
+
|
|
14
|
+
Not another metrics dashboard you ignore. A system that:
|
|
15
|
+
- **Fast**: Instant feedback on every session
|
|
16
|
+
- **Ambitious**: Streaks, achievements, leaderboards
|
|
17
|
+
- **Autonomous**: Self-tracking, auto-insights
|
|
18
|
+
- **Fun**: Satisfying progress, dopamine hits
|
|
19
|
+
- **Optionality**: Try approaches, see what works
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Product Ecosystem
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
┌─────────────────────────────────────────────────────────────┐
|
|
27
|
+
│ VIBE-CHECK ECOSYSTEM │
|
|
28
|
+
├─────────────────────────────────────────────────────────────┤
|
|
29
|
+
│ │
|
|
30
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
31
|
+
│ │ CLI Tool │───▶│ API/Core │◀───│ Dashboard │ │
|
|
32
|
+
│ │ (existing) │ │ (shared) │ │ (web) │ │
|
|
33
|
+
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
34
|
+
│ │ │ │ │
|
|
35
|
+
│ ▼ ▼ ▼ │
|
|
36
|
+
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
|
|
37
|
+
│ │GitHub Action │ │ Badge API │ │VS Code Ext. │ │
|
|
38
|
+
│ │ (CI/CD) │ │ (shield) │ │ (live) │ │
|
|
39
|
+
│ └──────────────┘ └──────────────┘ └──────────────┘ │
|
|
40
|
+
│ │
|
|
41
|
+
│ ┌────────────────────────────────────────────────────────┐│
|
|
42
|
+
│ │ GAMIFICATION LAYER ││
|
|
43
|
+
│ │ Streaks • Achievements • Levels • Leaderboards ││
|
|
44
|
+
│ └────────────────────────────────────────────────────────┘│
|
|
45
|
+
│ │
|
|
46
|
+
└─────────────────────────────────────────────────────────────┘
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Phase 0: Foundation (Current State ✅)
|
|
52
|
+
|
|
53
|
+
**Already Done:**
|
|
54
|
+
- [x] CLI with semantic-free metrics
|
|
55
|
+
- [x] VibeScore (0-1) computation
|
|
56
|
+
- [x] Ordered Logistic Regression for level recommendation
|
|
57
|
+
- [x] ECE calibration loop
|
|
58
|
+
- [x] 51 unit tests passing
|
|
59
|
+
- [x] npm published as @boshu2/vibe-check
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Phase 1: Gamification Core 🎮
|
|
64
|
+
|
|
65
|
+
**Goal:** Make the CLI itself addictive
|
|
66
|
+
|
|
67
|
+
### 1.1 Streak Tracking
|
|
68
|
+
|
|
69
|
+
**File:** `src/gamification/streaks.ts`
|
|
70
|
+
|
|
71
|
+
```typescript
|
|
72
|
+
interface StreakState {
|
|
73
|
+
current: number; // Current consecutive days
|
|
74
|
+
longest: number; // Personal best
|
|
75
|
+
lastActiveDate: string; // ISO date
|
|
76
|
+
weeklyGoal: number; // Days per week target
|
|
77
|
+
weeklyProgress: number; // Days this week
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
// Stored in ~/.vibe-check/profile.json
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
**Features:**
|
|
84
|
+
- "🔥 5-day streak! Personal best: 12 days"
|
|
85
|
+
- Streak freeze: miss 1 day, don't break streak
|
|
86
|
+
- Weekly goals: "3/5 days this week"
|
|
87
|
+
|
|
88
|
+
### 1.2 Achievement System
|
|
89
|
+
|
|
90
|
+
**File:** `src/gamification/achievements.ts`
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
interface Achievement {
|
|
94
|
+
id: string;
|
|
95
|
+
name: string;
|
|
96
|
+
description: string;
|
|
97
|
+
icon: string;
|
|
98
|
+
condition: (history: SessionHistory[]) => boolean;
|
|
99
|
+
unlockedAt?: Date;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
const ACHIEVEMENTS: Achievement[] = [
|
|
103
|
+
{ id: 'first_blood', name: 'First Blood', icon: '🩸',
|
|
104
|
+
description: 'Run your first vibe-check', condition: h => h.length >= 1 },
|
|
105
|
+
{ id: 'week_warrior', name: 'Week Warrior', icon: '⚔️',
|
|
106
|
+
description: '7-day streak', condition: h => getStreak(h) >= 7 },
|
|
107
|
+
{ id: 'elite_session', name: 'Elite Vibes', icon: '👑',
|
|
108
|
+
description: 'Achieve ELITE rating in a session', condition: h => h.some(s => s.overall === 'ELITE') },
|
|
109
|
+
{ id: 'no_spirals', name: 'Zen Master', icon: '🧘',
|
|
110
|
+
description: '0 debug spirals in a 50+ commit week', condition: ... },
|
|
111
|
+
{ id: 'trust_builder', name: 'Trust Builder', icon: '🏗️',
|
|
112
|
+
description: 'Maintain >90% Trust Pass Rate for 30 days', condition: ... },
|
|
113
|
+
{ id: 'comeback_kid', name: 'Comeback Kid', icon: '🔄',
|
|
114
|
+
description: 'Go from LOW to ELITE in same week', condition: ... },
|
|
115
|
+
// 20+ more achievements
|
|
116
|
+
];
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
### 1.3 Level Progression
|
|
120
|
+
|
|
121
|
+
**Concept:** Your overall "Vibe Level" increases over time
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
Level 1: Novice (0-100 XP) 🌱
|
|
125
|
+
Level 2: Apprentice (100-300 XP) 🌿
|
|
126
|
+
Level 3: Practitioner (300-600 XP) 🌳
|
|
127
|
+
Level 4: Expert (600-1000 XP) 🌲
|
|
128
|
+
Level 5: Master (1000-2000 XP) 🎋
|
|
129
|
+
Level 6: Grandmaster (2000+ XP) 🏔️
|
|
130
|
+
|
|
131
|
+
XP earned from:
|
|
132
|
+
- Daily check-in: 10 XP
|
|
133
|
+
- ELITE session: 50 XP
|
|
134
|
+
- HIGH session: 25 XP
|
|
135
|
+
- Streak bonus: 5 XP × streak_length
|
|
136
|
+
- Achievement unlock: varies
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### 1.4 Enhanced CLI Output
|
|
140
|
+
|
|
141
|
+
**Before (boring):**
|
|
142
|
+
```
|
|
143
|
+
OVERALL: ELITE
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
**After (gamified):**
|
|
147
|
+
```
|
|
148
|
+
================================================================
|
|
149
|
+
OVERALL: ELITE 👑
|
|
150
|
+
|
|
151
|
+
🔥 Streak: 5 days (Personal best!)
|
|
152
|
+
⭐ Level 3 Practitioner (456/600 XP)
|
|
153
|
+
🏆 +50 XP earned this session
|
|
154
|
+
|
|
155
|
+
🎉 ACHIEVEMENT UNLOCKED: "Zen Master" 🧘
|
|
156
|
+
0 debug spirals in a 50+ commit week!
|
|
157
|
+
================================================================
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### 1.5 Profile Command
|
|
161
|
+
|
|
162
|
+
```bash
|
|
163
|
+
$ vibe-check profile
|
|
164
|
+
|
|
165
|
+
╭─────────────────────────────────────────────╮
|
|
166
|
+
│ @bodefuller's Vibe Profile │
|
|
167
|
+
├─────────────────────────────────────────────┤
|
|
168
|
+
│ Level 4 Expert 🌲 │
|
|
169
|
+
│ ████████████░░░░░░░░ 756/1000 XP │
|
|
170
|
+
│ │
|
|
171
|
+
│ 🔥 Current Streak: 12 days │
|
|
172
|
+
│ 📅 Weekly Goal: 4/5 days ████░ │
|
|
173
|
+
│ 🏆 Achievements: 8/24 unlocked │
|
|
174
|
+
│ │
|
|
175
|
+
│ 📊 30-Day Stats │
|
|
176
|
+
│ ├─ Avg Vibe Score: 82% │
|
|
177
|
+
│ ├─ Sessions: 23 │
|
|
178
|
+
│ ├─ Total Commits Analyzed: 847 │
|
|
179
|
+
│ └─ Spirals Avoided: 15 │
|
|
180
|
+
│ │
|
|
181
|
+
│ Recent Achievements: │
|
|
182
|
+
│ 🧘 Zen Master (Nov 28) │
|
|
183
|
+
│ ⚔️ Week Warrior (Nov 25) │
|
|
184
|
+
│ 👑 Elite Vibes (Nov 22) │
|
|
185
|
+
╰─────────────────────────────────────────────╯
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## Phase 2: GitHub Action 🤖
|
|
191
|
+
|
|
192
|
+
**Goal:** Automated PR feedback with vibe metrics
|
|
193
|
+
|
|
194
|
+
### 2.1 Action Definition
|
|
195
|
+
|
|
196
|
+
**File:** `action.yml`
|
|
197
|
+
|
|
198
|
+
```yaml
|
|
199
|
+
name: 'Vibe Check'
|
|
200
|
+
description: 'Analyze commit patterns for AI-assisted coding effectiveness'
|
|
201
|
+
branding:
|
|
202
|
+
icon: 'activity'
|
|
203
|
+
color: 'purple'
|
|
204
|
+
|
|
205
|
+
inputs:
|
|
206
|
+
github-token:
|
|
207
|
+
description: 'GitHub token for PR comments'
|
|
208
|
+
required: true
|
|
209
|
+
threshold:
|
|
210
|
+
description: 'Minimum vibe score (0-100) to pass'
|
|
211
|
+
default: '60'
|
|
212
|
+
comment:
|
|
213
|
+
description: 'Post results as PR comment'
|
|
214
|
+
default: 'true'
|
|
215
|
+
|
|
216
|
+
outputs:
|
|
217
|
+
score:
|
|
218
|
+
description: 'Vibe score (0-100)'
|
|
219
|
+
rating:
|
|
220
|
+
description: 'Overall rating (ELITE/HIGH/MEDIUM/LOW)'
|
|
221
|
+
passed:
|
|
222
|
+
description: 'Whether threshold was met'
|
|
223
|
+
|
|
224
|
+
runs:
|
|
225
|
+
using: 'node20'
|
|
226
|
+
main: 'dist/action/index.js'
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### 2.2 PR Comment Output
|
|
230
|
+
|
|
231
|
+
```markdown
|
|
232
|
+
## 🎯 Vibe Check Results
|
|
233
|
+
|
|
234
|
+
| Metric | Value | Rating |
|
|
235
|
+
|--------|-------|--------|
|
|
236
|
+
| Vibe Score | **87%** | 🟢 ELITE |
|
|
237
|
+
| Trust Pass Rate | 94% | 🟢 |
|
|
238
|
+
| Debug Spirals | 1 (12min) | 🟡 |
|
|
239
|
+
| File Churn | 8% | 🟢 |
|
|
240
|
+
|
|
241
|
+
### 📈 Compared to `main`
|
|
242
|
+
- Vibe Score: +5% ↑
|
|
243
|
+
- Spiral time: -8min ↓
|
|
244
|
+
|
|
245
|
+
### 💡 Insight
|
|
246
|
+
This PR shows excellent iteration patterns. The single spiral
|
|
247
|
+
was on OAuth integration—consider a tracer test next time.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
<sub>Powered by [vibe-check](https://github.com/boshu2/vibe-check)</sub>
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### 2.3 Usage in Workflows
|
|
254
|
+
|
|
255
|
+
```yaml
|
|
256
|
+
# .github/workflows/vibe-check.yml
|
|
257
|
+
name: Vibe Check
|
|
258
|
+
on: [pull_request]
|
|
259
|
+
|
|
260
|
+
jobs:
|
|
261
|
+
vibe:
|
|
262
|
+
runs-on: ubuntu-latest
|
|
263
|
+
steps:
|
|
264
|
+
- uses: actions/checkout@v4
|
|
265
|
+
with:
|
|
266
|
+
fetch-depth: 0 # Full history for analysis
|
|
267
|
+
|
|
268
|
+
- uses: boshu2/vibe-check-action@v1
|
|
269
|
+
with:
|
|
270
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
271
|
+
threshold: 70
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Phase 3: Web Dashboard 📊
|
|
277
|
+
|
|
278
|
+
**Goal:** Beautiful visualization of vibe trends
|
|
279
|
+
|
|
280
|
+
### 3.1 Tech Stack
|
|
281
|
+
|
|
282
|
+
- **Framework:** Next.js 14 (App Router)
|
|
283
|
+
- **Styling:** Tailwind CSS + shadcn/ui
|
|
284
|
+
- **Charts:** Recharts
|
|
285
|
+
- **Auth:** GitHub OAuth (optional, for sync)
|
|
286
|
+
- **Hosting:** Vercel
|
|
287
|
+
|
|
288
|
+
### 3.2 Dashboard Pages
|
|
289
|
+
|
|
290
|
+
```
|
|
291
|
+
/ # Landing page + demo
|
|
292
|
+
/dashboard # Main dashboard (auth required)
|
|
293
|
+
/dashboard/history # Session history timeline
|
|
294
|
+
/dashboard/compare # Branch/period comparison
|
|
295
|
+
/dashboard/team # Team leaderboard (opt-in)
|
|
296
|
+
/profile/[username] # Public profile page
|
|
297
|
+
/badge/[user]/[repo] # SVG badge endpoint
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### 3.3 Key Visualizations
|
|
301
|
+
|
|
302
|
+
**1. Vibe Score Trend (Line Chart)**
|
|
303
|
+
```
|
|
304
|
+
Score
|
|
305
|
+
100│ ╭──╮ ╭───╮
|
|
306
|
+
80│╭───╯ ╰──╮ ╭╯ ╰──╮
|
|
307
|
+
60│ ╰╯ ╰──
|
|
308
|
+
40│
|
|
309
|
+
└────────────────────────▶ Time
|
|
310
|
+
Mon Tue Wed Thu Fri
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
**2. Contribution Heatmap (GitHub-style)**
|
|
314
|
+
```
|
|
315
|
+
Mon ▪▪▫▪▪▫▪▪▪▪▫▫
|
|
316
|
+
Tue ▪▪▪▪▫▫▪▪▪▪▪▫
|
|
317
|
+
Wed ▫▪▪▪▪▪▫▫▪▪▪▪
|
|
318
|
+
Thu ▪▫▫▪▪▪▪▪▫▫▪▪
|
|
319
|
+
Fri ▪▪▪▫▫▪▪▪▪▪▫▪
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
**3. Metric Radar Chart**
|
|
323
|
+
```
|
|
324
|
+
Trust Pass
|
|
325
|
+
╱╲
|
|
326
|
+
╱ ╲
|
|
327
|
+
Flow ─╱ ╲─ Velocity
|
|
328
|
+
╲ ╱
|
|
329
|
+
╲ ╱
|
|
330
|
+
Stability
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
**4. Spiral Timeline**
|
|
334
|
+
```
|
|
335
|
+
┌──────────────────────────────────────┐
|
|
336
|
+
│ 🔴 OAuth spiral (25min) │
|
|
337
|
+
│ └─ fix(auth): token refresh │
|
|
338
|
+
│ └─ fix(auth): token storage │
|
|
339
|
+
│ └─ fix(auth): token validation │
|
|
340
|
+
│ └─ fix(auth): FINALLY WORKS │
|
|
341
|
+
└──────────────────────────────────────┘
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
### 3.4 Badge API
|
|
345
|
+
|
|
346
|
+
**Endpoint:** `GET /api/badge/[owner]/[repo]`
|
|
347
|
+
|
|
348
|
+
**Response:** Dynamic SVG
|
|
349
|
+
|
|
350
|
+
```
|
|
351
|
+
┌─────────────────────────────┐
|
|
352
|
+
│ vibe score │ 87% │ ELITE │
|
|
353
|
+
└─────────────────────────────┘
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
**Usage in README:**
|
|
357
|
+
```markdown
|
|
358
|
+

|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
---
|
|
362
|
+
|
|
363
|
+
## Phase 4: VS Code Extension 🔌
|
|
364
|
+
|
|
365
|
+
**Goal:** Real-time vibe monitoring while coding
|
|
366
|
+
|
|
367
|
+
### 4.1 Features
|
|
368
|
+
|
|
369
|
+
1. **Status Bar Item**
|
|
370
|
+
```
|
|
371
|
+
🎯 Vibe: 85% (12-day streak 🔥)
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
2. **Spiral Alert Notification**
|
|
375
|
+
```
|
|
376
|
+
⚠️ Debug spiral detected on auth.ts
|
|
377
|
+
You've made 4 rapid-fire commits in 15 minutes.
|
|
378
|
+
Consider: Take a break? Write a test first?
|
|
379
|
+
|
|
380
|
+
[Dismiss] [Pause Tracking] [Add Tracer Test]
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
3. **Session Summary on Git Push**
|
|
384
|
+
```
|
|
385
|
+
📊 Session Summary
|
|
386
|
+
─────────────────
|
|
387
|
+
Duration: 2.5 hours
|
|
388
|
+
Commits: 12
|
|
389
|
+
Vibe Score: 78%
|
|
390
|
+
|
|
391
|
+
🏆 +25 XP earned
|
|
392
|
+
🔥 Streak: 13 days
|
|
393
|
+
```
|
|
394
|
+
|
|
395
|
+
4. **Command Palette**
|
|
396
|
+
- `Vibe Check: Show Dashboard`
|
|
397
|
+
- `Vibe Check: Current Session Stats`
|
|
398
|
+
- `Vibe Check: Classify Next Task Level`
|
|
399
|
+
- `Vibe Check: View Achievements`
|
|
400
|
+
|
|
401
|
+
### 4.2 Extension Tech
|
|
402
|
+
|
|
403
|
+
```json
|
|
404
|
+
{
|
|
405
|
+
"name": "vibe-check-vscode",
|
|
406
|
+
"publisher": "boshu2",
|
|
407
|
+
"engines": { "vscode": "^1.80.0" },
|
|
408
|
+
"activationEvents": ["workspaceContains:.git"],
|
|
409
|
+
"contributes": {
|
|
410
|
+
"commands": [...],
|
|
411
|
+
"configuration": {
|
|
412
|
+
"vibe-check.enableNotifications": true,
|
|
413
|
+
"vibe-check.spiralThresholdMinutes": 15,
|
|
414
|
+
"vibe-check.showStatusBar": true
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
```
|
|
419
|
+
|
|
420
|
+
---
|
|
421
|
+
|
|
422
|
+
## Phase 5: Team Features 👥
|
|
423
|
+
|
|
424
|
+
**Goal:** Collaborative improvement, not surveillance
|
|
425
|
+
|
|
426
|
+
### 5.1 Leaderboard (Opt-In)
|
|
427
|
+
|
|
428
|
+
```
|
|
429
|
+
╭───────────────────────────────────────────╮
|
|
430
|
+
│ 🏆 Team Vibe Leaderboard │
|
|
431
|
+
├───────────────────────────────────────────┤
|
|
432
|
+
│ 1. @alice Level 5 Master 92% 🔥 │
|
|
433
|
+
│ 2. @bob Level 4 Expert 88% │
|
|
434
|
+
│ 3. @charlie Level 4 Expert 85% │
|
|
435
|
+
│ ─────────────────────────────────────────│
|
|
436
|
+
│ 7. @you Level 3 Pract. 78% ← │
|
|
437
|
+
╰───────────────────────────────────────────╯
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
### 5.2 Team Insights
|
|
441
|
+
|
|
442
|
+
- "Team average vibe score this week: 82% (+3% vs last week)"
|
|
443
|
+
- "Most common spiral trigger: API integrations"
|
|
444
|
+
- "Suggested: Team tracer test session for OAuth patterns"
|
|
445
|
+
|
|
446
|
+
### 5.3 Weekly Digest Email
|
|
447
|
+
|
|
448
|
+
```
|
|
449
|
+
Subject: 📊 Your Weekly Vibe Report
|
|
450
|
+
|
|
451
|
+
Hey @bodefuller,
|
|
452
|
+
|
|
453
|
+
Your week in vibes:
|
|
454
|
+
━━━━━━━━━━━━━━━━━━━━━
|
|
455
|
+
🎯 Average Score: 84% (↑ 6% from last week)
|
|
456
|
+
🔥 Streak: 8 days
|
|
457
|
+
🏆 XP Earned: 245
|
|
458
|
+
📈 Level Progress: 756 → 1001 XP (LEVEL UP! 🎉)
|
|
459
|
+
|
|
460
|
+
Achievement Unlocked:
|
|
461
|
+
🌲 Expert Status - Reached Level 4!
|
|
462
|
+
|
|
463
|
+
This Week's Insight:
|
|
464
|
+
Your Trust Pass Rate jumped from 78% to 91% after you
|
|
465
|
+
started using tracer tests. Keep it up!
|
|
466
|
+
|
|
467
|
+
Next Week's Challenge:
|
|
468
|
+
Can you maintain 0 spirals for 5 consecutive days?
|
|
469
|
+
Current best: 3 days
|
|
470
|
+
|
|
471
|
+
[View Full Dashboard →]
|
|
472
|
+
```
|
|
473
|
+
|
|
474
|
+
---
|
|
475
|
+
|
|
476
|
+
## Phase 6: Scientific Credibility 📚
|
|
477
|
+
|
|
478
|
+
**Goal:** Establish legitimacy, not just vibes
|
|
479
|
+
|
|
480
|
+
### 6.1 Methodology Documentation
|
|
481
|
+
|
|
482
|
+
**Create:** `METHODOLOGY.md`
|
|
483
|
+
|
|
484
|
+
Contents:
|
|
485
|
+
- Metric definitions with formulas
|
|
486
|
+
- Statistical validation approach
|
|
487
|
+
- Limitations and caveats
|
|
488
|
+
- Comparison to DORA metrics
|
|
489
|
+
- Academic references (if any)
|
|
490
|
+
|
|
491
|
+
### 6.2 "How We Built This" Blog Post
|
|
492
|
+
|
|
493
|
+
**URL:** Medium / dev.to / personal blog
|
|
494
|
+
|
|
495
|
+
Sections:
|
|
496
|
+
1. The Problem: AI-Assisted Coding Blindspots
|
|
497
|
+
2. Why Existing Metrics Don't Work
|
|
498
|
+
3. Designing Semantic-Free Signals
|
|
499
|
+
4. The ML Behind Level Classification
|
|
500
|
+
5. Calibration: Learning from Your Patterns
|
|
501
|
+
6. What's Next: Validating Against Outcomes
|
|
502
|
+
|
|
503
|
+
### 6.3 Jupyter Notebook
|
|
504
|
+
|
|
505
|
+
**File:** `notebooks/methodology-walkthrough.ipynb`
|
|
506
|
+
|
|
507
|
+
- Interactive explanation of the math
|
|
508
|
+
- Real data visualization
|
|
509
|
+
- Correlation analysis
|
|
510
|
+
- Model training demo
|
|
511
|
+
|
|
512
|
+
---
|
|
513
|
+
|
|
514
|
+
## Implementation Order
|
|
515
|
+
|
|
516
|
+
**Dependencies visualized:**
|
|
517
|
+
|
|
518
|
+
```
|
|
519
|
+
Phase 1 (Gamification)
|
|
520
|
+
│
|
|
521
|
+
├──▶ Phase 2 (GitHub Action) [parallel]
|
|
522
|
+
│
|
|
523
|
+
├──▶ Phase 3 (Dashboard) [parallel]
|
|
524
|
+
│ │
|
|
525
|
+
│ ▼
|
|
526
|
+
│ Phase 4 (VS Code) [needs dashboard for sync]
|
|
527
|
+
│
|
|
528
|
+
└──▶ Phase 5 (Team) [needs dashboard]
|
|
529
|
+
|
|
530
|
+
Phase 6 (Docs) [can start anytime, finish last]
|
|
531
|
+
```
|
|
532
|
+
|
|
533
|
+
**Suggested Sprint Plan:**
|
|
534
|
+
|
|
535
|
+
| Sprint | Focus | Deliverables |
|
|
536
|
+
|--------|-------|--------------|
|
|
537
|
+
| 1 | Gamification Core | Streaks, achievements, XP in CLI |
|
|
538
|
+
| 2 | GitHub Action | Action + PR comments working |
|
|
539
|
+
| 3 | Dashboard MVP | Landing + basic charts |
|
|
540
|
+
| 4 | Dashboard Polish | Full viz, badges, profiles |
|
|
541
|
+
| 5 | VS Code Extension | Status bar + notifications |
|
|
542
|
+
| 6 | Team + Docs | Leaderboards, methodology |
|
|
543
|
+
|
|
544
|
+
---
|
|
545
|
+
|
|
546
|
+
## Tech Stack Summary
|
|
547
|
+
|
|
548
|
+
| Component | Stack |
|
|
549
|
+
|-----------|-------|
|
|
550
|
+
| CLI | TypeScript, Commander, simple-git |
|
|
551
|
+
| GitHub Action | TypeScript, @actions/core |
|
|
552
|
+
| Dashboard | Next.js 14, Tailwind, shadcn/ui, Recharts |
|
|
553
|
+
| VS Code Ext | TypeScript, VS Code API |
|
|
554
|
+
| Badge API | Next.js API routes, @vercel/og |
|
|
555
|
+
| Auth | NextAuth.js + GitHub OAuth |
|
|
556
|
+
| Storage | Local JSON (CLI), Vercel KV (cloud) |
|
|
557
|
+
|
|
558
|
+
---
|
|
559
|
+
|
|
560
|
+
## Repository Structure
|
|
561
|
+
|
|
562
|
+
```
|
|
563
|
+
vibe-check/
|
|
564
|
+
├── packages/
|
|
565
|
+
│ ├── cli/ # Existing CLI (move here)
|
|
566
|
+
│ ├── core/ # Shared metrics engine
|
|
567
|
+
│ ├── action/ # GitHub Action
|
|
568
|
+
│ ├── dashboard/ # Next.js app
|
|
569
|
+
│ └── vscode/ # VS Code extension
|
|
570
|
+
├── docs/
|
|
571
|
+
│ ├── METHODOLOGY.md
|
|
572
|
+
│ └── notebooks/
|
|
573
|
+
├── .github/
|
|
574
|
+
│ └── workflows/
|
|
575
|
+
└── turbo.json # Monorepo management
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
---
|
|
579
|
+
|
|
580
|
+
## Success Metrics
|
|
581
|
+
|
|
582
|
+
| Metric | Target | Why |
|
|
583
|
+
|--------|--------|-----|
|
|
584
|
+
| npm downloads | 1000/month | Adoption |
|
|
585
|
+
| GitHub stars | 500 | Social proof |
|
|
586
|
+
| VS Code installs | 200 | Engagement |
|
|
587
|
+
| Avg streak length | 5+ days | Stickiness |
|
|
588
|
+
| Achievement unlock rate | 40%+ | Fun factor |
|
|
589
|
+
|
|
590
|
+
---
|
|
591
|
+
|
|
592
|
+
## Risk Assessment
|
|
593
|
+
|
|
594
|
+
| Risk | Mitigation |
|
|
595
|
+
|------|------------|
|
|
596
|
+
| Scope creep | Phase boundaries, MVP each sprint |
|
|
597
|
+
| Dashboard complexity | Start with static, add interactivity |
|
|
598
|
+
| VS Code API learning | Prototype early in Phase 1 |
|
|
599
|
+
| Team adoption | Make solo mode compelling first |
|
|
600
|
+
|
|
601
|
+
---
|
|
602
|
+
|
|
603
|
+
## FAAFO Enablement Check
|
|
604
|
+
|
|
605
|
+
| FAAFO | How This Delivers |
|
|
606
|
+
|-------|-------------------|
|
|
607
|
+
| **Fast** | Real-time VS Code feedback, instant CLI results |
|
|
608
|
+
| **Ambitious** | Full ecosystem, not just a script |
|
|
609
|
+
| **Autonomous** | Self-tracking, no manual logging needed |
|
|
610
|
+
| **Fun** | Achievements, streaks, dopamine hits |
|
|
611
|
+
| **Optionality** | Try different coding styles, measure impact |
|
|
612
|
+
|
|
613
|
+
---
|
|
614
|
+
|
|
615
|
+
## Approval Checklist
|
|
616
|
+
|
|
617
|
+
- [ ] Vision clear and aligned with FAAFO?
|
|
618
|
+
- [ ] Phase order makes sense?
|
|
619
|
+
- [ ] Tech stack appropriate?
|
|
620
|
+
- [ ] Scope realistic for showcase?
|
|
621
|
+
- [ ] Ready to start Phase 1?
|
|
622
|
+
|
|
623
|
+
---
|
|
624
|
+
|
|
625
|
+
## Next Step
|
|
626
|
+
|
|
627
|
+
**Approve this plan, then:**
|
|
628
|
+
|
|
629
|
+
1. `/implement` Phase 1 (Gamification Core)
|
|
630
|
+
2. Test CLI gamification locally
|
|
631
|
+
3. Proceed to parallel phases
|
|
632
|
+
|
|
633
|
+
---
|
|
634
|
+
|
|
635
|
+
**Ready to make developers WANT to improve?** 🎮
|