commitshow 0.1.7 → 0.1.9

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/dist/index.js CHANGED
@@ -5,7 +5,7 @@ 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.7';
8
+ const VERSION = '0.1.9';
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
11
  ${c.muted('the')} ${c.gold('walk-on')} ${c.muted('lane: drop in, get scored, leave · no signup, no audition, no league entry.')}
@@ -103,11 +103,23 @@ export function renderAudit(view) {
103
103
  const { project: p, snapshot, standing } = view;
104
104
  // Walk-on vs league. Walk-on = preview status (anonymous CLI · not in
105
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.
106
+ // structurally absent — not evaluated zeros.
107
+ //
108
+ // We display Claude's calibrated score_total directly for walk-ons. The
109
+ // server prompt (rule 7 in analyze-project) tells Claude to score
110
+ // walk-ons assuming Scout+Comm absent, so score_total IS the walk-on
111
+ // score. This lets ecosystem signals (stars, npm reach), Production
112
+ // Maturity gaps (no tests / no CI), and double-counting safeguards
113
+ // shape the final number — none of which a deterministic /45
114
+ // normalization could capture.
115
+ //
116
+ // The /45 normalization (audit pillar excluding Brief slot) is still
117
+ // computed and exposed in JSON as `walk_on_audit_normalized` for agents
118
+ // that want a deterministic floor, but the user-facing big-digit uses
119
+ // the calibrated total.
120
+ const WALK_ON_AUDIT_MAX = 45;
108
121
  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);
122
+ const total = p.score_total ?? 0;
111
123
  // Header
112
124
  const lines = [];
113
125
  lines.push(boxTop());
@@ -149,8 +161,12 @@ export function renderAudit(view) {
149
161
  lines.push('');
150
162
  // Axis bars · league shows all three; walk-on shows Audit only and
151
163
  // surfaces Scout + Community as locked-with-unlock-hint rows.
164
+ // Walk-on Audit denominator is 45 (Brief slot excluded) so the math is
165
+ // visibly consistent with the big-digit normalization above.
152
166
  const lockedBar = '─ audition unlocks ─'; // exactly 20 cells · matches scoreBar width
153
- const auditLine = ` Audit ${pad(`${p.score_auto}/50`, 7)} ${scoreBar(p.score_auto, 50)}`;
167
+ const auditDen = isWalkOn ? WALK_ON_AUDIT_MAX : 50;
168
+ const auditScoreClamp = Math.min(p.score_auto ?? 0, auditDen);
169
+ const auditLine = ` Audit ${pad(`${auditScoreClamp}/${auditDen}`, 7)} ${scoreBar(auditScoreClamp, auditDen)}`;
154
170
  lines.push(' ' + auditLine);
155
171
  if (isWalkOn) {
156
172
  lines.push(' ' + ` Scout ${pad('—/30', 7)} ` + c.muted(lockedBar));
@@ -304,8 +320,15 @@ function asObjectArray(raw, take) {
304
320
  }
305
321
  export function toAgentShape(view) {
306
322
  const { project: p, snapshot, standing } = view;
323
+ // Walk-on context fields. The user-facing score is Claude's calibrated
324
+ // total (score_total). `walk_on_audit_normalized` is the deterministic
325
+ // pillar-only fallback (Brief slot excluded · base /45).
326
+ const WALK_ON_AUDIT_MAX = 45;
307
327
  const isWalkOn = p.status === 'preview';
308
- const walkOnTotal = isWalkOn ? Math.round(((p.score_auto ?? 0) / 50) * 100) : null;
328
+ const walkOnTotal = isWalkOn ? (p.score_total ?? 0) : null;
329
+ const walkOnAuditNormalized = isWalkOn
330
+ ? Math.min(100, Math.round(((p.score_auto ?? 0) / WALK_ON_AUDIT_MAX) * 100))
331
+ : null;
309
332
  return {
310
333
  schema_version: '1',
311
334
  generated_at: new Date().toISOString(),
@@ -332,6 +355,7 @@ export function toAgentShape(view) {
332
355
  band: bandFor(p.score_total),
333
356
  walk_on_total: walkOnTotal,
334
357
  walk_on_band: walkOnTotal != null ? bandFor(walkOnTotal) : null,
358
+ walk_on_audit_normalized: walkOnAuditNormalized,
335
359
  },
336
360
  standing: standing
337
361
  ? {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "commitshow",
3
- "version": "0.1.7",
3
+ "version": "0.1.9",
4
4
  "description": "commit.show CLI — audit any vibe-coded project from your terminal.",
5
5
  "type": "module",
6
6
  "bin": {