@boshu2/vibe-check 1.8.1 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/plans/2025-12-27-vibe-check-evolution-plan.md +383 -0
- package/.agents/research/2025-12-27-vibe-check-evolution.md +352 -0
- package/.claude/settings.local.json +9 -3
- package/CHANGELOG.md +43 -0
- package/CLAUDE.md +201 -26
- package/Makefile +4 -4
- package/README.md +95 -0
- 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/eldritch.d.ts +40 -0
- package/dist/analyzers/eldritch.d.ts.map +1 -0
- package/dist/analyzers/eldritch.js +202 -0
- package/dist/analyzers/eldritch.js.map +1 -0
- package/dist/analyzers/modularity.d.ts +67 -0
- package/dist/analyzers/modularity.d.ts.map +1 -0
- package/dist/analyzers/modularity.js +254 -0
- package/dist/analyzers/modularity.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 +21 -20
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +124 -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 +102 -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 +10 -2
- package/dist/commands/forensics.d.ts.map +1 -1
- package/dist/commands/forensics.js +91 -51
- package/dist/commands/forensics.js.map +1 -1
- package/dist/commands/index.d.ts +15 -13
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +15 -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/modularity.d.ts +27 -0
- package/dist/commands/modularity.d.ts.map +1 -0
- package/dist/commands/modularity.js +182 -0
- package/dist/commands/modularity.js.map +1 -0
- 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.js +88 -129
- 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.js +54 -60
- 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 +23 -29
- package/dist/git.js.map +1 -1
- package/dist/inner-loop/context-amnesia.d.ts +2 -2
- package/dist/inner-loop/context-amnesia.d.ts.map +1 -1
- package/dist/inner-loop/context-amnesia.js +7 -10
- package/dist/inner-loop/context-amnesia.js.map +1 -1
- package/dist/inner-loop/index.d.ts +7 -7
- package/dist/inner-loop/index.d.ts.map +1 -1
- package/dist/inner-loop/index.js +18 -45
- package/dist/inner-loop/index.js.map +1 -1
- package/dist/inner-loop/instruction-drift.d.ts +2 -2
- package/dist/inner-loop/instruction-drift.d.ts.map +1 -1
- package/dist/inner-loop/instruction-drift.js +5 -10
- package/dist/inner-loop/instruction-drift.js.map +1 -1
- package/dist/inner-loop/logging-only.d.ts +2 -2
- package/dist/inner-loop/logging-only.d.ts.map +1 -1
- package/dist/inner-loop/logging-only.js +9 -17
- package/dist/inner-loop/logging-only.js.map +1 -1
- package/dist/inner-loop/tests-passing-lie.d.ts +2 -2
- package/dist/inner-loop/tests-passing-lie.d.ts.map +1 -1
- package/dist/inner-loop/tests-passing-lie.js +12 -17
- package/dist/inner-loop/tests-passing-lie.js.map +1 -1
- package/dist/inner-loop/types.js +1 -4
- package/dist/inner-loop/types.js.map +1 -1
- 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/cohesion.d.ts +27 -0
- package/dist/metrics/cohesion.d.ts.map +1 -0
- package/dist/metrics/cohesion.js +134 -0
- package/dist/metrics/cohesion.js.map +1 -0
- 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 +10 -2
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +51 -20
- package/dist/metrics/index.js.map +1 -1
- package/dist/metrics/investigation.d.ts +25 -0
- package/dist/metrics/investigation.d.ts.map +1 -0
- package/dist/metrics/investigation.js +115 -0
- package/dist/metrics/investigation.js.map +1 -0
- 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/tracers.d.ts +28 -0
- package/dist/metrics/tracers.d.ts.map +1 -0
- package/dist/metrics/tracers.js +117 -0
- package/dist/metrics/tracers.js.map +1 -0
- 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 +88 -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.d.ts +36 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -2
- package/docs/ENHANCEMENT-PLAN.md +379 -0
- package/feature-list.json +6 -0
- package/package.json +8 -7
- package/.claude/skills/typescript-review.md +0 -152
- 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
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
---
|
|
2
|
+
date: 2025-12-27
|
|
3
|
+
type: Research
|
|
4
|
+
topic: "Vibe-Check Evolution: Features and Improvements Roadmap"
|
|
5
|
+
tags: [research, vibe-check, vibe-coding, roadmap, improvements]
|
|
6
|
+
status: COMPLETE
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Research: Vibe-Check Evolution
|
|
10
|
+
|
|
11
|
+
**Created:** 2025-12-27
|
|
12
|
+
**Goal:** Understand the current state of vibe-check and identify opportunities for improvement based on the broader vibe-coding ecosystem
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Executive Summary
|
|
17
|
+
|
|
18
|
+
vibe-check is a **production-ready** CLI tool (v2.1.0) that detects the 4 inner loop failure patterns from Gene Kim & Steve Yegge's *Vibe Coding* methodology. The tool has evolved from a simple metrics analyzer to a comprehensive coaching system with gamification, real-time monitoring, and session integration.
|
|
19
|
+
|
|
20
|
+
**Key findings:**
|
|
21
|
+
1. **Core metrics are solid** - 5 semantic-free metrics work well across any codebase
|
|
22
|
+
2. **Inner loop detection is complete** - All 4 inner loop disasters are detected
|
|
23
|
+
3. **Enhancement Plan exists** - Documented but unimplemented improvements for investigation gaps, tracer tracking, and domain cohesion
|
|
24
|
+
4. **Agent integration opportunity** - Concept for "Vibe Validator" agent that verifies completion claims
|
|
25
|
+
5. **Middle/Outer loop gaps** - 8 additional failure patterns not yet detected
|
|
26
|
+
|
|
27
|
+
**Recommendation:** Implement the Enhancement Plan (tracer bullets, investigation gaps) and explore agent integration for autonomous development validation.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Current State
|
|
32
|
+
|
|
33
|
+
### What Exists (v2.1.0)
|
|
34
|
+
|
|
35
|
+
| Component | Status | Description |
|
|
36
|
+
|-----------|--------|-------------|
|
|
37
|
+
| **5 Core Metrics** | Complete | Velocity, Rework, Trust, Spirals, Flow |
|
|
38
|
+
| **4 Semantic-Free Metrics** | Complete | File Churn, Time Spiral, Velocity Anomaly, Code Stability |
|
|
39
|
+
| **Inner Loop Detection** | Complete | Tests Lie, Amnesia, Drift, Debug Spiral |
|
|
40
|
+
| **Gamification** | Complete | XP, Levels, Streaks, 18 Achievements |
|
|
41
|
+
| **Session Tracking** | Complete | Baseline comparison, failure pattern detection |
|
|
42
|
+
| **Watch Mode** | Complete | Real-time spiral detection |
|
|
43
|
+
| **Dashboard** | Complete | Visual charts and metrics |
|
|
44
|
+
| **Forensics** | Complete | Deep pattern analysis |
|
|
45
|
+
| **Audit** | Complete | Static code mess detection |
|
|
46
|
+
| **Modularity Analysis** | Complete | Pattern-aware module structure |
|
|
47
|
+
|
|
48
|
+
### Architecture Strengths
|
|
49
|
+
|
|
50
|
+
1. **Clean separation** - CLI → Analysis → Data → Output layers
|
|
51
|
+
2. **100% TypeScript** - Full type coverage, no `any` in public APIs
|
|
52
|
+
3. **Extensible patterns** - Easy to add new detectors
|
|
53
|
+
4. **Atomic persistence** - Safe file operations with schema versioning
|
|
54
|
+
5. **Comprehensive tests** - 114 tests, all passing
|
|
55
|
+
6. **Personalized coaching** - Spiral history enables context-aware advice
|
|
56
|
+
|
|
57
|
+
### Key Files
|
|
58
|
+
|
|
59
|
+
| File | Purpose | Lines |
|
|
60
|
+
|------|---------|-------|
|
|
61
|
+
| `src/metrics/index.ts` | Metrics orchestration | 150 |
|
|
62
|
+
| `src/inner-loop/index.ts` | Inner loop aggregator | 97 |
|
|
63
|
+
| `src/gamification/xp.ts` | XP calculation | 85 |
|
|
64
|
+
| `src/commands/session.ts` | Session management | 250 |
|
|
65
|
+
| `src/commands/watch.ts` | Real-time monitoring | 180 |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## Existing Enhancement Plan
|
|
70
|
+
|
|
71
|
+
From `docs/ENHANCEMENT-PLAN.md` (dated 2025-12-11), these improvements are documented but not implemented:
|
|
72
|
+
|
|
73
|
+
### P1: Investigation Gap Detection
|
|
74
|
+
**Problem:** Long gaps between commits indicate hidden debugging time.
|
|
75
|
+
|
|
76
|
+
```typescript
|
|
77
|
+
interface InvestigationGap {
|
|
78
|
+
startCommit: string
|
|
79
|
+
endCommit: string
|
|
80
|
+
gapMinutes: number
|
|
81
|
+
followedByFix: boolean
|
|
82
|
+
component: string
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Rating:** >30min gap followed by fix = investigation time
|
|
87
|
+
**Impact:** Surfaces the hidden cost of debugging
|
|
88
|
+
|
|
89
|
+
### P2: Tracer Bullet Tracking
|
|
90
|
+
**Problem:** No visibility into whether assumptions were validated before building.
|
|
91
|
+
|
|
92
|
+
```typescript
|
|
93
|
+
// Convention: commits starting with "tracer:" or "tb:"
|
|
94
|
+
interface TracerMetrics {
|
|
95
|
+
tracerCount: number
|
|
96
|
+
tracerBeforeFeature: number
|
|
97
|
+
tracerBeforeFix: number // too late!
|
|
98
|
+
tracerRatio: number
|
|
99
|
+
}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**Rating:** ELITE >20% | HIGH >10% | MEDIUM >5% | LOW <5%
|
|
103
|
+
**Impact:** Encourages proactive validation
|
|
104
|
+
|
|
105
|
+
### P3: Domain Cohesion Score
|
|
106
|
+
**Problem:** Scattered changes indicate coupling.
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
interface CohesionMetrics {
|
|
110
|
+
avgDomainsPerCommit: number
|
|
111
|
+
scatteredCommits: number // 3+ domains
|
|
112
|
+
cohesiveCommits: number // 1 domain
|
|
113
|
+
cohesionScore: number // 0-100%
|
|
114
|
+
}
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
**Rating:** ELITE >80% | HIGH >60% | MEDIUM >40% | LOW <40%
|
|
118
|
+
**Impact:** Architectural feedback
|
|
119
|
+
|
|
120
|
+
### P4: Session Markers (Wall-Clock)
|
|
121
|
+
**Problem:** Git timestamps don't capture actual session duration.
|
|
122
|
+
|
|
123
|
+
```typescript
|
|
124
|
+
interface Session {
|
|
125
|
+
wallClockMinutes: number
|
|
126
|
+
commitMinutes: number
|
|
127
|
+
investigationMinutes: number // wallClock - commitMinutes
|
|
128
|
+
efficiency: number
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Impact:** Accurate time tracking for coaching
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Vibe Validator Concept
|
|
137
|
+
|
|
138
|
+
From `.agents/research/2025-12-10-vibe-check-agent-concept.md`:
|
|
139
|
+
|
|
140
|
+
### The Problem
|
|
141
|
+
|
|
142
|
+
Autonomous agents (like Gusto) **trust** completion claims. When an agent outputs `<promise>COMPLETE</promise>`, the system believes it.
|
|
143
|
+
|
|
144
|
+
### The Solution
|
|
145
|
+
|
|
146
|
+
A "Vibe Validator" that **verifies** before allowing exit:
|
|
147
|
+
|
|
148
|
+
1. **Tests Lie Detector** - Actually run `npm test`
|
|
149
|
+
2. **Build Verification** - Actually run `npm run build`
|
|
150
|
+
3. **Fake Data Detector** - Pattern match for suspicious test code
|
|
151
|
+
4. **Smoke Tests** - Run tracer tests if configured
|
|
152
|
+
|
|
153
|
+
### Implementation Architecture
|
|
154
|
+
|
|
155
|
+
```
|
|
156
|
+
┌─────────────────────────────────────────────────────┐
|
|
157
|
+
│ Vibe-Check Agent (Observer) │
|
|
158
|
+
│ │
|
|
159
|
+
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
|
160
|
+
│ │ Inner Loop │ │ Middle Loop │ │ Outer Loop │ │
|
|
161
|
+
│ │ Detector │ │ Detector │ │ Detector │ │
|
|
162
|
+
│ │ (4 patterns)│ │ (4 patterns)│ │ (4 patterns)│ │
|
|
163
|
+
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
|
164
|
+
│ │ │
|
|
165
|
+
│ ┌───────────────────────┐ │
|
|
166
|
+
│ │ Intervention Engine │ │
|
|
167
|
+
│ │ (Stop/Warn/Log) │ │
|
|
168
|
+
│ └───────────────────────┘ │
|
|
169
|
+
└─────────────────────────────────────────────────────┘
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### Integration Options
|
|
173
|
+
|
|
174
|
+
1. **Hook-Based** - Use Claude Code hooks to intercept agent actions
|
|
175
|
+
2. **Side-Car** - Separate process monitors output file
|
|
176
|
+
3. **Integrated Agent** - Claude agent runs via Task tool as observer
|
|
177
|
+
|
|
178
|
+
---
|
|
179
|
+
|
|
180
|
+
## Middle/Outer Loop Gaps
|
|
181
|
+
|
|
182
|
+
vibe-check currently focuses on inner loop. These patterns are documented but not detected:
|
|
183
|
+
|
|
184
|
+
### Middle Loop (Hours-Days)
|
|
185
|
+
|
|
186
|
+
| Pattern | Detection Strategy | Effort |
|
|
187
|
+
|---------|-------------------|--------|
|
|
188
|
+
| **Eldritch Horror** | Static analysis (function line count) | Medium |
|
|
189
|
+
| **Agent Collision** | File lock detection | Medium |
|
|
190
|
+
| **Memory Decay** | Bundle/progress file checks | Low |
|
|
191
|
+
| **Deadlock** | Process state monitoring | High |
|
|
192
|
+
|
|
193
|
+
### Outer Loop (Weeks-Months)
|
|
194
|
+
|
|
195
|
+
| Pattern | Detection Strategy | Effort |
|
|
196
|
+
|---------|-------------------|--------|
|
|
197
|
+
| **Bridge Torch** | API diff analysis | High |
|
|
198
|
+
| **Deletion** | Git diff pre-commit | Medium |
|
|
199
|
+
| **Gridlock** | GitHub API / queue analysis | Medium |
|
|
200
|
+
| **Stewnami** | feature-list.json analysis | Low |
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
## The Vibe Ecosystem
|
|
205
|
+
|
|
206
|
+
vibe-check is one layer in a three-layer system:
|
|
207
|
+
|
|
208
|
+
```
|
|
209
|
+
BUILD → WORK → RUN
|
|
210
|
+
|
|
211
|
+
12-Factor Agents → Vibe Coding → 12-Factor AgentOps
|
|
212
|
+
(HumanLayer) (Gene & Steve) (Operations)
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
**Vibe Coding is the DevOps movement for AI.**
|
|
216
|
+
**12-Factor AgentOps is the SRE to their DevOps.**
|
|
217
|
+
|
|
218
|
+
### Related Projects
|
|
219
|
+
|
|
220
|
+
| Project | Purpose | Integration |
|
|
221
|
+
|---------|---------|-------------|
|
|
222
|
+
| **12-Factor AgentOps** | Operational principles | Documents patterns vibe-check detects |
|
|
223
|
+
| **Beads** | Git-backed issue tracker | `/research → /plan → /implement` workflow |
|
|
224
|
+
| **Houston** | Agent harness | Uses vibe-check for session metrics |
|
|
225
|
+
| **Gusto** | Autonomous loop | Completion checking pattern |
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Improvement Opportunities
|
|
230
|
+
|
|
231
|
+
### High Priority
|
|
232
|
+
|
|
233
|
+
| Feature | Value | Effort | Source |
|
|
234
|
+
|---------|-------|--------|--------|
|
|
235
|
+
| **Tracer Bullet Tracking** | Encourages proactive validation | 2h | Enhancement Plan |
|
|
236
|
+
| **Investigation Gap Detection** | Surfaces hidden debugging | 2-3h | Enhancement Plan |
|
|
237
|
+
| **Middle Loop: Eldritch Horror** | Function length analysis | 3h | Agent Concept |
|
|
238
|
+
| **Middle Loop: Stewnami** | WIP limit detection | 2h | Agent Concept |
|
|
239
|
+
|
|
240
|
+
### Medium Priority
|
|
241
|
+
|
|
242
|
+
| Feature | Value | Effort | Source |
|
|
243
|
+
|---------|-------|--------|--------|
|
|
244
|
+
| **Domain Cohesion Score** | Architectural feedback | 3-4h | Enhancement Plan |
|
|
245
|
+
| **Agent Collision Detector** | Multi-agent safety | 4h | Agent Concept |
|
|
246
|
+
| **VS Code Extension** | Status bar, live alerts | 8-10h | VIBE-ECOSYSTEM.md |
|
|
247
|
+
| **Claude Code Plugin** | Native integration | 6h | Agent Concept |
|
|
248
|
+
|
|
249
|
+
### Low Priority
|
|
250
|
+
|
|
251
|
+
| Feature | Value | Effort | Source |
|
|
252
|
+
|---------|-------|--------|--------|
|
|
253
|
+
| **Pre-Commit Verification** | Hook-based test tracking | 2-3h | Enhancement Plan |
|
|
254
|
+
| **Wall-Clock Sessions** | Explicit start/end tracking | 4-5h | Enhancement Plan |
|
|
255
|
+
| **Bridge Torch Detection** | API diff analysis | 8h | Agent Concept |
|
|
256
|
+
| **GitHub Action v2** | PR blocking on patterns | 4h | Existing |
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## Constraints
|
|
261
|
+
|
|
262
|
+
| Constraint | Impact | Mitigation |
|
|
263
|
+
|------------|--------|------------|
|
|
264
|
+
| **Conventional commits required** | Full accuracy needs `type(scope): message` | Semantic-free metrics work without |
|
|
265
|
+
| **Git-only analysis** | Can't see wall-clock time | Session markers (proposed) |
|
|
266
|
+
| **Single-repo focus** | No cross-repo analysis | Future enhancement |
|
|
267
|
+
| **Node.js 20+ required** | ESM-only package | Document in README |
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## Risks
|
|
272
|
+
|
|
273
|
+
| Risk | Likelihood | Impact | Mitigation |
|
|
274
|
+
|------|------------|--------|------------|
|
|
275
|
+
| **False positives in detection** | Medium | Medium | Calibration thresholds, user feedback |
|
|
276
|
+
| **Performance on large repos** | Low | Medium | Caching, incremental analysis |
|
|
277
|
+
| **User adoption** | Medium | High | Documentation, gamification |
|
|
278
|
+
| **Scope creep** | Medium | Medium | Stick to inner loop focus |
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## Recommendation
|
|
283
|
+
|
|
284
|
+
**Approach:** Implement Enhancement Plan P1-P2, then explore agent integration
|
|
285
|
+
|
|
286
|
+
**Phases:**
|
|
287
|
+
|
|
288
|
+
1. **Phase 1: Tracer Bullets + Investigation Gaps** (4-5h)
|
|
289
|
+
- Implement `src/metrics/tracers.ts`
|
|
290
|
+
- Implement `src/metrics/investigation.ts`
|
|
291
|
+
- Add to analyze output
|
|
292
|
+
- Update documentation
|
|
293
|
+
|
|
294
|
+
2. **Phase 2: Middle Loop Basics** (5-6h)
|
|
295
|
+
- Implement Eldritch Horror detector (function line count)
|
|
296
|
+
- Implement Stewnami detector (WIP analysis)
|
|
297
|
+
- Add to audit command
|
|
298
|
+
|
|
299
|
+
3. **Phase 3: Agent Integration** (6-8h)
|
|
300
|
+
- Create Claude Code plugin structure
|
|
301
|
+
- Implement Stop hook for validation
|
|
302
|
+
- Test with Gusto workflow
|
|
303
|
+
|
|
304
|
+
4. **Phase 4: VS Code Extension** (8-10h)
|
|
305
|
+
- Status bar metrics
|
|
306
|
+
- Real-time spiral alerts
|
|
307
|
+
- Session controls
|
|
308
|
+
|
|
309
|
+
**Why:**
|
|
310
|
+
- Enhancement Plan is documented and ready
|
|
311
|
+
- Tracer bullets align with vibe-coding methodology
|
|
312
|
+
- Agent integration enables autonomous development validation
|
|
313
|
+
- VS Code extension increases adoption
|
|
314
|
+
|
|
315
|
+
**Alternatives Considered:**
|
|
316
|
+
1. **Start with VS Code** - Rejected: Higher effort, lower immediate value
|
|
317
|
+
2. **Full middle/outer loop** - Rejected: Scope creep, inner loop is the focus
|
|
318
|
+
3. **Rebuild as Claude plugin only** - Rejected: CLI value should be preserved
|
|
319
|
+
|
|
320
|
+
---
|
|
321
|
+
|
|
322
|
+
## Next Steps
|
|
323
|
+
|
|
324
|
+
1. Run `/plan` to create implementation plan for Phase 1
|
|
325
|
+
2. Plan will create beads issues from this research
|
|
326
|
+
3. Implement tracer bullet tracking first (highest value:effort ratio)
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Sources
|
|
331
|
+
|
|
332
|
+
### Vault Documents
|
|
333
|
+
- `docs/ENHANCEMENT-PLAN.md` - Documented improvements (Dec 11)
|
|
334
|
+
- `docs/VIBE-ECOSYSTEM.md` - Ecosystem overview
|
|
335
|
+
- `.agents/research/2025-12-10-vibe-check-agent-concept.md` - Agent integration concept
|
|
336
|
+
|
|
337
|
+
### Workspace Documents
|
|
338
|
+
- `work/houston/.agents/research/2025-12-10-vibe-coding-inner-loop.md` - Inner loop patterns
|
|
339
|
+
- `work/research/2025-12-09-vibe-check-algorithms.md` - Algorithm details
|
|
340
|
+
- `personal/12-factor-agentops/docs/explanation/vibe-coding-integration.md` - Ecosystem integration
|
|
341
|
+
- `work/gitops/docs/methodology/vibe-ecosystem/vibe-coding/README.md` - Methodology docs
|
|
342
|
+
|
|
343
|
+
### External
|
|
344
|
+
- *Vibe Coding* (Gene Kim & Steve Yegge, IT Revolution Press, 2025)
|
|
345
|
+
- 12-Factor AgentOps framework
|
|
346
|
+
- Beads workflow system
|
|
347
|
+
|
|
348
|
+
---
|
|
349
|
+
|
|
350
|
+
**Output:** .agents/research/2025-12-27-vibe-check-evolution.md
|
|
351
|
+
|
|
352
|
+
**Next:** /plan .agents/research/2025-12-27-vibe-check-evolution.md
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
{
|
|
2
|
-
"includeCoAuthoredBy":
|
|
2
|
+
"includeCoAuthoredBy": false,
|
|
3
|
+
"permissions": {
|
|
4
|
+
"allow": [
|
|
5
|
+
"mcp__smart-connections-work__lookup",
|
|
6
|
+
"mcp__smart-connections-personal__lookup"
|
|
7
|
+
]
|
|
8
|
+
},
|
|
9
|
+
"enableAllProjectMcpServers": true,
|
|
3
10
|
"enabledMcpjsonServers": [
|
|
4
11
|
"context7"
|
|
5
|
-
]
|
|
6
|
-
"enableAllProjectMcpServers": true
|
|
12
|
+
]
|
|
7
13
|
}
|
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,49 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.2.0] - 2025-12-27
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- **Enhanced Metrics** - Three new metrics for deeper insights into development habits
|
|
15
|
+
- **Tracer Bullet Ratio** - Measures proactive validation via `tracer:` or `tb:` commits
|
|
16
|
+
- Tracers before features = proactive validation (good!)
|
|
17
|
+
- Tracers before fixes = reactive debugging (too late!)
|
|
18
|
+
- Rating: ELITE >20% | HIGH >10% | MEDIUM >5% | LOW <5%
|
|
19
|
+
- **Investigation Gap Detection** - Surfaces hidden debugging time
|
|
20
|
+
- Detects gaps >15min followed by fix commits
|
|
21
|
+
- Shows total investigation time and longest gap
|
|
22
|
+
- Rating: ELITE 0min | HIGH <30min | MEDIUM <60min | LOW >60min
|
|
23
|
+
- **Domain Cohesion Score** - Measures how focused changes are
|
|
24
|
+
- Cohesive commits touch 1 domain
|
|
25
|
+
- Scattered commits touch 3+ domains
|
|
26
|
+
- Rating: ELITE >80% | HIGH >60% | MEDIUM >40% | LOW <40%
|
|
27
|
+
|
|
28
|
+
- **Eldritch Horror Detector** - Detects oversized functions in the `audit` command
|
|
29
|
+
- Functions >200 lines = warning
|
|
30
|
+
- Functions >500 lines = critical
|
|
31
|
+
- Supports TypeScript, JavaScript, Python, Go
|
|
32
|
+
|
|
33
|
+
- **Tracer Commit Type** - New `tracer` commit type recognized
|
|
34
|
+
- Use `tracer:` or `tb:` prefix for tracer bullet commits
|
|
35
|
+
- Example: `tracer(auth): validate OAuth token refresh flow`
|
|
36
|
+
- Tracers are counted separately from features/fixes
|
|
37
|
+
|
|
38
|
+
### Changed
|
|
39
|
+
|
|
40
|
+
- Enhanced metrics are calculated when using `--score` flag
|
|
41
|
+
- Audit command now includes function-level analysis
|
|
42
|
+
|
|
43
|
+
## [2.0.0] - 2025-12-15
|
|
44
|
+
|
|
45
|
+
### Added
|
|
46
|
+
- **Audit Command** - `vibe-check audit` for static analysis of code messes (monoliths, test gaps, TODOs)
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
- **ESM Migration** - Package is now pure ESM (`type: module`). Requires Node.js 20+.
|
|
50
|
+
- **Dependencies** - Updated all dependencies to December 2025 latest versions.
|
|
51
|
+
- **Chalk v5** - Updated to `chalk` v5 (ESM only).
|
|
52
|
+
|
|
10
53
|
## [1.8.0] - 2025-12-05
|
|
11
54
|
|
|
12
55
|
### Added
|
package/CLAUDE.md
CHANGED
|
@@ -1,29 +1,5 @@
|
|
|
1
1
|
# vibe-check Development Guide
|
|
2
2
|
|
|
3
|
-
## Opus 4.5 Behavioral Standards
|
|
4
|
-
|
|
5
|
-
<default_to_action>
|
|
6
|
-
By default, implement changes rather than only suggesting them. If the user's intent is unclear, infer the most useful likely action and proceed, using tools to discover any missing details instead of guessing.
|
|
7
|
-
</default_to_action>
|
|
8
|
-
|
|
9
|
-
<use_parallel_tool_calls>
|
|
10
|
-
When performing multiple independent operations (reading multiple files, running multiple checks), execute them in parallel rather than sequentially. Only sequence operations when one depends on another's output.
|
|
11
|
-
</use_parallel_tool_calls>
|
|
12
|
-
|
|
13
|
-
<investigate_before_answering>
|
|
14
|
-
Before proposing code changes, read and understand the relevant files. Do not speculate about code you have not opened. Give grounded, hallucination-free answers based on actual code inspection.
|
|
15
|
-
</investigate_before_answering>
|
|
16
|
-
|
|
17
|
-
<avoid_overengineering>
|
|
18
|
-
Only make changes that are directly requested or clearly necessary. Keep solutions simple and focused. Do not add features, refactor code, or make "improvements" beyond what was asked. Do not create helpers or abstractions for one-time operations.
|
|
19
|
-
</avoid_overengineering>
|
|
20
|
-
|
|
21
|
-
<communication_style>
|
|
22
|
-
After completing tasks involving tool use, provide a brief summary of work done. When making significant changes, explain what was changed and why. Keep summaries concise but informative.
|
|
23
|
-
</communication_style>
|
|
24
|
-
|
|
25
|
-
---
|
|
26
|
-
|
|
27
3
|
## npm Publishing Standards
|
|
28
4
|
|
|
29
5
|
### When to Publish
|
|
@@ -161,7 +137,10 @@ src/
|
|
|
161
137
|
│ ├── file-churn.ts # File churn patterns
|
|
162
138
|
│ ├── time-spiral.ts # Time-based spirals
|
|
163
139
|
│ ├── velocity-anomaly.ts # Velocity anomaly detection
|
|
164
|
-
│
|
|
140
|
+
│ ├── code-stability.ts # Code stability metrics
|
|
141
|
+
│ ├── tracers.ts # Tracer bullet ratio (v2.2.0)
|
|
142
|
+
│ ├── investigation.ts # Investigation gap detection (v2.2.0)
|
|
143
|
+
│ └── cohesion.ts # Domain cohesion score (v2.2.0)
|
|
165
144
|
├── gamification/
|
|
166
145
|
│ ├── index.ts # Gamification exports
|
|
167
146
|
│ ├── types.ts # XP, levels, achievements types
|
|
@@ -190,6 +169,11 @@ src/
|
|
|
190
169
|
│ ├── context-amnesia.ts # Context Amnesia detector
|
|
191
170
|
│ ├── instruction-drift.ts # Instruction Drift detector
|
|
192
171
|
│ └── logging-only.ts # Debug Loop Spiral detector
|
|
172
|
+
├── analyzers/
|
|
173
|
+
│ ├── audit.ts # Codebase audit (monoliths, test gaps, TODOs)
|
|
174
|
+
│ ├── eldritch.ts # Eldritch horror detector (oversized functions)
|
|
175
|
+
│ ├── modularity.ts # Module structure analysis
|
|
176
|
+
│ └── patterns.ts # Pattern analysis
|
|
193
177
|
└── output/
|
|
194
178
|
├── index.ts # Output format router
|
|
195
179
|
├── terminal.ts # Colored terminal output
|
|
@@ -271,6 +255,24 @@ Shows your spiral history, patterns by frequency, what resolutions worked, and p
|
|
|
271
255
|
| Debug Spiral Duration | Avg time in fix chains | <15m = Elite |
|
|
272
256
|
| Flow Efficiency | % time building vs debugging | >90% = Elite |
|
|
273
257
|
|
|
258
|
+
## Enhanced Metrics (v2.2.0)
|
|
259
|
+
|
|
260
|
+
Three additional metrics for deeper insight into development habits:
|
|
261
|
+
|
|
262
|
+
| Metric | Measures | Threshold |
|
|
263
|
+
|--------|----------|-----------|
|
|
264
|
+
| Tracer Bullet Ratio | % of tracer: commits | >20% = Elite |
|
|
265
|
+
| Investigation Time | Hidden debugging time (gaps before fixes) | 0min = Elite |
|
|
266
|
+
| Domain Cohesion | % single-domain commits | >80% = Elite |
|
|
267
|
+
|
|
268
|
+
**Tracer Bullets:** Use `tracer:` or `tb:` prefix for validation commits:
|
|
269
|
+
```
|
|
270
|
+
tracer(auth): validate OAuth token refresh
|
|
271
|
+
tb(api): test streaming endpoint response
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Tracers before features = proactive. Tracers before fixes = reactive (too late!).
|
|
275
|
+
|
|
274
276
|
## Debug Spiral Detection
|
|
275
277
|
|
|
276
278
|
A "debug spiral" is detected when 3+ consecutive fix commits target the same component. Patterns are categorized:
|
|
@@ -331,6 +333,179 @@ src/inner-loop/
|
|
|
331
333
|
When critical inner loop failures are detected:
|
|
332
334
|
|
|
333
335
|
```
|
|
334
|
-
|
|
336
|
+
EMERGENCY PROTOCOL: Multiple inner loop failures detected.
|
|
335
337
|
STOP → git status → backup → start simple
|
|
336
338
|
```
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
# Vibe-Coding Methodology
|
|
343
|
+
|
|
344
|
+
---
|
|
345
|
+
|
|
346
|
+
## The One Rule
|
|
347
|
+
|
|
348
|
+
> Reality does not match your model? **Update the model.**
|
|
349
|
+
|
|
350
|
+
Not the code. Not the tests. Not the plan. **The model in your head.**
|
|
351
|
+
|
|
352
|
+
---
|
|
353
|
+
|
|
354
|
+
## Opus 4.5 Behavioral Standards
|
|
355
|
+
|
|
356
|
+
<default_to_action>
|
|
357
|
+
When uncertain, act rather than asking for clarification. Make reasonable assumptions, implement, and verify. If wrong, adjust.
|
|
358
|
+
</default_to_action>
|
|
359
|
+
|
|
360
|
+
<use_parallel_tool_calls>
|
|
361
|
+
When multiple operations are independent (file reads, searches, API calls), batch them in a single response. Don't serialize what can parallelize.
|
|
362
|
+
</use_parallel_tool_calls>
|
|
363
|
+
|
|
364
|
+
<investigate_before_answering>
|
|
365
|
+
When you don't know something, investigate using available tools before saying you can't help. Read files, search code, check documentation.
|
|
366
|
+
</investigate_before_answering>
|
|
367
|
+
|
|
368
|
+
---
|
|
369
|
+
|
|
370
|
+
## Explicit Reasoning Protocol (L1-L3 Only)
|
|
371
|
+
|
|
372
|
+
For uncertain work, externalize predictions:
|
|
373
|
+
|
|
374
|
+
```
|
|
375
|
+
DOING: [current action]
|
|
376
|
+
EXPECT: [predicted outcome]
|
|
377
|
+
IF WRONG: [planned adjustment]
|
|
378
|
+
|
|
379
|
+
RESULT: [actual outcome]
|
|
380
|
+
MATCHES: [yes/no]
|
|
381
|
+
THEREFORE: [continue/stop/pivot]
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## On Failure
|
|
387
|
+
|
|
388
|
+
When something fails, surface it immediately. Don't hide errors or pretend success:
|
|
389
|
+
- Show the actual error
|
|
390
|
+
- State what you expected
|
|
391
|
+
- Suggest the most likely cause
|
|
392
|
+
- Propose a fix or investigation path
|
|
393
|
+
|
|
394
|
+
---
|
|
395
|
+
|
|
396
|
+
## Vibe Levels (Trust Calibration)
|
|
397
|
+
|
|
398
|
+
| Level | Trust | Verify | Use For | Example |
|
|
399
|
+
|-------|-------|--------|---------|---------|
|
|
400
|
+
| **5** | 95% | Final only | Format, lint | Fix typo |
|
|
401
|
+
| **4** | 80% | Spot check | Boilerplate | Add CRUD endpoint |
|
|
402
|
+
| **3** | 60% | Key outputs | CRUD, tests | New feature |
|
|
403
|
+
| **2** | 40% | Every change | Features | Integration |
|
|
404
|
+
| **1** | 20% | Every line | Architecture | New system |
|
|
405
|
+
| **0** | 0% | N/A | Research | Exploration |
|
|
406
|
+
|
|
407
|
+
---
|
|
408
|
+
|
|
409
|
+
## The 5 Core Metrics
|
|
410
|
+
|
|
411
|
+
| Metric | Question | Target | Red Flag |
|
|
412
|
+
|--------|----------|--------|----------|
|
|
413
|
+
| **Iteration Velocity** | How tight are feedback loops? | >3/hour | <1/hour |
|
|
414
|
+
| **Rework Ratio** | Building or debugging? | <50% | >70% |
|
|
415
|
+
| **Trust Pass Rate** | Does code stick? | >80% | <60% |
|
|
416
|
+
| **Debug Spiral Duration** | How long stuck? | <30min | >60min |
|
|
417
|
+
| **Flow Efficiency** | What % productive? | >75% | <50% |
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
## The 12 Failure Patterns
|
|
422
|
+
|
|
423
|
+
### Inner Loop (Seconds-Minutes)
|
|
424
|
+
1. **Tests Passing Lie** - Tests pass but don't validate
|
|
425
|
+
2. **Premature Abstraction** - Solving problems you don't have
|
|
426
|
+
3. **Debug Loop Spiral** - Same fix failing repeatedly
|
|
427
|
+
|
|
428
|
+
### Middle Loop (Hours-Days)
|
|
429
|
+
4. **Plan-Reality Gap** - Plan doesn't match implementation
|
|
430
|
+
5. **Scope Creep** - Features growing beyond plan
|
|
431
|
+
6. **Bridge Torching** - Breaking backwards compatibility
|
|
432
|
+
7. **Eldritch Horror Merge** - Massive PRs nobody can review
|
|
433
|
+
|
|
434
|
+
### Outer Loop (Days-Weeks)
|
|
435
|
+
8. **Context Amnesia** - Forgetting session insights
|
|
436
|
+
9. **Instruction Drift** - Wandering from user intent
|
|
437
|
+
10. **Memory Tattoo Decay** - Knowledge not persisted
|
|
438
|
+
11. **Trust Erosion** - Repeated failures lower trust
|
|
439
|
+
12. **Requirement Telephone** - Requirements mutating through layers
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
## The 10 Laws of an Agent
|
|
444
|
+
|
|
445
|
+
1. **Reality First** - Reality != model? Update model.
|
|
446
|
+
2. **Explicit Predictions** - State expected outcomes before acting.
|
|
447
|
+
3. **Git Discipline** - Add files individually, semantic commits.
|
|
448
|
+
4. **TDD with Tracers** - Validate assumptions before building.
|
|
449
|
+
5. **Guide with Workflows** - Use /research, /plan, /implement.
|
|
450
|
+
6. **Classify Vibe Level** - L0-L5 before each task.
|
|
451
|
+
7. **Measure and Calibrate** - Track 5 metrics, adjust.
|
|
452
|
+
8. **Session Protocol** - One feature focus per session.
|
|
453
|
+
9. **Protect Feature Definitions** - Features are contracts.
|
|
454
|
+
10. **Explicit Reasoning** - For L1-L3, externalize thinking.
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
## Autonomy Boundaries
|
|
459
|
+
|
|
460
|
+
**Proceed autonomously:**
|
|
461
|
+
- Implementing approved plans
|
|
462
|
+
- Running tests and fixing failures
|
|
463
|
+
- Reading files to understand context
|
|
464
|
+
- Making git commits with proper messages
|
|
465
|
+
|
|
466
|
+
**Punt to user:**
|
|
467
|
+
- Deleting user data
|
|
468
|
+
- Pushing to main/master
|
|
469
|
+
- Changing architectural decisions
|
|
470
|
+
- Spending money (API calls, services)
|
|
471
|
+
- Security-sensitive changes
|
|
472
|
+
|
|
473
|
+
---
|
|
474
|
+
|
|
475
|
+
## Context Window Discipline
|
|
476
|
+
|
|
477
|
+
**The 40% Rule:** Start planning handoff at 40% context usage.
|
|
478
|
+
|
|
479
|
+
| Context % | Action |
|
|
480
|
+
|-----------|--------|
|
|
481
|
+
| 0-20% | Deep work mode |
|
|
482
|
+
| 20-40% | Normal operation |
|
|
483
|
+
| 40-60% | Plan handoff, save state |
|
|
484
|
+
| 60-80% | Emergency save only |
|
|
485
|
+
| 80%+ | Stop, save, new session |
|
|
486
|
+
|
|
487
|
+
---
|
|
488
|
+
|
|
489
|
+
## Slash Commands (Reference)
|
|
490
|
+
|
|
491
|
+
| Command | Purpose | Token Budget |
|
|
492
|
+
|---------|---------|--------------|
|
|
493
|
+
| `/research` | Deep exploration | 40-60k |
|
|
494
|
+
| `/plan` | Precise specifications | 40-60k |
|
|
495
|
+
| `/implement` | Execute approved plan | 60-80k |
|
|
496
|
+
| `/bundle-save` | Compress findings | 500-1k output |
|
|
497
|
+
| `/bundle-load` | Resume context | Load bundle |
|
|
498
|
+
| `/retro` | Session retrospective | 5-10k |
|
|
499
|
+
| `/learn` | Extract patterns | 5-10k |
|
|
500
|
+
|
|
501
|
+
---
|
|
502
|
+
|
|
503
|
+
## Communication Standards
|
|
504
|
+
|
|
505
|
+
- **Direct:** State facts, skip hedging
|
|
506
|
+
- **Objective:** Focus on technical accuracy
|
|
507
|
+
- **Brief:** Context is expensive
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
**Last Updated:** 2025-12-17
|