@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.
Files changed (156) hide show
  1. package/.agents/bundles/actionable-coaching-plan-2025-12-02.md +209 -0
  2. package/.agents/bundles/automatic-learning-cadence-plan-2025-12-02.md +1297 -0
  3. package/.agents/bundles/automatic-learning-cadence-research-2025-12-02.md +481 -0
  4. package/.agents/bundles/dashboard-data-quality-plan.md +458 -0
  5. package/.agents/bundles/rating-scoring-alignment-plan.md +427 -0
  6. package/.agents/bundles/rpi-session-capture-plan-2025-12-02.md +693 -0
  7. package/.agents/bundles/rpi-session-capture-research-2025-12-02.md +433 -0
  8. package/.agents/bundles/session-integration-plan-2025-12-02.md +144 -0
  9. package/.agents/plans/git-forensics-enhancement-2025-12-05.md +493 -0
  10. package/.claude/skills/typescript-review.md +152 -0
  11. package/CHANGELOG.md +53 -0
  12. package/CLAUDE.md +79 -3
  13. package/Makefile +160 -0
  14. package/README.md +141 -155
  15. package/SECURITY.md +5 -1
  16. package/assets/logo-dark.svg +47 -0
  17. package/assets/logo.svg +47 -0
  18. package/claude-progress.json +54 -4
  19. package/claude-progress.txt +114 -0
  20. package/dashboard/app.js +699 -66
  21. package/dashboard/chart.min.js +20 -0
  22. package/dashboard/dashboard-data.js +764 -0
  23. package/dashboard/dashboard-data.json +182 -71
  24. package/dashboard/index.html +139 -14
  25. package/dashboard/styles.css +579 -4
  26. package/dist/analyzers/patterns.d.ts +62 -0
  27. package/dist/analyzers/patterns.d.ts.map +1 -0
  28. package/dist/analyzers/patterns.js +103 -0
  29. package/dist/analyzers/patterns.js.map +1 -0
  30. package/dist/analyzers/quality.d.ts +58 -0
  31. package/dist/analyzers/quality.d.ts.map +1 -0
  32. package/dist/analyzers/quality.js +114 -0
  33. package/dist/analyzers/quality.js.map +1 -0
  34. package/dist/analyzers/sessions.d.ts +45 -0
  35. package/dist/analyzers/sessions.d.ts.map +1 -0
  36. package/dist/analyzers/sessions.js +123 -0
  37. package/dist/analyzers/sessions.js.map +1 -0
  38. package/dist/cli.js +5 -1
  39. package/dist/cli.js.map +1 -1
  40. package/dist/commands/analyze.d.ts.map +1 -1
  41. package/dist/commands/analyze.js +43 -2
  42. package/dist/commands/analyze.js.map +1 -1
  43. package/dist/commands/dashboard.js +4 -1
  44. package/dist/commands/dashboard.js.map +1 -1
  45. package/dist/commands/forensics.d.ts +29 -0
  46. package/dist/commands/forensics.d.ts.map +1 -0
  47. package/dist/commands/forensics.js +213 -0
  48. package/dist/commands/forensics.js.map +1 -0
  49. package/dist/commands/index.d.ts +5 -1
  50. package/dist/commands/index.d.ts.map +1 -1
  51. package/dist/commands/index.js +13 -3
  52. package/dist/commands/index.js.map +1 -1
  53. package/dist/commands/insights.d.ts +3 -0
  54. package/dist/commands/insights.d.ts.map +1 -0
  55. package/dist/commands/insights.js +120 -0
  56. package/dist/commands/insights.js.map +1 -0
  57. package/dist/commands/learn.d.ts +3 -0
  58. package/dist/commands/learn.d.ts.map +1 -0
  59. package/dist/commands/learn.js +161 -0
  60. package/dist/commands/learn.js.map +1 -0
  61. package/dist/commands/lesson.d.ts +8 -0
  62. package/dist/commands/lesson.d.ts.map +1 -0
  63. package/dist/commands/lesson.js +206 -0
  64. package/dist/commands/lesson.js.map +1 -0
  65. package/dist/commands/pipeline.d.ts +3 -0
  66. package/dist/commands/pipeline.d.ts.map +1 -0
  67. package/dist/commands/pipeline.js +485 -0
  68. package/dist/commands/pipeline.js.map +1 -0
  69. package/dist/commands/profile.d.ts +0 -1
  70. package/dist/commands/profile.d.ts.map +1 -1
  71. package/dist/commands/profile.js +3 -206
  72. package/dist/commands/profile.js.map +1 -1
  73. package/dist/commands/session.d.ts +51 -0
  74. package/dist/commands/session.d.ts.map +1 -0
  75. package/dist/commands/session.js +599 -0
  76. package/dist/commands/session.js.map +1 -0
  77. package/dist/commands/sessions.d.ts +20 -0
  78. package/dist/commands/sessions.d.ts.map +1 -0
  79. package/dist/commands/sessions.js +201 -0
  80. package/dist/commands/sessions.js.map +1 -0
  81. package/dist/commands/watch.d.ts.map +1 -1
  82. package/dist/commands/watch.js +48 -7
  83. package/dist/commands/watch.js.map +1 -1
  84. package/dist/gamification/index.d.ts +1 -3
  85. package/dist/gamification/index.d.ts.map +1 -1
  86. package/dist/gamification/index.js +2 -5
  87. package/dist/gamification/index.js.map +1 -1
  88. package/dist/gamification/pattern-memory.d.ts +1 -1
  89. package/dist/gamification/pattern-memory.d.ts.map +1 -1
  90. package/dist/gamification/pattern-memory.js.map +1 -1
  91. package/dist/gamification/profile.d.ts +2 -2
  92. package/dist/gamification/profile.d.ts.map +1 -1
  93. package/dist/gamification/profile.js +2 -15
  94. package/dist/gamification/profile.js.map +1 -1
  95. package/dist/gamification/types.d.ts +8 -2
  96. package/dist/gamification/types.d.ts.map +1 -1
  97. package/dist/gamification/types.js.map +1 -1
  98. package/dist/insights/index.d.ts.map +1 -1
  99. package/dist/insights/index.js +16 -4
  100. package/dist/insights/index.js.map +1 -1
  101. package/dist/insights/types.d.ts +14 -0
  102. package/dist/insights/types.d.ts.map +1 -1
  103. package/dist/learning/cadence.d.ts +15 -0
  104. package/dist/learning/cadence.d.ts.map +1 -0
  105. package/dist/learning/cadence.js +130 -0
  106. package/dist/learning/cadence.js.map +1 -0
  107. package/dist/learning/index.d.ts +19 -0
  108. package/dist/learning/index.d.ts.map +1 -0
  109. package/dist/learning/index.js +35 -0
  110. package/dist/learning/index.js.map +1 -0
  111. package/dist/learning/lessons-storage.d.ts +48 -0
  112. package/dist/learning/lessons-storage.d.ts.map +1 -0
  113. package/dist/learning/lessons-storage.js +266 -0
  114. package/dist/learning/lessons-storage.js.map +1 -0
  115. package/dist/learning/lessons-types.d.ts +83 -0
  116. package/dist/learning/lessons-types.d.ts.map +1 -0
  117. package/dist/learning/lessons-types.js +15 -0
  118. package/dist/learning/lessons-types.js.map +1 -0
  119. package/dist/learning/nudges.d.ts +20 -0
  120. package/dist/learning/nudges.d.ts.map +1 -0
  121. package/dist/learning/nudges.js +68 -0
  122. package/dist/learning/nudges.js.map +1 -0
  123. package/dist/learning/retrospective.d.ts +27 -0
  124. package/dist/learning/retrospective.d.ts.map +1 -0
  125. package/dist/learning/retrospective.js +184 -0
  126. package/dist/learning/retrospective.js.map +1 -0
  127. package/dist/learning/storage.d.ts +44 -0
  128. package/dist/learning/storage.d.ts.map +1 -0
  129. package/dist/learning/storage.js +194 -0
  130. package/dist/learning/storage.js.map +1 -0
  131. package/dist/learning/surfacing.d.ts +36 -0
  132. package/dist/learning/surfacing.d.ts.map +1 -0
  133. package/dist/learning/surfacing.js +255 -0
  134. package/dist/learning/surfacing.js.map +1 -0
  135. package/dist/learning/synthesis.d.ts +17 -0
  136. package/dist/learning/synthesis.d.ts.map +1 -0
  137. package/dist/learning/synthesis.js +293 -0
  138. package/dist/learning/synthesis.js.map +1 -0
  139. package/dist/learning/types.d.ts +60 -0
  140. package/dist/learning/types.d.ts.map +1 -0
  141. package/dist/learning/types.js +17 -0
  142. package/dist/learning/types.js.map +1 -0
  143. package/dist/storage/index.d.ts +1 -0
  144. package/dist/storage/index.d.ts.map +1 -1
  145. package/dist/storage/index.js +11 -1
  146. package/dist/storage/index.js.map +1 -1
  147. package/dist/storage/spiral-history.d.ts +62 -0
  148. package/dist/storage/spiral-history.d.ts.map +1 -0
  149. package/dist/storage/spiral-history.js +265 -0
  150. package/dist/storage/spiral-history.js.map +1 -0
  151. package/docs/ARCHITECTURE.md +2 -10
  152. package/docs/GAMIFICATION.md +19 -266
  153. package/docs/METRICS.md +528 -0
  154. package/docs/VIBE-ECOSYSTEM.md +12 -78
  155. package/feature-list.json +141 -68
  156. 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