@on-par/factory-cli 0.9.17-next.5 → 0.9.17-next.6

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.
@@ -1,6 +1,6 @@
1
1
  // packages/cli/src/cli/ready-check.ts — read-only `factory check <issue>` report (#1729)
2
2
  import { findIssueDependencies, formatCostTotal, gradeIssueCriteria, gradeIssueInvest, scoreIssueReadiness, } from '@on-par/factory-core';
3
- import { buildDecompositionPrompt, buildReadinessGapPrompt, parseDecompositionOutput, parseReadinessGapOutput, } from '@on-par/factory-core/internal';
3
+ import { buildDecompositionPrompt, judgeReadiness, parseDecompositionOutput, } from '@on-par/factory-core/internal';
4
4
  /** Backs `--deep` with a router; captures the call's cost without writing costs.jsonl. */
5
5
  export function createDeepModelRunner(router, worktree) {
6
6
  let lastCost = null;
@@ -19,6 +19,15 @@ export class DeepCheckError extends Error {
19
19
  this.name = 'DeepCheckError';
20
20
  }
21
21
  }
22
+ /** The readiness judge failed (model error or unparseable output after one repair); `check` exits 2. */
23
+ export class ReadinessJudgeError extends Error {
24
+ errorKind;
25
+ constructor(errorKind, detail) {
26
+ super(`readiness judge failed (${errorKind}): ${detail}`);
27
+ this.errorKind = errorKind;
28
+ this.name = 'ReadinessJudgeError';
29
+ }
30
+ }
22
31
  export function buildIssueCheckReport(issue, readiness, criteria = null, invest = null) {
23
32
  const wouldSplit = readiness.sizeOk === false;
24
33
  const size = wouldSplit
@@ -31,6 +40,12 @@ export function buildIssueCheckReport(issue, readiness, criteria = null, invest
31
40
  reasons.push(size.reason);
32
41
  return {
33
42
  issue,
43
+ schemaVersion: 1,
44
+ verdict: null,
45
+ summary: null,
46
+ questions: [],
47
+ assumptions: [],
48
+ judge: null,
34
49
  template: readiness.template,
35
50
  score: Math.round(readiness.score * 100),
36
51
  fields: { pass: readiness.pass, missing: [...readiness.missing] },
@@ -41,10 +56,55 @@ export function buildIssueCheckReport(issue, readiness, criteria = null, invest
41
56
  exitCode: notReady ? 1 : wouldSplit ? 3 : 0,
42
57
  };
43
58
  }
59
+ /** Folds a readiness judge result into the heading-based report; the verdict decides exit 1. */
60
+ export function applyJudgeResult(report, result, unpriced) {
61
+ if (result.kind === 'skipped')
62
+ return { ...report, judgeSkipped: 'epic' };
63
+ if (result.kind === 'error')
64
+ throw new ReadinessJudgeError(result.errorKind, result.detail);
65
+ const { verdict } = result;
66
+ const fresh = unpriced && !result.cached;
67
+ const reasons = verdict.verdict === 'not-ready' ? verdict.questions.map((q) => `question: [${q.aspect}] ${q.text}`) : [];
68
+ if (report.size.reason)
69
+ reasons.push(report.size.reason);
70
+ return {
71
+ ...report,
72
+ verdict: verdict.verdict,
73
+ summary: verdict.summary,
74
+ questions: verdict.questions.map((q) => ({ aspect: q.aspect, text: q.text })),
75
+ assumptions: verdict.assumptions.map((a) => ({ aspect: a.aspect, text: a.text })),
76
+ judge: {
77
+ model: result.model,
78
+ cost: fresh ? null : result.cost,
79
+ unpriced: fresh,
80
+ cached: result.cached,
81
+ promptVersion: result.promptVersion,
82
+ bodyHash: result.bodyHash,
83
+ },
84
+ reasons,
85
+ exitCode: verdict.verdict === 'not-ready' ? 1 : report.size.verdict === 'would-split' ? 3 : 0,
86
+ };
87
+ }
88
+ function numberedItems(label, items) {
89
+ if (items.length === 0)
90
+ return [];
91
+ return [`${label}:`, ...items.map((item, i) => ` ${i + 1}. [${item.aspect}] ${item.text}`)];
92
+ }
44
93
  export function formatIssueCheckLines(report) {
45
94
  const lines = [];
46
- const state = report.exitCode === 1 ? 'is not factory-ready' : 'is factory-ready';
47
- lines.push(`issue #${report.issue} ${state} (${report.template}, score ${report.score}%)`);
95
+ if (report.judge) {
96
+ const j = report.judge;
97
+ lines.push(`issue #${report.issue}: ${report.verdict} (${j.model}, ${j.cached ? 'cached' : 'fresh'}, ${formatCostTotal(j.cost, j.unpriced ? 1 : 0)})`);
98
+ lines.push(`summary: ${report.summary}`);
99
+ lines.push(...numberedItems('questions', report.questions), ...numberedItems('assumptions', report.assumptions));
100
+ lines.push(`advisory: ${report.template}, score ${report.score}%`);
101
+ }
102
+ else {
103
+ const state = report.exitCode === 1 ? 'is not factory-ready' : 'is factory-ready';
104
+ lines.push(`issue #${report.issue} ${state} (${report.template}, score ${report.score}%)`);
105
+ if (report.judgeSkipped)
106
+ lines.push('judge - skipped (epic)');
107
+ }
48
108
  for (const field of report.fields.missing)
49
109
  lines.push(` missing: ${field}`);
50
110
  if (report.criteria) {
@@ -69,67 +129,34 @@ export function formatGapCriterion(c) {
69
129
  return `${c.name} (When: ${c.when.join('; ')} — Then: ${c.then.join('; ')})`;
70
130
  }
71
131
  export async function runDeepCheck(input, runModel) {
72
- const task = input.wouldSplit ? 'decompose' : 'triage';
73
- const prompt = input.wouldSplit
74
- ? buildDecompositionPrompt({ title: input.title, body: input.body })
75
- : buildReadinessGapPrompt({ title: input.title, body: input.body });
76
132
  let result;
77
133
  try {
78
- result = await runModel(task, prompt);
134
+ result = await runModel('decompose', buildDecompositionPrompt({ title: input.title, body: input.body }));
79
135
  }
80
136
  catch (err) {
81
137
  throw new DeepCheckError(`model call failed: ${err instanceof Error ? err.message : String(err)}`);
82
138
  }
83
- const unpriced = result.cost === null;
84
- if (input.wouldSplit) {
85
- const parsed = parseDecompositionOutput(result.output);
86
- if (!parsed.ok)
87
- throw new DeepCheckError(`model returned invalid output: ${parsed.reason}`);
88
- const children = parsed.decomposition.stories.map((s) => ({
89
- title: s.title,
90
- acceptanceCriteria: s.acceptanceCriteria.map(formatGapCriterion),
91
- }));
92
- return { kind: 'split', model: result.model, cost: result.cost, unpriced, children };
93
- }
94
- const parsed = parseReadinessGapOutput(result.output);
139
+ const parsed = parseDecompositionOutput(result.output);
95
140
  if (!parsed.ok)
96
141
  throw new DeepCheckError(`model returned invalid output: ${parsed.reason}`);
97
- return { kind: 'gaps', model: result.model, cost: result.cost, unpriced, gaps: parsed.gaps };
142
+ const children = parsed.decomposition.stories.map((s) => ({
143
+ title: s.title,
144
+ acceptanceCriteria: s.acceptanceCriteria.map(formatGapCriterion),
145
+ }));
146
+ return { kind: 'split', model: result.model, cost: result.cost, unpriced: result.cost === null, children };
98
147
  }
99
148
  export function formatDeepCheckLines(deep) {
100
- const lines = [];
101
- if (deep.kind === 'split') {
102
- lines.push(`deep: proposed split (preview only — nothing filed), ${deep.children.length} child stories`);
103
- deep.children.forEach((child, i) => {
104
- lines.push(` ${i + 1}. ${child.title}`);
105
- for (const c of child.acceptanceCriteria)
106
- lines.push(` - ${c}`);
107
- });
108
- }
109
- else {
110
- lines.push('deep: suggested missing criteria');
111
- if (deep.gaps.missingCriteria.length === 0)
112
- lines.push(' (none)');
113
- for (const c of deep.gaps.missingCriteria)
114
- lines.push(` - ${formatGapCriterion(c)}`);
115
- const sections = [
116
- ['unclear scope:', deep.gaps.unclearScope],
117
- ['negotiable:', deep.gaps.negotiable],
118
- ['estimable:', deep.gaps.estimable],
119
- ];
120
- for (const [label, items] of sections) {
121
- if (items.length === 0)
122
- continue;
123
- lines.push(label);
124
- for (const item of items)
125
- lines.push(` - ${item}`);
126
- }
127
- }
149
+ const lines = [`deep: proposed split (preview only — nothing filed), ${deep.children.length} child stories`];
150
+ deep.children.forEach((child, i) => {
151
+ lines.push(` ${i + 1}. ${child.title}`);
152
+ for (const c of child.acceptanceCriteria)
153
+ lines.push(` - ${c}`);
154
+ });
128
155
  lines.push(`model: ${deep.model}, cost: ${formatCostTotal(deep.cost, deep.unpriced ? 1 : 0)}`);
129
156
  return lines;
130
157
  }
131
158
  export async function runIssueCheck(issue, opts, deps) {
132
- const { title, body } = await deps.getIssue(issue);
159
+ const { title, body, labels } = await deps.getIssue(issue);
133
160
  const readiness = scoreIssueReadiness({ title, body: body ?? '' });
134
161
  const criteria = readiness.template === 'factory-task' ? gradeIssueCriteria(body ?? '') : null;
135
162
  let invest = null;
@@ -148,11 +175,31 @@ export async function runIssueCheck(issue, opts, deps) {
148
175
  }));
149
176
  invest = gradeIssueInvest(body ?? '', states);
150
177
  }
151
- const report = buildIssueCheckReport(issue, readiness, criteria, invest);
152
- if (opts.deep) {
178
+ let report = buildIssueCheckReport(issue, readiness, criteria, invest);
179
+ if (opts.judge !== false) {
180
+ const runModel = deps.runModel;
181
+ if (!runModel)
182
+ throw new ReadinessJudgeError('model-error', 'no model runner configured');
183
+ let unpriced = false;
184
+ const result = await judgeReadiness({
185
+ title,
186
+ body: body ?? '',
187
+ labels: (labels ?? []).map((l) => (typeof l === 'string' ? l : (l.name ?? ''))).filter(Boolean),
188
+ run: async (prompt) => {
189
+ const r = await runModel('readiness_judge', prompt);
190
+ if (r.cost === null)
191
+ unpriced = true;
192
+ return { model: r.model, output: r.output, cost: r.cost ?? 0 };
193
+ },
194
+ cache: deps.readinessCacheDir ? { dir: deps.readinessCacheDir } : undefined,
195
+ rejudge: opts.rejudge,
196
+ });
197
+ report = applyJudgeResult(report, result, unpriced);
198
+ }
199
+ if (opts.deep && report.size.verdict === 'would-split') {
153
200
  if (!deps.runModel)
154
201
  throw new DeepCheckError('no model runner configured');
155
- report.deep = await runDeepCheck({ title, body: body ?? '', wouldSplit: report.size.verdict === 'would-split' }, deps.runModel);
202
+ report.deep = await runDeepCheck({ title, body: body ?? '' }, deps.runModel);
156
203
  }
157
204
  if (opts.json) {
158
205
  deps.log(JSON.stringify(report));
@@ -163,7 +210,28 @@ export async function runIssueCheck(issue, opts, deps) {
163
210
  if (report.deep)
164
211
  for (const line of formatDeepCheckLines(report.deep))
165
212
  deps.log(line);
213
+ else if (opts.deep)
214
+ deps.log('deep: runs as-is, no split preview');
166
215
  }
167
216
  return report;
168
217
  }
218
+ /** Maps a judge or `--deep` failure to the CLI exit (2); null for any other error. */
219
+ export function checkErrorExit(err) {
220
+ if (err instanceof ReadinessJudgeError)
221
+ return { message: `factory: readiness judge failed — ${err.message}`, code: 2 };
222
+ if (err instanceof DeepCheckError)
223
+ return { message: `factory: --deep failed — ${err.message}`, code: 2 };
224
+ return null;
225
+ }
226
+ /** Maps a finished report to the CLI exit: 1 not-ready (or missing fields with --no-judge), 3 would split. */
227
+ export function checkReportExit(report) {
228
+ if (report.exitCode === 1) {
229
+ const state = report.verdict ?? 'not factory-ready';
230
+ return { message: `factory: issue #${report.issue} is ${state} — ${report.reasons.join('; ')}`, code: 1 };
231
+ }
232
+ if (report.exitCode === 3) {
233
+ return { message: `factory: issue #${report.issue} would split — ${report.size.reason}`, code: 3 };
234
+ }
235
+ return null;
236
+ }
169
237
  //# sourceMappingURL=ready-check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ready-check.js","sourceRoot":"","sources":["../../src/cli/ready-check.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ready-check.js","sourceRoot":"","sources":["../../src/cli/ready-check.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@on-par/factory-cli",
3
- "version": "0.9.17-next.5",
3
+ "version": "0.9.17-next.6",
4
4
  "description": "On PAR Dev's Software Factory CLI: takes a GitHub issue through plan, build and check with AI agents, then opens a ready-for-review PR.",
5
5
  "keywords": [
6
6
  "ai-agents",
@@ -48,9 +48,9 @@
48
48
  "@octokit/plugin-retry": "^8.1.1",
49
49
  "@octokit/plugin-throttling": "^11.0.5",
50
50
  "@octokit/rest": "^22.0.0",
51
- "@on-par/factory-config": "0.9.17-next.5",
52
- "@on-par/factory-core": "0.9.17-next.5",
53
- "@on-par/factory-tui": "0.9.17-next.5",
51
+ "@on-par/factory-config": "0.9.17-next.6",
52
+ "@on-par/factory-core": "0.9.17-next.6",
53
+ "@on-par/factory-tui": "0.9.17-next.6",
54
54
  "commander": "^15.0.0",
55
55
  "zod": "^4.6.5"
56
56
  },
@@ -0,0 +1,305 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "issue": {
6
+ "type": "integer",
7
+ "minimum": -9007199254740991,
8
+ "maximum": 9007199254740991
9
+ },
10
+ "schemaVersion": {
11
+ "type": "number",
12
+ "const": 1
13
+ },
14
+ "verdict": {
15
+ "anyOf": [
16
+ {
17
+ "type": "string",
18
+ "enum": ["ready", "ready-with-assumptions", "not-ready"]
19
+ },
20
+ {
21
+ "type": "null"
22
+ }
23
+ ]
24
+ },
25
+ "summary": {
26
+ "type": ["string", "null"]
27
+ },
28
+ "questions": {
29
+ "type": "array",
30
+ "items": {
31
+ "type": "object",
32
+ "properties": {
33
+ "aspect": {
34
+ "type": "string"
35
+ },
36
+ "text": {
37
+ "type": "string"
38
+ }
39
+ },
40
+ "required": ["aspect", "text"],
41
+ "additionalProperties": false
42
+ }
43
+ },
44
+ "assumptions": {
45
+ "type": "array",
46
+ "items": {
47
+ "type": "object",
48
+ "properties": {
49
+ "aspect": {
50
+ "type": "string"
51
+ },
52
+ "text": {
53
+ "type": "string"
54
+ }
55
+ },
56
+ "required": ["aspect", "text"],
57
+ "additionalProperties": false
58
+ }
59
+ },
60
+ "judge": {
61
+ "anyOf": [
62
+ {
63
+ "type": "object",
64
+ "properties": {
65
+ "model": {
66
+ "type": "string"
67
+ },
68
+ "cost": {
69
+ "type": ["number", "null"]
70
+ },
71
+ "unpriced": {
72
+ "type": "boolean"
73
+ },
74
+ "cached": {
75
+ "type": "boolean"
76
+ },
77
+ "promptVersion": {
78
+ "type": "string"
79
+ },
80
+ "bodyHash": {
81
+ "type": "string"
82
+ }
83
+ },
84
+ "required": ["model", "cost", "unpriced", "cached", "promptVersion", "bodyHash"],
85
+ "additionalProperties": false
86
+ },
87
+ {
88
+ "type": "null"
89
+ }
90
+ ]
91
+ },
92
+ "judgeSkipped": {
93
+ "type": "string",
94
+ "const": "epic"
95
+ },
96
+ "template": {
97
+ "type": "string",
98
+ "description": "advisory"
99
+ },
100
+ "score": {
101
+ "type": "number",
102
+ "description": "advisory"
103
+ },
104
+ "fields": {
105
+ "type": "object",
106
+ "properties": {
107
+ "pass": {
108
+ "type": "boolean"
109
+ },
110
+ "missing": {
111
+ "type": "array",
112
+ "items": {
113
+ "type": "string"
114
+ }
115
+ }
116
+ },
117
+ "required": ["pass", "missing"],
118
+ "additionalProperties": false,
119
+ "description": "advisory"
120
+ },
121
+ "criteria": {
122
+ "anyOf": [
123
+ {
124
+ "type": "object",
125
+ "properties": {
126
+ "findings": {
127
+ "type": "array",
128
+ "items": {
129
+ "type": "object",
130
+ "properties": {
131
+ "index": {
132
+ "type": "integer",
133
+ "minimum": -9007199254740991,
134
+ "maximum": 9007199254740991
135
+ },
136
+ "text": {
137
+ "type": "string"
138
+ },
139
+ "grade": {
140
+ "type": "string",
141
+ "enum": ["structured", "unstructured", "empty"]
142
+ },
143
+ "observable": {
144
+ "type": "boolean"
145
+ },
146
+ "note": {
147
+ "type": "string"
148
+ }
149
+ },
150
+ "required": ["index", "text", "grade", "observable"],
151
+ "additionalProperties": false
152
+ }
153
+ },
154
+ "verificationCommand": {
155
+ "type": ["boolean", "null"]
156
+ },
157
+ "problems": {
158
+ "type": "array",
159
+ "items": {
160
+ "type": "string"
161
+ }
162
+ },
163
+ "pass": {
164
+ "type": "boolean"
165
+ }
166
+ },
167
+ "required": ["findings", "verificationCommand", "problems", "pass"],
168
+ "additionalProperties": false
169
+ },
170
+ {
171
+ "type": "null"
172
+ }
173
+ ],
174
+ "description": "advisory"
175
+ },
176
+ "size": {
177
+ "type": "object",
178
+ "properties": {
179
+ "verdict": {
180
+ "type": "string",
181
+ "enum": ["runs-as-is", "would-split"]
182
+ },
183
+ "reason": {
184
+ "type": "string"
185
+ }
186
+ },
187
+ "required": ["verdict"],
188
+ "additionalProperties": false
189
+ },
190
+ "invest": {
191
+ "anyOf": [
192
+ {
193
+ "type": "object",
194
+ "properties": {
195
+ "findings": {
196
+ "type": "array",
197
+ "items": {
198
+ "type": "object",
199
+ "properties": {
200
+ "letter": {
201
+ "type": "string"
202
+ },
203
+ "status": {
204
+ "type": "string",
205
+ "enum": ["pass", "warn", "not-checked"]
206
+ },
207
+ "reason": {
208
+ "type": "string"
209
+ }
210
+ },
211
+ "required": ["letter", "status", "reason"],
212
+ "additionalProperties": false
213
+ }
214
+ }
215
+ },
216
+ "required": ["findings"],
217
+ "additionalProperties": false
218
+ },
219
+ {
220
+ "type": "null"
221
+ }
222
+ ],
223
+ "description": "advisory"
224
+ },
225
+ "reasons": {
226
+ "type": "array",
227
+ "items": {
228
+ "type": "string"
229
+ }
230
+ },
231
+ "exitCode": {
232
+ "anyOf": [
233
+ {
234
+ "type": "number",
235
+ "const": 0
236
+ },
237
+ {
238
+ "type": "number",
239
+ "const": 1
240
+ },
241
+ {
242
+ "type": "number",
243
+ "const": 3
244
+ }
245
+ ]
246
+ },
247
+ "deep": {
248
+ "type": "object",
249
+ "properties": {
250
+ "kind": {
251
+ "type": "string",
252
+ "const": "split"
253
+ },
254
+ "model": {
255
+ "type": "string"
256
+ },
257
+ "cost": {
258
+ "type": ["number", "null"]
259
+ },
260
+ "unpriced": {
261
+ "type": "boolean"
262
+ },
263
+ "children": {
264
+ "type": "array",
265
+ "items": {
266
+ "type": "object",
267
+ "properties": {
268
+ "title": {
269
+ "type": "string"
270
+ },
271
+ "acceptanceCriteria": {
272
+ "type": "array",
273
+ "items": {
274
+ "type": "string"
275
+ }
276
+ }
277
+ },
278
+ "required": ["title", "acceptanceCriteria"],
279
+ "additionalProperties": false
280
+ }
281
+ }
282
+ },
283
+ "required": ["kind", "model", "cost", "unpriced", "children"],
284
+ "additionalProperties": false
285
+ }
286
+ },
287
+ "required": [
288
+ "issue",
289
+ "schemaVersion",
290
+ "verdict",
291
+ "summary",
292
+ "questions",
293
+ "assumptions",
294
+ "judge",
295
+ "template",
296
+ "score",
297
+ "fields",
298
+ "criteria",
299
+ "size",
300
+ "invest",
301
+ "reasons",
302
+ "exitCode"
303
+ ],
304
+ "additionalProperties": false
305
+ }