@boshu2/vibe-check 1.6.2 → 1.8.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/actionable-coaching-plan-2025-12-02.md +209 -0
- package/.agents/bundles/automatic-learning-cadence-plan-2025-12-02.md +1297 -0
- package/.agents/bundles/automatic-learning-cadence-research-2025-12-02.md +481 -0
- package/.agents/bundles/dashboard-data-quality-plan.md +458 -0
- package/.agents/bundles/rating-scoring-alignment-plan.md +427 -0
- package/.agents/bundles/rpi-session-capture-plan-2025-12-02.md +693 -0
- package/.agents/bundles/rpi-session-capture-research-2025-12-02.md +433 -0
- package/.agents/bundles/session-integration-plan-2025-12-02.md +144 -0
- package/.agents/plans/git-forensics-enhancement-2025-12-05.md +493 -0
- package/.claude/skills/typescript-review.md +152 -0
- package/CHANGELOG.md +53 -0
- package/CLAUDE.md +79 -3
- package/Makefile +160 -0
- package/README.md +141 -155
- package/SECURITY.md +5 -1
- package/assets/logo-dark.svg +47 -0
- package/assets/logo.svg +47 -0
- package/claude-progress.json +54 -4
- package/claude-progress.txt +114 -0
- package/dashboard/app.js +699 -66
- package/dashboard/chart.min.js +20 -0
- package/dashboard/dashboard-data.js +764 -0
- package/dashboard/dashboard-data.json +182 -71
- package/dashboard/index.html +139 -14
- package/dashboard/styles.css +579 -4
- package/dist/analyzers/patterns.d.ts +62 -0
- package/dist/analyzers/patterns.d.ts.map +1 -0
- package/dist/analyzers/patterns.js +103 -0
- package/dist/analyzers/patterns.js.map +1 -0
- package/dist/analyzers/quality.d.ts +58 -0
- package/dist/analyzers/quality.d.ts.map +1 -0
- package/dist/analyzers/quality.js +114 -0
- package/dist/analyzers/quality.js.map +1 -0
- package/dist/analyzers/sessions.d.ts +45 -0
- package/dist/analyzers/sessions.d.ts.map +1 -0
- package/dist/analyzers/sessions.js +123 -0
- package/dist/analyzers/sessions.js.map +1 -0
- package/dist/cli.js +5 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +43 -2
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/dashboard.js +4 -1
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/forensics.d.ts +29 -0
- package/dist/commands/forensics.d.ts.map +1 -0
- package/dist/commands/forensics.js +213 -0
- package/dist/commands/forensics.js.map +1 -0
- package/dist/commands/index.d.ts +5 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +13 -3
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/insights.d.ts +3 -0
- package/dist/commands/insights.d.ts.map +1 -0
- package/dist/commands/insights.js +120 -0
- package/dist/commands/insights.js.map +1 -0
- package/dist/commands/learn.d.ts +3 -0
- package/dist/commands/learn.d.ts.map +1 -0
- package/dist/commands/learn.js +161 -0
- package/dist/commands/learn.js.map +1 -0
- package/dist/commands/lesson.d.ts +8 -0
- package/dist/commands/lesson.d.ts.map +1 -0
- package/dist/commands/lesson.js +206 -0
- package/dist/commands/lesson.js.map +1 -0
- package/dist/commands/pipeline.d.ts +3 -0
- package/dist/commands/pipeline.d.ts.map +1 -0
- package/dist/commands/pipeline.js +485 -0
- package/dist/commands/pipeline.js.map +1 -0
- package/dist/commands/profile.d.ts +0 -1
- package/dist/commands/profile.d.ts.map +1 -1
- package/dist/commands/profile.js +3 -206
- package/dist/commands/profile.js.map +1 -1
- package/dist/commands/session.d.ts +51 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +599 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/commands/sessions.d.ts +20 -0
- package/dist/commands/sessions.d.ts.map +1 -0
- package/dist/commands/sessions.js +201 -0
- package/dist/commands/sessions.js.map +1 -0
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +48 -7
- package/dist/commands/watch.js.map +1 -1
- package/dist/gamification/index.d.ts +1 -3
- package/dist/gamification/index.d.ts.map +1 -1
- package/dist/gamification/index.js +2 -5
- package/dist/gamification/index.js.map +1 -1
- package/dist/gamification/pattern-memory.d.ts +1 -1
- package/dist/gamification/pattern-memory.d.ts.map +1 -1
- package/dist/gamification/pattern-memory.js.map +1 -1
- package/dist/gamification/profile.d.ts +2 -2
- package/dist/gamification/profile.d.ts.map +1 -1
- package/dist/gamification/profile.js +2 -15
- package/dist/gamification/profile.js.map +1 -1
- package/dist/gamification/types.d.ts +8 -2
- package/dist/gamification/types.d.ts.map +1 -1
- package/dist/gamification/types.js.map +1 -1
- package/dist/insights/index.d.ts.map +1 -1
- package/dist/insights/index.js +16 -4
- package/dist/insights/index.js.map +1 -1
- package/dist/insights/types.d.ts +14 -0
- package/dist/insights/types.d.ts.map +1 -1
- package/dist/learning/cadence.d.ts +15 -0
- package/dist/learning/cadence.d.ts.map +1 -0
- package/dist/learning/cadence.js +130 -0
- package/dist/learning/cadence.js.map +1 -0
- package/dist/learning/index.d.ts +19 -0
- package/dist/learning/index.d.ts.map +1 -0
- package/dist/learning/index.js +35 -0
- package/dist/learning/index.js.map +1 -0
- package/dist/learning/lessons-storage.d.ts +48 -0
- package/dist/learning/lessons-storage.d.ts.map +1 -0
- package/dist/learning/lessons-storage.js +266 -0
- package/dist/learning/lessons-storage.js.map +1 -0
- package/dist/learning/lessons-types.d.ts +83 -0
- package/dist/learning/lessons-types.d.ts.map +1 -0
- package/dist/learning/lessons-types.js +15 -0
- package/dist/learning/lessons-types.js.map +1 -0
- package/dist/learning/nudges.d.ts +20 -0
- package/dist/learning/nudges.d.ts.map +1 -0
- package/dist/learning/nudges.js +68 -0
- package/dist/learning/nudges.js.map +1 -0
- package/dist/learning/retrospective.d.ts +27 -0
- package/dist/learning/retrospective.d.ts.map +1 -0
- package/dist/learning/retrospective.js +184 -0
- package/dist/learning/retrospective.js.map +1 -0
- package/dist/learning/storage.d.ts +44 -0
- package/dist/learning/storage.d.ts.map +1 -0
- package/dist/learning/storage.js +194 -0
- package/dist/learning/storage.js.map +1 -0
- package/dist/learning/surfacing.d.ts +36 -0
- package/dist/learning/surfacing.d.ts.map +1 -0
- package/dist/learning/surfacing.js +255 -0
- package/dist/learning/surfacing.js.map +1 -0
- package/dist/learning/synthesis.d.ts +17 -0
- package/dist/learning/synthesis.d.ts.map +1 -0
- package/dist/learning/synthesis.js +293 -0
- package/dist/learning/synthesis.js.map +1 -0
- package/dist/learning/types.d.ts +60 -0
- package/dist/learning/types.d.ts.map +1 -0
- package/dist/learning/types.js +17 -0
- package/dist/learning/types.js.map +1 -0
- package/dist/storage/index.d.ts +1 -0
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +11 -1
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/spiral-history.d.ts +62 -0
- package/dist/storage/spiral-history.d.ts.map +1 -0
- package/dist/storage/spiral-history.js +265 -0
- package/dist/storage/spiral-history.js.map +1 -0
- package/docs/ARCHITECTURE.md +2 -10
- package/docs/GAMIFICATION.md +19 -266
- package/docs/METRICS.md +528 -0
- package/docs/VIBE-ECOSYSTEM.md +12 -78
- package/feature-list.json +141 -68
- package/package.json +1 -1
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
# Actionable Coaching Enhancement Plan
|
|
2
|
+
|
|
3
|
+
**Goal:** Make vibe-check actively coach you to become a better vibe coder, not just display metrics.
|
|
4
|
+
|
|
5
|
+
**Created:** 2025-12-02
|
|
6
|
+
**Status:** Planning
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Problem Statement
|
|
11
|
+
|
|
12
|
+
Current vibe-check:
|
|
13
|
+
- Shows metrics (trust rate, rework ratio, spirals)
|
|
14
|
+
- Detects spirals in real-time (watch mode)
|
|
15
|
+
- Gives **generic** advice ("write a test", "take a break")
|
|
16
|
+
|
|
17
|
+
What's missing:
|
|
18
|
+
- **No memory** of what worked for YOU before
|
|
19
|
+
- **No personalization** based on YOUR patterns
|
|
20
|
+
- **No actionable next step** - just information
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Design Principles
|
|
25
|
+
|
|
26
|
+
1. **Lean** - ~200 lines, not 1700 (like the cut learning system)
|
|
27
|
+
2. **Actionable** - Tell user what to DO, not just what happened
|
|
28
|
+
3. **Personalized** - Based on YOUR history, not generic
|
|
29
|
+
4. **At decision time** - Surface advice when it matters (spiral detected, session end)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Architecture
|
|
34
|
+
|
|
35
|
+
### Data Model (append-only log)
|
|
36
|
+
|
|
37
|
+
```typescript
|
|
38
|
+
// ~/.vibe-check/spiral-history.ndjson
|
|
39
|
+
interface SpiralRecord {
|
|
40
|
+
date: string; // ISO date
|
|
41
|
+
pattern: string; // SECRETS_AUTH, VOLUME_CONFIG, etc.
|
|
42
|
+
component: string; // auth, database, api
|
|
43
|
+
duration: number; // minutes in spiral
|
|
44
|
+
resolution?: string; // What broke the spiral: TEST, BREAK, DOCS, HELP, ROLLBACK
|
|
45
|
+
}
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
**Why NDJSON:** Append-only, git-friendly diffs, easy to query last N records.
|
|
49
|
+
|
|
50
|
+
### Storage Location
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
~/.vibe-check/
|
|
54
|
+
├── profile.json # Existing - XP, streaks
|
|
55
|
+
└── spiral-history.ndjson # New - spiral log with resolutions
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
### Core Functions
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
// Record a spiral (called from analyze/session end)
|
|
62
|
+
appendSpiral(pattern, component, duration): void
|
|
63
|
+
|
|
64
|
+
// Record what broke the spiral (user input or inferred)
|
|
65
|
+
resolveSpiral(resolution): void
|
|
66
|
+
|
|
67
|
+
// Get personalized advice for a pattern
|
|
68
|
+
getAdvice(pattern, component): {
|
|
69
|
+
yourHistory: { times: number, avgDuration: number },
|
|
70
|
+
whatWorked: { resolution: string, times: number }[],
|
|
71
|
+
suggestion: string
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Features
|
|
78
|
+
|
|
79
|
+
### Feature 1: Spiral History Tracking
|
|
80
|
+
|
|
81
|
+
**Automatic tracking** when spirals are detected:
|
|
82
|
+
- Pattern (SECRETS_AUTH, etc.)
|
|
83
|
+
- Component (auth, api, etc.)
|
|
84
|
+
- Duration (minutes)
|
|
85
|
+
- Timestamp
|
|
86
|
+
|
|
87
|
+
No user action required - happens during `analyze` and `session end`.
|
|
88
|
+
|
|
89
|
+
### Feature 2: Resolution Recording
|
|
90
|
+
|
|
91
|
+
After spiral detected, prompt for what broke it:
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
Spiral resolved. What worked?
|
|
95
|
+
[T] Wrote a test
|
|
96
|
+
[B] Took a break
|
|
97
|
+
[D] Read docs
|
|
98
|
+
[H] Asked for help
|
|
99
|
+
[R] Rolled back
|
|
100
|
+
[Enter] Skip
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Or infer from commit patterns:
|
|
104
|
+
- Test commit after fix commits → TEST
|
|
105
|
+
- >15 min gap → BREAK
|
|
106
|
+
- Revert commit → ROLLBACK
|
|
107
|
+
|
|
108
|
+
### Feature 3: Personalized Watch Alerts
|
|
109
|
+
|
|
110
|
+
When spiral detected in watch mode:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
⚠️ SPIRAL FORMING - auth component (SECRETS_AUTH pattern)
|
|
114
|
+
|
|
115
|
+
Your history: 4 auth spirals, avg 18 min
|
|
116
|
+
What worked: tracer test (3x), break (1x)
|
|
117
|
+
|
|
118
|
+
→ Write a test that validates your auth assumption
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Feature 4: Session End Coaching
|
|
122
|
+
|
|
123
|
+
At `vibe-check session end`:
|
|
124
|
+
|
|
125
|
+
```
|
|
126
|
+
SESSION COMPLETE
|
|
127
|
+
|
|
128
|
+
Rating: HIGH (not ELITE because of 1 spiral)
|
|
129
|
+
|
|
130
|
+
🔄 You hit SECRETS_AUTH again (5th time)
|
|
131
|
+
Your go-to fix: tracer test
|
|
132
|
+
Consider: Add auth integration test to prevent recurrence
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Feature 5: Pattern Insights Command
|
|
136
|
+
|
|
137
|
+
New command or flag: `vibe-check insights`
|
|
138
|
+
|
|
139
|
+
```
|
|
140
|
+
YOUR SPIRAL PATTERNS (last 30 days)
|
|
141
|
+
|
|
142
|
+
Pattern Times Avg Duration Best Fix
|
|
143
|
+
SECRETS_AUTH 5 18 min tracer test
|
|
144
|
+
VOLUME_CONFIG 3 12 min docs
|
|
145
|
+
API_MISMATCH 2 25 min help
|
|
146
|
+
|
|
147
|
+
Top trigger: OAuth/token issues in auth component
|
|
148
|
+
|
|
149
|
+
Recommendation: Add tracer tests for auth flows before starting
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## Implementation Order
|
|
155
|
+
|
|
156
|
+
| # | Feature | Effort | Files |
|
|
157
|
+
|---|---------|--------|-------|
|
|
158
|
+
| 1 | Spiral history storage | 1 hr | `src/storage/spiral-history.ts` |
|
|
159
|
+
| 2 | Auto-record spirals | 30 min | `src/commands/analyze.ts`, `session.ts` |
|
|
160
|
+
| 3 | Enhanced watch alerts | 1 hr | `src/commands/watch.ts` |
|
|
161
|
+
| 4 | Session end coaching | 1 hr | `src/commands/session.ts` |
|
|
162
|
+
| 5 | Insights command | 1 hr | `src/commands/insights.ts` |
|
|
163
|
+
|
|
164
|
+
**Total:** ~5 hours, ~300-400 lines of new code
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Success Criteria
|
|
169
|
+
|
|
170
|
+
1. After 5+ spirals, advice is personalized to user's history
|
|
171
|
+
2. Watch mode shows "what worked before" when spiral detected
|
|
172
|
+
3. Session end gives actionable coaching, not just metrics
|
|
173
|
+
4. User can see their patterns with `vibe-check insights`
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## What This Is NOT
|
|
178
|
+
|
|
179
|
+
- Not the bloated learning system (10 files, 1755 lines)
|
|
180
|
+
- Not ML/AI predictions
|
|
181
|
+
- Not nudges/cadences/synthesis
|
|
182
|
+
- Just: **record what happened, show what worked**
|
|
183
|
+
|
|
184
|
+
---
|
|
185
|
+
|
|
186
|
+
## Files to Create/Modify
|
|
187
|
+
|
|
188
|
+
### New Files
|
|
189
|
+
- `src/storage/spiral-history.ts` - NDJSON append/query
|
|
190
|
+
- `src/commands/insights.ts` - Pattern insights command
|
|
191
|
+
|
|
192
|
+
### Modified Files
|
|
193
|
+
- `src/commands/watch.ts` - Personalized alerts
|
|
194
|
+
- `src/commands/session.ts` - Session end coaching
|
|
195
|
+
- `src/commands/analyze.ts` - Record spirals to history
|
|
196
|
+
- `src/cli.ts` - Register insights command
|
|
197
|
+
|
|
198
|
+
---
|
|
199
|
+
|
|
200
|
+
## Open Questions
|
|
201
|
+
|
|
202
|
+
1. **Resolution input:** Interactive prompt vs infer from commits?
|
|
203
|
+
- Recommendation: Infer first, prompt as fallback
|
|
204
|
+
|
|
205
|
+
2. **History retention:** How many records to keep?
|
|
206
|
+
- Recommendation: Last 100 spirals (~3-6 months typical usage)
|
|
207
|
+
|
|
208
|
+
3. **Pattern display names:** Use technical (SECRETS_AUTH) or friendly (OAuth/Token Issues)?
|
|
209
|
+
- Recommendation: Friendly in output, technical internally
|