@boshu2/vibe-check 1.5.0 → 1.6.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.
- 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 +165 -144
- 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/docs/images/dashboard.png +0 -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,406 @@
|
|
|
1
|
+
# The Vibe-Coding Ecosystem
|
|
2
|
+
|
|
3
|
+
**A complete guide to conscious AI-assisted development**
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## What is Vibe-Coding?
|
|
8
|
+
|
|
9
|
+
Vibe-coding is a methodology for AI-assisted software development that emphasizes:
|
|
10
|
+
|
|
11
|
+
1. **Conscious calibration** - Knowing when to trust AI output and when to verify
|
|
12
|
+
2. **Metric-driven feedback** - Measuring patterns, not productivity
|
|
13
|
+
3. **Self-awareness** - Recognizing spirals before they consume hours
|
|
14
|
+
4. **Progressive mastery** - Building trust through demonstrated accuracy
|
|
15
|
+
|
|
16
|
+
The core insight: **AI assistance varies in reliability by task type.** Formatting code? Nearly 100% trustworthy. Designing authentication architecture? Maybe 20%. Vibe-coding gives you a framework to calibrate your verification effort appropriately.
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## The Five Core Metrics
|
|
21
|
+
|
|
22
|
+
| Metric | Question | Elite | Needs Work |
|
|
23
|
+
|--------|----------|-------|------------|
|
|
24
|
+
| **Trust Pass Rate** | What % of commits don't need immediate fixes? | >95% | <80% |
|
|
25
|
+
| **Rework Ratio** | What % of commits are fixes vs. new work? | <30% | >50% |
|
|
26
|
+
| **Debug Spiral Count** | How many fix-chain spirals detected? | 0 | 3+ |
|
|
27
|
+
| **Debug Spiral Duration** | How long stuck in fix loops? | <15min | >45min |
|
|
28
|
+
| **Flow Efficiency** | What % of time is productive building? | >90% | <70% |
|
|
29
|
+
|
|
30
|
+
These metrics are **semantic-free** - they measure git patterns, not code content. This prevents gaming and ensures honest signal.
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## Vibe Levels
|
|
35
|
+
|
|
36
|
+
Before starting work, classify the task:
|
|
37
|
+
|
|
38
|
+
| Level | Name | Trust AI | Verification | Example Tasks |
|
|
39
|
+
|-------|------|----------|--------------|---------------|
|
|
40
|
+
| **5** | Full Automation | 95% | Final only | Formatting, linting, boilerplate |
|
|
41
|
+
| **4** | High Trust | 80% | Spot check | CRUD, simple features |
|
|
42
|
+
| **3** | Balanced | 60% | Key outputs | Standard features, tests |
|
|
43
|
+
| **2** | Careful | 40% | Every change | API integrations, complex logic |
|
|
44
|
+
| **1** | Skeptical | 20% | Every line | Architecture, security, auth |
|
|
45
|
+
| **0** | Manual | 0% | N/A | Novel research, exploration |
|
|
46
|
+
|
|
47
|
+
**The insight:** Declaring a level upfront forces conscious calibration. After the session, compare actual metrics to expected - this builds intuition over time.
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## vibe-check: The Tool
|
|
52
|
+
|
|
53
|
+
`vibe-check` is a CLI tool that analyzes git history and provides immediate feedback on your coding patterns.
|
|
54
|
+
|
|
55
|
+
### Installation
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
npm install -g @boshu2/vibe-check
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Or run directly:
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
npx @boshu2/vibe-check
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### Core Commands
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
# Basic analysis
|
|
71
|
+
vibe-check --since "1 week ago"
|
|
72
|
+
|
|
73
|
+
# Real-time monitoring
|
|
74
|
+
vibe-check watch
|
|
75
|
+
|
|
76
|
+
# Your profile (gamification)
|
|
77
|
+
vibe-check profile
|
|
78
|
+
|
|
79
|
+
# Start a tracked session
|
|
80
|
+
vibe-check start --level 3
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## Feature Overview (v1.5.0)
|
|
86
|
+
|
|
87
|
+
### 1. Metrics Engine
|
|
88
|
+
|
|
89
|
+
The core analysis engine examines git history to compute:
|
|
90
|
+
|
|
91
|
+
- **Trust Pass Rate**: Commits without immediate fix follow-ups
|
|
92
|
+
- **Rework Ratio**: Proportion of fix/revert commits
|
|
93
|
+
- **Debug Spirals**: Consecutive fix commits on same component
|
|
94
|
+
- **VibeScore**: Weighted composite (0-100%)
|
|
95
|
+
|
|
96
|
+
Output example:
|
|
97
|
+
```
|
|
98
|
+
VIBE-CHECK Nov 21 - Nov 28
|
|
99
|
+
|
|
100
|
+
Rating: ELITE
|
|
101
|
+
Trust: 94% ELITE
|
|
102
|
+
Rework: 18% ELITE
|
|
103
|
+
Spirals: 1 detected (12 min)
|
|
104
|
+
|
|
105
|
+
VibeScore: 87%
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### 2. Watch Mode
|
|
109
|
+
|
|
110
|
+
Real-time spiral detection while you work:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
vibe-check watch
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Monitors commits and alerts when patterns indicate a spiral forming:
|
|
117
|
+
|
|
118
|
+
```
|
|
119
|
+
09:15 fix(auth) handle token refresh
|
|
120
|
+
09:18 fix(auth) add retry logic
|
|
121
|
+
09:22 fix(auth) increase timeout
|
|
122
|
+
|
|
123
|
+
SPIRAL DETECTED
|
|
124
|
+
Component: auth
|
|
125
|
+
Fixes: 3 commits, 7 min
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 3. Automatic Baseline Comparison
|
|
129
|
+
|
|
130
|
+
After 5+ sessions, vibe-check learns your patterns and provides contextual feedback:
|
|
131
|
+
|
|
132
|
+
```
|
|
133
|
+
VS YOUR BASELINE
|
|
134
|
+
|
|
135
|
+
Trust: 92% (+7% vs avg 85%)
|
|
136
|
+
Rework: 18% (-4% vs avg 22%)
|
|
137
|
+
|
|
138
|
+
Better than your usual - nice flow!
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 4. Pattern Memory
|
|
142
|
+
|
|
143
|
+
Tracks what triggers YOUR spirals over time:
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
vibe-check profile --patterns
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
YOUR SPIRAL TRIGGERS
|
|
151
|
+
|
|
152
|
+
Component Times Pattern
|
|
153
|
+
auth 5 OAuth/token/refresh issues
|
|
154
|
+
database 3 Connection pooling
|
|
155
|
+
api 2 External API timeouts
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### 5. Intervention Tracking
|
|
159
|
+
|
|
160
|
+
Records what breaks your spirals:
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
WHAT WORKS FOR YOU
|
|
164
|
+
|
|
165
|
+
Take a break 4 times (avg 12 min)
|
|
166
|
+
Write test first 3 times
|
|
167
|
+
Read docs 2 times
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## Gamification System
|
|
173
|
+
|
|
174
|
+
vibe-check includes a complete gamification layer to make improvement engaging:
|
|
175
|
+
|
|
176
|
+
### XP & Levels
|
|
177
|
+
|
|
178
|
+
```
|
|
179
|
+
Level 1: Novice (0-100 XP) 🌱
|
|
180
|
+
Level 2: Apprentice (100-300 XP) 🌿
|
|
181
|
+
Level 3: Practitioner (300-600 XP) 🌳
|
|
182
|
+
Level 4: Expert (600-1000 XP) 🌲
|
|
183
|
+
Level 5: Master (1000-2000 XP) 🎋
|
|
184
|
+
Level 6: Grandmaster (2000-5000 XP) 🏔️
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Prestige tiers** (beyond Grandmaster):
|
|
188
|
+
- Archmage (5000+ XP) 🔮
|
|
189
|
+
- Sage (10000+ XP) 📿
|
|
190
|
+
- Zenmester (20000+ XP) ☯️
|
|
191
|
+
- Transcendent (40000+ XP) 🌟
|
|
192
|
+
- Legendary (80000+ XP) 💫
|
|
193
|
+
|
|
194
|
+
### Streaks
|
|
195
|
+
|
|
196
|
+
Daily check-ins build streaks with visual progression:
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
🔥 5-day streak (1-5 days)
|
|
200
|
+
🌟🌟 12-day streak (6-14 days)
|
|
201
|
+
👑👑👑 18-day streak 🏆 (15+ days, Personal Best!)
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Streak freezes protect against occasional missed days.
|
|
205
|
+
|
|
206
|
+
### Weekly Challenges
|
|
207
|
+
|
|
208
|
+
Auto-generated based on your weak metrics:
|
|
209
|
+
|
|
210
|
+
```
|
|
211
|
+
WEEKLY CHALLENGES
|
|
212
|
+
|
|
213
|
+
🎯 Trust Gauntlet: ████████░░ 4/5 (90%+ trust in 5 sessions)
|
|
214
|
+
🧘 Zen Mode: ██████████ ✓ COMPLETE (+100 XP)
|
|
215
|
+
🔥 Streak Builder: ██░░░░░░░░ 1/5 (extend streak by 5 days)
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Achievements (19 total)
|
|
219
|
+
|
|
220
|
+
Categories:
|
|
221
|
+
- **Consistency**: First Blood, Week Warrior, Streak Master
|
|
222
|
+
- **Quality**: Elite Vibes, Trust Builder, Zen Master
|
|
223
|
+
- **Volume**: Centurion, Marathon Coder
|
|
224
|
+
- **Improvement**: Comeback Kid, On Fire
|
|
225
|
+
- **Special**: Night Owl, Early Bird, Weekend Warrior
|
|
226
|
+
|
|
227
|
+
### Rank Badges
|
|
228
|
+
|
|
229
|
+
```
|
|
230
|
+
🥉 Bronze (10+ sessions)
|
|
231
|
+
🥈 Silver (50+ sessions)
|
|
232
|
+
🥇 Gold (100+ sessions)
|
|
233
|
+
💎 Platinum (14+ day streak)
|
|
234
|
+
🔷 Diamond (5000+ XP)
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
### Local Leaderboards & Hall of Fame
|
|
238
|
+
|
|
239
|
+
Track your personal bests across all repos:
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
🏛️ HALL OF FAME
|
|
243
|
+
|
|
244
|
+
🏆 Best Score: 96% (Nov 15, my-project)
|
|
245
|
+
🔥 Longest Streak: 15 days
|
|
246
|
+
⚡ Best Week: 847 XP
|
|
247
|
+
📊 Most Commits: 127 (Nov 10, big-refactor)
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## Integration Points
|
|
253
|
+
|
|
254
|
+
### Git Hook
|
|
255
|
+
|
|
256
|
+
Automatic vibe-check on every push:
|
|
257
|
+
|
|
258
|
+
```bash
|
|
259
|
+
vibe-check init-hook # Install hook
|
|
260
|
+
vibe-check init-hook --block-low # Block LOW pushes
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### GitHub Action
|
|
264
|
+
|
|
265
|
+
Automated PR feedback:
|
|
266
|
+
|
|
267
|
+
```yaml
|
|
268
|
+
name: Vibe Check
|
|
269
|
+
on: [pull_request]
|
|
270
|
+
|
|
271
|
+
jobs:
|
|
272
|
+
vibe-check:
|
|
273
|
+
runs-on: ubuntu-latest
|
|
274
|
+
steps:
|
|
275
|
+
- uses: actions/checkout@v4
|
|
276
|
+
with:
|
|
277
|
+
fetch-depth: 0
|
|
278
|
+
- uses: boshu2/vibe-check@v1
|
|
279
|
+
with:
|
|
280
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
### JSON Output
|
|
284
|
+
|
|
285
|
+
Machine-readable for dashboards/CI:
|
|
286
|
+
|
|
287
|
+
```bash
|
|
288
|
+
vibe-check --format json --output vibe-results.json
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
---
|
|
292
|
+
|
|
293
|
+
## The Workflow
|
|
294
|
+
|
|
295
|
+
### Daily Practice
|
|
296
|
+
|
|
297
|
+
```
|
|
298
|
+
Morning:
|
|
299
|
+
1. vibe-check profile # Check streak, challenges
|
|
300
|
+
2. Plan tasks, estimate levels
|
|
301
|
+
|
|
302
|
+
During work:
|
|
303
|
+
3. vibe-check watch # Real-time monitoring
|
|
304
|
+
4. Notice spiral alerts, intervene early
|
|
305
|
+
|
|
306
|
+
End of session:
|
|
307
|
+
5. vibe-check --since "today" # Review session
|
|
308
|
+
6. XP/achievements auto-update
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
### Session Workflow (Optional)
|
|
312
|
+
|
|
313
|
+
For explicit tracking:
|
|
314
|
+
|
|
315
|
+
```bash
|
|
316
|
+
# Before: declare expectation
|
|
317
|
+
vibe-check start --level 3
|
|
318
|
+
|
|
319
|
+
# ... work ...
|
|
320
|
+
|
|
321
|
+
# After: compare reality
|
|
322
|
+
vibe-check --since "1 hour ago"
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
The tool will show whether your level classification was accurate.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Philosophy
|
|
330
|
+
|
|
331
|
+
### What vibe-check IS
|
|
332
|
+
|
|
333
|
+
- A self-reflection tool
|
|
334
|
+
- A pattern detector
|
|
335
|
+
- A gamified improvement system
|
|
336
|
+
- A calibration feedback loop
|
|
337
|
+
|
|
338
|
+
### What vibe-check IS NOT
|
|
339
|
+
|
|
340
|
+
- A productivity metric
|
|
341
|
+
- A performance review tool
|
|
342
|
+
- A surveillance system
|
|
343
|
+
- A judgment of AI effectiveness
|
|
344
|
+
|
|
345
|
+
**Use it for yourself, not for measuring others.**
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
## The Science
|
|
350
|
+
|
|
351
|
+
vibe-check uses **semantic-free signals** - patterns in git history that indicate workflow health without reading code content. This approach:
|
|
352
|
+
|
|
353
|
+
1. **Can't be gamed** - You can't fake commit timestamps
|
|
354
|
+
2. **Respects privacy** - Never reads actual code
|
|
355
|
+
3. **Is universal** - Works for any language/framework
|
|
356
|
+
4. **Provides honest signal** - Measures behavior, not intention
|
|
357
|
+
|
|
358
|
+
The VibeScore combines metrics using validated weights derived from empirical analysis of productive vs. struggling sessions.
|
|
359
|
+
|
|
360
|
+
---
|
|
361
|
+
|
|
362
|
+
## Future Roadmap
|
|
363
|
+
|
|
364
|
+
| Phase | Status | Description |
|
|
365
|
+
|-------|--------|-------------|
|
|
366
|
+
| CLI Core | ✅ Complete | Metrics, scoring, analysis |
|
|
367
|
+
| Gamification | ✅ Complete | XP, streaks, achievements, challenges |
|
|
368
|
+
| Watch Mode | ✅ Complete | Real-time spiral detection |
|
|
369
|
+
| GitHub Action | ✅ Complete | Automated PR feedback |
|
|
370
|
+
| Pattern Memory | ✅ Complete | Track your spiral triggers |
|
|
371
|
+
| Web Dashboard | 🔮 Planned | Visualizations, trends |
|
|
372
|
+
| VS Code Extension | 🔮 Planned | Status bar, live alerts |
|
|
373
|
+
| Team Features | 🔮 Planned | Opt-in leaderboards |
|
|
374
|
+
|
|
375
|
+
---
|
|
376
|
+
|
|
377
|
+
## Getting Started
|
|
378
|
+
|
|
379
|
+
```bash
|
|
380
|
+
# Install
|
|
381
|
+
npm install -g @boshu2/vibe-check
|
|
382
|
+
|
|
383
|
+
# Run your first check
|
|
384
|
+
vibe-check --since "1 week ago"
|
|
385
|
+
|
|
386
|
+
# See your profile
|
|
387
|
+
vibe-check profile
|
|
388
|
+
|
|
389
|
+
# Start watching
|
|
390
|
+
vibe-check watch
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
---
|
|
394
|
+
|
|
395
|
+
## Resources
|
|
396
|
+
|
|
397
|
+
- **npm**: [@boshu2/vibe-check](https://www.npmjs.com/package/@boshu2/vibe-check)
|
|
398
|
+
- **GitHub**: [boshu2/vibe-check](https://github.com/boshu2/vibe-check)
|
|
399
|
+
- **Issues**: [Report bugs or request features](https://github.com/boshu2/vibe-check/issues)
|
|
400
|
+
|
|
401
|
+
---
|
|
402
|
+
|
|
403
|
+
*"The goal isn't perfect metrics. It's conscious awareness of your patterns."*
|
|
404
|
+
|
|
405
|
+
**Version:** 1.5.0
|
|
406
|
+
**Last Updated:** 2025-11-29
|
|
Binary file
|
package/feature-list.json
CHANGED
|
@@ -141,6 +141,54 @@
|
|
|
141
141
|
"description": "Near-miss psychology messaging (SO CLOSE motivational messages)",
|
|
142
142
|
"passes": true,
|
|
143
143
|
"completed_date": "2025-11-29"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "VIBE-024",
|
|
147
|
+
"description": "Timeline command Phase 1 MVP (session detection, day grouping, terminal output)",
|
|
148
|
+
"passes": true,
|
|
149
|
+
"completed_date": "2025-11-30"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"id": "VIBE-025",
|
|
153
|
+
"description": "Timeline Phase 2: Flow state detection",
|
|
154
|
+
"passes": true,
|
|
155
|
+
"completed_date": "2025-11-30"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"id": "VIBE-026",
|
|
159
|
+
"description": "Timeline Phase 2: Post-delete sprint detection",
|
|
160
|
+
"passes": true,
|
|
161
|
+
"completed_date": "2025-11-30"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"id": "VIBE-027",
|
|
165
|
+
"description": "Timeline Phase 2: Thrashing detection",
|
|
166
|
+
"passes": true,
|
|
167
|
+
"completed_date": "2025-11-30"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"id": "VIBE-028",
|
|
171
|
+
"description": "Timeline recommendation engine with actionable insights",
|
|
172
|
+
"passes": true,
|
|
173
|
+
"completed_date": "2025-11-30"
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"id": "VIBE-029",
|
|
177
|
+
"description": "Timeline Phase 3: Detour detection and late-night spirals",
|
|
178
|
+
"passes": true,
|
|
179
|
+
"completed_date": "2025-11-30"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"id": "VIBE-030",
|
|
183
|
+
"description": "Timeline Phase 4: Export formats (Markdown, HTML for sharing)",
|
|
184
|
+
"passes": true,
|
|
185
|
+
"completed_date": "2025-11-30"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"id": "VIBE-031",
|
|
189
|
+
"description": "Timeline persistence: Cache to .vibe-check/timeline.json with compounding insights",
|
|
190
|
+
"passes": true,
|
|
191
|
+
"completed_date": "2025-11-30"
|
|
144
192
|
}
|
|
145
193
|
]
|
|
146
194
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@boshu2/vibe-check",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.6.1",
|
|
4
4
|
"description": "Track git commit patterns during AI-assisted coding (experimental)",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"bin": {
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
38
|
"@types/node": "^22.0.0",
|
|
39
|
+
"@vitest/coverage-v8": "^4.0.14",
|
|
39
40
|
"ts-node": "^10.9.2",
|
|
40
41
|
"typescript": "^5.9.0",
|
|
41
42
|
"vitest": "^4.0.0"
|
package/vitest.config.ts
CHANGED
|
@@ -5,10 +5,6 @@ export default defineConfig({
|
|
|
5
5
|
globals: true,
|
|
6
6
|
environment: 'node',
|
|
7
7
|
include: ['tests/**/*.test.ts'],
|
|
8
|
-
|
|
9
|
-
provider: 'v8',
|
|
10
|
-
include: ['src/**/*.ts'],
|
|
11
|
-
exclude: ['src/cli.ts'],
|
|
12
|
-
},
|
|
8
|
+
testTimeout: 30000, // Integration tests need more time
|
|
13
9
|
},
|
|
14
10
|
});
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"samples": [
|
|
3
|
-
{
|
|
4
|
-
"timestamp": "2025-11-28T22:18:40.597Z",
|
|
5
|
-
"vibeScore": 0.83,
|
|
6
|
-
"declaredLevel": 4,
|
|
7
|
-
"outcome": "correct",
|
|
8
|
-
"features": [
|
|
9
|
-
0.95,
|
|
10
|
-
0.78,
|
|
11
|
-
0.53,
|
|
12
|
-
0.99
|
|
13
|
-
],
|
|
14
|
-
"modelVersion": "2.0.0"
|
|
15
|
-
}
|
|
16
|
-
],
|
|
17
|
-
"weights": [
|
|
18
|
-
0.3,
|
|
19
|
-
-0.5,
|
|
20
|
-
-0.4,
|
|
21
|
-
-0.4,
|
|
22
|
-
0.3,
|
|
23
|
-
0.8,
|
|
24
|
-
0.6,
|
|
25
|
-
0.3,
|
|
26
|
-
0.5
|
|
27
|
-
],
|
|
28
|
-
"thresholds": [
|
|
29
|
-
-2,
|
|
30
|
-
-0.8,
|
|
31
|
-
0.4,
|
|
32
|
-
1.6,
|
|
33
|
-
2.8
|
|
34
|
-
],
|
|
35
|
-
"ece": 0,
|
|
36
|
-
"lastUpdated": "2025-11-28T22:18:40.597Z",
|
|
37
|
-
"version": "2.0.0"
|
|
38
|
-
}
|
package/.vibe-check/latest.json
DELETED
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"period": {
|
|
3
|
-
"from": "2025-11-28T17:09:58.000Z",
|
|
4
|
-
"to": "2025-11-29T17:06:04.000Z",
|
|
5
|
-
"activeHours": 5.8
|
|
6
|
-
},
|
|
7
|
-
"commits": {
|
|
8
|
-
"total": 19,
|
|
9
|
-
"feat": 6,
|
|
10
|
-
"fix": 2,
|
|
11
|
-
"docs": 4,
|
|
12
|
-
"other": 7
|
|
13
|
-
},
|
|
14
|
-
"metrics": {
|
|
15
|
-
"iterationVelocity": {
|
|
16
|
-
"value": 3.3,
|
|
17
|
-
"unit": "commits/hour",
|
|
18
|
-
"rating": "high"
|
|
19
|
-
},
|
|
20
|
-
"reworkRatio": {
|
|
21
|
-
"value": 11,
|
|
22
|
-
"unit": "%",
|
|
23
|
-
"rating": "elite"
|
|
24
|
-
},
|
|
25
|
-
"trustPassRate": {
|
|
26
|
-
"value": 100,
|
|
27
|
-
"unit": "%",
|
|
28
|
-
"rating": "elite"
|
|
29
|
-
},
|
|
30
|
-
"debugSpiralDuration": {
|
|
31
|
-
"value": 0,
|
|
32
|
-
"unit": "min",
|
|
33
|
-
"rating": "elite"
|
|
34
|
-
},
|
|
35
|
-
"flowEfficiency": {
|
|
36
|
-
"value": 100,
|
|
37
|
-
"unit": "%",
|
|
38
|
-
"rating": "elite"
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
|
-
"fixChains": [],
|
|
42
|
-
"patterns": {
|
|
43
|
-
"categories": {},
|
|
44
|
-
"total": 0,
|
|
45
|
-
"tracerAvailable": 0
|
|
46
|
-
},
|
|
47
|
-
"overall": "ELITE",
|
|
48
|
-
"vibeScore": {
|
|
49
|
-
"value": 0.88,
|
|
50
|
-
"components": {
|
|
51
|
-
"fileChurn": 0.97,
|
|
52
|
-
"timeSpiral": 0.74,
|
|
53
|
-
"velocityAnomaly": 0.79,
|
|
54
|
-
"codeStability": 0.99
|
|
55
|
-
},
|
|
56
|
-
"weights": {
|
|
57
|
-
"fileChurn": 0.3,
|
|
58
|
-
"timeSpiral": 0.25,
|
|
59
|
-
"velocityAnomaly": 0.2,
|
|
60
|
-
"codeStability": 0.25
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
"recommendation": {
|
|
64
|
-
"level": 5,
|
|
65
|
-
"confidence": 0.3,
|
|
66
|
-
"probabilities": [
|
|
67
|
-
0.018853929395775577,
|
|
68
|
-
0.04111986761778373,
|
|
69
|
-
0.1148237967015614,
|
|
70
|
-
0.23809991674270975,
|
|
71
|
-
0.2872499181517066,
|
|
72
|
-
0.29985257139046295
|
|
73
|
-
],
|
|
74
|
-
"ci": [
|
|
75
|
-
1.2053475326593759,
|
|
76
|
-
5
|
|
77
|
-
]
|
|
78
|
-
},
|
|
79
|
-
"semanticFreeMetrics": {
|
|
80
|
-
"fileChurn": {
|
|
81
|
-
"value": 97,
|
|
82
|
-
"unit": "%",
|
|
83
|
-
"rating": "elite",
|
|
84
|
-
"description": "Elite: 2/63 files churned (<10%)",
|
|
85
|
-
"churnedFiles": 2,
|
|
86
|
-
"totalFiles": 63
|
|
87
|
-
},
|
|
88
|
-
"timeSpiral": {
|
|
89
|
-
"value": 74,
|
|
90
|
-
"unit": "%",
|
|
91
|
-
"rating": "high",
|
|
92
|
-
"description": "High: 5/19 rapid commits (15-30%)",
|
|
93
|
-
"spiralCommits": 5,
|
|
94
|
-
"totalCommits": 19
|
|
95
|
-
},
|
|
96
|
-
"velocityAnomaly": {
|
|
97
|
-
"value": 79,
|
|
98
|
-
"unit": "%",
|
|
99
|
-
"rating": "elite",
|
|
100
|
-
"description": "Elite: 3.3/hr (near baseline 3.0/hr)",
|
|
101
|
-
"currentVelocity": 3.3,
|
|
102
|
-
"baselineMean": 3,
|
|
103
|
-
"zScore": 0.17
|
|
104
|
-
},
|
|
105
|
-
"codeStability": {
|
|
106
|
-
"value": 99,
|
|
107
|
-
"unit": "%",
|
|
108
|
-
"rating": "elite",
|
|
109
|
-
"description": "Elite: 99% stability (+13230/-261)",
|
|
110
|
-
"linesAdded": 13230,
|
|
111
|
-
"linesSurviving": 13100
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"sessions": [
|
|
3
|
-
{
|
|
4
|
-
"id": "2025-11-29T15:25",
|
|
5
|
-
"startedAt": "2025-11-29T15:25:11.000Z",
|
|
6
|
-
"endedAt": "2025-11-29T20:46:56.000Z",
|
|
7
|
-
"commits": 29,
|
|
8
|
-
"trustPassRate": 100,
|
|
9
|
-
"reworkRatio": 14,
|
|
10
|
-
"spirals": 0
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
"id": "2025-11-28T17:09",
|
|
14
|
-
"startedAt": "2025-11-28T17:09:58.000Z",
|
|
15
|
-
"endedAt": "2025-11-28T18:56:36.000Z",
|
|
16
|
-
"commits": 7,
|
|
17
|
-
"trustPassRate": 100,
|
|
18
|
-
"reworkRatio": 14,
|
|
19
|
-
"spirals": 0
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
"id": "2025-11-29T21:01",
|
|
23
|
-
"startedAt": "2025-11-29T21:01:28.000Z",
|
|
24
|
-
"endedAt": "2025-11-29T21:45:06.000Z",
|
|
25
|
-
"commits": 3,
|
|
26
|
-
"trustPassRate": 100,
|
|
27
|
-
"reworkRatio": 0,
|
|
28
|
-
"spirals": 0,
|
|
29
|
-
"vibeScore": 0.93
|
|
30
|
-
},
|
|
31
|
-
{
|
|
32
|
-
"id": "2025-11-29T20:35",
|
|
33
|
-
"startedAt": "2025-11-29T20:35:11.000Z",
|
|
34
|
-
"endedAt": "2025-11-29T21:45:06.000Z",
|
|
35
|
-
"commits": 5,
|
|
36
|
-
"trustPassRate": 100,
|
|
37
|
-
"reworkRatio": 0,
|
|
38
|
-
"spirals": 0,
|
|
39
|
-
"vibeScore": 0.82
|
|
40
|
-
}
|
|
41
|
-
],
|
|
42
|
-
"baseline": null,
|
|
43
|
-
"lastUpdated": "2025-11-29T22:12:35.462Z"
|
|
44
|
-
}
|