@boshu2/vibe-check 1.7.0 → 1.8.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/actionable-coaching-plan-2025-12-02.md +209 -0
- package/.agents/plans/git-forensics-enhancement-2025-12-05.md +493 -0
- package/.claude/skills/typescript-review.md +152 -0
- package/CHANGELOG.md +41 -5
- package/CLAUDE.md +85 -23
- package/Makefile +43 -19
- package/README.md +178 -172
- package/SECURITY.md +5 -1
- package/assets/logo-dark.svg +47 -0
- package/assets/logo.svg +47 -0
- package/claude-progress.json +28 -7
- package/claude-progress.txt +48 -0
- 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 +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +5 -0
- package/dist/commands/analyze.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 +4 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +11 -1
- 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/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 +0 -4
- package/dist/commands/profile.js.map +1 -1
- package/dist/commands/session.d.ts +9 -0
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +95 -0
- package/dist/commands/session.js.map +1 -1
- 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 +124 -7
- package/dist/commands/watch.js.map +1 -1
- package/dist/inner-loop/context-amnesia.d.ts +20 -0
- package/dist/inner-loop/context-amnesia.d.ts.map +1 -0
- package/dist/inner-loop/context-amnesia.js +249 -0
- package/dist/inner-loop/context-amnesia.js.map +1 -0
- package/dist/inner-loop/index.d.ts +39 -0
- package/dist/inner-loop/index.d.ts.map +1 -0
- package/dist/inner-loop/index.js +208 -0
- package/dist/inner-loop/index.js.map +1 -0
- package/dist/inner-loop/instruction-drift.d.ts +28 -0
- package/dist/inner-loop/instruction-drift.d.ts.map +1 -0
- package/dist/inner-loop/instruction-drift.js +260 -0
- package/dist/inner-loop/instruction-drift.js.map +1 -0
- package/dist/inner-loop/logging-only.d.ts +30 -0
- package/dist/inner-loop/logging-only.d.ts.map +1 -0
- package/dist/inner-loop/logging-only.js +264 -0
- package/dist/inner-loop/logging-only.js.map +1 -0
- package/dist/inner-loop/tests-passing-lie.d.ts +34 -0
- package/dist/inner-loop/tests-passing-lie.d.ts.map +1 -0
- package/dist/inner-loop/tests-passing-lie.js +213 -0
- package/dist/inner-loop/tests-passing-lie.js.map +1 -0
- package/dist/inner-loop/types.d.ts +111 -0
- package/dist/inner-loop/types.d.ts.map +1 -0
- package/dist/inner-loop/types.js +29 -0
- package/dist/inner-loop/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/FEATURES.md +340 -0
- package/docs/GAMIFICATION.md +19 -266
- package/docs/VIBE-ECOSYSTEM.md +12 -78
- package/feature-list.json +140 -88
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,265 +1,268 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/boshu2/vibe-check/main/assets/logo.svg" alt="vibe-check" width="400">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
5
|
+
<p align="center">
|
|
6
|
+
<strong>Catch the debug spiral before it catches you.</strong>
|
|
7
|
+
</p>
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://www.npmjs.com/package/@boshu2/vibe-check"><img src="https://img.shields.io/npm/v/@boshu2/vibe-check.svg?style=flat-square" alt="npm version"></a>
|
|
11
|
+
<a href="https://www.npmjs.com/package/@boshu2/vibe-check"><img src="https://img.shields.io/npm/dm/@boshu2/vibe-check.svg?style=flat-square" alt="downloads"></a>
|
|
12
|
+
<a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-blue.svg?style=flat-square" alt="license"></a>
|
|
13
|
+
</p>
|
|
8
14
|
|
|
9
|
-
|
|
15
|
+
<p align="center">
|
|
16
|
+
Git-powered metrics for AI-assisted development.<br>
|
|
17
|
+
Detects the <a href="#the-12-failure-patterns">12 failure patterns</a> from <a href="https://itrevolution.com/product/vibe-coding-book/"><em>Vibe Coding</em></a> (Gene Kim & Steve Yegge, 2025).
|
|
18
|
+
</p>
|
|
19
|
+
|
|
20
|
+
---
|
|
10
21
|
|
|
11
22
|
```bash
|
|
12
|
-
npx @boshu2/vibe-check
|
|
23
|
+
npx @boshu2/vibe-check
|
|
13
24
|
```
|
|
14
25
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
├──────────────────────────────────────────────────────────────┤
|
|
19
|
-
│ │
|
|
20
|
-
│ Rating: ELITE ✨ │
|
|
21
|
-
│ │
|
|
22
|
-
│ Trust Pass Rate ████████████████████ 95% ELITE │
|
|
23
|
-
│ Rework Ratio ████░░░░░░░░░░░░░░░░ 18% ELITE │
|
|
24
|
-
│ Debug Spirals None detected ELITE │
|
|
25
|
-
│ │
|
|
26
|
-
│ You're in the zone. Ship it. │
|
|
27
|
-
│ │
|
|
28
|
-
╰──────────────────────────────────────────────────────────────╯
|
|
29
|
-
```
|
|
26
|
+
<p align="center">
|
|
27
|
+
<img src="https://raw.githubusercontent.com/boshu2/vibe-check/main/assets/demo.gif" alt="vibe-check demo" width="600">
|
|
28
|
+
</p>
|
|
30
29
|
|
|
31
30
|
---
|
|
32
31
|
|
|
33
|
-
##
|
|
32
|
+
## Focus: The Inner Developer Loop
|
|
34
33
|
|
|
35
|
-
|
|
36
|
-
vibe-check dashboard
|
|
37
|
-
```
|
|
34
|
+
vibe-check focuses on detecting the **4 Inner Loop Disasters** — the immediate, developer-facing failures that happen during a coding session:
|
|
38
35
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
36
|
+
| Pattern | What Goes Wrong | How vibe-check Detects It |
|
|
37
|
+
|---------|-----------------|---------------------------|
|
|
38
|
+
| **"Tests Passing" Lie** | AI claims "fixed" but code doesn't work | Commits claiming success followed by immediate fixes |
|
|
39
|
+
| **Context Amnesia** | AI forgets instructions from 5 minutes ago | Reverts, reimplementations, repeated similar fixes |
|
|
40
|
+
| **Instruction Drift** | AI "improves" things you didn't ask for | Unrequested refactors, scope explosion |
|
|
41
|
+
| **Debug Loop Spiral** | AI adds logging instead of fixing root cause | 3+ consecutive debugging commits |
|
|
42
|
+
|
|
43
|
+
These are the patterns you can catch and fix **right now**, in your current session.
|
|
45
44
|
|
|
46
45
|
---
|
|
47
46
|
|
|
48
|
-
##
|
|
47
|
+
## The Problem
|
|
49
48
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
49
|
+
> "AI can destroy months of work in minutes." — Gene Kim & Steve Yegge
|
|
50
|
+
|
|
51
|
+
AI-assisted coding creates a new failure mode: **the debug spiral**.
|
|
52
|
+
|
|
53
|
+
You ask AI for a fix. It breaks something else. You ask for another fix. It breaks more. Three commits later, you've lost 30 minutes and made negative progress.
|
|
54
|
+
|
|
55
|
+
**vibe-check detects these spirals by analyzing your git history.**
|
|
56
|
+
|
|
57
|
+
---
|
|
53
58
|
|
|
54
59
|
## Quick Start
|
|
55
60
|
|
|
56
61
|
```bash
|
|
57
62
|
# Analyze recent work
|
|
58
|
-
vibe-check --since "1 week ago"
|
|
63
|
+
npx @boshu2/vibe-check --since "1 week ago"
|
|
59
64
|
|
|
60
65
|
# Real-time spiral detection
|
|
61
|
-
vibe-check watch
|
|
66
|
+
npx @boshu2/vibe-check watch
|
|
62
67
|
|
|
63
68
|
# Visual dashboard
|
|
64
|
-
vibe-check dashboard
|
|
65
|
-
|
|
66
|
-
# View your profile & achievements
|
|
67
|
-
vibe-check profile
|
|
69
|
+
npx @boshu2/vibe-check dashboard
|
|
68
70
|
```
|
|
69
71
|
|
|
70
72
|
---
|
|
71
73
|
|
|
72
|
-
##
|
|
74
|
+
## What It Measures
|
|
73
75
|
|
|
74
|
-
|
|
76
|
+
| Metric | Question | Target |
|
|
77
|
+
|--------|----------|--------|
|
|
78
|
+
| **Trust Pass Rate** | Does the code stick? | >95% |
|
|
79
|
+
| **Rework Ratio** | Building or debugging? | <30% |
|
|
80
|
+
| **Debug Spirals** | Are you stuck? | 0 active |
|
|
75
81
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## The 12 Failure Patterns
|
|
85
|
+
|
|
86
|
+
*Vibe Coding* identifies 12 failure modes across three developer loops. vibe-check focuses on the **inner loop** (where spirals form) while providing awareness of all 12.
|
|
87
|
+
|
|
88
|
+
### Inner Loop (Minutes) — **Primary Focus**
|
|
89
|
+
|
|
90
|
+
| # | Pattern | Severity | vibe-check Detection |
|
|
91
|
+
|---|---------|----------|----------------------|
|
|
92
|
+
| 1 | **Tests Passing Lie** | 🔴 HIGH | Trust pass rate drops, fix commits follow "working" code |
|
|
93
|
+
| 2 | **Context Amnesia** | 🟡 MEDIUM | Repeated fixes on same component, circular patterns |
|
|
94
|
+
| 3 | **Instruction Drift** | 🟡 MEDIUM | Scope creep visible in commit message patterns |
|
|
95
|
+
| 4 | **Debug Loop Spiral** | 🔴 HIGH | ✅ **Core detection**: 3+ fix commits on same component |
|
|
96
|
+
|
|
97
|
+
### Middle Loop (Hours-Days) — *Monitored*
|
|
98
|
+
|
|
99
|
+
| # | Pattern | Severity | vibe-check Detection |
|
|
100
|
+
|---|---------|----------|----------------------|
|
|
101
|
+
| 5 | **Eldritch Code Horror** | 🔴 CRITICAL | High file churn, repeated touches to same files |
|
|
102
|
+
| 6 | **Workspace Collision** | 🔴 HIGH | — (multi-agent, future) |
|
|
103
|
+
| 7 | **Memory Decay** | 🟡 MEDIUM | Session baseline comparison shows degradation |
|
|
104
|
+
| 8 | **Multi-Agent Deadlock** | 🔴 HIGH | — (multi-agent, future) |
|
|
105
|
+
|
|
106
|
+
### Outer Loop (Weeks-Months) — *Awareness*
|
|
107
|
+
|
|
108
|
+
| # | Pattern | Severity | vibe-check Detection |
|
|
109
|
+
|---|---------|----------|----------------------|
|
|
110
|
+
| 9 | **Bridge Torching** | 🔴 CRITICAL | — (API tracking, future) |
|
|
111
|
+
| 10 | **Repository Deletion** | 🔴 CRITICAL | — (git safety, future) |
|
|
112
|
+
| 11 | **Process Gridlock** | 🔴 HIGH | — (CI/CD analysis, future) |
|
|
113
|
+
| 12 | **Stewnami** | 🔴 HIGH | — (cross-repo, future) |
|
|
114
|
+
|
|
115
|
+
> **Inner loop mastery prevents middle/outer loop disasters.** Catch the spiral at 3 commits, not 30.
|
|
116
|
+
|
|
117
|
+
See the [full 12 Failure Patterns catalog](https://github.com/boshu2/12-factor-agentops/blob/main/docs/reference/failure-patterns.md) for prevention strategies and AgentOps integration.
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Watch Mode
|
|
122
|
+
|
|
123
|
+
Catches spirals **as they form** with personalized coaching:
|
|
79
124
|
|
|
80
125
|
```
|
|
81
126
|
VIBE-CHECK WATCH MODE
|
|
82
|
-
|
|
83
|
-
────────────────────────────────────────────────────────
|
|
127
|
+
────────────────────────────────────────────────
|
|
84
128
|
|
|
85
129
|
09:15 fix(auth): handle token refresh
|
|
86
130
|
09:18 fix(auth): add retry logic
|
|
87
131
|
09:22 fix(auth): increase timeout
|
|
88
132
|
|
|
89
|
-
⚠️ SPIRAL
|
|
90
|
-
|
|
91
|
-
│ Component: auth │
|
|
92
|
-
│ Fixes: 3 commits over 7 minutes │
|
|
93
|
-
│ │
|
|
94
|
-
│ 💡 Consider: │
|
|
95
|
-
│ • Step back and write a test │
|
|
96
|
-
│ • Check the docs or ask for help │
|
|
97
|
-
│ • Take a 5-minute break │
|
|
98
|
-
└────────────────────────────────────────────────────┘
|
|
99
|
-
|
|
100
|
-
────────────────────────────────────────────────────────
|
|
101
|
-
```
|
|
133
|
+
⚠️ SPIRAL FORMING
|
|
134
|
+
auth component, 3 fixes, 7 min
|
|
102
135
|
|
|
103
|
-
|
|
136
|
+
Your history: 4 auth spirals, avg 18 min
|
|
137
|
+
What worked: wrote a test (3x), took a break (1x)
|
|
104
138
|
|
|
105
|
-
|
|
139
|
+
→ Write a test before your next fix attempt.
|
|
106
140
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
```bash
|
|
110
|
-
vibe-check profile
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
```
|
|
114
|
-
╭─────────────────────────────────────────────────────╮
|
|
115
|
-
│ │
|
|
116
|
-
│ 🏔️ Level 6 Grandmaster │
|
|
117
|
-
│ ████████████████░░░░░░░░ 2140 / 5000 XP │
|
|
118
|
-
│ │
|
|
119
|
-
│ 🔥 12 day streak (longest: 14) │
|
|
120
|
-
│ 🏆 8/19 achievements unlocked │
|
|
121
|
-
│ │
|
|
122
|
-
│ Recent Unlocks: │
|
|
123
|
-
│ ✨ Elite Vibes 🧘 Zen Master 📊 Regular │
|
|
124
|
-
│ │
|
|
125
|
-
╰─────────────────────────────────────────────────────╯
|
|
141
|
+
────────────────────────────────────────────────
|
|
126
142
|
```
|
|
127
143
|
|
|
128
|
-
|
|
144
|
+
Watch mode learns from your history and suggests what's worked before.
|
|
129
145
|
|
|
130
146
|
---
|
|
131
147
|
|
|
132
|
-
##
|
|
148
|
+
## Install
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
npm install -g @boshu2/vibe-check
|
|
152
|
+
```
|
|
133
153
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
154
|
+
Or use directly with `npx`:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npx @boshu2/vibe-check --since "2 hours ago"
|
|
158
|
+
```
|
|
139
159
|
|
|
140
160
|
---
|
|
141
161
|
|
|
142
|
-
##
|
|
162
|
+
## Commands
|
|
143
163
|
|
|
144
|
-
|
|
164
|
+
### Core Analysis
|
|
145
165
|
|
|
146
166
|
```bash
|
|
147
|
-
vibe-check
|
|
148
|
-
#
|
|
149
|
-
vibe-check
|
|
167
|
+
vibe-check # Analyze git history
|
|
168
|
+
vibe-check watch # Real-time spiral monitoring
|
|
169
|
+
vibe-check dashboard # Visual dashboard
|
|
170
|
+
vibe-check timeline # View coding journey
|
|
171
|
+
vibe-check forensics # Deep pattern analysis
|
|
150
172
|
```
|
|
151
173
|
|
|
152
|
-
|
|
153
|
-
|-------|------|-------|---------|
|
|
154
|
-
| **5** | Full Auto | 95% | Formatting, linting |
|
|
155
|
-
| **4** | High Trust | 80% | Boilerplate, CRUD |
|
|
156
|
-
| **3** | Balanced | 60% | Features, tests |
|
|
157
|
-
| **2** | Careful | 40% | Integrations, APIs |
|
|
158
|
-
| **1** | Skeptical | 20% | Architecture, security |
|
|
159
|
-
| **0** | Manual | 0% | Novel research |
|
|
160
|
-
|
|
161
|
-
---
|
|
174
|
+
### Sessions
|
|
162
175
|
|
|
163
|
-
|
|
176
|
+
```bash
|
|
177
|
+
vibe-check start --level 3 # Quick session start
|
|
178
|
+
vibe-check session start # Interactive session start
|
|
179
|
+
vibe-check session end # End with metrics
|
|
180
|
+
vibe-check session status # Check active session
|
|
181
|
+
```
|
|
164
182
|
|
|
165
|
-
|
|
183
|
+
### Profile & Insights
|
|
166
184
|
|
|
167
185
|
```bash
|
|
168
|
-
vibe-check
|
|
169
|
-
vibe-check
|
|
186
|
+
vibe-check profile # XP and achievements
|
|
187
|
+
vibe-check insights # Your spiral patterns
|
|
170
188
|
```
|
|
171
189
|
|
|
172
|
-
|
|
190
|
+
### Tools
|
|
173
191
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
jobs:
|
|
181
|
-
vibe:
|
|
182
|
-
runs-on: ubuntu-latest
|
|
183
|
-
steps:
|
|
184
|
-
- uses: actions/checkout@v4
|
|
185
|
-
with:
|
|
186
|
-
fetch-depth: 0
|
|
187
|
-
- uses: boshu2/vibe-check@v1
|
|
188
|
-
with:
|
|
189
|
-
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
192
|
+
```bash
|
|
193
|
+
vibe-check cache status # Cache statistics
|
|
194
|
+
vibe-check cache clear # Clear cache
|
|
195
|
+
vibe-check init-hook # Install pre-push hook
|
|
196
|
+
vibe-check pipeline # Audit CI/CD safety
|
|
190
197
|
```
|
|
191
198
|
|
|
192
199
|
---
|
|
193
200
|
|
|
194
201
|
## Session Integration
|
|
195
202
|
|
|
196
|
-
Integrate with Claude Code
|
|
203
|
+
Integrate with Claude Code or other AI dev tools:
|
|
197
204
|
|
|
198
205
|
```bash
|
|
199
|
-
#
|
|
206
|
+
# Start session
|
|
200
207
|
vibe-check session start --level 3
|
|
201
208
|
|
|
202
|
-
#
|
|
209
|
+
# End session - get JSON for logging
|
|
203
210
|
vibe-check session end --format json
|
|
204
211
|
```
|
|
205
212
|
|
|
206
|
-
Output includes failure pattern detection:
|
|
207
213
|
```json
|
|
208
214
|
{
|
|
209
|
-
"metrics": { "trust_pass_rate": 92, "rework_ratio":
|
|
215
|
+
"metrics": { "trust_pass_rate": 92, "rework_ratio": 18 },
|
|
210
216
|
"retro": {
|
|
211
217
|
"failure_patterns_hit": [],
|
|
212
|
-
"failure_patterns_avoided": ["Debug Spiral", "Context Amnesia"]
|
|
213
|
-
|
|
218
|
+
"failure_patterns_avoided": ["Debug Spiral", "Context Amnesia"]
|
|
219
|
+
},
|
|
220
|
+
"inner_loop": {
|
|
221
|
+
"health": "healthy",
|
|
222
|
+
"issues_detected": 0,
|
|
223
|
+
"tests_passing_lies": 0,
|
|
224
|
+
"context_amnesia_incidents": 0,
|
|
225
|
+
"instruction_drift_commits": 0,
|
|
226
|
+
"debug_loop_detected": false
|
|
214
227
|
}
|
|
215
228
|
}
|
|
216
229
|
```
|
|
217
230
|
|
|
218
|
-
|
|
231
|
+
When inner loop issues are detected:
|
|
219
232
|
|
|
220
|
-
|
|
233
|
+
```
|
|
234
|
+
⚠️ Inner Loop Health: WARNING
|
|
221
235
|
|
|
222
|
-
|
|
236
|
+
🤥 2 "tests passing" lies detected
|
|
237
|
+
🎯 Instruction drift: 3 commits went outside scope
|
|
223
238
|
|
|
224
|
-
|
|
225
|
-
vibe-check [options] Analyze git history
|
|
226
|
-
vibe-check watch Real-time spiral detection
|
|
227
|
-
vibe-check dashboard Visual dashboard + insights
|
|
228
|
-
vibe-check profile XP, streaks, achievements
|
|
229
|
-
vibe-check timeline Coding journey visualization
|
|
230
|
-
vibe-check start --level <n> Declare vibe level (0-5)
|
|
231
|
-
vibe-check session start Capture baseline for session
|
|
232
|
-
vibe-check session end Get session metrics + patterns
|
|
233
|
-
vibe-check session status Show active session info
|
|
234
|
-
vibe-check intervene Record spiral intervention
|
|
235
|
-
vibe-check learn Extract learnings from patterns
|
|
236
|
-
vibe-check lesson Manage synthesized lessons
|
|
237
|
-
vibe-check init-hook Install git hook
|
|
238
|
-
vibe-check cache Manage local storage
|
|
239
|
+
→ STOP: AI claimed success but code needed fixes. Verify builds/tests pass.
|
|
239
240
|
```
|
|
240
241
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
242
|
+
---
|
|
243
|
+
|
|
244
|
+
## For Autonomous Agents
|
|
245
|
+
|
|
246
|
+
vibe-check measures **human-AI collaboration sessions**—the inner loop where you're working with an AI assistant.
|
|
247
|
+
|
|
248
|
+
For **autonomous agents** that run without a human in the loop, see [12-Factor AgentOps](https://12factoragentops.com)—DevOps and SRE patterns adapted for AI systems.
|
|
249
|
+
|
|
250
|
+
| Use Case | Tool |
|
|
251
|
+
|----------|------|
|
|
252
|
+
| Working *with* AI (pair programming) | vibe-check |
|
|
253
|
+
| Running AI *autonomously* (agents) | [12-Factor AgentOps](https://12factoragentops.com) |
|
|
251
254
|
|
|
252
255
|
---
|
|
253
256
|
|
|
254
257
|
## Philosophy
|
|
255
258
|
|
|
256
|
-
|
|
259
|
+
vibe-check is a mirror, not a judge.
|
|
257
260
|
|
|
258
|
-
|
|
261
|
+
It answers one question: *are you building, or are you spiraling?*
|
|
259
262
|
|
|
260
|
-
|
|
263
|
+
Use it for self-reflection. Catch your own patterns. Improve your own flow.
|
|
261
264
|
|
|
262
|
-
It's
|
|
265
|
+
It's not a productivity metric. It's not for performance reviews.
|
|
263
266
|
|
|
264
267
|
---
|
|
265
268
|
|
|
@@ -268,13 +271,16 @@ It's just asking: *are you building, or are you spiraling?*
|
|
|
268
271
|
- Node.js >= 20.0.0
|
|
269
272
|
- Git repository with commits
|
|
270
273
|
|
|
271
|
-
|
|
274
|
+
---
|
|
275
|
+
|
|
276
|
+
## Learn More
|
|
272
277
|
|
|
273
|
-
- [Vibe
|
|
274
|
-
- [
|
|
275
|
-
- [
|
|
276
|
-
- [
|
|
277
|
-
|
|
278
|
+
- [Vibe Coding Book](https://itrevolution.com/product/vibe-coding-book/) — Gene Kim & Steve Yegge (2025)
|
|
279
|
+
- [12-Factor AgentOps](https://12factoragentops.com) — Reliability patterns for autonomous agents
|
|
280
|
+
- [12 Failure Patterns](https://github.com/boshu2/12-factor-agentops/blob/main/docs/reference/failure-patterns.md) — Complete catalog with prevention strategies
|
|
281
|
+
- [vibe-check on bofuller.com](https://bofuller.com/builds/vibe-check) — Trust calibration, 40% rule, and results
|
|
282
|
+
|
|
283
|
+
---
|
|
278
284
|
|
|
279
285
|
## License
|
|
280
286
|
|
|
@@ -283,5 +289,5 @@ MIT
|
|
|
283
289
|
---
|
|
284
290
|
|
|
285
291
|
<p align="center">
|
|
286
|
-
<
|
|
292
|
+
<em>Built for developers who work with AI.</em>
|
|
287
293
|
</p>
|
package/SECURITY.md
CHANGED
|
@@ -4,11 +4,12 @@
|
|
|
4
4
|
|
|
5
5
|
| Version | Supported |
|
|
6
6
|
| ------- | ------------------ |
|
|
7
|
+
| 1.7.x | :white_check_mark: |
|
|
7
8
|
| 1.x.x | :white_check_mark: |
|
|
8
9
|
|
|
9
10
|
## Security Assessment
|
|
10
11
|
|
|
11
|
-
**Last Review:** 2025-
|
|
12
|
+
**Last Review:** 2025-12-05
|
|
12
13
|
**Risk Level:** LOW
|
|
13
14
|
**Reviewer:** Automated + Manual
|
|
14
15
|
|
|
@@ -31,6 +32,8 @@ vibe-check is a local CLI tool that reads git history and writes statistics to l
|
|
|
31
32
|
2. Calculates metrics from commit patterns
|
|
32
33
|
3. Writes profile/calibration data to `.vibe-check/` directory
|
|
33
34
|
4. Optionally installs a pre-push git hook
|
|
35
|
+
5. Detects work sessions from commit timestamps (pure analysis)
|
|
36
|
+
6. Analyzes patterns like debug spirals and vague commits (pure analysis)
|
|
34
37
|
|
|
35
38
|
### What vibe-check does NOT do
|
|
36
39
|
|
|
@@ -175,4 +178,5 @@ We aim to respond within 48 hours and will credit reporters in the fix announcem
|
|
|
175
178
|
|
|
176
179
|
| Date | Version | Change |
|
|
177
180
|
|------|---------|--------|
|
|
181
|
+
| 2025-12-05 | 1.7.0 | Added forensics, sessions commands; updated threat model |
|
|
178
182
|
| 2025-11-29 | 1.2.0 | Initial security review documented |
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 100" fill="none">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="spiralGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#A78BFA"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#22D3EE"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="checkGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
8
|
+
<stop offset="0%" style="stop-color:#34D399"/>
|
|
9
|
+
<stop offset="100%" style="stop-color:#22D3EE"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
</defs>
|
|
12
|
+
|
|
13
|
+
<!-- Spiral breaking into checkmark -->
|
|
14
|
+
<g transform="translate(10, 10)">
|
|
15
|
+
<!-- Spiral (left side, fading out) -->
|
|
16
|
+
<path d="M40 40
|
|
17
|
+
C40 25, 55 20, 60 35
|
|
18
|
+
C65 45, 50 55, 45 45
|
|
19
|
+
C42 38, 52 32, 55 40"
|
|
20
|
+
stroke="url(#spiralGrad)"
|
|
21
|
+
stroke-width="4"
|
|
22
|
+
stroke-linecap="round"
|
|
23
|
+
fill="none"
|
|
24
|
+
opacity="0.6"/>
|
|
25
|
+
|
|
26
|
+
<!-- Breaking point / transition -->
|
|
27
|
+
<circle cx="55" cy="40" r="3" fill="url(#spiralGrad)" opacity="0.4"/>
|
|
28
|
+
|
|
29
|
+
<!-- Checkmark (emerging from spiral) -->
|
|
30
|
+
<path d="M52 45 L62 55 L78 30"
|
|
31
|
+
stroke="url(#checkGrad)"
|
|
32
|
+
stroke-width="5"
|
|
33
|
+
stroke-linecap="round"
|
|
34
|
+
stroke-linejoin="round"
|
|
35
|
+
fill="none"/>
|
|
36
|
+
</g>
|
|
37
|
+
|
|
38
|
+
<!-- Text: vibe-check -->
|
|
39
|
+
<text x="100" y="62" font-family="system-ui, -apple-system, sans-serif" font-size="42" font-weight="600">
|
|
40
|
+
<tspan fill="#A78BFA">vibe</tspan><tspan fill="#94A3B8">-</tspan><tspan fill="#22D3EE">check</tspan>
|
|
41
|
+
</text>
|
|
42
|
+
|
|
43
|
+
<!-- Tagline -->
|
|
44
|
+
<text x="102" y="82" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#CBD5E1" letter-spacing="0.5">
|
|
45
|
+
catch the spiral before it catches you
|
|
46
|
+
</text>
|
|
47
|
+
</svg>
|
package/assets/logo.svg
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 100" fill="none">
|
|
2
|
+
<defs>
|
|
3
|
+
<linearGradient id="spiralGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
4
|
+
<stop offset="0%" style="stop-color:#7C3AED"/>
|
|
5
|
+
<stop offset="100%" style="stop-color:#06B6D4"/>
|
|
6
|
+
</linearGradient>
|
|
7
|
+
<linearGradient id="checkGrad" x1="0%" y1="0%" x2="100%" y2="100%">
|
|
8
|
+
<stop offset="0%" style="stop-color:#10B981"/>
|
|
9
|
+
<stop offset="100%" style="stop-color:#06B6D4"/>
|
|
10
|
+
</linearGradient>
|
|
11
|
+
</defs>
|
|
12
|
+
|
|
13
|
+
<!-- Spiral breaking into checkmark -->
|
|
14
|
+
<g transform="translate(10, 10)">
|
|
15
|
+
<!-- Spiral (left side, fading out) -->
|
|
16
|
+
<path d="M40 40
|
|
17
|
+
C40 25, 55 20, 60 35
|
|
18
|
+
C65 45, 50 55, 45 45
|
|
19
|
+
C42 38, 52 32, 55 40"
|
|
20
|
+
stroke="url(#spiralGrad)"
|
|
21
|
+
stroke-width="4"
|
|
22
|
+
stroke-linecap="round"
|
|
23
|
+
fill="none"
|
|
24
|
+
opacity="0.6"/>
|
|
25
|
+
|
|
26
|
+
<!-- Breaking point / transition -->
|
|
27
|
+
<circle cx="55" cy="40" r="3" fill="url(#spiralGrad)" opacity="0.4"/>
|
|
28
|
+
|
|
29
|
+
<!-- Checkmark (emerging from spiral) -->
|
|
30
|
+
<path d="M52 45 L62 55 L78 30"
|
|
31
|
+
stroke="url(#checkGrad)"
|
|
32
|
+
stroke-width="5"
|
|
33
|
+
stroke-linecap="round"
|
|
34
|
+
stroke-linejoin="round"
|
|
35
|
+
fill="none"/>
|
|
36
|
+
</g>
|
|
37
|
+
|
|
38
|
+
<!-- Text: vibe-check -->
|
|
39
|
+
<text x="100" y="62" font-family="system-ui, -apple-system, sans-serif" font-size="42" font-weight="600">
|
|
40
|
+
<tspan fill="#7C3AED">vibe</tspan><tspan fill="#64748B">-</tspan><tspan fill="#06B6D4">check</tspan>
|
|
41
|
+
</text>
|
|
42
|
+
|
|
43
|
+
<!-- Tagline -->
|
|
44
|
+
<text x="102" y="82" font-family="system-ui, -apple-system, sans-serif" font-size="14" fill="#94A3B8" letter-spacing="0.5">
|
|
45
|
+
catch the spiral before it catches you
|
|
46
|
+
</text>
|
|
47
|
+
</svg>
|
package/claude-progress.json
CHANGED
|
@@ -161,16 +161,15 @@
|
|
|
161
161
|
}
|
|
162
162
|
],
|
|
163
163
|
"current_state": {
|
|
164
|
-
"phase": "
|
|
165
|
-
"working_on":
|
|
164
|
+
"phase": "completed",
|
|
165
|
+
"working_on": null,
|
|
166
166
|
"blockers": [],
|
|
167
167
|
"next_steps": [
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
"Consider npm publish for v1.7.0"
|
|
168
|
+
"Run vibe-check on real projects to validate",
|
|
169
|
+
"Consider bumping version to 1.8.0",
|
|
170
|
+
"VIBE-047 DEFERRED: Era evolution tracking (scope creep risk - revisit after 045/046 proven)"
|
|
172
171
|
],
|
|
173
|
-
"resume_summary": "
|
|
172
|
+
"resume_summary": "VIBE-045 (forensics) and VIBE-046 (sessions) both implemented and tested. 41 new tracer tests, all 100 tests passing. Commands: vibe-check forensics, vibe-check sessions."
|
|
174
173
|
},
|
|
175
174
|
"sessions": [
|
|
176
175
|
{
|
|
@@ -197,6 +196,28 @@
|
|
|
197
196
|
"Learning system has zero adoption evidence - candidate for removal"
|
|
198
197
|
]
|
|
199
198
|
}
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"session_id": "2025-12-02-002",
|
|
202
|
+
"started": "2025-12-02T19:30:00Z",
|
|
203
|
+
"ended": "2025-12-02T21:00:00Z",
|
|
204
|
+
"vibe_level": 3,
|
|
205
|
+
"summary": "Major cleanup: cut 20 files (-3900 lines), published v1.7.0. Fixed all docs. Created actionable coaching plan (5 features).",
|
|
206
|
+
"commits": ["6c28204", "1526f6d", "fbe6a89", "e77a6c9", "8f77bda", "e4515e8", "5ec7758", "871a0c4"],
|
|
207
|
+
"features_completed": ["VIBE-033", "VIBE-034"],
|
|
208
|
+
"metrics": {
|
|
209
|
+
"trust_pass_rate": 100,
|
|
210
|
+
"rework_ratio": 0
|
|
211
|
+
},
|
|
212
|
+
"retro": {
|
|
213
|
+
"failure_patterns_hit": [],
|
|
214
|
+
"failure_patterns_avoided": ["Scope Creep", "Over-engineering"],
|
|
215
|
+
"learnings": [
|
|
216
|
+
"Cutting features feels good - 78→58 files, cleaner codebase",
|
|
217
|
+
"Documentation debt accumulates - must update docs after code changes",
|
|
218
|
+
"Plan before implement - actionable coaching plan guides next work"
|
|
219
|
+
]
|
|
220
|
+
}
|
|
200
221
|
}
|
|
201
222
|
],
|
|
202
223
|
"sessions_continued": [
|