@humanbased/crosscheck 1.3.0-beta.91 → 1.3.0-beta.92

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
@@ -179,7 +179,7 @@ Full walkthrough: **[docs/linear-identity.md](./docs/linear-identity.md)**.
179
179
  | `crosscheck alter <repo>` | Set a per-repo pipeline depth |
180
180
  | `crosscheck detect-step <pr>` | Show step history and the next step to run |
181
181
  | `crosscheck linear-test [issue]` | Dry-run Linear write-back |
182
- | `crosscheck diagnose` / `optimize` / `impact` / `issue` | Analyse logs, tune config, report value, file tickets |
182
+ | `crosscheck diagnose` / `optimize` / `impact` / `adoption` / `issue` | Analyse logs, tune config, report value, report usage, file tickets |
183
183
 
184
184
  Multi-PR forms work where sensible — comma lists, bare numbers, and ranges:
185
185
 
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=adoption.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/adoption.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,175 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { buildAdoptionReport, firstRunFailures, isoWeekMonday, percentile, prOpenToVerdictMs, } from '../lib/adoption.js';
3
+ const PERIOD = { from: '2026-07-01', to: '2026-07-14', log_files: 2 };
4
+ function line(event, fields = {}) {
5
+ return { ts: '2026-07-08T10:00:00.000Z', event, ...fields };
6
+ }
7
+ describe('prOpenToVerdictMs', () => {
8
+ const opened = '2026-07-08T09:00:00.000Z';
9
+ const now = Date.parse('2026-07-08T10:30:00.000Z');
10
+ it('measures from PR open to the moment the verdict is posted', () => {
11
+ expect(prOpenToVerdictMs(opened, 'APPROVE', now)).toBe(90 * 60 * 1000);
12
+ });
13
+ it('returns undefined when the review produced no verdict', () => {
14
+ expect(prOpenToVerdictMs(opened, null, now)).toBeUndefined();
15
+ });
16
+ it('returns undefined when the PR event carried no open time', () => {
17
+ expect(prOpenToVerdictMs(undefined, 'BLOCK', now)).toBeUndefined();
18
+ });
19
+ it('returns undefined for an unparseable timestamp rather than NaN', () => {
20
+ expect(prOpenToVerdictMs('last Tuesday', 'BLOCK', now)).toBeUndefined();
21
+ });
22
+ it('drops a negative elapsed time from clock skew instead of reporting it', () => {
23
+ expect(prOpenToVerdictMs('2026-07-08T11:00:00.000Z', 'APPROVE', now)).toBeUndefined();
24
+ });
25
+ });
26
+ describe('isoWeekMonday', () => {
27
+ it('maps a mid-week timestamp to that week Monday', () => {
28
+ expect(isoWeekMonday('2026-07-08T10:00:00.000Z')).toBe('2026-07-06');
29
+ });
30
+ it('maps Sunday back to the Monday that started its week', () => {
31
+ expect(isoWeekMonday('2026-07-12T23:59:00.000Z')).toBe('2026-07-06');
32
+ });
33
+ it('returns null for an unparseable timestamp', () => {
34
+ expect(isoWeekMonday('not-a-date')).toBeNull();
35
+ });
36
+ });
37
+ describe('percentile', () => {
38
+ it('returns a value that actually occurred in the sample', () => {
39
+ const sorted = [10, 20, 30, 40, 50];
40
+ expect(percentile(sorted, 0.5)).toBe(30);
41
+ expect(percentile(sorted, 0.9)).toBe(50);
42
+ });
43
+ it('returns 0 for an empty sample', () => {
44
+ expect(percentile([], 0.5)).toBe(0);
45
+ });
46
+ });
47
+ describe('buildAdoptionReport', () => {
48
+ it('counts the activation funnel and treats a missing completion as abandonment', () => {
49
+ const report = buildAdoptionReport([
50
+ line('onboard_started'),
51
+ line('onboard_completed', { outcome: 'completed' }),
52
+ line('onboard_started'),
53
+ line('onboard_completed', { outcome: 'abandoned' }),
54
+ line('onboard_started'),
55
+ ], PERIOD);
56
+ expect(report.onboarding).toEqual({ started: 3, completed: 1, abandoned: 2 });
57
+ });
58
+ it('separates rechecks from initial reviews via step_type', () => {
59
+ const report = buildAdoptionReport([
60
+ line('review_complete', { repo: 'acme/web', step_type: 'review', verdict: 'BLOCK' }),
61
+ line('review_complete', { repo: 'acme/web', step_type: 'recheck', verdict: 'APPROVE' }),
62
+ ], PERIOD);
63
+ expect(report.activity.reviews_completed).toBe(2);
64
+ expect(report.activity.rechecks_completed).toBe(1);
65
+ });
66
+ it('counts distinct repos, not reviews, as active repos', () => {
67
+ const report = buildAdoptionReport([
68
+ line('review_complete', { repo: 'acme/web', verdict: 'APPROVE' }),
69
+ line('review_complete', { repo: 'acme/web', verdict: 'BLOCK' }),
70
+ line('review_complete', { repo: 'acme/api', verdict: 'APPROVE' }),
71
+ ], PERIOD);
72
+ expect(report.activity.active_repos).toBe(2);
73
+ expect(report.weekly).toEqual([{ week: '2026-07-06', active_repos: 2, reviews: 3 }]);
74
+ });
75
+ it('buckets weekly activity by ISO week', () => {
76
+ const report = buildAdoptionReport([
77
+ line('review_complete', { ts: '2026-07-08T10:00:00.000Z', repo: 'acme/web', verdict: 'APPROVE' }),
78
+ line('review_complete', { ts: '2026-07-15T10:00:00.000Z', repo: 'acme/api', verdict: 'APPROVE' }),
79
+ ], PERIOD);
80
+ expect(report.weekly.map(w => w.week)).toEqual(['2026-07-06', '2026-07-13']);
81
+ });
82
+ it('counts a fix only when it changed files', () => {
83
+ const report = buildAdoptionReport([
84
+ line('fix_complete', { applied_count: 3 }),
85
+ line('fix_complete', { applied_count: 0 }),
86
+ line('fix_complete', {}),
87
+ ], PERIOD);
88
+ expect(report.activity.fixes_applied).toBe(1);
89
+ });
90
+ it('summarises open-to-verdict latency and reports what could not be measured', () => {
91
+ const minute = 60_000;
92
+ const report = buildAdoptionReport([
93
+ line('review_complete', { repo: 'acme/web', verdict: 'APPROVE', open_to_verdict_ms: 10 * minute }),
94
+ line('review_complete', { repo: 'acme/web', verdict: 'BLOCK', open_to_verdict_ms: 30 * minute }),
95
+ line('review_complete', { repo: 'acme/web', verdict: 'APPROVE', open_to_verdict_ms: 120 * minute }),
96
+ line('review_complete', { repo: 'acme/web', verdict: 'APPROVE' }),
97
+ ], PERIOD);
98
+ expect(report.open_to_verdict.count).toBe(3);
99
+ expect(report.open_to_verdict.p50_ms).toBe(30 * minute);
100
+ expect(report.open_to_verdict.max_ms).toBe(120 * minute);
101
+ expect(report.open_to_verdict.unmeasured).toBe(1);
102
+ });
103
+ it('does not count a verdictless review as unmeasured latency', () => {
104
+ const report = buildAdoptionReport([
105
+ line('review_complete', { repo: 'acme/web' }),
106
+ ], PERIOD);
107
+ expect(report.open_to_verdict.unmeasured).toBe(0);
108
+ });
109
+ it('counts blocking findings from their own event', () => {
110
+ const report = buildAdoptionReport([
111
+ line('blocking_finding_posted', { repo: 'acme/web', verdict: 'BLOCK' }),
112
+ line('blocking_finding_posted', { repo: 'acme/api', verdict: 'NEEDS WORK' }),
113
+ ], PERIOD);
114
+ expect(report.activity.blocking_findings_posted).toBe(2);
115
+ });
116
+ it('reports an empty shape rather than throwing on no logs', () => {
117
+ const report = buildAdoptionReport([], PERIOD);
118
+ expect(report.activity.reviews_completed).toBe(0);
119
+ expect(report.weekly).toEqual([]);
120
+ expect(report.open_to_verdict).toEqual({ count: 0, p50_ms: 0, p90_ms: 0, max_ms: 0, unmeasured: 0 });
121
+ expect(report.first_run_failures).toEqual({});
122
+ });
123
+ });
124
+ describe('firstRunFailures', () => {
125
+ it('attributes a session that never reached a verdict to its first error', () => {
126
+ const failures = firstRunFailures([
127
+ line('session_start', { command: 'run' }),
128
+ line('error', { category: 'auth' }),
129
+ line('error', { category: 'network' }),
130
+ line('session_end'),
131
+ ]);
132
+ expect(failures).toEqual({ auth: 1 });
133
+ });
134
+ it('ignores errors in a session that did complete a review', () => {
135
+ const failures = firstRunFailures([
136
+ line('session_start', { command: 'watch' }),
137
+ line('review_complete', { repo: 'acme/web', verdict: 'APPROVE' }),
138
+ line('error', { category: 'rate_limit' }),
139
+ line('session_end'),
140
+ ]);
141
+ expect(failures).toEqual({});
142
+ });
143
+ it('keeps sessions separate when one fails and the next succeeds', () => {
144
+ const failures = firstRunFailures([
145
+ line('session_start', { command: 'run' }),
146
+ line('error', { category: 'auth' }),
147
+ line('session_end'),
148
+ line('session_start', { command: 'run' }),
149
+ line('review_complete', { repo: 'acme/web', verdict: 'BLOCK' }),
150
+ line('session_end'),
151
+ ]);
152
+ expect(failures).toEqual({ auth: 1 });
153
+ });
154
+ it('counts a session that crashed without a session_end', () => {
155
+ const failures = firstRunFailures([
156
+ line('session_start', { command: 'watch' }),
157
+ line('error', { category: 'timeout' }),
158
+ ]);
159
+ expect(failures).toEqual({ timeout: 1 });
160
+ });
161
+ it('labels an uncategorised error rather than dropping it', () => {
162
+ const failures = firstRunFailures([
163
+ line('session_start', { command: 'run' }),
164
+ line('error', {}),
165
+ ]);
166
+ expect(failures).toEqual({ unknown: 1 });
167
+ });
168
+ it('still attributes errors in logs written before session events existed', () => {
169
+ const failures = firstRunFailures([
170
+ line('error', { category: 'git' }),
171
+ ]);
172
+ expect(failures).toEqual({ git: 1 });
173
+ });
174
+ });
175
+ //# sourceMappingURL=adoption.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption.test.js","sourceRoot":"","sources":["../../src/__tests__/adoption.test.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -14,6 +14,7 @@ import { runStatus } from './commands/status.js';
14
14
  import { runDiagnose } from './commands/diagnose.js';
15
15
  import { runOptimize } from './commands/optimize.js';
16
16
  import { runImpact } from './commands/impact.js';
17
+ import { runAdoption } from './commands/adoption.js';
17
18
  import { runIssue } from './commands/issue.js';
18
19
  import { runRunSpec, runRecheckSpec, runFixSpec, runResolveSpec } from './commands/run.js';
19
20
  import { runDetectStep } from './commands/detect-step.js';
@@ -246,6 +247,13 @@ program
246
247
  .option('--money', 'include a rough monetary estimate')
247
248
  .option('-c, --config <path>', 'config file path')
248
249
  .action((opts) => void runImpact(opts));
250
+ program
251
+ .command('adoption')
252
+ .description('Report activation, usage, weekly active repos, PR-open-to-verdict latency, and first-run failures from local logs')
253
+ .option('--json', 'output full report as JSON')
254
+ .option('--since <date>', 'only analyze logs from this date onward (YYYY-MM-DD)')
255
+ .option('-c, --config <path>', 'config file path')
256
+ .action((opts) => void runAdoption(opts));
249
257
  program
250
258
  .command('issue')
251
259
  .description('Detect errors in recent logs, draft a GitHub issue with AI, and submit after confirmation')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function runAdoption(opts: {
2
+ json?: boolean;
3
+ since?: string;
4
+ config?: string;
5
+ }): Promise<void>;
6
+ //# sourceMappingURL=adoption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption.d.ts","sourceRoot":"","sources":["../../src/commands/adoption.ts"],"names":[],"mappings":"AAyHA,wBAAsB,WAAW,CAAC,IAAI,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAe1G"}
@@ -0,0 +1,132 @@
1
+ import { readdirSync, readFileSync, existsSync } from 'fs';
2
+ import { join } from 'path';
3
+ import chalk from 'chalk';
4
+ import { loadConfig } from '../config/loader.js';
5
+ import { getLogDir } from '../lib/logger.js';
6
+ import { buildAdoptionReport } from '../lib/adoption.js';
7
+ function readLogLines(sinceDate) {
8
+ const logDir = getLogDir();
9
+ if (!existsSync(logDir))
10
+ return { files: [], lines: [] };
11
+ const files = readdirSync(logDir)
12
+ .filter(f => f.endsWith('.ndjson'))
13
+ .sort()
14
+ .filter(f => !sinceDate || f.replace('.ndjson', '') >= sinceDate)
15
+ .map(f => join(logDir, f));
16
+ const lines = [];
17
+ for (const file of files) {
18
+ for (const line of readFileSync(file, 'utf8').split('\n')) {
19
+ if (!line.trim())
20
+ continue;
21
+ try {
22
+ const parsed = JSON.parse(line);
23
+ if (parsed !== null && typeof parsed === 'object')
24
+ lines.push(parsed);
25
+ }
26
+ catch { /* skip malformed */ }
27
+ }
28
+ }
29
+ return { files, lines };
30
+ }
31
+ function humanDuration(ms) {
32
+ if (ms <= 0)
33
+ return '—';
34
+ const minutes = ms / 60_000;
35
+ if (minutes < 60)
36
+ return `${Math.round(minutes)}m`;
37
+ const hours = minutes / 60;
38
+ if (hours < 48)
39
+ return `${Math.round(hours * 10) / 10}h`;
40
+ return `${Math.round(hours / 24)}d`;
41
+ }
42
+ function renderBar(value, max, width = 16) {
43
+ if (max === 0 || value === 0)
44
+ return '';
45
+ return '█'.repeat(Math.max(1, Math.round((value / max) * width)));
46
+ }
47
+ function formatReport(report, retentionDays) {
48
+ const sep = chalk.dim('─'.repeat(50));
49
+ const periodLabel = report.period.from === 'N/A'
50
+ ? 'no data'
51
+ : `${report.period.from} → ${report.period.to}`;
52
+ console.log(chalk.bold('\ncrosscheck adoption') + chalk.dim(` (${periodLabel})\n`));
53
+ if (report.activity.reviews_completed === 0 && report.onboarding.started === 0) {
54
+ console.log(chalk.yellow(' No activity in the retained log window.'));
55
+ console.log(chalk.dim(` Logging is ${retentionDays}d; run a review or check logs.enabled in config.\n`));
56
+ return;
57
+ }
58
+ console.log(chalk.dim(' Activation'));
59
+ console.log(` ${sep}`);
60
+ console.log(` ${'onboard started'.padEnd(26)} ${report.onboarding.started}`);
61
+ console.log(` ${'onboard completed'.padEnd(26)} ${chalk.green(String(report.onboarding.completed))}`);
62
+ if (report.onboarding.abandoned > 0) {
63
+ console.log(` ${'abandoned'.padEnd(26)} ${chalk.yellow(String(report.onboarding.abandoned))}`);
64
+ }
65
+ console.log();
66
+ const a = report.activity;
67
+ console.log(chalk.dim(' Usage'));
68
+ console.log(` ${sep}`);
69
+ console.log(` ${'reviews started'.padEnd(26)} ${a.reviews_started}`);
70
+ console.log(` ${'reviews completed'.padEnd(26)} ${a.reviews_completed}`);
71
+ console.log(` ${'rechecks completed'.padEnd(26)} ${a.rechecks_completed}`);
72
+ console.log(` ${'blocking findings posted'.padEnd(26)} ${chalk.yellow(String(a.blocking_findings_posted))}`);
73
+ console.log(` ${'fixes applied'.padEnd(26)} ${a.fixes_applied}`);
74
+ console.log(` ${'active repos'.padEnd(26)} ${a.active_repos}`);
75
+ // A zero that means "this event did not exist when those reviews ran" reads
76
+ // exactly like a zero that means "it never happened". Say which it is.
77
+ if (a.reviews_completed > 0 && a.blocking_findings_posted === 0) {
78
+ console.log(` ${chalk.dim('ⓘ blocking-finding and latency events are recorded from this version on — reviews logged')}`);
79
+ console.log(` ${chalk.dim(' by an older version carry neither, and read as 0 here until new activity accumulates')}`);
80
+ }
81
+ console.log();
82
+ const weeks = report.weekly.slice(-12);
83
+ if (weeks.length >= 2) {
84
+ console.log(chalk.dim(' Weekly active repos'));
85
+ console.log(` ${sep}`);
86
+ const max = Math.max(...weeks.map(w => w.active_repos));
87
+ for (const w of weeks) {
88
+ const bar = renderBar(w.active_repos, max).padEnd(18);
89
+ console.log(` ${w.week} ${chalk.cyan(bar)} ${String(w.active_repos).padStart(3)} repos ${chalk.dim(`${w.reviews} reviews`)}`);
90
+ }
91
+ console.log();
92
+ }
93
+ const l = report.open_to_verdict;
94
+ if (l.count > 0) {
95
+ console.log(chalk.dim(' PR open → verdict'));
96
+ console.log(` ${sep}`);
97
+ console.log(` ${'median'.padEnd(26)} ${humanDuration(l.p50_ms)}`);
98
+ console.log(` ${'p90'.padEnd(26)} ${humanDuration(l.p90_ms)}`);
99
+ console.log(` ${'slowest'.padEnd(26)} ${humanDuration(l.max_ms)}`);
100
+ console.log(` ${chalk.dim(`measured on ${l.count} verdict${l.count === 1 ? '' : 's'}`)}`);
101
+ if (l.unmeasured > 0) {
102
+ console.log(` ${chalk.dim(`ⓘ ${l.unmeasured} verdict${l.unmeasured === 1 ? '' : 's'} had no PR open time in the event — excluded`)}`);
103
+ }
104
+ console.log();
105
+ }
106
+ const failures = Object.entries(report.first_run_failures).sort(([, a2], [, b2]) => b2 - a2);
107
+ if (failures.length > 0) {
108
+ console.log(chalk.dim(' First-run failures') + chalk.dim(' (sessions that never reached a verdict)'));
109
+ console.log(` ${sep}`);
110
+ for (const [category, count] of failures) {
111
+ console.log(` ${category.padEnd(26)} ${chalk.red(String(count))}`);
112
+ }
113
+ console.log();
114
+ }
115
+ console.log(` ${chalk.dim(`ⓘ derived from local logs only (${retentionDays}d retention) — nothing is transmitted. See docs/metrics.md`)}`);
116
+ console.log();
117
+ }
118
+ export async function runAdoption(opts) {
119
+ const config = loadConfig(opts.config);
120
+ const { files, lines } = readLogLines(opts.since);
121
+ const report = buildAdoptionReport(lines, {
122
+ from: files[0]?.split('/').at(-1)?.replace('.ndjson', '') ?? 'N/A',
123
+ to: files.at(-1)?.split('/').at(-1)?.replace('.ndjson', '') ?? 'N/A',
124
+ log_files: files.length,
125
+ });
126
+ if (opts.json) {
127
+ console.log(JSON.stringify(report, null, 2));
128
+ return;
129
+ }
130
+ formatReport(report, config.logs.retention_days);
131
+ }
132
+ //# sourceMappingURL=adoption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adoption.js","sourceRoot":"","sources":["../../src/commands/adoption.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../src/commands/onboard.ts"],"names":[],"mappings":"AA0BA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAQD,KAAK,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,oBAAoB,CAAA;AAEzE,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,cAAc,GAAG,eAAe,CAAA;IACtC,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAQD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBT,CAAA;AAEV,KAAK,WAAW,GAAG,MAAM,OAAO,aAAa,CAAA;AA4J7C,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,kBAAkB,CAOrG;AA0DD,wBAAgB,mBAAmB,CAAC,WAAW,GAAE,MAAuC,GAAG,cAAc,CAgBxG;AAED,wBAAgB,4BAA4B,CAAC,WAAW,GAAE,MAAuC,GAAG,OAAO,CAO1G;AA4ED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,oBAAoB,CAAA;IAC9C,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAQD,wBAAsB,YAAY,CAChC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,EAC9E,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,cAAc,CAAC,CAkBzB;AAkED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,UAAU,GAAG,MAAM,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,YAAY,EAAE,gBAAgB,CAAA;IAC9B,YAAY,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IACzC,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAA;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,cAAc,EAAE,cAAc,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,eAAe,GAAG,MAAM,CAAA;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,KAAK,GAAG,OAAO,CAAA;IAC9B,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAwDD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,gBAAgB,EAC3B,WAAW,SAAiC,GAC3C,IAAI,CA2NN;AAED,wBAAsB,UAAU,CAAC,IAAI,GAAE,WAAgB,iBAictD"}
1
+ {"version":3,"file":"onboard.d.ts","sourceRoot":"","sources":["../../src/commands/onboard.ts"],"names":[],"mappings":"AA4BA,MAAM,WAAW,WAAW;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAQD,KAAK,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,oBAAoB,CAAA;AAEzE,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,cAAc,GAAG,eAAe,CAAA;IACtC,aAAa,EAAE,OAAO,CAAA;IACtB,YAAY,EAAE,OAAO,CAAA;CACtB,CAAA;AAQD,QAAA,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBT,CAAA;AAEV,KAAK,WAAW,GAAG,MAAM,OAAO,aAAa,CAAA;AA4J7C,MAAM,WAAW,kBAAkB;IACjC,0FAA0F;IAC1F,IAAI,EAAE,WAAW,CAAA;IACjB,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;CACxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,kBAAkB,CAOrG;AA0DD,wBAAgB,mBAAmB,CAAC,WAAW,GAAE,MAAuC,GAAG,cAAc,CAgBxG;AAED,wBAAgB,4BAA4B,CAAC,WAAW,GAAE,MAAuC,GAAG,OAAO,CAO1G;AA4ED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,KAAK,GAAG,SAAS,GAAG,oBAAoB,CAAA;IAC9C,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAQD,wBAAsB,YAAY,CAChC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,EAC9E,IAAI,EAAE,WAAW,GAChB,OAAO,CAAC,cAAc,CAAC,CAkBzB;AAkED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,UAAU,GAAG,MAAM,CAAA;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,EAAE,MAAM,EAAE,CAAA;IACtB,YAAY,EAAE,gBAAgB,CAAA;IAC9B,YAAY,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAA;IACzC,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,OAAO,GAAG,OAAO,CAAA;IAC9B,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,cAAc,EAAE,cAAc,CAAA;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,eAAe,EAAE,OAAO,CAAA;IACxB,aAAa,EAAE,eAAe,GAAG,MAAM,CAAA;IACvC,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,KAAK,GAAG,OAAO,CAAA;IAC9B,MAAM,CAAC,EAAE,cAAc,CAAA;CACxB;AAwDD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,gBAAgB,EAC3B,WAAW,SAAiC,GAC3C,IAAI,CA2NN;AAED,wBAAsB,UAAU,CAAC,IAAI,GAAE,WAAgB,iBA6dtD"}
@@ -12,6 +12,8 @@ import { execSync } from 'child_process';
12
12
  import { promptRepoPicker, promptSinglePicker } from '../lib/repo-picker.js';
13
13
  import { DEFAULT_REVIEW_INSTRUCTIONS, DEFAULT_FIX_INSTRUCTIONS, DEFAULT_RECHECK_INSTRUCTIONS, DEFAULT_CONFLICT_RESOLVE_INSTRUCTIONS } from '../lib/workflow.js';
14
14
  import { formatRepoWorkflowSteps, readRepoWorkflowStepTypes } from '../lib/repo-workflow.js';
15
+ import { initLogger, log as fileLog } from '../lib/logger.js';
16
+ import { LogsConfigSchema } from '../config/schema.js';
15
17
  import { BUNDLED_SKILL_RECOMMENDATIONS, findCompetingSkill, loadSkillCatalog, RECOMMENDED_SKILL_NAMES, } from '../skills/catalog.js';
16
18
  // Effort settings and display hints per quality tier.
17
19
  //
@@ -686,19 +688,35 @@ export async function runOnboard(opts = {}) {
686
688
  console.error(chalk.dim('Run crosscheck init and edit crosscheck.config.yml manually.'));
687
689
  process.exit(1);
688
690
  }
691
+ // Onboard runs before a config exists on a fresh install, so it initialises
692
+ // logging from the schema defaults (enabled, local files only) unless an
693
+ // existing config already opted out or set a custom retention — otherwise
694
+ // re-running onboard on an existing `logs.enabled: false` install would start
695
+ // writing logs again, and could delete logs older than the default retention.
696
+ const preOnboardConfigPath = opts.config ?? resolveConfigPath() ?? join(homedir(), '.crosscheck', 'config.yml');
697
+ const preOnboardConfig = existsSync(preOnboardConfigPath) ? loadConfig(preOnboardConfigPath) : null;
698
+ initLogger(preOnboardConfig?.logs ?? LogsConfigSchema.parse({}));
699
+ fileLog({ level: 'info', event: 'onboard_started', command: 'onboard' });
700
+ // Every path out of onboard reports an outcome, so `started` minus `completed`
701
+ // is the abandonment count rather than a number that also absorbs crashes.
702
+ const onboardAbandoned = (stage) => {
703
+ fileLog({ level: 'info', event: 'onboard_completed', command: 'onboard', outcome: 'abandoned', stage });
704
+ };
689
705
  console.log(chalk.bold('\ncrosscheck onboard\n'));
690
706
  // ── Step 1: Auth check ─────────────────────────────────────────────────────
691
707
  console.log(chalk.bold('Step 1 — environment check'));
692
708
  console.log(chalk.dim(' Confirms the CLIs and auth crosscheck needs before it writes anything.'));
693
709
  const env = await checkEnv();
694
- if (!env.ok)
710
+ if (!env.ok) {
711
+ onboardAbandoned('environment_check');
695
712
  process.exit(1);
713
+ }
696
714
  console.log();
697
715
  // ── Step 2: Deployment mode ────────────────────────────────────────────────
698
716
  console.log(chalk.bold('Step 2 — who you review for'));
699
717
  console.log(chalk.dim(' Personal reviews only PRs you author. Team reviews every author in the org.'));
700
- const configPath = opts.config ?? resolveConfigPath() ?? join(homedir(), '.crosscheck', 'config.yml');
701
- const existingConfig = existsSync(configPath) ? loadConfig(configPath) : null;
718
+ const configPath = preOnboardConfigPath;
719
+ const existingConfig = preOnboardConfig;
702
720
  // Parsed config always carries a `tier` and a `mode` (schema defaults), so
703
721
  // read the raw file to tell an explicit choice from a pre-`mode` config.
704
722
  const rawQuality = (() => {
@@ -752,6 +770,7 @@ export async function runOnboard(opts = {}) {
752
770
  }
753
771
  catch (err) {
754
772
  console.error(chalk.red(err instanceof Error ? err.message : String(err)));
773
+ onboardAbandoned('github_token');
755
774
  process.exit(1);
756
775
  }
757
776
  const login = detectGitHubLogin() ?? '';
@@ -1048,6 +1067,7 @@ export async function runOnboard(opts = {}) {
1048
1067
  const confirm = await ask(` Write to config? [Y/n]: `);
1049
1068
  if (confirm.toLowerCase() === 'n') {
1050
1069
  console.log(chalk.dim(' Aborted — no changes written.'));
1070
+ onboardAbandoned('config_write_declined');
1051
1071
  return;
1052
1072
  }
1053
1073
  }
@@ -1079,6 +1099,13 @@ export async function runOnboard(opts = {}) {
1079
1099
  console.log(chalk.dim(` keeping existing workflow at ${globalWorkflowPath}`));
1080
1100
  }
1081
1101
  console.log();
1102
+ fileLog({
1103
+ level: 'info', event: 'onboard_completed', command: 'onboard', outcome: 'completed',
1104
+ // Shape of the setup, never its contents: counts, not repo or org names.
1105
+ deployment, repos: selectedRepos.length, orgs: selectedOrgs.length,
1106
+ quality_tier: qualityTier, quality_mode: qualityMode, pipeline: pipelinePreset,
1107
+ tunnel: tunnelBackend, linear: linear !== null,
1108
+ });
1082
1109
  // ── Next step hint ─────────────────────────────────────────────────────────
1083
1110
  console.log(chalk.dim(' Run crosscheck watch to start monitoring.'));
1084
1111
  const alterExample = selectedRepos[0] ?? 'owner/repo';