@boshu2/vibe-check 0.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.
Files changed (143) hide show
  1. package/.dockerignore +46 -0
  2. package/.gitattributes +3 -0
  3. package/.pre-commit-hooks.yaml +11 -0
  4. package/AGENTS.md +40 -0
  5. package/CHANGELOG.md +322 -0
  6. package/CLAUDE.md +342 -0
  7. package/CONTRIBUTING.md +227 -0
  8. package/Dockerfile +26 -0
  9. package/LICENSE +201 -0
  10. package/Makefile +213 -0
  11. package/README.md +165 -0
  12. package/SECURITY.md +182 -0
  13. package/action.yml +270 -0
  14. package/assets/logo-dark.svg +47 -0
  15. package/assets/logo.svg +47 -0
  16. package/bin/vc.js +2 -0
  17. package/bin/vibe-check.js +2 -0
  18. package/claude-progress.json +312 -0
  19. package/claude-progress.txt +572 -0
  20. package/dist/cli.d.ts +3 -0
  21. package/dist/cli.d.ts.map +1 -0
  22. package/dist/cli.js +70 -0
  23. package/dist/cli.js.map +1 -0
  24. package/dist/commands/analyze-helpers.d.ts +43 -0
  25. package/dist/commands/analyze-helpers.d.ts.map +1 -0
  26. package/dist/commands/analyze-helpers.js +124 -0
  27. package/dist/commands/analyze-helpers.js.map +1 -0
  28. package/dist/commands/analyze.d.ts +21 -0
  29. package/dist/commands/analyze.d.ts.map +1 -0
  30. package/dist/commands/analyze.js +114 -0
  31. package/dist/commands/analyze.js.map +1 -0
  32. package/dist/commands/index.d.ts +2 -0
  33. package/dist/commands/index.d.ts.map +1 -0
  34. package/dist/commands/index.js +2 -0
  35. package/dist/commands/index.js.map +1 -0
  36. package/dist/errors.d.ts +100 -0
  37. package/dist/errors.d.ts.map +1 -0
  38. package/dist/errors.js +208 -0
  39. package/dist/errors.js.map +1 -0
  40. package/dist/git.d.ts +39 -0
  41. package/dist/git.d.ts.map +1 -0
  42. package/dist/git.js +206 -0
  43. package/dist/git.js.map +1 -0
  44. package/dist/inner-loop/context-amnesia.d.ts +20 -0
  45. package/dist/inner-loop/context-amnesia.d.ts.map +1 -0
  46. package/dist/inner-loop/context-amnesia.js +246 -0
  47. package/dist/inner-loop/context-amnesia.js.map +1 -0
  48. package/dist/inner-loop/index.d.ts +39 -0
  49. package/dist/inner-loop/index.d.ts.map +1 -0
  50. package/dist/inner-loop/index.js +181 -0
  51. package/dist/inner-loop/index.js.map +1 -0
  52. package/dist/inner-loop/instruction-drift.d.ts +36 -0
  53. package/dist/inner-loop/instruction-drift.d.ts.map +1 -0
  54. package/dist/inner-loop/instruction-drift.js +270 -0
  55. package/dist/inner-loop/instruction-drift.js.map +1 -0
  56. package/dist/inner-loop/logging-only.d.ts +64 -0
  57. package/dist/inner-loop/logging-only.d.ts.map +1 -0
  58. package/dist/inner-loop/logging-only.js +292 -0
  59. package/dist/inner-loop/logging-only.js.map +1 -0
  60. package/dist/inner-loop/tests-passing-lie.d.ts +34 -0
  61. package/dist/inner-loop/tests-passing-lie.d.ts.map +1 -0
  62. package/dist/inner-loop/tests-passing-lie.js +213 -0
  63. package/dist/inner-loop/tests-passing-lie.js.map +1 -0
  64. package/dist/inner-loop/types.d.ts +125 -0
  65. package/dist/inner-loop/types.d.ts.map +1 -0
  66. package/dist/inner-loop/types.js +27 -0
  67. package/dist/inner-loop/types.js.map +1 -0
  68. package/dist/internal/context/index.d.ts +74 -0
  69. package/dist/internal/context/index.d.ts.map +1 -0
  70. package/dist/internal/context/index.js +151 -0
  71. package/dist/internal/context/index.js.map +1 -0
  72. package/dist/internal/context/types.d.ts +75 -0
  73. package/dist/internal/context/types.d.ts.map +1 -0
  74. package/dist/internal/context/types.js +8 -0
  75. package/dist/internal/context/types.js.map +1 -0
  76. package/dist/internal/output/contract.d.ts +81 -0
  77. package/dist/internal/output/contract.d.ts.map +1 -0
  78. package/dist/internal/output/contract.js +112 -0
  79. package/dist/internal/output/contract.js.map +1 -0
  80. package/dist/internal/output/index.d.ts +7 -0
  81. package/dist/internal/output/index.d.ts.map +1 -0
  82. package/dist/internal/output/index.js +7 -0
  83. package/dist/internal/output/index.js.map +1 -0
  84. package/dist/metrics/flow.d.ts +20 -0
  85. package/dist/metrics/flow.d.ts.map +1 -0
  86. package/dist/metrics/flow.js +85 -0
  87. package/dist/metrics/flow.js.map +1 -0
  88. package/dist/metrics/index.d.ts +4 -0
  89. package/dist/metrics/index.d.ts.map +1 -0
  90. package/dist/metrics/index.js +161 -0
  91. package/dist/metrics/index.js.map +1 -0
  92. package/dist/metrics/rework.d.ts +12 -0
  93. package/dist/metrics/rework.d.ts.map +1 -0
  94. package/dist/metrics/rework.js +51 -0
  95. package/dist/metrics/rework.js.map +1 -0
  96. package/dist/metrics/spirals.d.ts +17 -0
  97. package/dist/metrics/spirals.d.ts.map +1 -0
  98. package/dist/metrics/spirals.js +157 -0
  99. package/dist/metrics/spirals.js.map +1 -0
  100. package/dist/metrics/trust.d.ts +12 -0
  101. package/dist/metrics/trust.d.ts.map +1 -0
  102. package/dist/metrics/trust.js +175 -0
  103. package/dist/metrics/trust.js.map +1 -0
  104. package/dist/metrics/velocity.d.ts +25 -0
  105. package/dist/metrics/velocity.d.ts.map +1 -0
  106. package/dist/metrics/velocity.js +120 -0
  107. package/dist/metrics/velocity.js.map +1 -0
  108. package/dist/output/index.d.ts +10 -0
  109. package/dist/output/index.d.ts.map +1 -0
  110. package/dist/output/index.js +20 -0
  111. package/dist/output/index.js.map +1 -0
  112. package/dist/output/json.d.ts +3 -0
  113. package/dist/output/json.d.ts.map +1 -0
  114. package/dist/output/json.js +48 -0
  115. package/dist/output/json.js.map +1 -0
  116. package/dist/output/markdown.d.ts +3 -0
  117. package/dist/output/markdown.d.ts.map +1 -0
  118. package/dist/output/markdown.js +84 -0
  119. package/dist/output/markdown.js.map +1 -0
  120. package/dist/output/terminal.d.ts +10 -0
  121. package/dist/output/terminal.d.ts.map +1 -0
  122. package/dist/output/terminal.js +153 -0
  123. package/dist/output/terminal.js.map +1 -0
  124. package/dist/types.d.ts +75 -0
  125. package/dist/types.d.ts.map +1 -0
  126. package/dist/types.js +5 -0
  127. package/dist/types.js.map +1 -0
  128. package/docs/ARCHITECTURE.md +450 -0
  129. package/docs/DEPLOYMENT.md +394 -0
  130. package/docs/METRICS-EXPLAINED.md +394 -0
  131. package/docs/REFERENCE.md +230 -0
  132. package/docs/images/dashboard.png +0 -0
  133. package/drivers/README.md +327 -0
  134. package/drivers/go.sh +131 -0
  135. package/drivers/java.sh +137 -0
  136. package/drivers/javascript.sh +134 -0
  137. package/drivers/php.sh +132 -0
  138. package/drivers/python.sh +90 -0
  139. package/drivers/rust.sh +132 -0
  140. package/feature-list.json +273 -0
  141. package/hooks/pre-push +107 -0
  142. package/package.json +47 -0
  143. package/vitest.config.ts +25 -0
package/.dockerignore ADDED
@@ -0,0 +1,46 @@
1
+ # Node modules (installed during build)
2
+ node_modules/
3
+
4
+ # Source files (only need dist/)
5
+ src/
6
+ *.ts
7
+ tsconfig.json
8
+
9
+ # Development files
10
+ .git/
11
+ .github/
12
+ .vscode/
13
+ .vibe-check/
14
+
15
+ # Tests
16
+ test/
17
+ tests/
18
+ *.test.ts
19
+ *.spec.ts
20
+ vitest.config.ts
21
+
22
+ # Documentation
23
+ docs/
24
+ *.md
25
+ !README.md
26
+
27
+ # CI/CD files
28
+ .gitlab-ci.yml
29
+ .travis.yml
30
+ Jenkinsfile
31
+
32
+ # Environment files
33
+ .env
34
+ .env.*
35
+
36
+ # Logs
37
+ *.log
38
+ npm-debug.log*
39
+
40
+ # OS files
41
+ .DS_Store
42
+ Thumbs.db
43
+
44
+ # Coverage
45
+ coverage/
46
+ .nyc_output/
package/.gitattributes ADDED
@@ -0,0 +1,3 @@
1
+
2
+ # Use bd merge for beads JSONL files
3
+ .beads/issues.jsonl merge=beads
@@ -0,0 +1,11 @@
1
+ # Pre-commit hooks for vibe-check
2
+ # https://pre-commit.com/
3
+
4
+ - id: vibe-check
5
+ name: Vibe Check - Code Quality Analysis
6
+ description: Analyze git commit patterns for code quality issues
7
+ entry: npx @boshu2/vibe-check
8
+ language: system
9
+ pass_filenames: false
10
+ stages: [commit, push]
11
+ verbose: true
package/AGENTS.md ADDED
@@ -0,0 +1,40 @@
1
+ # Agent Instructions
2
+
3
+ This project uses **bd** (beads) for issue tracking. Run `bd onboard` to get started.
4
+
5
+ ## Quick Reference
6
+
7
+ ```bash
8
+ bd ready # Find available work
9
+ bd show <id> # View issue details
10
+ bd update <id> --status in_progress # Claim work
11
+ bd close <id> # Complete work
12
+ bd sync # Sync with git
13
+ ```
14
+
15
+ ## Landing the Plane (Session Completion)
16
+
17
+ **When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.
18
+
19
+ **MANDATORY WORKFLOW:**
20
+
21
+ 1. **File issues for remaining work** - Create issues for anything that needs follow-up
22
+ 2. **Run quality gates** (if code changed) - Tests, linters, builds
23
+ 3. **Update issue status** - Close finished work, update in-progress items
24
+ 4. **PUSH TO REMOTE** - This is MANDATORY:
25
+ ```bash
26
+ git pull --rebase
27
+ bd sync
28
+ git push
29
+ git status # MUST show "up to date with origin"
30
+ ```
31
+ 5. **Clean up** - Clear stashes, prune remote branches
32
+ 6. **Verify** - All changes committed AND pushed
33
+ 7. **Hand off** - Provide context for next session
34
+
35
+ **CRITICAL RULES:**
36
+ - Work is NOT complete until `git push` succeeds
37
+ - NEVER stop before pushing - that leaves work stranded locally
38
+ - NEVER say "ready to push when you are" - YOU must push
39
+ - If push fails, resolve and retry until it succeeds
40
+
package/CHANGELOG.md ADDED
@@ -0,0 +1,322 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ### Changed
11
+
12
+ - **Session Module Refactor** - Split monolithic session.ts into focused modules
13
+ - `session.ts` - Thin orchestrator with re-exports (139 lines)
14
+ - `session-helpers.ts` - Storage, pattern detection, formatting (451 lines)
15
+ - `session-start.ts` - Session initialization and baseline capture (149 lines)
16
+ - `session-end.ts` - Metrics calculation, analysis, output (431 lines)
17
+ - Removed dead `calculateEnhancedMetrics()` function
18
+ - Refactored `runSessionEndCli()` to use shared helpers (DRY)
19
+ - Added debug mode support (`--debug` flag, `DEBUG=1` env var)
20
+
21
+ - **CLI Rebrand** - CLI command name updated from `vibe-check` to `vc` for brevity
22
+ - All commands now use `vc` prefix (e.g., `vc watch`, `vc session start`)
23
+ - Storage directory remains `.vibe-check/` for backwards compatibility
24
+ - npm package name remains `@boshu2/vibe-check`
25
+ - Documentation updated to reflect new command name
26
+
27
+ - **New Agent Commands** - Added computed query commands for agent integration
28
+ - `vc spiral` - "Am I spiraling?" boolean answer with escape actions
29
+ - `vc diagnose` - "What's wrong?" top issue and recommended fix
30
+ - `vc recommend` - "What should I focus on?" prioritized actions
31
+ - `vc prime` - Context recovery after compaction
32
+ - `vc onboard` - Output AGENTS.md snippet for agent integration
33
+ - All commands support `--json` flag for machine-readable output
34
+
35
+ - **Package Structure** - Organized internal modules
36
+ - `src/internal/` contains shared context and output utilities
37
+ - `src/commands/` follows TypeScript CLI conventions (oclif, Commander.js)
38
+
39
+ ## [2.4.0] - 2025-12-29
40
+
41
+ ### Added
42
+
43
+ - **Complexity Driver Architecture** - Shell-based drivers for language-specific complexity analysis
44
+ - **Python Driver** (`drivers/python.sh`) - Wraps [radon](https://radon.readthedocs.io/) for cyclomatic complexity
45
+ - **JavaScript/TypeScript Driver** (`drivers/javascript.sh`) - Wraps [cyclomatic-complexity](https://github.com/pilotpirxie/cyclomatic-complexity)
46
+ - **Go Driver** (`drivers/go.sh`) - Wraps [gocyclo](https://github.com/fzipp/gocyclo)
47
+ - **Rust Driver** (`drivers/rust.sh`) - Wraps [rust-code-analysis](https://mozilla.github.io/rust-code-analysis/)
48
+ - **PHP Driver** (`drivers/php.sh`) - Wraps [PHPMD](https://phpmd.org/)
49
+ - **Java Driver** (`drivers/java.sh`) - Wraps [PMD](https://pmd.github.io/)
50
+ - All drivers output unified `ComplexityReport` JSON schema
51
+ - Grade thresholds: A (1-5), B (6-10), C (11-20), D (21-30), E (31-40), F (41+)
52
+
53
+ - **CLI Integration** - `vibe-check driver <language> [directory]` command
54
+ - Runs any driver and outputs JSON
55
+ - Helpful error messages when tools not installed
56
+
57
+ - **Modularity Integration** - `--with-complexity <driver>` flag for modularity command
58
+ - Combines complexity data with module analysis
59
+ - Weighted scoring includes complexity grades
60
+
61
+ ### Developer
62
+
63
+ - 6 shell drivers in `drivers/` directory
64
+ - `drivers/README.md` with installation and usage docs
65
+
66
+ ## [2.3.0] - 2025-12-28
67
+
68
+ ### Added
69
+
70
+ - **AI Safety Detection Module** - Detects LLM-specific security antipatterns in commit history
71
+ - **Secret Leakage Detector** - Scans commits for exposed credentials
72
+ - 8 patterns: OpenAI API keys, GitHub PATs, GitLab PATs, AWS keys, Slack tokens, generic secrets
73
+ - Two modes: full diff scanning (async) and message-only scanning (sync)
74
+ - Masks secrets in output (first 8 chars + `***`)
75
+ - Critical severity for high-value secrets (API keys, tokens)
76
+ - **Scope Violation Detector** - Detects files modified outside declared scope
77
+ - Configure via `.vibe-check/scope.yaml` with glob patterns
78
+ - Supports allowed patterns, directories, and exceptions
79
+ - Uses minimatch for flexible pattern matching
80
+ - **Contract Drift Detector** - Tracks commit message format compliance
81
+ - Scores commits against conventional commit format (0-100)
82
+ - Detects issues: missing_type, invalid_type, vague_message, too_short, etc.
83
+ - Calculates baseline vs current compliance with trend detection
84
+ - Configurable drift threshold (default: 30%)
85
+ - **Token Spiral Estimator** - Estimates token usage and detects explosions
86
+ - Three estimation methods: char_count, lines, diff_size
87
+ - Baseline from first 5 commits, explosion at >2x baseline
88
+ - Indicators: large_diff, many_files, massive_additions, bulk_additions
89
+
90
+ - **Watch Mode Integration** - Real-time secret detection with severity-based alerts
91
+ - Rate-limited alerts via commit:pattern:file tracking
92
+ - Red/bold for critical secrets, yellow for warnings
93
+
94
+ - **Session Integration** - AI Safety included in session end metrics
95
+ - New `ai_safety` section in JSON output
96
+ - Terminal output with health status and recommendations
97
+
98
+ ### Changed
99
+
100
+ - `analyzeAISafety()` orchestrator runs all 4 detectors and aggregates results
101
+ - Added `minimatch` and `js-yaml` dependencies for scope configuration
102
+
103
+ ### Developer
104
+
105
+ - 31 new unit and integration tests for AI Safety module
106
+ - Updated CLAUDE.md with AI Safety documentation and architecture
107
+
108
+ ## [2.2.1] - 2025-12-27
109
+
110
+ ### Added
111
+
112
+ - **Enhanced Metrics** - Three new metrics for deeper insights into development habits
113
+ - **Tracer Bullet Ratio** - Measures proactive validation via `tracer:` or `tb:` commits
114
+ - Tracers before features = proactive validation (good!)
115
+ - Tracers before fixes = reactive debugging (too late!)
116
+ - Rating: ELITE >20% | HIGH >10% | MEDIUM >5% | LOW <5%
117
+ - **Investigation Gap Detection** - Surfaces hidden debugging time
118
+ - Detects gaps >15min followed by fix commits
119
+ - Shows total investigation time and longest gap
120
+ - Rating: ELITE 0min | HIGH <30min | MEDIUM <60min | LOW >60min
121
+ - **Domain Cohesion Score** - Measures how focused changes are
122
+ - Cohesive commits touch 1 domain
123
+ - Scattered commits touch 3+ domains
124
+ - Rating: ELITE >80% | HIGH >60% | MEDIUM >40% | LOW <40%
125
+
126
+ - **Eldritch Horror Detector** - Detects oversized functions in the `audit` command
127
+ - Functions >200 lines = warning
128
+ - Functions >500 lines = critical
129
+ - Supports TypeScript, JavaScript, Python, Go
130
+
131
+ - **Tracer Commit Type** - New `tracer` commit type recognized
132
+ - Use `tracer:` or `tb:` prefix for tracer bullet commits
133
+ - Example: `tracer(auth): validate OAuth token refresh flow`
134
+ - Tracers are counted separately from features/fixes
135
+
136
+ ### Changed
137
+
138
+ - Enhanced metrics are calculated when using `--score` flag
139
+ - Audit command now includes function-level analysis
140
+
141
+ ## [2.0.0] - 2025-12-15
142
+
143
+ ### Added
144
+ - **Audit Command** - `vibe-check audit` for static analysis of code messes (monoliths, test gaps, TODOs)
145
+
146
+ ### Changed
147
+ - **ESM Migration** - Package is now pure ESM (`type: module`). Requires Node.js 20+.
148
+ - **Dependencies** - Updated all dependencies to December 2025 latest versions.
149
+ - **Chalk v5** - Updated to `chalk` v5 (ESM only).
150
+
151
+ ## [1.8.0] - 2025-12-05
152
+
153
+ ### Added
154
+
155
+ - **Git Forensics** - `vibe-check forensics` command for deep pattern analysis (VIBE-045)
156
+ - Detects debug spirals ("take N" patterns indicating fix-retry loops)
157
+ - Detects vague commits (<20 characters)
158
+ - Detects context amnesia (repeatedly revisiting same scope)
159
+ - Quality metrics: conventional commit %, descriptive commit %
160
+ - Recommendations: sweep, maintain, or celebrate
161
+ - **Session Detection** - `vibe-check sessions` command for work session analysis (VIBE-046)
162
+ - Identifies sessions from commit timestamps (90-minute gap threshold)
163
+ - Session statistics: avg duration, commits per session, longest/shortest
164
+ - Proven algorithm from release-engineering retrospective
165
+ - **Brand Assets** - Professional logo and visual identity
166
+ - SVG logo with spiral-to-checkmark concept
167
+ - Light and dark mode variants
168
+ - Tagline: "catch the spiral before it catches you"
169
+ - **Actionable Coaching** - Personalized coaching based on your spiral history
170
+ - `vibe-check insights` - View your spiral patterns and what works for you
171
+ - Watch mode shows personalized alerts
172
+ - Session end shows coaching for spirals hit during the session
173
+ - All spirals auto-recorded to `~/.vibe-check/spiral-history.ndjson`
174
+
175
+ ### Changed
176
+
177
+ - **README Redesign** - Modern visual flow inspired by top npm packages
178
+ - Centered hero section with logo and badges
179
+ - Progressive disclosure structure
180
+ - Cleaner section organization with horizontal rules
181
+ - Scannable tables instead of prose
182
+ - **Security Policy Updated** - Added forensics and sessions to threat model
183
+
184
+ ## [1.7.0] - 2025-12-02
185
+
186
+ ### Added
187
+ - **Session Integration** - New `vibe-check session` command suite for Claude Code integration
188
+ - `session start` - Capture baseline metrics at session start
189
+ - `session end` - Get session metrics with failure pattern detection
190
+ - `session status` - Show active session info
191
+ - JSON output compatible with `claude-progress.json` format
192
+ - Automatic failure pattern detection (Debug Spiral, Context Amnesia, Velocity Crash, Trust Erosion, Flow Disruption)
193
+ - Auto-generated learnings based on metrics and patterns
194
+ - Baseline comparison with last 7 days
195
+
196
+ ### Changed
197
+ - Major cleanup: removed 20 files, -3900 lines of speculative features
198
+ - Removed learning system (zero adoption evidence)
199
+ - Removed advanced gamification (challenges, prestige, leaderboards)
200
+ - Simplified to core value: metrics, coaching, insights
201
+
202
+ ## [1.6.0] - 2025-11-30
203
+
204
+ ### Added
205
+ - **Dashboard Command** - `vibe-check dashboard` opens a visual dashboard in your browser
206
+ - Score trend charts showing vibe score over time
207
+ - Session rating distribution (Elite/High/Medium/Low)
208
+ - Metrics radar chart
209
+ - Recent sessions list
210
+ - Achievement progress tracking
211
+ - **Insight Engine** - Generates actionable insights from your data
212
+ - Peak productivity hours detection
213
+ - Best coding day analysis
214
+ - Improvement streak tracking
215
+ - Problematic scope warnings (high fix ratios)
216
+ - Streak risk alerts
217
+ - Personal best celebrations
218
+ - Level-up progress notifications
219
+ - Late night coding warnings
220
+ - Recent achievement highlights
221
+ - Dashboard exports data to `dashboard-data.json` for offline viewing
222
+ - `--no-open` flag to export data without opening browser
223
+ - `-o, --output` flag for custom output path
224
+
225
+ ## [1.5.0] - 2025-11-30
226
+
227
+ ### Added
228
+ - **Timeline Storage** - Persistent storage with schema versioning
229
+ - **Cross-session Queries** - Query patterns across all historical data
230
+ - **Regression Detection** - Detect when metrics are trending worse
231
+ - **Spiral Pattern Memory** - Track which patterns cause the most spirals
232
+
233
+ ## [1.4.0] - 2025-11-29
234
+
235
+ ### Added
236
+ - **Timeline Command** - `vibe-check timeline` for viewing coding journey
237
+ - **Pattern Memory** - Tracks spiral triggers over time
238
+ - **Intervention Memory** - Tracks what interventions break spirals
239
+ - **Weekly Challenges** - Gamified weekly goals
240
+
241
+ ## [1.3.0] - 2025-11-29
242
+
243
+ ### Added
244
+ - **Watch Mode** - `vibe-check watch` for real-time spiral detection
245
+ - **Intervene Command** - `vibe-check intervene` to record what broke a spiral
246
+ - **Cache Command** - `vibe-check cache` to manage local storage
247
+
248
+ ## [1.2.0] - 2025-11-29
249
+
250
+ ### Added
251
+ - **Git Hook** - `vibe-check init-hook` command to install pre-push hook
252
+ - Runs vibe-check automatically before every git push
253
+ - `--block-low` option to reject pushes with LOW rating
254
+ - Configurable via environment variables
255
+ - Pre-push hook script in `hooks/pre-push` for manual installation
256
+
257
+ ## [1.1.0] - 2025-11-29
258
+
259
+ ### Added
260
+ - **Gamification System** - XP, levels, streaks, and achievements to make vibe-checking more engaging
261
+ - 18 achievements across streak, score, sessions, and special categories
262
+ - XP rewards for sessions, streaks, scores, and achievements
263
+ - Level progression from "Newbie" (1) to "Legend" (10)
264
+ - Daily streaks with weekly goals
265
+ - 2 hidden achievements to discover
266
+ - **Profile Command** - `vibe-check profile` to view your stats, achievements, and progress
267
+ - `--achievements` flag to see all achievements
268
+ - `--stats` flag for detailed statistics
269
+ - `--json` flag for machine-readable output
270
+ - **GitHub Action** - Automated vibe-check on PRs with comment posting
271
+ - Configurable thresholds for pass/fail
272
+ - JSON artifact output option
273
+ - Full PR comment with metrics and recommendations
274
+ - **JSON File Output** - `--output <file>` flag to save results to a JSON file
275
+ - **Dashboard Shell** - Static HTML dashboard for viewing profile (in `dashboard/` directory)
276
+ - **Simple Mode** - `--simple` flag for compact output showing only essential metrics
277
+ - **UX Improvements**
278
+ - Summary section with top strength and focus area
279
+ - Opportunities section with actionable tips for low/medium metrics
280
+ - Date period context in output header
281
+ - Confidence display for level recommendations
282
+ - **Anti-Gaming** - XP deduplication prevents multiple rewards for same time period
283
+ - **Comprehensive Tests** - 108 tests covering gamification, metrics, and scoring
284
+
285
+ ### Changed
286
+ - Requires Node.js 20+ (for Vitest 4.x compatibility)
287
+ - Updated all dependencies to November 2025 stable versions
288
+ - Improved CLI output clarity with better terminology
289
+ - Renamed internal "FAAFO metrics" to "vibe metrics" (user-facing term unchanged)
290
+
291
+ ### Fixed
292
+ - Grammar issues in CLI output
293
+ - Level recommendation confidence display
294
+
295
+ ## [1.0.2] - 2025-11-28
296
+
297
+ ### Changed
298
+ - Complete README rewrite with problem-first structure
299
+ - Added "The Problem" and "The Insight" sections
300
+ - Added practical "When to Run" guidance
301
+ - Added prevention tips for debug spiral patterns
302
+
303
+ ## [1.0.1] - 2025-11-28
304
+
305
+ ### Added
306
+ - LICENSE file (MIT)
307
+ - CHANGELOG.md
308
+ - .npmignore for cleaner package
309
+ - Jest test suite
310
+ - GitHub Actions CI
311
+
312
+ ### Fixed
313
+ - Version now imported from package.json (was hardcoded)
314
+
315
+ ## [1.0.0] - 2025-11-28
316
+
317
+ ### Added
318
+ - Initial release
319
+ - 5 FAAFO metrics: Iteration Velocity, Rework Ratio, Trust Pass Rate, Debug Spiral Duration, Flow Efficiency
320
+ - Terminal, JSON, and Markdown output formats
321
+ - Debug spiral detection with pattern categorization
322
+ - Conventional commit parsing