@boshu2/vibe-check 1.8.0 → 2.0.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/.claude/settings.local.json +1 -1
- package/CHANGELOG.md +10 -0
- package/CLAUDE.md +58 -0
- package/Makefile +43 -6
- package/README.md +80 -27
- package/bin/vibe-check.js +1 -1
- package/claude-progress.json +18 -0
- package/dist/analysis/cross-session-analysis.d.ts +1 -1
- package/dist/analysis/cross-session-analysis.d.ts.map +1 -1
- package/dist/analysis/cross-session-analysis.js +9 -18
- package/dist/analysis/cross-session-analysis.js.map +1 -1
- package/dist/analysis/index.d.ts +1 -1
- package/dist/analysis/index.d.ts.map +1 -1
- package/dist/analysis/index.js +1 -11
- package/dist/analysis/index.js.map +1 -1
- package/dist/analyzers/audit.d.ts +28 -0
- package/dist/analyzers/audit.d.ts.map +1 -0
- package/dist/analyzers/audit.js +86 -0
- package/dist/analyzers/audit.js.map +1 -0
- package/dist/analyzers/patterns.d.ts +1 -1
- package/dist/analyzers/patterns.d.ts.map +1 -1
- package/dist/analyzers/patterns.js +4 -10
- package/dist/analyzers/patterns.js.map +1 -1
- package/dist/analyzers/quality.d.ts +1 -1
- package/dist/analyzers/quality.d.ts.map +1 -1
- package/dist/analyzers/quality.js +5 -12
- package/dist/analyzers/quality.js.map +1 -1
- package/dist/analyzers/sessions.d.ts +1 -1
- package/dist/analyzers/sessions.d.ts.map +1 -1
- package/dist/analyzers/sessions.js +1 -4
- package/dist/analyzers/sessions.js.map +1 -1
- package/dist/cli.js +20 -20
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +114 -149
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/audit.d.ts +3 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +77 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/cache.js +31 -70
- package/dist/commands/cache.js.map +1 -1
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +22 -58
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/forensics.d.ts +2 -2
- package/dist/commands/forensics.d.ts.map +1 -1
- package/dist/commands/forensics.js +41 -48
- package/dist/commands/forensics.js.map +1 -1
- package/dist/commands/index.d.ts +14 -13
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +14 -33
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init-hook.js +26 -32
- package/dist/commands/init-hook.js.map +1 -1
- package/dist/commands/insights.js +39 -45
- package/dist/commands/insights.js.map +1 -1
- package/dist/commands/pipeline.js +39 -78
- package/dist/commands/pipeline.js.map +1 -1
- package/dist/commands/profile.js +68 -74
- 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 +134 -118
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/sessions.d.ts +1 -1
- package/dist/commands/sessions.d.ts.map +1 -1
- package/dist/commands/sessions.js +42 -49
- package/dist/commands/sessions.js.map +1 -1
- package/dist/commands/start.js +22 -67
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/timeline.js +74 -81
- package/dist/commands/timeline.js.map +1 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +117 -47
- package/dist/commands/watch.js.map +1 -1
- package/dist/gamification/achievements.d.ts +1 -1
- package/dist/gamification/achievements.d.ts.map +1 -1
- package/dist/gamification/achievements.js +7 -13
- package/dist/gamification/achievements.js.map +1 -1
- package/dist/gamification/index.d.ts +8 -8
- package/dist/gamification/index.d.ts.map +1 -1
- package/dist/gamification/index.js +8 -28
- package/dist/gamification/index.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 +21 -64
- package/dist/gamification/profile.js.map +1 -1
- package/dist/gamification/stats.d.ts +1 -1
- package/dist/gamification/stats.d.ts.map +1 -1
- package/dist/gamification/stats.js +4 -10
- package/dist/gamification/stats.js.map +1 -1
- package/dist/gamification/streaks.d.ts +1 -1
- package/dist/gamification/streaks.d.ts.map +1 -1
- package/dist/gamification/streaks.js +8 -18
- package/dist/gamification/streaks.js.map +1 -1
- package/dist/gamification/types.js +3 -6
- package/dist/gamification/types.js.map +1 -1
- package/dist/gamification/xp.d.ts +1 -1
- package/dist/gamification/xp.d.ts.map +1 -1
- package/dist/gamification/xp.js +29 -38
- package/dist/gamification/xp.js.map +1 -1
- package/dist/git.d.ts +1 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +15 -27
- package/dist/git.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 +246 -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 +181 -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 +255 -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 +256 -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 +208 -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 +26 -0
- package/dist/inner-loop/types.js.map +1 -0
- package/dist/insights/generators.d.ts +4 -4
- package/dist/insights/generators.d.ts.map +1 -1
- package/dist/insights/generators.js +9 -20
- package/dist/insights/generators.js.map +1 -1
- package/dist/insights/index.d.ts +4 -4
- package/dist/insights/index.d.ts.map +1 -1
- package/dist/insights/index.js +23 -27
- package/dist/insights/index.js.map +1 -1
- package/dist/insights/types.js +1 -2
- package/dist/insights/types.js.map +1 -1
- package/dist/metrics/code-stability.d.ts +1 -1
- package/dist/metrics/code-stability.d.ts.map +1 -1
- package/dist/metrics/code-stability.js +1 -4
- package/dist/metrics/code-stability.js.map +1 -1
- package/dist/metrics/file-churn.d.ts +1 -1
- package/dist/metrics/file-churn.d.ts.map +1 -1
- package/dist/metrics/file-churn.js +1 -4
- package/dist/metrics/file-churn.js.map +1 -1
- package/dist/metrics/flow.d.ts +1 -1
- package/dist/metrics/flow.d.ts.map +1 -1
- package/dist/metrics/flow.js +1 -4
- package/dist/metrics/flow.js.map +1 -1
- package/dist/metrics/index.d.ts +2 -2
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +15 -20
- package/dist/metrics/index.js.map +1 -1
- package/dist/metrics/rework.d.ts +1 -1
- package/dist/metrics/rework.d.ts.map +1 -1
- package/dist/metrics/rework.js +1 -4
- package/dist/metrics/rework.js.map +1 -1
- package/dist/metrics/spirals.d.ts +1 -1
- package/dist/metrics/spirals.d.ts.map +1 -1
- package/dist/metrics/spirals.js +5 -10
- package/dist/metrics/spirals.js.map +1 -1
- package/dist/metrics/time-spiral.d.ts +1 -1
- package/dist/metrics/time-spiral.d.ts.map +1 -1
- package/dist/metrics/time-spiral.js +1 -4
- package/dist/metrics/time-spiral.js.map +1 -1
- package/dist/metrics/trust.d.ts +1 -1
- package/dist/metrics/trust.d.ts.map +1 -1
- package/dist/metrics/trust.js +3 -6
- package/dist/metrics/trust.js.map +1 -1
- package/dist/metrics/velocity-anomaly.d.ts +1 -1
- package/dist/metrics/velocity-anomaly.d.ts.map +1 -1
- package/dist/metrics/velocity-anomaly.js +3 -6
- package/dist/metrics/velocity-anomaly.js.map +1 -1
- package/dist/metrics/velocity.d.ts +1 -1
- package/dist/metrics/velocity.d.ts.map +1 -1
- package/dist/metrics/velocity.js +6 -10
- package/dist/metrics/velocity.js.map +1 -1
- package/dist/output/index.d.ts +4 -4
- package/dist/output/index.d.ts.map +1 -1
- package/dist/output/index.js +10 -18
- package/dist/output/index.js.map +1 -1
- package/dist/output/json.d.ts +1 -1
- package/dist/output/json.d.ts.map +1 -1
- package/dist/output/json.js +1 -4
- package/dist/output/json.js.map +1 -1
- package/dist/output/markdown.d.ts +1 -1
- package/dist/output/markdown.d.ts.map +1 -1
- package/dist/output/markdown.js +5 -8
- package/dist/output/markdown.js.map +1 -1
- package/dist/output/terminal.d.ts +1 -1
- package/dist/output/terminal.d.ts.map +1 -1
- package/dist/output/terminal.js +55 -62
- package/dist/output/terminal.js.map +1 -1
- package/dist/output/timeline-html.d.ts +1 -1
- package/dist/output/timeline-html.d.ts.map +1 -1
- package/dist/output/timeline-html.js +5 -8
- package/dist/output/timeline-html.js.map +1 -1
- package/dist/output/timeline-markdown.d.ts +1 -1
- package/dist/output/timeline-markdown.d.ts.map +1 -1
- package/dist/output/timeline-markdown.js +5 -8
- package/dist/output/timeline-markdown.js.map +1 -1
- package/dist/output/timeline.d.ts +1 -1
- package/dist/output/timeline.d.ts.map +1 -1
- package/dist/output/timeline.js +46 -52
- package/dist/output/timeline.js.map +1 -1
- package/dist/patterns/detour.d.ts +1 -1
- package/dist/patterns/detour.d.ts.map +1 -1
- package/dist/patterns/detour.js +1 -4
- package/dist/patterns/detour.js.map +1 -1
- package/dist/patterns/flow-state.d.ts +1 -1
- package/dist/patterns/flow-state.d.ts.map +1 -1
- package/dist/patterns/flow-state.js +1 -4
- package/dist/patterns/flow-state.js.map +1 -1
- package/dist/patterns/index.d.ts +7 -7
- package/dist/patterns/index.d.ts.map +1 -1
- package/dist/patterns/index.js +7 -21
- package/dist/patterns/index.js.map +1 -1
- package/dist/patterns/intervention-effectiveness.d.ts +1 -1
- package/dist/patterns/intervention-effectiveness.d.ts.map +1 -1
- package/dist/patterns/intervention-effectiveness.js +3 -8
- package/dist/patterns/intervention-effectiveness.js.map +1 -1
- package/dist/patterns/late-night.d.ts +1 -1
- package/dist/patterns/late-night.d.ts.map +1 -1
- package/dist/patterns/late-night.js +1 -4
- package/dist/patterns/late-night.js.map +1 -1
- package/dist/patterns/post-delete-sprint.d.ts +1 -1
- package/dist/patterns/post-delete-sprint.d.ts.map +1 -1
- package/dist/patterns/post-delete-sprint.js +1 -4
- package/dist/patterns/post-delete-sprint.js.map +1 -1
- package/dist/patterns/spiral-regression.d.ts +1 -1
- package/dist/patterns/spiral-regression.d.ts.map +1 -1
- package/dist/patterns/spiral-regression.js +3 -8
- package/dist/patterns/spiral-regression.js.map +1 -1
- package/dist/patterns/thrashing.d.ts +1 -1
- package/dist/patterns/thrashing.d.ts.map +1 -1
- package/dist/patterns/thrashing.js +3 -6
- package/dist/patterns/thrashing.js.map +1 -1
- package/dist/score/index.d.ts +3 -3
- package/dist/score/index.d.ts.map +1 -1
- package/dist/score/index.js +4 -10
- package/dist/score/index.js.map +1 -1
- package/dist/score/weights.js +2 -6
- package/dist/score/weights.js.map +1 -1
- package/dist/sessions/index.js +9 -51
- package/dist/sessions/index.js.map +1 -1
- package/dist/storage/atomic.js +10 -51
- package/dist/storage/atomic.js.map +1 -1
- package/dist/storage/commit-log.d.ts +1 -1
- package/dist/storage/commit-log.d.ts.map +1 -1
- package/dist/storage/commit-log.js +11 -51
- package/dist/storage/commit-log.js.map +1 -1
- package/dist/storage/index.d.ts +5 -5
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +5 -37
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/schema.js +4 -9
- package/dist/storage/schema.js.map +1 -1
- package/dist/storage/spiral-history.js +14 -57
- package/dist/storage/spiral-history.js.map +1 -1
- package/dist/storage/timeline-store.d.ts +2 -2
- package/dist/storage/timeline-store.d.ts.map +1 -1
- package/dist/storage/timeline-store.js +17 -61
- package/dist/storage/timeline-store.js.map +1 -1
- package/dist/types.js +1 -2
- package/docs/ENHANCEMENT-PLAN.md +361 -0
- package/docs/FEATURES.md +340 -0
- package/feature-list.json +6 -0
- package/package.json +8 -7
- package/dist/calibration/ece.d.ts +0 -26
- package/dist/calibration/ece.d.ts.map +0 -1
- package/dist/calibration/ece.js +0 -93
- package/dist/calibration/ece.js.map +0 -1
- package/dist/calibration/index.d.ts +0 -3
- package/dist/calibration/index.d.ts.map +0 -1
- package/dist/calibration/index.js +0 -15
- package/dist/calibration/index.js.map +0 -1
- package/dist/calibration/storage.d.ts +0 -34
- package/dist/calibration/storage.d.ts.map +0 -1
- package/dist/calibration/storage.js +0 -188
- package/dist/calibration/storage.js.map +0 -1
- package/dist/commands/intervene.d.ts +0 -15
- package/dist/commands/intervene.d.ts.map +0 -1
- package/dist/commands/intervene.js +0 -183
- package/dist/commands/intervene.js.map +0 -1
- package/dist/commands/learn.d.ts +0 -3
- package/dist/commands/learn.d.ts.map +0 -1
- package/dist/commands/learn.js +0 -161
- package/dist/commands/learn.js.map +0 -1
- package/dist/commands/lesson.d.ts +0 -8
- package/dist/commands/lesson.d.ts.map +0 -1
- package/dist/commands/lesson.js +0 -206
- package/dist/commands/lesson.js.map +0 -1
- package/dist/commands/level.d.ts +0 -3
- package/dist/commands/level.d.ts.map +0 -1
- package/dist/commands/level.js +0 -277
- package/dist/commands/level.js.map +0 -1
- package/dist/gamification/badges.d.ts +0 -29
- package/dist/gamification/badges.d.ts.map +0 -1
- package/dist/gamification/badges.js +0 -114
- package/dist/gamification/badges.js.map +0 -1
- package/dist/gamification/challenges.d.ts +0 -42
- package/dist/gamification/challenges.d.ts.map +0 -1
- package/dist/gamification/challenges.js +0 -184
- package/dist/gamification/challenges.js.map +0 -1
- package/dist/gamification/hall-of-fame.d.ts +0 -17
- package/dist/gamification/hall-of-fame.d.ts.map +0 -1
- package/dist/gamification/hall-of-fame.js +0 -64
- package/dist/gamification/hall-of-fame.js.map +0 -1
- package/dist/gamification/intervention-memory.d.ts +0 -61
- package/dist/gamification/intervention-memory.d.ts.map +0 -1
- package/dist/gamification/intervention-memory.js +0 -229
- package/dist/gamification/intervention-memory.js.map +0 -1
- package/dist/gamification/leaderboards.d.ts +0 -49
- package/dist/gamification/leaderboards.d.ts.map +0 -1
- package/dist/gamification/leaderboards.js +0 -179
- package/dist/gamification/leaderboards.js.map +0 -1
- package/dist/gamification/pattern-memory.d.ts +0 -45
- package/dist/gamification/pattern-memory.d.ts.map +0 -1
- package/dist/gamification/pattern-memory.js +0 -188
- package/dist/gamification/pattern-memory.js.map +0 -1
- package/dist/gamification/share.d.ts +0 -29
- package/dist/gamification/share.d.ts.map +0 -1
- package/dist/gamification/share.js +0 -57
- package/dist/gamification/share.js.map +0 -1
- package/dist/learning/cadence.d.ts +0 -15
- package/dist/learning/cadence.d.ts.map +0 -1
- package/dist/learning/cadence.js +0 -130
- package/dist/learning/cadence.js.map +0 -1
- package/dist/learning/index.d.ts +0 -19
- package/dist/learning/index.d.ts.map +0 -1
- package/dist/learning/index.js +0 -35
- package/dist/learning/index.js.map +0 -1
- package/dist/learning/lessons-storage.d.ts +0 -48
- package/dist/learning/lessons-storage.d.ts.map +0 -1
- package/dist/learning/lessons-storage.js +0 -266
- package/dist/learning/lessons-storage.js.map +0 -1
- package/dist/learning/lessons-types.d.ts +0 -83
- package/dist/learning/lessons-types.d.ts.map +0 -1
- package/dist/learning/lessons-types.js +0 -15
- package/dist/learning/lessons-types.js.map +0 -1
- package/dist/learning/nudges.d.ts +0 -20
- package/dist/learning/nudges.d.ts.map +0 -1
- package/dist/learning/nudges.js +0 -68
- package/dist/learning/nudges.js.map +0 -1
- package/dist/learning/retrospective.d.ts +0 -27
- package/dist/learning/retrospective.d.ts.map +0 -1
- package/dist/learning/retrospective.js +0 -184
- package/dist/learning/retrospective.js.map +0 -1
- package/dist/learning/storage.d.ts +0 -44
- package/dist/learning/storage.d.ts.map +0 -1
- package/dist/learning/storage.js +0 -194
- package/dist/learning/storage.js.map +0 -1
- package/dist/learning/surfacing.d.ts +0 -36
- package/dist/learning/surfacing.d.ts.map +0 -1
- package/dist/learning/surfacing.js +0 -255
- package/dist/learning/surfacing.js.map +0 -1
- package/dist/learning/synthesis.d.ts +0 -17
- package/dist/learning/synthesis.d.ts.map +0 -1
- package/dist/learning/synthesis.js +0 -293
- package/dist/learning/synthesis.js.map +0 -1
- package/dist/learning/types.d.ts +0 -60
- package/dist/learning/types.d.ts.map +0 -1
- package/dist/learning/types.js +0 -17
- package/dist/learning/types.js.map +0 -1
- package/dist/recommend/index.d.ts +0 -3
- package/dist/recommend/index.d.ts.map +0 -1
- package/dist/recommend/index.js +0 -14
- package/dist/recommend/index.js.map +0 -1
- package/dist/recommend/ordered-logistic.d.ts +0 -49
- package/dist/recommend/ordered-logistic.d.ts.map +0 -1
- package/dist/recommend/ordered-logistic.js +0 -153
- package/dist/recommend/ordered-logistic.js.map +0 -1
- package/dist/recommend/questions.d.ts +0 -19
- package/dist/recommend/questions.d.ts.map +0 -1
- package/dist/recommend/questions.js +0 -73
- package/dist/recommend/questions.js.map +0 -1
package/docs/FEATURES.md
ADDED
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
# vibe-check: Feature Guide
|
|
2
|
+
|
|
3
|
+
**Measure AI-assisted development sessions**
|
|
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.7.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. Session Integration
|
|
129
|
+
|
|
130
|
+
Track sessions with baseline comparison:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
vibe-check session start --level 3 # Start session
|
|
134
|
+
vibe-check session status # Check active session
|
|
135
|
+
vibe-check session end --format json # End and get metrics
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Output includes failure pattern detection for AgentOps integration.
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## Gamification System
|
|
143
|
+
|
|
144
|
+
vibe-check includes a complete gamification layer to make improvement engaging:
|
|
145
|
+
|
|
146
|
+
### XP & Levels
|
|
147
|
+
|
|
148
|
+
```
|
|
149
|
+
Level 1: Novice (0-100 XP) 🌱
|
|
150
|
+
Level 2: Apprentice (100-300 XP) 🌿
|
|
151
|
+
Level 3: Practitioner (300-600 XP) 🌳
|
|
152
|
+
Level 4: Expert (600-1000 XP) 🌲
|
|
153
|
+
Level 5: Master (1000-2000 XP) 🎋
|
|
154
|
+
Level 6: Grandmaster (2000-5000 XP) 🏔️
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
**Prestige tiers** (beyond Grandmaster):
|
|
158
|
+
- Archmage (5000+ XP) 🔮
|
|
159
|
+
- Sage (10000+ XP) 📿
|
|
160
|
+
- Zenmester (20000+ XP) ☯️
|
|
161
|
+
- Transcendent (40000+ XP) 🌟
|
|
162
|
+
- Legendary (80000+ XP) 💫
|
|
163
|
+
|
|
164
|
+
### Streaks
|
|
165
|
+
|
|
166
|
+
Daily check-ins build streaks with visual progression:
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
🔥 5-day streak (1-5 days)
|
|
170
|
+
🌟🌟 12-day streak (6-14 days)
|
|
171
|
+
👑👑👑 18-day streak 🏆 (15+ days, Personal Best!)
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
Streak freezes protect against occasional missed days.
|
|
175
|
+
|
|
176
|
+
### Achievements (19 total)
|
|
177
|
+
|
|
178
|
+
Categories:
|
|
179
|
+
- **Consistency**: First Blood, Week Warrior, Streak Master
|
|
180
|
+
- **Quality**: Elite Vibes, Trust Builder, Zen Master
|
|
181
|
+
- **Volume**: Centurion, Marathon Coder
|
|
182
|
+
- **Improvement**: Comeback Kid, On Fire
|
|
183
|
+
- **Special**: Night Owl, Early Bird, Weekend Warrior
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
## Integration Points
|
|
188
|
+
|
|
189
|
+
### Git Hook
|
|
190
|
+
|
|
191
|
+
Automatic vibe-check on every push:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
vibe-check init-hook # Install hook
|
|
195
|
+
vibe-check init-hook --block-low # Block LOW pushes
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### GitHub Action
|
|
199
|
+
|
|
200
|
+
Automated PR feedback:
|
|
201
|
+
|
|
202
|
+
```yaml
|
|
203
|
+
name: Vibe Check
|
|
204
|
+
on: [pull_request]
|
|
205
|
+
|
|
206
|
+
jobs:
|
|
207
|
+
vibe-check:
|
|
208
|
+
runs-on: ubuntu-latest
|
|
209
|
+
steps:
|
|
210
|
+
- uses: actions/checkout@v4
|
|
211
|
+
with:
|
|
212
|
+
fetch-depth: 0
|
|
213
|
+
- uses: boshu2/vibe-check@v1
|
|
214
|
+
with:
|
|
215
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### JSON Output
|
|
219
|
+
|
|
220
|
+
Machine-readable for dashboards/CI:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
vibe-check --format json --output vibe-results.json
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
## The Workflow
|
|
229
|
+
|
|
230
|
+
### Daily Practice
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
Morning:
|
|
234
|
+
1. vibe-check profile # Check streak, challenges
|
|
235
|
+
2. Plan tasks, estimate levels
|
|
236
|
+
|
|
237
|
+
During work:
|
|
238
|
+
3. vibe-check watch # Real-time monitoring
|
|
239
|
+
4. Notice spiral alerts, intervene early
|
|
240
|
+
|
|
241
|
+
End of session:
|
|
242
|
+
5. vibe-check --since "today" # Review session
|
|
243
|
+
6. XP/achievements auto-update
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### Session Workflow (Optional)
|
|
247
|
+
|
|
248
|
+
For explicit tracking:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
# Before: declare expectation
|
|
252
|
+
vibe-check start --level 3
|
|
253
|
+
|
|
254
|
+
# ... work ...
|
|
255
|
+
|
|
256
|
+
# After: compare reality
|
|
257
|
+
vibe-check --since "1 hour ago"
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
The tool will show whether your level classification was accurate.
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Philosophy
|
|
265
|
+
|
|
266
|
+
### What vibe-check IS
|
|
267
|
+
|
|
268
|
+
- A self-reflection tool
|
|
269
|
+
- A pattern detector
|
|
270
|
+
- A gamified improvement system
|
|
271
|
+
- A calibration feedback loop
|
|
272
|
+
|
|
273
|
+
### What vibe-check IS NOT
|
|
274
|
+
|
|
275
|
+
- A productivity metric
|
|
276
|
+
- A performance review tool
|
|
277
|
+
- A surveillance system
|
|
278
|
+
- A judgment of AI effectiveness
|
|
279
|
+
|
|
280
|
+
**Use it for yourself, not for measuring others.**
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## The Science
|
|
285
|
+
|
|
286
|
+
vibe-check uses **semantic-free signals** - patterns in git history that indicate workflow health without reading code content. This approach:
|
|
287
|
+
|
|
288
|
+
1. **Can't be gamed** - You can't fake commit timestamps
|
|
289
|
+
2. **Respects privacy** - Never reads actual code
|
|
290
|
+
3. **Is universal** - Works for any language/framework
|
|
291
|
+
4. **Provides honest signal** - Measures behavior, not intention
|
|
292
|
+
|
|
293
|
+
The VibeScore combines metrics using validated weights derived from empirical analysis of productive vs. struggling sessions.
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Future Roadmap
|
|
298
|
+
|
|
299
|
+
| Phase | Status | Description |
|
|
300
|
+
|-------|--------|-------------|
|
|
301
|
+
| CLI Core | ✅ Complete | Metrics, scoring, analysis |
|
|
302
|
+
| Gamification | ✅ Complete | XP, streaks, achievements |
|
|
303
|
+
| Watch Mode | ✅ Complete | Real-time spiral detection |
|
|
304
|
+
| GitHub Action | ✅ Complete | Automated PR feedback |
|
|
305
|
+
| Session Integration | ✅ Complete | AgentOps integration |
|
|
306
|
+
| Visual Dashboard | ✅ Complete | HTML dashboard with charts |
|
|
307
|
+
| VS Code Extension | 🔮 Planned | Status bar, live alerts |
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
## Getting Started
|
|
312
|
+
|
|
313
|
+
```bash
|
|
314
|
+
# Install
|
|
315
|
+
npm install -g @boshu2/vibe-check
|
|
316
|
+
|
|
317
|
+
# Run your first check
|
|
318
|
+
vibe-check --since "1 week ago"
|
|
319
|
+
|
|
320
|
+
# See your profile
|
|
321
|
+
vibe-check profile
|
|
322
|
+
|
|
323
|
+
# Start watching
|
|
324
|
+
vibe-check watch
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
## Resources
|
|
330
|
+
|
|
331
|
+
- **npm**: [@boshu2/vibe-check](https://www.npmjs.com/package/@boshu2/vibe-check)
|
|
332
|
+
- **GitHub**: [boshu2/vibe-check](https://github.com/boshu2/vibe-check)
|
|
333
|
+
- **Issues**: [Report bugs or request features](https://github.com/boshu2/vibe-check/issues)
|
|
334
|
+
|
|
335
|
+
---
|
|
336
|
+
|
|
337
|
+
*"The goal isn't perfect metrics. It's conscious awareness of your patterns."*
|
|
338
|
+
|
|
339
|
+
**Version:** 1.7.0
|
|
340
|
+
**Last Updated:** 2025-12-02
|
package/feature-list.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
|
+
"type": "module",
|
|
2
3
|
"name": "@boshu2/vibe-check",
|
|
3
|
-
"version": "
|
|
4
|
+
"version": "2.0.0",
|
|
4
5
|
"description": "Track git commit patterns during AI-assisted coding (experimental)",
|
|
5
6
|
"main": "dist/cli.js",
|
|
6
7
|
"bin": {
|
|
@@ -28,18 +29,18 @@
|
|
|
28
29
|
"url": "https://github.com/boshu2/vibe-check"
|
|
29
30
|
},
|
|
30
31
|
"dependencies": {
|
|
31
|
-
"chalk": "^
|
|
32
|
-
"commander": "^14.0.
|
|
32
|
+
"chalk": "^5.6.2",
|
|
33
|
+
"commander": "^14.0.2",
|
|
33
34
|
"date-fns": "^4.1.0",
|
|
34
35
|
"enquirer": "^2.4.1",
|
|
35
36
|
"simple-git": "^3.30.0"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
38
|
-
"@types/node": "^
|
|
39
|
-
"@vitest/coverage-v8": "^4.0.
|
|
39
|
+
"@types/node": "^25.0.2",
|
|
40
|
+
"@vitest/coverage-v8": "^4.0.15",
|
|
40
41
|
"ts-node": "^10.9.2",
|
|
41
|
-
"typescript": "^5.9.
|
|
42
|
-
"vitest": "^4.0.
|
|
42
|
+
"typescript": "^5.9.3",
|
|
43
|
+
"vitest": "^4.0.15"
|
|
43
44
|
},
|
|
44
45
|
"engines": {
|
|
45
46
|
"node": ">=20.0.0"
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { CalibrationSample } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* Expected Calibration Error (ECE).
|
|
4
|
-
* Measures how well predicted levels match declared levels.
|
|
5
|
-
*
|
|
6
|
-
* ECE = Σᵢ (nᵢ/N) × |accuracy(binᵢ) - confidence(binᵢ)|
|
|
7
|
-
*/
|
|
8
|
-
export declare function calculateECE(samples: CalibrationSample[]): number;
|
|
9
|
-
/**
|
|
10
|
-
* Assess if a score matches the expected range for a level.
|
|
11
|
-
*/
|
|
12
|
-
export declare function assessOutcome(vibeScore: number, declaredLevel: number): 'correct' | 'too_high' | 'too_low';
|
|
13
|
-
/**
|
|
14
|
-
* Infer the "true" vibe level from an actual vibe score.
|
|
15
|
-
* This is used to generate training labels for the model.
|
|
16
|
-
*
|
|
17
|
-
* Maps score ranges to levels:
|
|
18
|
-
* - 0.90-1.00 → 5 (Elite flow)
|
|
19
|
-
* - 0.80-0.90 → 4 (High flow)
|
|
20
|
-
* - 0.65-0.80 → 3 (Balanced)
|
|
21
|
-
* - 0.50-0.65 → 2 (AI-Augmented)
|
|
22
|
-
* - 0.30-0.50 → 1 (Human-Led)
|
|
23
|
-
* - 0.00-0.30 → 0 (Manual)
|
|
24
|
-
*/
|
|
25
|
-
export declare function inferTrueLevel(vibeScore: number): 0 | 1 | 2 | 3 | 4 | 5;
|
|
26
|
-
//# sourceMappingURL=ece.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ece.d.ts","sourceRoot":"","sources":["../../src/calibration/ece.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAM,CAoCjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,GACpB,SAAS,GAAG,UAAU,GAAG,SAAS,CAmBpC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAOvE"}
|
package/dist/calibration/ece.js
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateECE = calculateECE;
|
|
4
|
-
exports.assessOutcome = assessOutcome;
|
|
5
|
-
exports.inferTrueLevel = inferTrueLevel;
|
|
6
|
-
/**
|
|
7
|
-
* Expected Calibration Error (ECE).
|
|
8
|
-
* Measures how well predicted levels match declared levels.
|
|
9
|
-
*
|
|
10
|
-
* ECE = Σᵢ (nᵢ/N) × |accuracy(binᵢ) - confidence(binᵢ)|
|
|
11
|
-
*/
|
|
12
|
-
function calculateECE(samples) {
|
|
13
|
-
if (samples.length === 0)
|
|
14
|
-
return 0;
|
|
15
|
-
// Group by declared level
|
|
16
|
-
const bins = new Map();
|
|
17
|
-
for (let level = 0; level <= 5; level++) {
|
|
18
|
-
bins.set(level, []);
|
|
19
|
-
}
|
|
20
|
-
for (const sample of samples) {
|
|
21
|
-
const levelSamples = bins.get(sample.declaredLevel) || [];
|
|
22
|
-
levelSamples.push(sample);
|
|
23
|
-
bins.set(sample.declaredLevel, levelSamples);
|
|
24
|
-
}
|
|
25
|
-
// Expected score range for each level
|
|
26
|
-
const expectedRanges = {
|
|
27
|
-
5: { min: 0.90, max: 1.00 },
|
|
28
|
-
4: { min: 0.80, max: 0.90 },
|
|
29
|
-
3: { min: 0.65, max: 0.80 },
|
|
30
|
-
2: { min: 0.50, max: 0.70 },
|
|
31
|
-
1: { min: 0.30, max: 0.55 },
|
|
32
|
-
0: { min: 0.00, max: 0.40 },
|
|
33
|
-
};
|
|
34
|
-
let ece = 0;
|
|
35
|
-
for (const [level, levelSamples] of bins) {
|
|
36
|
-
if (levelSamples.length === 0)
|
|
37
|
-
continue;
|
|
38
|
-
const expected = expectedRanges[level];
|
|
39
|
-
const expectedCenter = (expected.min + expected.max) / 2;
|
|
40
|
-
const actualMean = levelSamples.reduce((sum, s) => sum + s.vibeScore, 0) / levelSamples.length;
|
|
41
|
-
ece += (levelSamples.length / samples.length) * Math.abs(actualMean - expectedCenter);
|
|
42
|
-
}
|
|
43
|
-
return Math.round(ece * 1000) / 1000;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Assess if a score matches the expected range for a level.
|
|
47
|
-
*/
|
|
48
|
-
function assessOutcome(vibeScore, declaredLevel) {
|
|
49
|
-
const expectedRanges = {
|
|
50
|
-
5: { min: 0.90, max: 1.00 },
|
|
51
|
-
4: { min: 0.80, max: 0.90 },
|
|
52
|
-
3: { min: 0.65, max: 0.80 },
|
|
53
|
-
2: { min: 0.50, max: 0.70 },
|
|
54
|
-
1: { min: 0.30, max: 0.55 },
|
|
55
|
-
0: { min: 0.00, max: 0.40 },
|
|
56
|
-
};
|
|
57
|
-
const expected = expectedRanges[declaredLevel];
|
|
58
|
-
if (vibeScore >= expected.min && vibeScore <= expected.max) {
|
|
59
|
-
return 'correct';
|
|
60
|
-
}
|
|
61
|
-
else if (vibeScore > expected.max) {
|
|
62
|
-
return 'too_low'; // Level was too conservative
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
return 'too_high'; // Level was too aggressive
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Infer the "true" vibe level from an actual vibe score.
|
|
70
|
-
* This is used to generate training labels for the model.
|
|
71
|
-
*
|
|
72
|
-
* Maps score ranges to levels:
|
|
73
|
-
* - 0.90-1.00 → 5 (Elite flow)
|
|
74
|
-
* - 0.80-0.90 → 4 (High flow)
|
|
75
|
-
* - 0.65-0.80 → 3 (Balanced)
|
|
76
|
-
* - 0.50-0.65 → 2 (AI-Augmented)
|
|
77
|
-
* - 0.30-0.50 → 1 (Human-Led)
|
|
78
|
-
* - 0.00-0.30 → 0 (Manual)
|
|
79
|
-
*/
|
|
80
|
-
function inferTrueLevel(vibeScore) {
|
|
81
|
-
if (vibeScore >= 0.90)
|
|
82
|
-
return 5;
|
|
83
|
-
if (vibeScore >= 0.80)
|
|
84
|
-
return 4;
|
|
85
|
-
if (vibeScore >= 0.65)
|
|
86
|
-
return 3;
|
|
87
|
-
if (vibeScore >= 0.50)
|
|
88
|
-
return 2;
|
|
89
|
-
if (vibeScore >= 0.30)
|
|
90
|
-
return 1;
|
|
91
|
-
return 0;
|
|
92
|
-
}
|
|
93
|
-
//# sourceMappingURL=ece.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ece.js","sourceRoot":"","sources":["../../src/calibration/ece.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/calibration/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,SAAS,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACnH,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.inferTrueLevel = exports.assessOutcome = exports.calculateECE = exports.forceRetrain = exports.retrain = exports.getCalibrationPath = exports.addSample = exports.saveCalibration = exports.loadCalibration = void 0;
|
|
4
|
-
var storage_1 = require("./storage");
|
|
5
|
-
Object.defineProperty(exports, "loadCalibration", { enumerable: true, get: function () { return storage_1.loadCalibration; } });
|
|
6
|
-
Object.defineProperty(exports, "saveCalibration", { enumerable: true, get: function () { return storage_1.saveCalibration; } });
|
|
7
|
-
Object.defineProperty(exports, "addSample", { enumerable: true, get: function () { return storage_1.addSample; } });
|
|
8
|
-
Object.defineProperty(exports, "getCalibrationPath", { enumerable: true, get: function () { return storage_1.getCalibrationPath; } });
|
|
9
|
-
Object.defineProperty(exports, "retrain", { enumerable: true, get: function () { return storage_1.retrain; } });
|
|
10
|
-
Object.defineProperty(exports, "forceRetrain", { enumerable: true, get: function () { return storage_1.forceRetrain; } });
|
|
11
|
-
var ece_1 = require("./ece");
|
|
12
|
-
Object.defineProperty(exports, "calculateECE", { enumerable: true, get: function () { return ece_1.calculateECE; } });
|
|
13
|
-
Object.defineProperty(exports, "assessOutcome", { enumerable: true, get: function () { return ece_1.assessOutcome; } });
|
|
14
|
-
Object.defineProperty(exports, "inferTrueLevel", { enumerable: true, get: function () { return ece_1.inferTrueLevel; } });
|
|
15
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/calibration/index.ts"],"names":[],"mappings":";;;AAAA,qCAAmH;AAA1G,0GAAA,eAAe,OAAA;AAAE,0GAAA,eAAe,OAAA;AAAE,oGAAA,SAAS,OAAA;AAAE,6GAAA,kBAAkB,OAAA;AAAE,kGAAA,OAAO,OAAA;AAAE,uGAAA,YAAY,OAAA;AAC/F,6BAAoE;AAA3D,mGAAA,YAAY,OAAA;AAAE,oGAAA,aAAa,OAAA;AAAE,qGAAA,cAAc,OAAA"}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { CalibrationState, CalibrationSample } from '../types';
|
|
2
|
-
/**
|
|
3
|
-
* Get calibration file path for a repository.
|
|
4
|
-
*/
|
|
5
|
-
export declare function getCalibrationPath(repoPath: string): string;
|
|
6
|
-
/**
|
|
7
|
-
* Load calibration state from disk.
|
|
8
|
-
*/
|
|
9
|
-
export declare function loadCalibration(repoPath: string): CalibrationState;
|
|
10
|
-
/**
|
|
11
|
-
* Save calibration state to disk.
|
|
12
|
-
*/
|
|
13
|
-
export declare function saveCalibration(repoPath: string, state: CalibrationState): void;
|
|
14
|
-
/**
|
|
15
|
-
* Add a calibration sample and potentially trigger retraining.
|
|
16
|
-
*
|
|
17
|
-
* Retraining is triggered when:
|
|
18
|
-
* 1. Sample count is a multiple of RETRAIN_SAMPLE_INTERVAL, OR
|
|
19
|
-
* 2. ECE exceeds RETRAIN_ECE_THRESHOLD
|
|
20
|
-
*
|
|
21
|
-
* Returns updated state with potentially new weights.
|
|
22
|
-
*/
|
|
23
|
-
export declare function addSample(repoPath: string, sample: CalibrationSample): CalibrationState;
|
|
24
|
-
/**
|
|
25
|
-
* Retrain the model using all accumulated samples.
|
|
26
|
-
*
|
|
27
|
-
* Uses batch partial fit with inferred true levels from vibe scores.
|
|
28
|
-
*/
|
|
29
|
-
export declare function retrain(state: CalibrationState): CalibrationState;
|
|
30
|
-
/**
|
|
31
|
-
* Force retraining (manual trigger).
|
|
32
|
-
*/
|
|
33
|
-
export declare function forceRetrain(repoPath: string): CalibrationState;
|
|
34
|
-
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/calibration/storage.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAyB/D;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE3D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAoBlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,gBAAgB,GAAG,IAAI,CAS/E;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CACvB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,iBAAiB,GACxB,gBAAgB,CAmBlB;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,gBAAgB,GAAG,gBAAgB,CAmCjE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAQ/D"}
|