chekk 0.2.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/chekk.js CHANGED
@@ -8,7 +8,7 @@ const program = new Command();
8
8
  program
9
9
  .name('chekk')
10
10
  .description('The engineering capability score. See how you prompt.')
11
- .version('0.2.0')
11
+ .version('0.2.1')
12
12
  .option('--offline', 'Skip AI prose generation, show data-driven output')
13
13
  .option('--verbose', 'Show detailed per-project and per-metric breakdowns')
14
14
  .option('--json', 'Output raw metrics as JSON')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "chekk",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "See how you prompt. Chekk analyzes your AI coding workflow and tells you what kind of engineer you are.",
5
5
  "bin": {
6
6
  "chekk": "./bin/chekk.js"
package/src/display.js CHANGED
@@ -67,11 +67,11 @@ export function displayHeader() {
67
67
  console.log();
68
68
  const lines = [
69
69
  '',
70
- ` ${bold.white('chekk')}${dim(' v0.2.0')}`,
70
+ ` ${bold.white('chekk')}${dim(' v0.2.1')}`,
71
71
  ` ${dim('the engineering capability score')}`,
72
72
  '',
73
73
  ];
74
- for (const l of box(lines)) console.log(l);
74
+ for (const l of box(lines, 45)) console.log(l);
75
75
  console.log();
76
76
  }
77
77
 
@@ -153,15 +153,28 @@ export function displayScore(result, prose) {
153
153
 
154
154
  // Dimensions box
155
155
  console.log(dim(' DIMENSIONS\n'));
156
+
157
+ // Build dimension lines with fixed-width layout
158
+ // Format: " Label ██████████████░░░░ XX "
159
+ // Visible: 2 + 15 + 18 + 2 + 3 + 1 = ~41 chars
160
+ function dimLine(label, score) {
161
+ const labelStr = bold(label);
162
+ const labelVisible = label.length;
163
+ const labelPad = ' '.repeat(Math.max(0, 15 - labelVisible));
164
+ const scoreStr = String(score);
165
+ const scorePad = score < 10 ? ' ' : score < 100 ? ' ' : '';
166
+ return ` ${labelStr}${labelPad}${progressBar(score)} ${scorePad}${bold(scoreStr)} `;
167
+ }
168
+
156
169
  const dimLines = [
157
170
  '',
158
- ` ${pad(bold('Thinking'), 20)} ${progressBar(scores.decomposition)} ${bold(String(scores.decomposition))}`,
159
- ` ${pad(bold('Debugging'), 20)} ${progressBar(scores.debugCycles)} ${bold(String(scores.debugCycles))}`,
160
- ` ${pad(bold('AI Leverage'), 20)}${progressBar(scores.aiLeverage)} ${bold(String(scores.aiLeverage))}`,
161
- ` ${pad(bold('Workflow'), 20)} ${progressBar(scores.sessionStructure)} ${bold(String(scores.sessionStructure))}`,
171
+ dimLine('Thinking', scores.decomposition),
172
+ dimLine('Debugging', scores.debugCycles),
173
+ dimLine('AI Leverage', scores.aiLeverage),
174
+ dimLine('Workflow', scores.sessionStructure),
162
175
  '',
163
176
  ];
164
- for (const l of box(dimLines)) console.log(l);
177
+ for (const l of box(dimLines, 45)) console.log(l);
165
178
  console.log();
166
179
  }
167
180
 
@@ -349,7 +362,8 @@ export function displayOffline(result, metrics) {
349
362
  displayScore(result, null);
350
363
  displayDataNarratives(metrics);
351
364
  displayEasterEggs(result, metrics);
352
- console.log(dim(' Run without --offline for personalized AI-generated insights\n'));
365
+ console.log(dim(' Run without --offline for personalized AI-generated insights'));
366
+ console.log(dim(' Run with --verbose for full per-project and metric breakdown\n'));
353
367
  displayEnding(result);
354
368
  }
355
369
 
@@ -361,6 +375,7 @@ export function displayFull(result, metrics, prose) {
361
375
  displayScore(result, prose);
362
376
  displayNarratives(metrics, prose);
363
377
  displayEasterEggs(result, metrics);
378
+ console.log(dim(' Run with --verbose for full per-project and metric breakdown\n'));
364
379
  displayEnding(result);
365
380
  }
366
381