@boshu2/vibe-check 1.1.0 → 1.3.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 +6 -0
- package/CHANGELOG.md +9 -0
- package/README.md +94 -229
- package/SECURITY.md +178 -0
- package/claude-progress.json +44 -0
- package/claude-progress.txt +98 -0
- package/dist/cli.js +3 -6
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts +0 -2
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +59 -62
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/index.d.ts +2 -1
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +5 -3
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init-hook.d.ts +3 -0
- package/dist/commands/init-hook.d.ts.map +1 -0
- package/dist/commands/init-hook.js +165 -0
- package/dist/commands/init-hook.js.map +1 -0
- package/dist/commands/start.d.ts +21 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +139 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/output/json.d.ts.map +1 -1
- package/dist/output/json.js +0 -8
- package/dist/output/json.js.map +1 -1
- package/dist/output/markdown.d.ts.map +1 -1
- package/dist/output/markdown.js +0 -6
- package/dist/output/markdown.js.map +1 -1
- package/dist/output/terminal.d.ts.map +1 -1
- package/dist/output/terminal.js +0 -20
- package/dist/output/terminal.js.map +1 -1
- package/dist/types.d.ts +0 -33
- package/dist/types.d.ts.map +1 -1
- package/feature-list.json +56 -0
- package/hooks/pre-push +107 -0
- package/package.json +1 -1
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# Progress Log - vibe-check
|
|
2
|
+
Created: 2025-11-29
|
|
3
|
+
|
|
4
|
+
## Session Log
|
|
5
|
+
|
|
6
|
+
--- 2025-11-29 13:15 - Git Hook, Security Review & Full Polish Session ---
|
|
7
|
+
|
|
8
|
+
VIBE LEVEL: 3 (Features with verification)
|
|
9
|
+
|
|
10
|
+
COMPLETED:
|
|
11
|
+
- Implemented pre-push git hook (`vibe-check init-hook` command)
|
|
12
|
+
- Hook runs vibe-check automatically before every push
|
|
13
|
+
- Configurable blocking on LOW rating via env vars
|
|
14
|
+
- Published v1.2.0 to npm
|
|
15
|
+
- Conducted full security review of codebase
|
|
16
|
+
- Created SECURITY.md with threat model and assessment
|
|
17
|
+
- Fixed hook to use local dist or npx fallback
|
|
18
|
+
|
|
19
|
+
COMMITS (6 this session):
|
|
20
|
+
- 9ae35d6 docs: add security policy and assessment
|
|
21
|
+
- 464a4ee test: verify pre-push hook works
|
|
22
|
+
- ad18702 fix(hook): use npx --yes for reliable command execution
|
|
23
|
+
- f1d0843 feat: add init-hook command for pre-push git hook
|
|
24
|
+
- e4c9027 feat: add --simple flag and comprehensive gamification tests
|
|
25
|
+
|
|
26
|
+
PUBLISHED:
|
|
27
|
+
- @boshu2/vibe-check@1.2.0 (git hook feature)
|
|
28
|
+
|
|
29
|
+
ACHIEVEMENTS THIS SESSION:
|
|
30
|
+
- 📊 Getting Started (10 sessions complete)
|
|
31
|
+
- 🏆 Personal Best: 96% Vibe Score
|
|
32
|
+
|
|
33
|
+
PROFILE STATUS:
|
|
34
|
+
- Level 4 Expert (320/400 XP)
|
|
35
|
+
- 1-day streak
|
|
36
|
+
|
|
37
|
+
================================================================================
|
|
38
|
+
|
|
39
|
+
--- 2025-11-29 13:00 - Documentation, Tests & npm Publish Session ---
|
|
40
|
+
|
|
41
|
+
VIBE LEVEL: 3 (Features with verification)
|
|
42
|
+
|
|
43
|
+
COMPLETED:
|
|
44
|
+
- Updated CHANGELOG.md with complete 1.1.0 release notes
|
|
45
|
+
- Updated README.md with gamification docs, profile command, and levels table
|
|
46
|
+
- Updated CLAUDE.md with full architecture and commands documentation
|
|
47
|
+
- Implemented Sprint 4: --simple flag for progressive disclosure output
|
|
48
|
+
- Added 57 new tests for gamification module (XP, achievements, streaks)
|
|
49
|
+
- Published v1.1.0 to npm (from 1.0.2)
|
|
50
|
+
|
|
51
|
+
TEST RESULTS:
|
|
52
|
+
- 8 test files, 108 tests passing
|
|
53
|
+
- Coverage: gamification/xp, gamification/achievements, gamification/streaks
|
|
54
|
+
|
|
55
|
+
PUBLISHED:
|
|
56
|
+
- @boshu2/vibe-check@1.1.0 on npm
|
|
57
|
+
- New features: gamification, profile command, --simple flag, GitHub Action
|
|
58
|
+
|
|
59
|
+
================================================================================
|
|
60
|
+
|
|
61
|
+
--- 2025-11-29 12:50 - UX Improvement Session (Dogfooding + 3 Sprints) ---
|
|
62
|
+
|
|
63
|
+
VIBE LEVEL: 3 (Features with verification)
|
|
64
|
+
|
|
65
|
+
COMPLETED:
|
|
66
|
+
- GitHub Action for PR comments (action.yml)
|
|
67
|
+
- JSON file output (--output flag)
|
|
68
|
+
- CI dogfood job to validate all CLI commands
|
|
69
|
+
- Node 20+ requirement (vitest 4.x compatibility)
|
|
70
|
+
- Package updates to Nov 2025 stable versions
|
|
71
|
+
- Sprint 1: Grammar fix, jargon rename, confidence display, date period
|
|
72
|
+
- Sprint 2: Summary + Opportunities section with actionable tips
|
|
73
|
+
- Sprint 3: XP deduplication to prevent gaming
|
|
74
|
+
|
|
75
|
+
COMMITS (8 this session):
|
|
76
|
+
- 9fca764 feat(gamification): prevent XP gaming with period deduplication
|
|
77
|
+
- 43bf561 feat(ux): add actionable summary and opportunities section
|
|
78
|
+
- c521144 fix(ux): improve CLI output clarity and trust
|
|
79
|
+
- a2fb133 chore(deps): update to Nov 2025 stable versions
|
|
80
|
+
- 62c512a fix: require Node 20+ (vitest 4.x compatibility)
|
|
81
|
+
- 9e06f71 ci: add dogfood job to validate all CLI commands
|
|
82
|
+
- 70dbd6f feat: add GitHub Action and JSON file output
|
|
83
|
+
|
|
84
|
+
ALL FEATURES COMPLETE (5/5):
|
|
85
|
+
- VIBE-001: Gamification module ✓
|
|
86
|
+
- VIBE-002: Profile command ✓
|
|
87
|
+
- VIBE-003: Dashboard shell ✓
|
|
88
|
+
- VIBE-004: GitHub Action ✓
|
|
89
|
+
- VIBE-005: JSON output ✓
|
|
90
|
+
|
|
91
|
+
NEXT SESSION COULD:
|
|
92
|
+
- Sprint 4: Progressive disclosure (--simple flag)
|
|
93
|
+
- Publish new version to npm
|
|
94
|
+
- Test GitHub Action on another repo
|
|
95
|
+
- Add more achievements
|
|
96
|
+
|
|
97
|
+
================================================================================
|
|
98
|
+
|
package/dist/cli.js
CHANGED
|
@@ -8,12 +8,13 @@ const { version } = require('../package.json');
|
|
|
8
8
|
const program = new commander_1.Command();
|
|
9
9
|
program
|
|
10
10
|
.name('vibe-check')
|
|
11
|
-
.description('
|
|
11
|
+
.description('Quick check: are you building or spiraling?')
|
|
12
12
|
.version(version);
|
|
13
13
|
// Add subcommands
|
|
14
14
|
program.addCommand((0, commands_1.createAnalyzeCommand)());
|
|
15
|
-
program.addCommand((0, commands_1.
|
|
15
|
+
program.addCommand((0, commands_1.createStartCommand)());
|
|
16
16
|
program.addCommand((0, commands_1.createProfileCommand)());
|
|
17
|
+
program.addCommand((0, commands_1.createInitHookCommand)());
|
|
17
18
|
// Default behavior: if no subcommand, run analyze with passed options
|
|
18
19
|
// This maintains backwards compatibility with v1.x usage
|
|
19
20
|
program
|
|
@@ -23,8 +24,6 @@ program
|
|
|
23
24
|
.option('-r, --repo <path>', 'Repository path', process.cwd())
|
|
24
25
|
.option('-v, --verbose', 'Show verbose output', false)
|
|
25
26
|
.option('--score', 'Include VibeScore and code pattern metrics', false)
|
|
26
|
-
.option('--recommend', 'Include level recommendation', false)
|
|
27
|
-
.option('--calibrate <level>', 'Record calibration sample with declared level (0-5)')
|
|
28
27
|
.option('-o, --output <file>', 'Write JSON results to file')
|
|
29
28
|
.option('-s, --simple', 'Simplified output (fewer details)', false)
|
|
30
29
|
.action(async (options) => {
|
|
@@ -36,8 +35,6 @@ program
|
|
|
36
35
|
repo: options.repo,
|
|
37
36
|
verbose: options.verbose,
|
|
38
37
|
score: options.score,
|
|
39
|
-
recommend: options.recommend,
|
|
40
|
-
calibrate: options.calibrate,
|
|
41
38
|
output: options.output,
|
|
42
39
|
simple: options.simple,
|
|
43
40
|
});
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,yCAA+H;AAE/H,8DAA8D;AAC9D,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,kBAAkB;AAClB,OAAO,CAAC,UAAU,CAAC,IAAA,+BAAoB,GAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,IAAA,6BAAkB,GAAE,CAAC,CAAC;AACzC,OAAO,CAAC,UAAU,CAAC,IAAA,+BAAoB,GAAE,CAAC,CAAC;AAC3C,OAAO,CAAC,UAAU,CAAC,IAAA,gCAAqB,GAAE,CAAC,CAAC;AAE5C,sEAAsE;AACtE,yDAAyD;AACzD,OAAO;KACJ,MAAM,CAAC,gBAAgB,EAAE,8CAA8C,CAAC;KACxE,MAAM,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;KAChE,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,EAAE,UAAU,CAAC;KACpF,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;KAC7D,MAAM,CAAC,eAAe,EAAE,qBAAqB,EAAE,KAAK,CAAC;KACrD,MAAM,CAAC,SAAS,EAAE,4CAA4C,EAAE,KAAK,CAAC;KACtE,MAAM,CAAC,qBAAqB,EAAE,4BAA4B,CAAC;KAC3D,MAAM,CAAC,cAAc,EAAE,mCAAmC,EAAE,KAAK,CAAC;KAClE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,wDAAwD;IACxD,MAAM,IAAA,qBAAU,EAAC;QACf,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"analyze.d.ts","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAgB,oBAAoB,IAAI,OAAO,CAgB9C;AAED,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAyPvE"}
|
package/dist/commands/analyze.js
CHANGED
|
@@ -17,10 +17,9 @@ const time_spiral_1 = require("../metrics/time-spiral");
|
|
|
17
17
|
const velocity_anomaly_1 = require("../metrics/velocity-anomaly");
|
|
18
18
|
const code_stability_1 = require("../metrics/code-stability");
|
|
19
19
|
const score_1 = require("../score");
|
|
20
|
-
const recommend_1 = require("../recommend");
|
|
21
|
-
const calibration_1 = require("../calibration");
|
|
22
20
|
const profile_1 = require("../gamification/profile");
|
|
23
21
|
const types_1 = require("../gamification/types");
|
|
22
|
+
const start_1 = require("./start");
|
|
24
23
|
function createAnalyzeCommand() {
|
|
25
24
|
const cmd = new commander_1.Command('analyze')
|
|
26
25
|
.description('Analyze git history for vibe coding metrics')
|
|
@@ -30,8 +29,6 @@ function createAnalyzeCommand() {
|
|
|
30
29
|
.option('-r, --repo <path>', 'Repository path', process.cwd())
|
|
31
30
|
.option('-v, --verbose', 'Show verbose output', false)
|
|
32
31
|
.option('--score', 'Include VibeScore and code pattern metrics', false)
|
|
33
|
-
.option('--recommend', 'Include level recommendation', false)
|
|
34
|
-
.option('--calibrate <level>', 'Record calibration sample with declared level (0-5)')
|
|
35
32
|
.option('-o, --output <file>', 'Write JSON results to file')
|
|
36
33
|
.option('-s, --simple', 'Simplified output (fewer details)', false)
|
|
37
34
|
.action(async (options) => {
|
|
@@ -41,7 +38,9 @@ function createAnalyzeCommand() {
|
|
|
41
38
|
}
|
|
42
39
|
async function runAnalyze(options) {
|
|
43
40
|
try {
|
|
44
|
-
const { since, until, format, repo, verbose, score,
|
|
41
|
+
const { since, until, format, repo, verbose, score, output, simple } = options;
|
|
42
|
+
// Check for active session
|
|
43
|
+
const session = (0, start_1.loadSession)(repo);
|
|
45
44
|
// Validate format
|
|
46
45
|
const validFormats = ['terminal', 'json', 'markdown'];
|
|
47
46
|
if (!validFormats.includes(format)) {
|
|
@@ -90,8 +89,9 @@ async function runAnalyze(options) {
|
|
|
90
89
|
...result,
|
|
91
90
|
semanticMetrics: result.metrics,
|
|
92
91
|
};
|
|
93
|
-
// Enhanced analysis
|
|
94
|
-
|
|
92
|
+
// Enhanced analysis - always compute for session comparison
|
|
93
|
+
const needsEnhanced = score || session !== null;
|
|
94
|
+
if (needsEnhanced) {
|
|
95
95
|
if (verbose) {
|
|
96
96
|
console.error(chalk_1.default.gray('Computing semantic-free metrics...'));
|
|
97
97
|
}
|
|
@@ -116,61 +116,6 @@ async function runAnalyze(options) {
|
|
|
116
116
|
codeStability,
|
|
117
117
|
});
|
|
118
118
|
resultV2.vibeScore = vibeScore;
|
|
119
|
-
if (recommend) {
|
|
120
|
-
// Default questions (neutral for now)
|
|
121
|
-
const defaultQuestions = {
|
|
122
|
-
reversibility: 0,
|
|
123
|
-
blastRadius: 0,
|
|
124
|
-
verificationCost: 0,
|
|
125
|
-
domainComplexity: 0,
|
|
126
|
-
aiTrackRecord: 0,
|
|
127
|
-
};
|
|
128
|
-
const features = [
|
|
129
|
-
defaultQuestions.reversibility,
|
|
130
|
-
defaultQuestions.blastRadius,
|
|
131
|
-
defaultQuestions.verificationCost,
|
|
132
|
-
defaultQuestions.domainComplexity,
|
|
133
|
-
defaultQuestions.aiTrackRecord,
|
|
134
|
-
fileChurn.value / 100,
|
|
135
|
-
timeSpiral.value / 100,
|
|
136
|
-
velocityAnomaly.value / 100,
|
|
137
|
-
codeStability.value / 100,
|
|
138
|
-
];
|
|
139
|
-
const prediction = (0, recommend_1.predictWithConfidence)(features);
|
|
140
|
-
resultV2.recommendation = {
|
|
141
|
-
level: prediction.level,
|
|
142
|
-
confidence: Math.round(prediction.confidence * 100) / 100,
|
|
143
|
-
probabilities: prediction.probs,
|
|
144
|
-
ci: prediction.ci,
|
|
145
|
-
questions: defaultQuestions,
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
if (calibrate !== undefined) {
|
|
149
|
-
const declaredLevel = parseInt(calibrate, 10);
|
|
150
|
-
if (declaredLevel >= 0 && declaredLevel <= 5) {
|
|
151
|
-
const outcome = (0, calibration_1.assessOutcome)(vibeScore.value, declaredLevel);
|
|
152
|
-
const sample = {
|
|
153
|
-
timestamp: new Date(),
|
|
154
|
-
vibeScore: vibeScore.value,
|
|
155
|
-
declaredLevel: declaredLevel,
|
|
156
|
-
outcome,
|
|
157
|
-
features: [
|
|
158
|
-
fileChurn.value / 100,
|
|
159
|
-
timeSpiral.value / 100,
|
|
160
|
-
velocityAnomaly.value / 100,
|
|
161
|
-
codeStability.value / 100,
|
|
162
|
-
],
|
|
163
|
-
modelVersion: '2.0.0',
|
|
164
|
-
};
|
|
165
|
-
(0, calibration_1.addSample)(repo, sample);
|
|
166
|
-
if (verbose) {
|
|
167
|
-
console.error(chalk_1.default.gray(`Calibration sample recorded: Level ${declaredLevel} → Score ${vibeScore.value} (${outcome})`));
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
else {
|
|
171
|
-
console.error(chalk_1.default.yellow(`Warning: Invalid calibrate level ${calibrate}, must be 0-5`));
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
119
|
}
|
|
175
120
|
// Write to file if requested (always JSON format)
|
|
176
121
|
if (output) {
|
|
@@ -183,6 +128,58 @@ async function runAnalyze(options) {
|
|
|
183
128
|
// Output result to console
|
|
184
129
|
const formattedOutput = (0, output_1.formatOutput)(resultV2, format, { simple });
|
|
185
130
|
console.log(formattedOutput);
|
|
131
|
+
// Session comparison (if session was active)
|
|
132
|
+
if (session && format === 'terminal' && resultV2.vibeScore) {
|
|
133
|
+
// Metrics are already in percentage form (e.g., 100 for 100%)
|
|
134
|
+
const trustPassRate = result.metrics.trustPassRate.value;
|
|
135
|
+
const reworkRatio = result.metrics.reworkRatio.value;
|
|
136
|
+
const levelInfo = start_1.LEVEL_INFO[session.level];
|
|
137
|
+
// Parse expectations (already in percentage form like ">65%")
|
|
138
|
+
const expectTrust = parseFloat(levelInfo.expectTrust.replace(/[><%]/g, ''));
|
|
139
|
+
const expectRework = parseFloat(levelInfo.expectRework.replace(/[<%]/g, ''));
|
|
140
|
+
// Calculate session duration
|
|
141
|
+
const startTime = new Date(session.startedAt);
|
|
142
|
+
const duration = Math.round((Date.now() - startTime.getTime()) / 60000);
|
|
143
|
+
console.log('');
|
|
144
|
+
console.log(chalk_1.default.bold.cyan('SESSION COMPLETE'));
|
|
145
|
+
console.log('');
|
|
146
|
+
console.log(` Declared: Level ${session.level} - ${levelInfo.name} (${levelInfo.trust} trust)`);
|
|
147
|
+
console.log(` Duration: ${duration} min, ${commits.length} commits`);
|
|
148
|
+
console.log('');
|
|
149
|
+
// Compare trust pass rate
|
|
150
|
+
const trustOk = trustPassRate >= expectTrust;
|
|
151
|
+
const trustIcon = trustOk ? chalk_1.default.green('✓') : chalk_1.default.yellow('⚠');
|
|
152
|
+
const trustExpect = `expected ${levelInfo.expectTrust}`;
|
|
153
|
+
console.log(` Trust Pass: ${Math.round(trustPassRate)}% (${trustExpect}) ${trustIcon}`);
|
|
154
|
+
// Compare rework ratio
|
|
155
|
+
const reworkOk = reworkRatio <= expectRework;
|
|
156
|
+
const reworkIcon = reworkOk ? chalk_1.default.green('✓') : chalk_1.default.yellow('⚠');
|
|
157
|
+
const reworkExpect = `expected ${levelInfo.expectRework}`;
|
|
158
|
+
console.log(` Rework: ${Math.round(reworkRatio)}% (${reworkExpect}) ${reworkIcon}`);
|
|
159
|
+
console.log('');
|
|
160
|
+
// Verdict
|
|
161
|
+
if (trustOk && reworkOk) {
|
|
162
|
+
console.log(chalk_1.default.green(` ✓ Level ${session.level} was appropriate for this work`));
|
|
163
|
+
}
|
|
164
|
+
else if (!trustOk && !reworkOk) {
|
|
165
|
+
const suggestedLevel = Math.max(0, session.level - 2);
|
|
166
|
+
console.log(chalk_1.default.yellow(` ⚠ Level ${session.level} was too optimistic`));
|
|
167
|
+
console.log(chalk_1.default.gray(` Consider Level ${suggestedLevel} for similar tasks`));
|
|
168
|
+
}
|
|
169
|
+
else if (!trustOk) {
|
|
170
|
+
const suggestedLevel = Math.max(0, session.level - 1);
|
|
171
|
+
console.log(chalk_1.default.yellow(` ⚠ Trust was lower than expected`));
|
|
172
|
+
console.log(chalk_1.default.gray(` Consider Level ${suggestedLevel} for similar tasks`));
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
// High trust but also high rework - likely iteration pattern
|
|
176
|
+
console.log(chalk_1.default.blue(` ℹ Good trust but high iteration`));
|
|
177
|
+
console.log(chalk_1.default.gray(` This might be expected for exploratory work`));
|
|
178
|
+
}
|
|
179
|
+
console.log('');
|
|
180
|
+
// Clear the session
|
|
181
|
+
(0, start_1.clearSession)(repo);
|
|
182
|
+
}
|
|
186
183
|
// Record session and show gamification (only for terminal format with score)
|
|
187
184
|
if (format === 'terminal' && resultV2.vibeScore) {
|
|
188
185
|
const spiralCount = result.fixChains.filter(fc => fc.isSpiral).length;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/commands/analyze.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { createAnalyzeCommand, runAnalyze, AnalyzeOptions } from './analyze';
|
|
2
|
-
export {
|
|
2
|
+
export { createStartCommand } from './start';
|
|
3
3
|
export { createProfileCommand } from './profile';
|
|
4
|
+
export { createInitHookCommand } from './init-hook';
|
|
4
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/commands/index.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createProfileCommand = exports.
|
|
3
|
+
exports.createInitHookCommand = exports.createProfileCommand = exports.createStartCommand = exports.runAnalyze = exports.createAnalyzeCommand = void 0;
|
|
4
4
|
var analyze_1 = require("./analyze");
|
|
5
5
|
Object.defineProperty(exports, "createAnalyzeCommand", { enumerable: true, get: function () { return analyze_1.createAnalyzeCommand; } });
|
|
6
6
|
Object.defineProperty(exports, "runAnalyze", { enumerable: true, get: function () { return analyze_1.runAnalyze; } });
|
|
7
|
-
var
|
|
8
|
-
Object.defineProperty(exports, "
|
|
7
|
+
var start_1 = require("./start");
|
|
8
|
+
Object.defineProperty(exports, "createStartCommand", { enumerable: true, get: function () { return start_1.createStartCommand; } });
|
|
9
9
|
var profile_1 = require("./profile");
|
|
10
10
|
Object.defineProperty(exports, "createProfileCommand", { enumerable: true, get: function () { return profile_1.createProfileCommand; } });
|
|
11
|
+
var init_hook_1 = require("./init-hook");
|
|
12
|
+
Object.defineProperty(exports, "createInitHookCommand", { enumerable: true, get: function () { return init_hook_1.createInitHookCommand; } });
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,qCAA6E;AAApE,+GAAA,oBAAoB,OAAA;AAAE,qGAAA,UAAU,OAAA;AACzC,iCAA6C;AAApC,2GAAA,kBAAkB,OAAA;AAC3B,qCAAiD;AAAxC,+GAAA,oBAAoB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,qCAA6E;AAApE,+GAAA,oBAAoB,OAAA;AAAE,qGAAA,UAAU,OAAA;AACzC,iCAA6C;AAApC,2GAAA,kBAAkB,OAAA;AAC3B,qCAAiD;AAAxC,+GAAA,oBAAoB,OAAA;AAC7B,yCAAoD;AAA3C,kHAAA,qBAAqB,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-hook.d.ts","sourceRoot":"","sources":["../../src/commands/init-hook.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4GpC,wBAAgB,qBAAqB,IAAI,OAAO,CAU/C"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.createInitHookCommand = createInitHookCommand;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
const path_1 = require("path");
|
|
11
|
+
const PRE_PUSH_HOOK = `#!/bin/bash
|
|
12
|
+
# vibe-check pre-push hook
|
|
13
|
+
# Runs vibe-check on commits being pushed and displays metrics
|
|
14
|
+
|
|
15
|
+
# Colors
|
|
16
|
+
RED='\\033[0;31m'
|
|
17
|
+
YELLOW='\\033[1;33m'
|
|
18
|
+
GREEN='\\033[0;32m'
|
|
19
|
+
CYAN='\\033[0;36m'
|
|
20
|
+
NC='\\033[0m' # No Color
|
|
21
|
+
|
|
22
|
+
# Configuration (set these env vars to customize)
|
|
23
|
+
VIBE_CHECK_BLOCK_LOW=\${VIBE_CHECK_BLOCK_LOW:-false} # Set to "true" to block push on LOW rating
|
|
24
|
+
VIBE_CHECK_SIMPLE=\${VIBE_CHECK_SIMPLE:-true} # Use simple output by default
|
|
25
|
+
VIBE_CHECK_SCORE=\${VIBE_CHECK_SCORE:-true} # Include vibe score
|
|
26
|
+
|
|
27
|
+
echo -e "\${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
|
|
28
|
+
echo -e "\${CYAN} 🎯 Running vibe-check before push...\${NC}"
|
|
29
|
+
echo -e "\${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
|
|
30
|
+
echo
|
|
31
|
+
|
|
32
|
+
# Read stdin for push info
|
|
33
|
+
while read local_ref local_sha remote_ref remote_sha; do
|
|
34
|
+
# Skip if deleting branch
|
|
35
|
+
if [ "$local_sha" = "0000000000000000000000000000000000000000" ]; then
|
|
36
|
+
continue
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# Determine the range of commits
|
|
40
|
+
if [ "$remote_sha" = "0000000000000000000000000000000000000000" ]; then
|
|
41
|
+
# New branch - check all commits
|
|
42
|
+
RANGE="$local_sha"
|
|
43
|
+
SINCE_FLAG=""
|
|
44
|
+
else
|
|
45
|
+
# Existing branch - check commits since last push
|
|
46
|
+
RANGE="$remote_sha..$local_sha"
|
|
47
|
+
# Get the date of the remote SHA
|
|
48
|
+
SINCE_DATE=$(git log -1 --format=%ci "$remote_sha" 2>/dev/null)
|
|
49
|
+
if [ -n "$SINCE_DATE" ]; then
|
|
50
|
+
SINCE_FLAG="--since \\"$SINCE_DATE\\""
|
|
51
|
+
else
|
|
52
|
+
SINCE_FLAG=""
|
|
53
|
+
fi
|
|
54
|
+
fi
|
|
55
|
+
|
|
56
|
+
# Count commits being pushed
|
|
57
|
+
COMMIT_COUNT=$(git rev-list --count "$RANGE" 2>/dev/null || echo "0")
|
|
58
|
+
|
|
59
|
+
if [ "$COMMIT_COUNT" = "0" ]; then
|
|
60
|
+
echo -e "\${YELLOW}No new commits to analyze\${NC}"
|
|
61
|
+
continue
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
echo -e "Analyzing \${GREEN}$COMMIT_COUNT\${NC} commit(s) on \${CYAN}$local_ref\${NC}"
|
|
65
|
+
echo
|
|
66
|
+
|
|
67
|
+
# Build vibe-check command (use local if available, otherwise npx)
|
|
68
|
+
if command -v vibe-check &> /dev/null; then
|
|
69
|
+
VIBE_CMD="vibe-check"
|
|
70
|
+
else
|
|
71
|
+
VIBE_CMD="npx --yes @boshu2/vibe-check"
|
|
72
|
+
fi
|
|
73
|
+
|
|
74
|
+
if [ "$VIBE_CHECK_SIMPLE" = "true" ]; then
|
|
75
|
+
VIBE_CMD="$VIBE_CMD --simple"
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
if [ "$VIBE_CHECK_SCORE" = "true" ]; then
|
|
79
|
+
VIBE_CMD="$VIBE_CMD --score"
|
|
80
|
+
fi
|
|
81
|
+
|
|
82
|
+
# Run vibe-check and capture output
|
|
83
|
+
if [ -n "$SINCE_FLAG" ]; then
|
|
84
|
+
OUTPUT=$(eval "$VIBE_CMD $SINCE_FLAG" 2>&1)
|
|
85
|
+
else
|
|
86
|
+
OUTPUT=$(eval "$VIBE_CMD --since '1 week ago'" 2>&1)
|
|
87
|
+
fi
|
|
88
|
+
|
|
89
|
+
EXIT_CODE=$?
|
|
90
|
+
|
|
91
|
+
# Display output
|
|
92
|
+
echo "$OUTPUT"
|
|
93
|
+
echo
|
|
94
|
+
|
|
95
|
+
# Check if we should block on LOW rating
|
|
96
|
+
if [ "$VIBE_CHECK_BLOCK_LOW" = "true" ] && [ $EXIT_CODE -eq 1 ]; then
|
|
97
|
+
echo -e "\${RED}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
|
|
98
|
+
echo -e "\${RED} ⛔ Push blocked: LOW vibe rating\${NC}"
|
|
99
|
+
echo -e "\${RED}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
|
|
100
|
+
echo
|
|
101
|
+
echo -e "To push anyway, set: \${YELLOW}VIBE_CHECK_BLOCK_LOW=false git push\${NC}"
|
|
102
|
+
exit 1
|
|
103
|
+
fi
|
|
104
|
+
done
|
|
105
|
+
|
|
106
|
+
echo -e "\${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
|
|
107
|
+
echo -e "\${GREEN} ✓ Vibe check complete, proceeding with push\${NC}"
|
|
108
|
+
echo -e "\${GREEN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\${NC}"
|
|
109
|
+
echo
|
|
110
|
+
|
|
111
|
+
exit 0
|
|
112
|
+
`;
|
|
113
|
+
function createInitHookCommand() {
|
|
114
|
+
const cmd = new commander_1.Command('init-hook')
|
|
115
|
+
.description('Install vibe-check git hook in current repository')
|
|
116
|
+
.option('-f, --force', 'Overwrite existing hook', false)
|
|
117
|
+
.option('--block-low', 'Configure hook to block pushes on LOW rating', false)
|
|
118
|
+
.action(async (options) => {
|
|
119
|
+
await runInitHook(options);
|
|
120
|
+
});
|
|
121
|
+
return cmd;
|
|
122
|
+
}
|
|
123
|
+
async function runInitHook(options) {
|
|
124
|
+
const cwd = process.cwd();
|
|
125
|
+
const gitDir = (0, path_1.join)(cwd, '.git');
|
|
126
|
+
const hooksDir = (0, path_1.join)(gitDir, 'hooks');
|
|
127
|
+
const hookPath = (0, path_1.join)(hooksDir, 'pre-push');
|
|
128
|
+
// Check if we're in a git repo
|
|
129
|
+
if (!(0, fs_1.existsSync)(gitDir)) {
|
|
130
|
+
console.error(chalk_1.default.red('Error: Not a git repository'));
|
|
131
|
+
console.error(chalk_1.default.gray('Run this command from the root of a git repository'));
|
|
132
|
+
process.exit(1);
|
|
133
|
+
}
|
|
134
|
+
// Check if hook already exists
|
|
135
|
+
if ((0, fs_1.existsSync)(hookPath) && !options.force) {
|
|
136
|
+
console.error(chalk_1.default.yellow('pre-push hook already exists'));
|
|
137
|
+
console.error(chalk_1.default.gray('Use --force to overwrite'));
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
// Create hooks directory if needed
|
|
141
|
+
if (!(0, fs_1.existsSync)(hooksDir)) {
|
|
142
|
+
(0, fs_1.mkdirSync)(hooksDir, { recursive: true });
|
|
143
|
+
}
|
|
144
|
+
// Modify hook content if blocking is enabled
|
|
145
|
+
let hookContent = PRE_PUSH_HOOK;
|
|
146
|
+
if (options.blockLow) {
|
|
147
|
+
hookContent = hookContent.replace('VIBE_CHECK_BLOCK_LOW=${VIBE_CHECK_BLOCK_LOW:-false}', 'VIBE_CHECK_BLOCK_LOW=${VIBE_CHECK_BLOCK_LOW:-true}');
|
|
148
|
+
}
|
|
149
|
+
// Write the hook
|
|
150
|
+
(0, fs_1.writeFileSync)(hookPath, hookContent);
|
|
151
|
+
(0, fs_1.chmodSync)(hookPath, 0o755);
|
|
152
|
+
console.log();
|
|
153
|
+
console.log(chalk_1.default.green('✓ vibe-check pre-push hook installed'));
|
|
154
|
+
console.log();
|
|
155
|
+
console.log(chalk_1.default.gray('Location:'), hookPath);
|
|
156
|
+
console.log();
|
|
157
|
+
console.log(chalk_1.default.bold('Configuration:'));
|
|
158
|
+
console.log(chalk_1.default.gray(' VIBE_CHECK_BLOCK_LOW=true Block push on LOW rating'));
|
|
159
|
+
console.log(chalk_1.default.gray(' VIBE_CHECK_SIMPLE=false Show full output'));
|
|
160
|
+
console.log(chalk_1.default.gray(' VIBE_CHECK_SCORE=false Hide vibe score'));
|
|
161
|
+
console.log();
|
|
162
|
+
console.log(chalk_1.default.cyan('The hook will run automatically on every git push'));
|
|
163
|
+
console.log();
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=init-hook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init-hook.js","sourceRoot":"","sources":["../../src/commands/init-hook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
interface Session {
|
|
3
|
+
level: number;
|
|
4
|
+
startedAt: string;
|
|
5
|
+
startCommit: string | null;
|
|
6
|
+
repoPath: string;
|
|
7
|
+
}
|
|
8
|
+
declare const LEVEL_INFO: Record<number, {
|
|
9
|
+
name: string;
|
|
10
|
+
trust: string;
|
|
11
|
+
expectRework: string;
|
|
12
|
+
expectTrust: string;
|
|
13
|
+
}>;
|
|
14
|
+
export declare function getVibeCheckDir(repoPath?: string): string;
|
|
15
|
+
export declare function getSessionPath(repoPath?: string): string;
|
|
16
|
+
export declare function loadSession(repoPath?: string): Session | null;
|
|
17
|
+
export declare function saveSession(session: Session): void;
|
|
18
|
+
export declare function clearSession(repoPath?: string): void;
|
|
19
|
+
export declare function createStartCommand(): Command;
|
|
20
|
+
export { LEVEL_INFO };
|
|
21
|
+
//# sourceMappingURL=start.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/commands/start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,QAAA,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAO1G,CAAC;AAEF,wBAAgB,eAAe,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAExE;AAED,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,CAEvE;AAED,wBAAgB,WAAW,CAAC,QAAQ,GAAE,MAAsB,GAAG,OAAO,GAAG,IAAI,CAQ5E;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAMlD;AAED,wBAAgB,YAAY,CAAC,QAAQ,GAAE,MAAsB,GAAG,IAAI,CAKnE;AAWD,wBAAgB,kBAAkB,IAAI,OAAO,CA+C5C;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
|