commitshow 0.1.5 → 0.1.7

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/README.md CHANGED
@@ -1,12 +1,17 @@
1
1
  # commit.show CLI
2
2
 
3
- > Audit any vibe-coded project from your terminal.
4
-
5
- The official CLI for **[commit.show](https://commit.show)** pulls the latest
6
- audit report for a project and renders it inline. Score breakdown
7
- (Audit / Scout / Community), 3 strengths + 2 concerns, current season rank,
8
- delta since the last snapshot. Local runs also save a `.commitshow/audit.md`
9
- file so your AI coding agent can read the report in the next turn and iterate.
3
+ > Audit any vibe-coded project from your terminal — the **walk-on** lane.
4
+
5
+ The official CLI for **[commit.show](https://commit.show)**. A walk-on
6
+ drops in, gets scored, and leaves no signup, no audition fee, no league
7
+ entry. You get the same Claude-grade analysis used in the full season
8
+ (Audit / Scout / Community breakdown, 3 strengths + 2 concerns, rank,
9
+ delta since the last snapshot). Local runs also save `.commitshow/audit.md`
10
+ so your AI coding agent can read the report in the next turn and iterate.
11
+
12
+ When a walk-on is ready to enter the season for real — Scout forecasts,
13
+ season ranking, Backstage prompt-extraction, Hall of Fame — they audition
14
+ at <https://commit.show/submit>.
10
15
 
11
16
  The npm package + command is `commitshow` (no dot — npm doesn't allow it in
12
17
  package names). Everything else uses the brand `commit.show`.
package/dist/index.js CHANGED
@@ -5,9 +5,10 @@ import { status } from './commands/status.js';
5
5
  import { login } from './commands/login.js';
6
6
  import { whoami } from './commands/whoami.js';
7
7
  import { c } from './lib/colors.js';
8
- const VERSION = '0.1.5';
8
+ const VERSION = '0.1.7';
9
9
  const USAGE = `
10
10
  ${c.bold(c.gold('commit.show'))} ${c.dim(`v${VERSION}`)} ${c.muted('—')} ${c.cream('audit any vibe-coded project from your terminal.')}
11
+ ${c.muted('the')} ${c.gold('walk-on')} ${c.muted('lane: drop in, get scored, leave · no signup, no audition, no league entry.')}
11
12
 
12
13
  ${c.muted('USAGE')}
13
14
  ${c.cream('commitshow')} ${c.gold('<command>')} [target] [flags] ${c.dim('# CLI is `commitshow` (no dot — npm constraint)')}
@@ -101,7 +101,13 @@ function asStringArray(raw, take) {
101
101
  }
102
102
  export function renderAudit(view) {
103
103
  const { project: p, snapshot, standing } = view;
104
- const total = p.score_total ?? 0;
104
+ // Walk-on vs league. Walk-on = preview status (anonymous CLI · not in
105
+ // a season). For walk-ons, Scout (0/30) and Community (low/20) are
106
+ // structurally absent — not evaluated zeros — so we surface the
107
+ // Audit-only score normalized to /100 instead of summing pillars.
108
+ const isWalkOn = p.status === 'preview';
109
+ const walkOnTotal = Math.round(((p.score_auto ?? 0) / 50) * 100);
110
+ const total = isWalkOn ? walkOnTotal : (p.score_total ?? 0);
105
111
  // Header
106
112
  const lines = [];
107
113
  lines.push(boxTop());
@@ -125,20 +131,35 @@ export function renderAudit(view) {
125
131
  lines.push(' ' + ' '.repeat(leftPad) + c.goldDeep(row));
126
132
  }
127
133
  // Caption · small "/ 100 · band" · band tinted so the signal lives there.
134
+ // Walk-on track gets an extra middle segment so the score is read in the
135
+ // right context (88 walk-on ≠ 88 league).
128
136
  const band = total >= 75 ? 'strong' : total >= 50 ? 'mid' : 'weak';
129
137
  const bandTone = scoreTone(total);
130
- const caption = `/ 100 · ${band}`;
131
- // Center the caption (visible chars only — color codes don't take width).
132
- const capPad = Math.floor((58 - caption.length) / 2);
133
- lines.push(' ' + ' '.repeat(capPad) + c.muted('/ 100 · ') + bandTone(band));
138
+ const captionVisible = isWalkOn
139
+ ? `/ 100 · walk-on · ${band}`
140
+ : `/ 100 · ${band}`;
141
+ const capPad = Math.floor((58 - captionVisible.length) / 2);
142
+ if (isWalkOn) {
143
+ lines.push(' ' + ' '.repeat(capPad)
144
+ + c.muted('/ 100 · ') + c.gold('walk-on') + c.muted(' · ') + bandTone(band));
145
+ }
146
+ else {
147
+ lines.push(' ' + ' '.repeat(capPad) + c.muted('/ 100 · ') + bandTone(band));
148
+ }
134
149
  lines.push('');
135
- // 3-axis bars
150
+ // Axis bars · league shows all three; walk-on shows Audit only and
151
+ // surfaces Scout + Community as locked-with-unlock-hint rows.
152
+ const lockedBar = '─ audition unlocks ─'; // exactly 20 cells · matches scoreBar width
136
153
  const auditLine = ` Audit ${pad(`${p.score_auto}/50`, 7)} ${scoreBar(p.score_auto, 50)}`;
137
- const scoutLine = ` Scout ${pad(`${p.score_forecast}/30`, 7)} ${scoreBar(p.score_forecast, 30)}`;
138
- const communityLine = ` Comm. ${pad(`${p.score_community}/20`, 7)} ${scoreBar(p.score_community, 20)}`;
139
154
  lines.push(' ' + auditLine);
140
- lines.push(' ' + scoutLine);
141
- lines.push(' ' + communityLine);
155
+ if (isWalkOn) {
156
+ lines.push(' ' + ` Scout ${pad('—/30', 7)} ` + c.muted(lockedBar));
157
+ lines.push(' ' + ` Comm. ${pad('—/20', 7)} ` + c.muted(lockedBar));
158
+ }
159
+ else {
160
+ lines.push(' ' + ` Scout ${pad(`${p.score_forecast}/30`, 7)} ${scoreBar(p.score_forecast, 30)}`);
161
+ lines.push(' ' + ` Comm. ${pad(`${p.score_community}/20`, 7)} ${scoreBar(p.score_community, 20)}`);
162
+ }
142
163
  lines.push('');
143
164
  // 3 strengths + 2 concerns from scout_brief · §15-C.2 content contract.
144
165
  // Web surfaces the full 5+3; the CLI keeps it tight for terminal screenshots.
@@ -283,6 +304,8 @@ function asObjectArray(raw, take) {
283
304
  }
284
305
  export function toAgentShape(view) {
285
306
  const { project: p, snapshot, standing } = view;
307
+ const isWalkOn = p.status === 'preview';
308
+ const walkOnTotal = isWalkOn ? Math.round(((p.score_auto ?? 0) / 50) * 100) : null;
286
309
  return {
287
310
  schema_version: '1',
288
311
  generated_at: new Date().toISOString(),
@@ -296,6 +319,7 @@ export function toAgentShape(view) {
296
319
  url: `https://commit.show/projects/${p.id}`,
297
320
  },
298
321
  score: {
322
+ track: isWalkOn ? 'walk_on' : 'league',
299
323
  total: p.score_total,
300
324
  total_max: 100,
301
325
  audit: p.score_auto,
@@ -306,6 +330,8 @@ export function toAgentShape(view) {
306
330
  community_max: 20,
307
331
  delta_since_last: snapshot?.score_total_delta ?? null,
308
332
  band: bandFor(p.score_total),
333
+ walk_on_total: walkOnTotal,
334
+ walk_on_band: walkOnTotal != null ? bandFor(walkOnTotal) : null,
309
335
  },
310
336
  standing: standing
311
337
  ? {
@@ -483,11 +509,15 @@ function wrapText(s, width) {
483
509
  }
484
510
  export function renderUpsell() {
485
511
  const lines = [];
486
- const titleVisible = 'Preview · not entered in the season';
512
+ // "Walk-on" anyone running CLI without auditioning. Theatre-coherent
513
+ // (Audition / Audit / Stage / Backstage / Walk-on) · friendlier than
514
+ // "preview" (which doubles as our DB status) · positions audition as the
515
+ // upgrade path without making the walk-on tier feel lesser.
516
+ const titleVisible = 'Walk-on · drop-in audit, no audition yet';
487
517
  const headVisible = 'Audition to unlock:';
488
518
  const ctaVisible = '→ https://commit.show/submit';
489
519
  lines.push(' ' + boxTop());
490
- lines.push(' ' + boxRow(titleVisible.length, c.bold(c.gold('Preview')) + c.muted(' · ') + c.cream('not entered in the season')));
520
+ lines.push(' ' + boxRow(titleVisible.length, c.bold(c.gold('Walk-on')) + c.muted(' · ') + c.cream('drop-in audit, no audition yet')));
491
521
  lines.push(' ' + boxBlank());
492
522
  lines.push(' ' + boxRow(headVisible.length, c.cream(headVisible)));
493
523
  // Backstage = our brand for the prompt-extraction analysis (Phase 2 brief).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commitshow",
3
- "version": "0.1.5",
3
+ "version": "0.1.7",
4
4
  "description": "commit.show CLI — audit any vibe-coded project from your terminal.",
5
5
  "type": "module",
6
6
  "bin": {