commitshow 0.1.6 → 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/dist/index.js +1 -1
- package/dist/lib/render.js +36 -10
- package/package.json +1 -1
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.
|
|
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
11
|
${c.muted('the')} ${c.gold('walk-on')} ${c.muted('lane: drop in, get scored, leave · no signup, no audition, no league entry.')}
|
package/dist/lib/render.js
CHANGED
|
@@ -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
|
-
|
|
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
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
141
|
-
|
|
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
|
? {
|