@ai-dossier/cli 0.82.0 → 0.83.0

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
@@ -1236,7 +1236,7 @@ ai-dossier batch compose --backlog [--label backend]... [--search "no:assignee"]
1236
1236
  |---|---|---|
1237
1237
  | `--issues <selection>` | — | Operator picks (fleet grammar: `1,2,5..8`, ≤ 200) |
1238
1238
  | `--backlog` | off | Draw candidates from the open backlog (`gh issue list`, one call) |
1239
- | `--no-backfill` | backfill on | With `--issues`: never query the backlog, even when picks fall below `--min-members` |
1239
+ | `--no-backfill` | backfill on | With `--issues`: never query the backlog, even when picks fall below the target (below) or a held pick's slot is empty |
1240
1240
  | `--label <name>` (repeatable), `--search <q>`, `--limit <n>` | —, —, 100 (max 500) | Backlog filters, passed to `gh issue list` |
1241
1241
  | `--base <branch>` | `main` | The base branch every member shares |
1242
1242
  | `--min-members <n>` / `--max-members <n>` | 3 / 6 | Minimum viable batch / member ceiling (≤ 6) |
@@ -1245,8 +1245,12 @@ ai-dossier batch compose --backlog [--label backend]... [--search "no:assignee"]
1245
1245
  | `--repo`, `--project` | cwd repo, `owner-name` | Target repo; sched project whose queue/config is read |
1246
1246
 
1247
1247
  At least one of `--issues` / `--backlog` is required. With `--issues` alone, the backlog is
1248
- read **only** when the picks by themselves compose fewer than `--min-members` members — counted
1249
- after the caps, so five admissible `review=full` picks (cap 2) still trigger backfill.
1248
+ read **only** when the picks by themselves compose fewer members than the target —
1249
+ `--min-members`, raised to the number of admissible picks (never past `--max-members`) so a pick
1250
+ held over the `review=full` cap gets its slot refilled (#951). Counted after the caps, so five
1251
+ admissible `review=full` picks (cap 2) still trigger backfill.
1252
+
1253
+ **Workspace packages (#801).** "Shares a package" ranking uses the target repo's own workspace config — `pnpm-workspace.yaml`, `package.json` `workspaces`, or `lerna.json`, at the repo root or (imboard's `main/`) in a top-level directory — read via `gh api repos/<r>/contents/…` with `--repo`, or from the local checkout without it. Paths outside every declared workspace belong to no package. Only when no config is found does compose fall back to the path heuristic (`…/packages/<x>/…`, else the first path segment) and say so in a warning; `--json` reports `workspace.source` (`workspace-config` | `heuristic`).
1250
1254
 
1251
1255
  **Admission.** An issue is excluded — with every reason recorded, not just the first — on:
1252
1256
 
@@ -1259,6 +1263,7 @@ after the caps, so five admissible `review=full` picks (cap 2) still trigger bac
1259
1263
  | `hard-block-label` | `decision-pending`, `needs-clarification`, `epic`, `decomposed` |
1260
1264
  | `batch-anchor` | Carries `batch-epic` |
1261
1265
  | `not-a-unit` | Tracker / decision / research / parked: labels `tracker` `decision` `question` `discussion` `research` `parked` `on-hold` `wontfix` `duplicate`; titles like `[PARKED] …`, `research: …`, `epic(x): …`; a `## Decision needed` section |
1266
+ | `not-ready` | **Backlog candidates only** (#802; an explicit `--issues` pick only gets a warning; not under `--rules legacy`). No model call — labels, title and body: a tracker/initiative shape (`initiative`/`umbrella`/`roadmap`/`punch-list` labels, a punch-list/umbrella/roadmap title, an `audit`/`triage` title with a findings list, a checklist of ≥ 10 task items, ≥ 3 task items linking sub-issues, ≥ 3 `Phase N` headings, ≥ 2 strategy/metrics/kill-criteria headings, declared sub-issues), a feature (`enhancement`/`feature` label or `feat:` title) with no acceptance-criteria section, an empty body, or a readiness score below the floor (2: AC section +3, checklist of 1–9 items +2, bounded type `bug`/`chore`/`refactor`/`engineering-ready`/`ready:*`/`fix:` title +2, named code path +1). The message names every signal; survivors are ranked by score (`ready=` in the output) |
1262
1267
  | `in-flight` | Latest runstate milestone is any phase other than `classify` |
1263
1268
  | `sched-active` | A non-terminal, not-yet-merged sched queue entry exists |
1264
1269
  | `open-dependency` | `Depends on #N` with N open and not among the picks; N a pick that is itself excluded; or N whose state could not be read (fails closed) |
@@ -1278,8 +1283,10 @@ provenance clauses and quoted spans removed).
1278
1283
 
1279
1284
  **Composition** (deterministic): every admissible pick joins, bounded by `--max-members` and
1280
1285
  the `review=full` cap; the overflow is listed under `held` (`review-full-cap` / `max-members`).
1281
- Then, while the set is below its target — `--min-members` with picks, `--max-members` with
1282
- `--backlog` alone — admissible backlog issues are added greedily, ranked: shares a workspace
1286
+ Then, while the set is below its target — with picks, `--min-members` raised to the number of
1287
+ admissible picks (never past `--max-members`), so a pick held over the `review=full` cap has its
1288
+ slot refilled, `light` while the cap is full (#951 — the held pick waits for the next batch-prep
1289
+ run; no extra small batch is opened for it); `--max-members` with `--backlog` alone — admissible backlog issues are added greedily, ranked: shares a workspace
1283
1290
  package with the current members → `light` before `full` → more shared packages → lower issue
1284
1291
  number. Packages come from a plan:v1 artifact's predicted files when present, else from paths
1285
1292
  named in the issue body (`…/packages/<x>/…` → `packages/<x>`, else the first path segment).
@@ -1338,7 +1345,11 @@ branch on `status`, take `manifest_entries`, and report `excluded`:
1338
1345
  `jq '{entries: [.manifest_entries[] | . + {batch: $b, anchor: $a}]}' --arg b b-20260924-02 --argjson a 4410`.
1339
1346
  - `backfill` is present only with `--issues`: every admissible backlog candidate, ranked
1340
1347
  against the admitted picks, `selected: true` on the ones the composition took.
1341
- - `held` lists admissible issues left out (`review-full-cap`, `max-members`).
1348
+ - `held` lists admissible issues left out: `reason` (`review-full-cap`, `max-members`),
1349
+ `review_reasons` (as on `members`), and a `note` saying where the issue goes next (a pick:
1350
+ submit it again in the next batch-prep run; a backlog issue: stays in the backlog). The
1351
+ `recommendation` names held picks (#951), e.g.
1352
+ `{ "issue": 3549, "title": "…", "review": "full", "source": "pick", "packages": [], "readiness": 2, "reason": "review-full-cap", "review_reasons": ["Title/body/labels match 'rule4-deploy-pipeline' (keyword: 'cicd')."], "note": "Held for the next batch-prep run — the ≤ 2 review=full cap is taken by higher-ranked members; submit #3549 again then (no extra small batch is opened for it)." }`.
1342
1353
  - `degraded`/`warnings` name any lookup that did not complete (an unreadable pick, the backlog
1343
1354
  list, a dependency's state, the sched queue/config); the result reflects what did complete.
1344
1355
  - `model_calls` is always `0`.
@@ -13,7 +13,9 @@
13
13
  * Pure and dependency-free (no `gh`, network, fs, or model) — same discipline as `prescreen.ts`.
14
14
  * All I/O (fetching issues, dependency states, the sched queue) lives in `commands/batch.ts`.
15
15
  */
16
+ import { type ReadinessAssessment } from './batch-readiness';
16
17
  import { type PrescreenReason } from './prescreen';
18
+ import { type WorkspaceLayout } from './workspace-layout';
17
19
  /** Version of the `batch compose --json` contract. Bump on any breaking shape change. */
18
20
  export declare const COMPOSE_SCHEMA = "batch-compose:v1";
19
21
  /** Default floor below which a composition is reported `under-min` and backfill is proposed (#770 P4). */
@@ -30,7 +32,7 @@ export declare const MIN_FORMABLE_MEMBERS = 2;
30
32
  */
31
33
  export type ComposeRules = 'v2' | 'legacy';
32
34
  /** Why an issue cannot join a batch. Stable codes — consumers branch on `code`, humans read `message`. */
33
- export type ExclusionCode = 'unreadable' | 'closed' | 'assigned' | 'in-progress' | 'hard-block-label' | 'batch-anchor' | 'in-flight' | 'sched-active' | 'open-dependency' | 'data-mutation' | 'not-a-unit' | 'prescreen-full' | 'legacy-full';
35
+ export type ExclusionCode = 'unreadable' | 'closed' | 'assigned' | 'in-progress' | 'hard-block-label' | 'batch-anchor' | 'in-flight' | 'sched-active' | 'open-dependency' | 'data-mutation' | 'not-a-unit' | 'not-ready' | 'prescreen-full' | 'legacy-full';
34
36
  export interface ExclusionReason {
35
37
  code: ExclusionCode;
36
38
  message: string;
@@ -70,6 +72,8 @@ export interface AssessedIssue {
70
72
  packages: string[];
71
73
  /** Every prescreen finding — the reason a member is `review=full`. */
72
74
  prescreen: PrescreenReason[];
75
+ /** Deterministic readiness (#802): score, positive signals, blockers. Ranks backfill; excludes backlog issues that are not ready. */
76
+ readiness: ReadinessAssessment;
73
77
  /** Empty when admissible. */
74
78
  excluded: ExclusionReason[];
75
79
  }
@@ -96,21 +100,25 @@ export declare function matchDataMutation(text: string): string | null;
96
100
  export declare const NOT_A_UNIT_LABELS: readonly string[];
97
101
  /** Why the issue is not one implementable unit, or null. */
98
102
  export declare function notAUnitReason(title: string, body: string, labels: readonly string[]): string | null;
99
- /** The workspace package a repo-relative path belongs to: `…/packages/<x>/…` → `packages/<x>`, else its first segment. */
100
- export declare function workspaceOf(path: string): string | null;
103
+ /**
104
+ * The workspace package a repo-relative path belongs to. With the repo's declared workspace
105
+ * `layout` (#801) that is the declared workspace or null; without one, the path heuristic:
106
+ * `…/packages/<x>/…` → `packages/<x>`, else its first segment.
107
+ */
108
+ export declare function workspaceOf(path: string, layout?: WorkspaceLayout | null): string | null;
101
109
  /**
102
110
  * Workspace packages an issue is predicted to touch. A plan:v1 artifact's predicted files win
103
111
  * (they are the plan's own claim); otherwise path tokens named in the change-surface body
104
112
  * (reference sections and provenance removed, but quoted spans KEPT — backticked paths are the
105
113
  * main signal here). Sorted, de-duplicated, capped at {@link MAX_PACKAGES}.
106
114
  */
107
- export declare function inferPackages(body: string, predictedFiles?: readonly string[]): string[];
115
+ export declare function inferPackages(body: string, predictedFiles?: readonly string[], layout?: WorkspaceLayout | null): string[];
108
116
  /**
109
117
  * Deterministic admission for one issue: readiness (batch-issues-preparation Step 1/5) +
110
118
  * prescreen:v4 (#772/#805/#818) + data-mutation. Records EVERY exclusion reason, not just the first, so an
111
119
  * operator sees the whole picture of why a pick cannot join.
112
120
  */
113
- export declare function assessIssue(input: ComposeIssueInput, rules?: ComposeRules): AssessedIssue;
121
+ export declare function assessIssue(input: ComposeIssueInput, rules?: ComposeRules, layout?: WorkspaceLayout | null): AssessedIssue;
114
122
  export interface ComposeOptions {
115
123
  rules: ComposeRules;
116
124
  baseBranch: string;
@@ -127,6 +135,8 @@ export interface ComposedMember {
127
135
  review: 'light' | 'full';
128
136
  source: 'pick' | 'backfill' | 'backlog';
129
137
  packages: string[];
138
+ /** Readiness score (#802) — higher = better specified. */
139
+ readiness: number;
130
140
  /** Why `review=full` (prescreen findings); empty for `light`. */
131
141
  review_reasons: string[];
132
142
  }
@@ -137,7 +147,12 @@ export interface HeldIssue {
137
147
  review: 'light' | 'full';
138
148
  source: 'pick' | 'backlog';
139
149
  packages: string[];
150
+ readiness: number;
140
151
  reason: 'review-full-cap' | 'max-members';
152
+ /** Why `review=full` (prescreen findings); empty for `light`. */
153
+ review_reasons: string[];
154
+ /** What happens to it — held for the next batch-prep run, never an extra small batch (#951). */
155
+ note: string;
141
156
  }
142
157
  export interface BackfillCandidate {
143
158
  rank: number;
@@ -145,6 +160,7 @@ export interface BackfillCandidate {
145
160
  title: string;
146
161
  review: 'light' | 'full';
147
162
  packages: string[];
163
+ readiness: number;
148
164
  /** Packages it shares with the operator's admitted picks — the ranking's first key. */
149
165
  shared_packages: string[];
150
166
  /** Whether the proposed composition takes it. */
@@ -161,11 +177,23 @@ export interface CompositionResult {
161
177
  /** One line saying what to do with this result. */
162
178
  recommendation: string;
163
179
  }
180
+ /**
181
+ * How many members the fill aims for. Picks mode fills every slot a pick asked for (#951): a pick
182
+ * held over the review=full cap has its slot refilled — light only, the cap is already full; a
183
+ * pick held for max-members changes nothing (members are already at `maxMembers`); otherwise this
184
+ * is `minMembers`, as before. Backlog-only mode fills to `maxMembers`. The command layer uses the
185
+ * same number to decide whether to fetch the backlog at all.
186
+ */
187
+ export declare function backfillTarget(admissiblePicks: number, opts: ComposeOptions): number;
164
188
  /**
165
189
  * Propose a composition from assessed issues. Picks first (they are the operator's intent) —
166
190
  * all admissible picks join, bounded by `maxMembers` and the `review=full` cap; then, while the
167
- * set is below its target (`minMembers` with picks, `maxMembers` from the backlog alone), backfill
168
- * from admissible backlog issues. Member order: picks, then backfill, each in selection order.
191
+ * set is below its target, backfill from admissible backlog issues. The picks-mode target is
192
+ * `minMembers`, raised to the number of admissible picks (capped at `maxMembers`) so that a pick
193
+ * held over the `review=full` cap has its slot refilled — #951 Option (b): an over-cap pick is
194
+ * held for the next batch-prep run and its slot backfilled (light while the cap is full), never
195
+ * split into an extra small batch. Backlog-only mode fills to `maxMembers`. Member order: picks,
196
+ * then backfill, each in selection order.
169
197
  */
170
198
  export declare function composeBatch(assessed: AssessedIssue[], opts: ComposeOptions): CompositionResult;
171
199
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"batch-compose.d.ts","sourceRoot":"","sources":["../src/batch-compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-compose.d.ts","sourceRoot":"","sources":["../src/batch-compose.ts"],"names":[],"mappings":"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"}
@@ -21,10 +21,13 @@ exports.notAUnitReason = notAUnitReason;
21
21
  exports.workspaceOf = workspaceOf;
22
22
  exports.inferPackages = inferPackages;
23
23
  exports.assessIssue = assessIssue;
24
+ exports.backfillTarget = backfillTarget;
24
25
  exports.composeBatch = composeBatch;
25
26
  exports.applyPickDependencies = applyPickDependencies;
27
+ const batch_readiness_1 = require("./batch-readiness");
26
28
  const hard_block_labels_1 = require("./hard-block-labels");
27
29
  const prescreen_1 = require("./prescreen");
30
+ const workspace_layout_1 = require("./workspace-layout");
28
31
  /** Version of the `batch compose --json` contract. Bump on any breaking shape change. */
29
32
  exports.COMPOSE_SCHEMA = 'batch-compose:v1';
30
33
  /** Default floor below which a composition is reported `under-min` and backfill is proposed (#770 P4). */
@@ -140,8 +143,14 @@ function isPathToken(token) {
140
143
  token.endsWith('/') ||
141
144
  segments.slice(0, -1).some((s) => WORKSPACE_PARENTS.has(s)));
142
145
  }
143
- /** The workspace package a repo-relative path belongs to: `…/packages/<x>/…` → `packages/<x>`, else its first segment. */
144
- function workspaceOf(path) {
146
+ /**
147
+ * The workspace package a repo-relative path belongs to. With the repo's declared workspace
148
+ * `layout` (#801) that is the declared workspace or null; without one, the path heuristic:
149
+ * `…/packages/<x>/…` → `packages/<x>`, else its first segment.
150
+ */
151
+ function workspaceOf(path, layout) {
152
+ if (layout)
153
+ return (0, workspace_layout_1.packageOfPath)(path, layout);
145
154
  const segments = path
146
155
  .replace(/^\.\//, '')
147
156
  .split('/')
@@ -159,7 +168,7 @@ function workspaceOf(path) {
159
168
  * (reference sections and provenance removed, but quoted spans KEPT — backticked paths are the
160
169
  * main signal here). Sorted, de-duplicated, capped at {@link MAX_PACKAGES}.
161
170
  */
162
- function inferPackages(body, predictedFiles) {
171
+ function inferPackages(body, predictedFiles, layout) {
163
172
  const paths = predictedFiles !== undefined && predictedFiles.length > 0
164
173
  ? [...predictedFiles]
165
174
  : [...(0, prescreen_1.stripReferenceMaterial)(body).matchAll(PATH_TOKEN_RE)]
@@ -168,7 +177,7 @@ function inferPackages(body, predictedFiles) {
168
177
  .filter(isPathToken);
169
178
  const out = new Set();
170
179
  for (const p of paths) {
171
- const ws = workspaceOf(p);
180
+ const ws = workspaceOf(p, layout);
172
181
  if (ws !== null)
173
182
  out.add(ws);
174
183
  }
@@ -192,7 +201,7 @@ const COMPOSE_OWN_CHECKS = new Set([
192
201
  * prescreen:v4 (#772/#805/#818) + data-mutation. Records EVERY exclusion reason, not just the first, so an
193
202
  * operator sees the whole picture of why a pick cannot join.
194
203
  */
195
- function assessIssue(input, rules = 'v2') {
204
+ function assessIssue(input, rules = 'v2', layout) {
196
205
  const base = { issue: input.issue, source: input.source, title: input.title };
197
206
  if (input.error !== undefined) {
198
207
  return {
@@ -201,6 +210,7 @@ function assessIssue(input, rules = 'v2') {
201
210
  review: 'full',
202
211
  packages: [],
203
212
  prescreen: [],
213
+ readiness: { score: 0, ready: false, blockers: [], signals: [] },
204
214
  excluded: [{ code: 'unreadable', message: input.error }],
205
215
  };
206
216
  }
@@ -279,6 +289,16 @@ function assessIssue(input, rules = 'v2') {
279
289
  const notUnit = notAUnitReason(input.title, input.body, input.labels);
280
290
  if (notUnit !== null)
281
291
  excluded.push({ code: 'not-a-unit', message: notUnit });
292
+ // Readiness (#802): only for BACKLOG candidates — an operator's explicit pick is intent, so it
293
+ // keeps its `readiness` record (and the command warns) but is never dropped by this screen.
294
+ // `--rules legacy` reproduces pre-#770 admission, which had no readiness screen.
295
+ const readiness = (0, batch_readiness_1.assessReadiness)(input.title, input.body, input.labels);
296
+ if (rules === 'v2' && input.source === 'backlog' && !readiness.ready) {
297
+ excluded.push({
298
+ code: 'not-ready',
299
+ message: `Not ready to batch — ${readiness.blockers.join('; ')}.`,
300
+ });
301
+ }
282
302
  const dataMutation = matchDataMutation((0, prescreen_1.floorScanText)(input.title, input.body, input.labels));
283
303
  if (dataMutation !== null) {
284
304
  excluded.push({
@@ -302,13 +322,15 @@ function assessIssue(input, rules = 'v2') {
302
322
  ...base,
303
323
  admissible: excluded.length === 0,
304
324
  review: verdict.review,
305
- packages: inferPackages(input.body, input.predictedFiles),
325
+ packages: inferPackages(input.body, input.predictedFiles, layout),
306
326
  prescreen: verdict.reasons,
327
+ readiness,
307
328
  excluded,
308
329
  };
309
330
  }
310
331
  /**
311
- * Order candidates against the current member set: sharing a package first, then `light` before
332
+ * Order candidates against the current member set: sharing a package first, then better-specified
333
+ * (readiness, #802 — bounded bugs/chores ahead of under-specified work), then `light` before
312
334
  * `full` (a full slot is scarce — the cap), then more shared packages first, then issue number ascending
313
335
  * (older first). With no members yet, "shared" means shared with the other candidates, so the
314
336
  * seed comes from the largest package cluster.
@@ -330,6 +352,8 @@ function rank(candidates, members) {
330
352
  const sy = y.shared.length > 0 ? 1 : 0;
331
353
  if (sx !== sy)
332
354
  return sy - sx;
355
+ if (x.a.readiness.score !== y.a.readiness.score)
356
+ return y.a.readiness.score - x.a.readiness.score;
333
357
  if (x.a.review !== y.a.review)
334
358
  return x.a.review === 'light' ? -1 : 1;
335
359
  if (x.shared.length !== y.shared.length)
@@ -370,14 +394,47 @@ function toMember(a, source) {
370
394
  review: a.review,
371
395
  source,
372
396
  packages: a.packages,
373
- review_reasons: a.review === 'full' ? a.prescreen.map((r) => r.message) : [],
397
+ readiness: a.readiness.score,
398
+ review_reasons: reviewReasons(a),
374
399
  };
375
400
  }
401
+ /** Why an issue is `review=full` (its prescreen findings); empty for `light`. */
402
+ function reviewReasons(a) {
403
+ return a.review === 'full' ? a.prescreen.map((r) => r.message) : [];
404
+ }
405
+ /** Where a held issue goes — the same words the recommendation uses (#951). */
406
+ const NEXT_RUN = 'the next batch-prep run';
407
+ function heldNote(a, reason, opts) {
408
+ const why = reason === 'max-members'
409
+ ? `the batch is at max_members=${opts.maxMembers}`
410
+ : opts.maxFullReview === 0
411
+ ? 'review=full members are disabled (--max-full-review 0)'
412
+ : `the ≤ ${opts.maxFullReview} review=full cap is taken by higher-ranked members`;
413
+ return a.source === 'pick'
414
+ ? `Held for ${NEXT_RUN} — ${why}; submit #${a.issue} again then (no extra small batch is opened for it).`
415
+ : `Held for ${NEXT_RUN} — ${why}; #${a.issue} stays in the backlog and ${NEXT_RUN} reconsiders it.`;
416
+ }
417
+ /**
418
+ * How many members the fill aims for. Picks mode fills every slot a pick asked for (#951): a pick
419
+ * held over the review=full cap has its slot refilled — light only, the cap is already full; a
420
+ * pick held for max-members changes nothing (members are already at `maxMembers`); otherwise this
421
+ * is `minMembers`, as before. Backlog-only mode fills to `maxMembers`. The command layer uses the
422
+ * same number to decide whether to fetch the backlog at all.
423
+ */
424
+ function backfillTarget(admissiblePicks, opts) {
425
+ if (!opts.picksMode)
426
+ return opts.maxMembers;
427
+ return Math.min(Math.max(opts.minMembers, admissiblePicks), opts.maxMembers);
428
+ }
376
429
  /**
377
430
  * Propose a composition from assessed issues. Picks first (they are the operator's intent) —
378
431
  * all admissible picks join, bounded by `maxMembers` and the `review=full` cap; then, while the
379
- * set is below its target (`minMembers` with picks, `maxMembers` from the backlog alone), backfill
380
- * from admissible backlog issues. Member order: picks, then backfill, each in selection order.
432
+ * set is below its target, backfill from admissible backlog issues. The picks-mode target is
433
+ * `minMembers`, raised to the number of admissible picks (capped at `maxMembers`) so that a pick
434
+ * held over the `review=full` cap has its slot refilled — #951 Option (b): an over-cap pick is
435
+ * held for the next batch-prep run and its slot backfilled (light while the cap is full), never
436
+ * split into an extra small batch. Backlog-only mode fills to `maxMembers`. Member order: picks,
437
+ * then backfill, each in selection order.
381
438
  */
382
439
  function composeBatch(assessed, opts) {
383
440
  const admissible = assessed.filter((a) => a.admissible);
@@ -390,7 +447,10 @@ function composeBatch(assessed, opts) {
390
447
  review: a.review,
391
448
  source: a.source,
392
449
  packages: a.packages,
450
+ readiness: a.readiness.score,
393
451
  reason,
452
+ review_reasons: reviewReasons(a),
453
+ note: heldNote(a, reason, opts),
394
454
  });
395
455
  // 1. Operator picks — every admissible pick, up to the caps.
396
456
  const pickFill = fill(picks, [], opts.maxMembers, opts.maxFullReview);
@@ -402,7 +462,7 @@ function composeBatch(assessed, opts) {
402
462
  hold(a, pickFill.capped.includes(a) ? 'review-full-cap' : 'max-members');
403
463
  }
404
464
  // 2. Backfill / backlog fill.
405
- const target = opts.picksMode ? Math.min(opts.minMembers, opts.maxMembers) : opts.maxMembers;
465
+ const target = backfillTarget(picks.length, opts);
406
466
  const backFill = fill(backlog, pickFill.taken, target, opts.maxFullReview);
407
467
  for (const a of backFill.taken)
408
468
  members.push(toMember(a, opts.picksMode ? 'backfill' : 'backlog'));
@@ -415,6 +475,7 @@ function composeBatch(assessed, opts) {
415
475
  title: r.a.title,
416
476
  review: r.a.review,
417
477
  packages: r.a.packages,
478
+ readiness: r.a.readiness.score,
418
479
  shared_packages: r.shared,
419
480
  selected: takenBack.has(r.a.issue),
420
481
  }))
@@ -434,6 +495,8 @@ function composeBatch(assessed, opts) {
434
495
  .filter(([, n]) => n >= 2)
435
496
  .map(([p]) => p)
436
497
  .sort();
498
+ const heldPicks = held.filter((h) => h.source === 'pick');
499
+ const heldList = heldPicks.map((h) => `#${h.issue} (${h.reason})`).join(', ');
437
500
  let status;
438
501
  let recommendation;
439
502
  if (members.length >= opts.minMembers) {
@@ -442,7 +505,7 @@ function composeBatch(assessed, opts) {
442
505
  }
443
506
  else if (members.length >= exports.MIN_FORMABLE_MEMBERS) {
444
507
  status = 'under-min';
445
- recommendation = `Only ${members.length} admissible member(s), below min_members=${opts.minMembers} — widen the backlog query or accept a small batch.`;
508
+ recommendation = `Only ${members.length} member(s) fit${heldPicks.length > 0 ? ` (${heldPicks.length} admissible pick(s) held over the caps)` : ''}, below min_members=${opts.minMembers} — backfill ran dry; widen the backlog query or accept a small batch.`;
446
509
  }
447
510
  else {
448
511
  status = 'no-batch';
@@ -451,6 +514,13 @@ function composeBatch(assessed, opts) {
451
514
  ? `Do not form a batch — run #${members[0].issue} as a full-cycle issue.`
452
515
  : 'Do not form a batch — nothing admissible.';
453
516
  }
517
+ // Held PICKS are the operator's intent deferred — name them so the next run picks them up.
518
+ if (heldPicks.length > 0) {
519
+ recommendation +=
520
+ status === 'no-batch'
521
+ ? ` Also admissible but held by the caps: ${heldList} — no batch forms, so submit them again in ${NEXT_RUN} or take them through full-cycle.`
522
+ : ` Held for ${NEXT_RUN}: ${heldList}.`;
523
+ }
454
524
  return { status, members, held, backfill, shared_packages: shared, recommendation };
455
525
  }
456
526
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"batch-compose.js","sourceRoot":"","sources":["../src/batch-compose.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"batch-compose.js","sourceRoot":"","sources":["../src/batch-compose.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAsJH,8CAGC;AA8BD,wCAaC;AAoCD,kCAWC;AAQD,sCAkBC;AAwBD,kCA+IC;AA+KD,wCAGC;AAYD,oCAwFC;AAOD,sDAyBC;AAxuBD,uDAA8E;AAC9E,2DAA6E;AAC7E,2CAUqB;AACrB,yDAAyE;AAEzE,yFAAyF;AAC5E,QAAA,cAAc,GAAG,kBAAkB,CAAC;AAEjD,0GAA0G;AAC7F,QAAA,mBAAmB,GAAG,CAAC,CAAC;AAErC,sGAAsG;AACzF,QAAA,mBAAmB,GAAG,CAAC,CAAC;AAErC,+GAA+G;AAClG,QAAA,oBAAoB,GAAG,CAAC,CAAC;AA0EtC,mGAAmG;AAEnG;;;;;;;;;;GAUG;AACU,QAAA,qBAAqB,GAAsB;IACtD,gBAAgB;IAChB,kBAAkB;IAClB,cAAc;IACd,uBAAuB;IACvB,0BAA0B;IAC1B,4BAA4B;IAC5B,eAAe;IACf,iBAAiB;IACjB,mBAAmB;IACnB,cAAc;IACd,qBAAqB;IACrB,gBAAgB;IAChB,iBAAiB;IACjB,aAAa;IACb,aAAa;IACb,cAAc;IACd,aAAa;IACb,UAAU;IACV,cAAc;IACd,kBAAkB;IAClB,wBAAwB;IACxB,wBAAwB;IACxB,wBAAwB;IACxB,qBAAqB;CACtB,CAAC;AAEF,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,iBAAiB,GAAG,6BAAqB,CAAC,GAAG,CACjD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAU,CAC/F,CAAC;AAEF,2EAA2E;AAC3E,SAAgB,iBAAiB,CAAC,IAAY;IAC5C,KAAK,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,iBAAiB;QAAE,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,MAAM,CAAC;IAC/E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,kGAAkG;AAElG;;;;;GAKG;AACU,QAAA,iBAAiB,GAAsB;IAClD,SAAS;IACT,UAAU;IACV,UAAU;IACV,YAAY;IACZ,UAAU;IACV,QAAQ;IACR,SAAS;IACT,SAAS;IACT,WAAW;CACZ,CAAC;AAEF,6GAA6G;AAC7G,MAAM,mBAAmB,GACvB,wLAAwL,CAAC;AAE3L,oGAAoG;AACpG,MAAM,mBAAmB,GAAG,8DAA8D,CAAC;AAE3F,4DAA4D;AAC5D,SAAgB,cAAc,CAC5B,KAAa,EACb,IAAY,EACZ,MAAyB;IAEzB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,yBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,gBAAgB,KAAK,UAAU,CAAC;IAChE,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,OAAO,4DAA4D,CAAC;IACtE,IAAI,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,OAAO,gEAAgE,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,mGAAmG;AAEnG,8FAA8F;AAC9F,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAElG;;;GAGG;AACH,MAAM,aAAa,GAAG,kDAAkD,CAAC;AAEzE,yFAAyF;AACzF,MAAM,YAAY,GAAG,CAAC,CAAC;AAEvB,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACtE,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC3C,wFAAwF;IACxF,0FAA0F;IAC1F,2EAA2E;IAC3E,OAAO,CACL,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;QAChC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QACnB,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAC5D,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,IAAY,EAAE,MAA+B;IACvE,IAAI,MAAM;QAAE,OAAO,IAAA,gCAAa,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,IAAI;SAClB,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;SACpB,KAAK,CAAC,GAAG,CAAC;SACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAAE,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;IACrF,CAAC;IACD,yEAAyE;IACzE,OAAO,QAAQ,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAC3B,IAAY,EACZ,cAAkC,EAClC,MAA+B;IAE/B,MAAM,KAAK,GACT,cAAc,KAAK,SAAS,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;QACvD,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC;QACrB,CAAC,CAAC,CAAC,GAAG,IAAA,kCAAsB,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;YACvD,iEAAiE;aAChE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;aACpC,MAAM,CAAC,WAAW,CAAC,CAAC;IAC7B,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,EAAE,GAAG,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAClC,IAAI,EAAE,KAAK,IAAI;YAAE,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IACD,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;AAChD,CAAC;AAED,mGAAmG;AAEnG,uEAAuE;AACvE,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAExC,0FAA0F;AAC1F,MAAM,cAAc,GAAG,UAAU,CAAC;AAElC;;;GAGG;AACH,MAAM,kBAAkB,GAA0C,IAAI,GAAG,CAAC;IACxE,kBAAkB;IAClB,iBAAiB;CAClB,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAgB,WAAW,CACzB,KAAwB,EACxB,QAAsB,IAAI,EAC1B,MAA+B;IAE/B,MAAM,IAAI,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC9E,IAAI,KAAK,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO;YACL,GAAG,IAAI;YACP,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,EAAE;YACb,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE;YAChE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC;SACzD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAsB,EAAE,CAAC;IACvC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;IAExD,IAAI,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,KAAK,CAAC,KAAK,IAAI,UAAU,GAAG,EAAE,CAAC,CAAC;IACvF,CAAC;IACD,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,UAAU;YAChB,OAAO,EAAE,eAAe,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAC1E,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,gBAAgB,iBAAiB,UAAU,EAAE,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,MAAM,CAAC,QAAQ,CAAC,sCAAkB,CAAC,EAAE,CAAC;QACxC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,YAAY,sCAAkB,gDAAgD;SACxF,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,IAAI,KAAK,CAAC,WAAW,KAAK,cAAc,EAAE,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,uCAAuC,KAAK,CAAC,WAAW,qCAAqC;SACvG,CAAC,CAAC;IACL,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,oDAAoD,KAAK,CAAC,WAAW,KAAK;SACpF,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,IAAA,0BAAc,EAAC;QAC7B,KAAK,EAAE,KAAK,CAAC,KAAK;QAClB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,cAAc,EAAE,KAAK,CAAC,cAAc;QACpC,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;KACzC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAA,sCAAkB,EAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACnD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,6BAA6B,SAAS,IAAI;SACpD,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,gBAAgB,IAAI,EAAE,EAAE,CAAC;QAC/C,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,eAAe,GAAG,qDAAqD;SACjF,CAAC,CAAC;IACL,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,EAAE,CAAC;QAClD,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,iBAAiB;YACvB,OAAO,EAAE,eAAe,GAAG,oDAAoD;SAChF,CAAC,CAAC;IACL,CAAC;IACD,6FAA6F;IAC7F,gGAAgG;IAChG,2FAA2F;IAC3F,0FAA0F;IAC1F,uFAAuF;IACvF,iGAAiG;IACjG,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAC5C,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,4BAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACnE,CAAC,KAAK,KAAK,QAAQ,IAAI,mCAAuB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAC/D,CAAC;IACF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,gBAAgB;YACtB,OAAO,EAAE,GAAG,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,GAAG,4BAAgB,eAAe,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;SAC/J,CAAC,CAAC;IACL,CAAC;IAED,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtE,IAAI,OAAO,KAAK,IAAI;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IAE9E,+FAA+F;IAC/F,4FAA4F;IAC5F,iFAAiF;IACjF,MAAM,SAAS,GAAG,IAAA,iCAAe,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACzE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACrE,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,wBAAwB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAClE,CAAC,CAAC;IACL,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,IAAA,yBAAa,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7F,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,4BAA4B,YAAY,qDAAqD;SACvG,CAAC,CAAC;IACL,CAAC;IAED,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,uFAAuF;QACvF,uFAAuF;QACvF,MAAM,MAAM,GAAG,IAAA,4BAAgB,EAAC,GAAG,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5F,MAAM,GAAG,GAAG,+BAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAU,CAAC,CAAC,IAAI,CACjF,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CACxB,CAAC;QACF,IAAI,GAAG,EAAE,CAAC;YACR,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,kBAAkB,GAAG,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,8DAA8D;aACpH,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO;QACL,GAAG,IAAI;QACP,UAAU,EAAE,QAAQ,CAAC,MAAM,KAAK,CAAC;QACjC,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,cAAc,EAAE,MAAM,CAAC;QACjE,SAAS,EAAE,OAAO,CAAC,OAAO;QAC1B,SAAS;QACT,QAAQ;KACT,CAAC;AACJ,CAAC;AAyED;;;;;;GAMG;AACH,SAAS,IAAI,CAAC,UAA2B,EAAE,OAAwB;IACjE,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAClC,IAAI,MAAgB,CAAC;QACrB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CACtE,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnB,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,EAAE,GAAG,EAAE,CAAC;QAC9B,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK;YAC7C,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC;QACnD,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAClF,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;GAIG;AACH,SAAS,IAAI,CACX,IAAqB,EACrB,OAAwB,EACxB,MAAc,EACd,aAAqB;IAErB,MAAM,KAAK,GAAoB,EAAE,CAAC;IAClC,MAAM,MAAM,GAAoB,EAAE,CAAC;IACnC,IAAI,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,IAAI,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAClE,OAAO,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtE,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,GAAG,OAAO,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CACvD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,SAAS,GAAG,aAAa,CAC3D,CAAC;QACF,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM;QAC9B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACnB,IAAI,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM;YAAE,SAAS,EAAE,CAAC;QAC1C,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAChE,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,IAAI,SAAS,IAAI,aAAa;YAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAED,SAAS,QAAQ,CAAC,CAAgB,EAAE,MAAgC;IAClE,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM;QACN,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK;QAC5B,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;KACjC,CAAC;AACJ,CAAC;AAED,iFAAiF;AACjF,SAAS,aAAa,CAAC,CAAgB;IACrC,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,+EAA+E;AAC/E,MAAM,QAAQ,GAAG,yBAAyB,CAAC;AAE3C,SAAS,QAAQ,CAAC,CAAgB,EAAE,MAA2B,EAAE,IAAoB;IACnF,MAAM,GAAG,GACP,MAAM,KAAK,aAAa;QACtB,CAAC,CAAC,+BAA+B,IAAI,CAAC,UAAU,EAAE;QAClD,CAAC,CAAC,IAAI,CAAC,aAAa,KAAK,CAAC;YACxB,CAAC,CAAC,wDAAwD;YAC1D,CAAC,CAAC,SAAS,IAAI,CAAC,aAAa,oDAAoD,CAAC;IACxF,OAAO,CAAC,CAAC,MAAM,KAAK,MAAM;QACxB,CAAC,CAAC,YAAY,QAAQ,MAAM,GAAG,aAAa,CAAC,CAAC,KAAK,sDAAsD;QACzG,CAAC,CAAC,YAAY,QAAQ,MAAM,GAAG,MAAM,CAAC,CAAC,KAAK,6BAA6B,QAAQ,kBAAkB,CAAC;AACxG,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,cAAc,CAAC,eAAuB,EAAE,IAAoB;IAC1E,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC,UAAU,CAAC;IAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAgB,YAAY,CAAC,QAAyB,EAAE,IAAoB;IAC1E,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;IAEjE,MAAM,IAAI,GAAgB,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,CAAC,CAAgB,EAAE,MAA2B,EAAE,EAAE,CAC7D,IAAI,CAAC,IAAI,CAAC;QACR,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK;QAC5B,MAAM;QACN,cAAc,EAAE,aAAa,CAAC,CAAC,CAAC;QAChC,IAAI,EAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC;KAChC,CAAC,CAAC;IAEL,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IACtE,MAAM,OAAO,GAAqB,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAAE,SAAS;QACtC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAC3E,CAAC;IAED,8BAA8B;IAC9B,MAAM,MAAM,GAAG,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3E,KAAK,MAAM,CAAC,IAAI,QAAQ,CAAC,KAAK;QAC5B,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9D,kFAAkF;IAClF,MAAM,QAAQ,GAAwB,IAAI,CAAC,SAAS;QAClD,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3C,IAAI,EAAE,CAAC,GAAG,CAAC;YACX,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;YAChB,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK;YAChB,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM;YAClB,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ;YACtB,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK;YAC9B,eAAe,EAAE,CAAC,CAAC,MAAM;YACzB,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;SACnC,CAAC,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAE,SAAS;YACrC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,OAAO;QAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;YAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC7F,MAAM,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;SACjC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;SACzB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACf,IAAI,EAAE,CAAC;IAEV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,MAAqB,CAAC;IAC1B,IAAI,cAAsB,CAAC;IAC3B,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACtC,MAAM,GAAG,IAAI,CAAC;QACd,cAAc,GAAG,qBAAqB,OAAO,CAAC,MAAM,QAAQ,IAAI,CAAC,UAAU,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,MAAM,gBAAgB,CAAC;IACrJ,CAAC;SAAM,IAAI,OAAO,CAAC,MAAM,IAAI,4BAAoB,EAAE,CAAC;QAClD,MAAM,GAAG,WAAW,CAAC;QACrB,cAAc,GAAG,QAAQ,OAAO,CAAC,MAAM,iBAAiB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,MAAM,yCAAyC,CAAC,CAAC,CAAC,EAAE,uBAAuB,IAAI,CAAC,UAAU,uEAAuE,CAAC;IAClQ,CAAC;SAAM,CAAC;QACN,MAAM,GAAG,UAAU,CAAC;QACpB,cAAc;YACZ,OAAO,CAAC,MAAM,KAAK,CAAC;gBAClB,CAAC,CAAC,8BAA8B,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,yBAAyB;gBACzE,CAAC,CAAC,2CAA2C,CAAC;IACpD,CAAC;IACD,2FAA2F;IAC3F,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzB,cAAc;YACZ,MAAM,KAAK,UAAU;gBACnB,CAAC,CAAC,0CAA0C,QAAQ,8CAA8C,QAAQ,mCAAmC;gBAC7I,CAAC,CAAC,aAAa,QAAQ,KAAK,QAAQ,GAAG,CAAC;IAC9C,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,CAAC;AACtF,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CACnC,QAAyB,EACzB,QAAgD,EAChD,MAAkC;IAElC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,OAAO,GAAG,IAAI,CAAC;IACnB,OAAO,OAAO,EAAE,CAAC;QACf,OAAO,GAAG,KAAK,CAAC;QAChB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,IAAI,CAAC,CAAC,CAAC,UAAU;gBAAE,SAAS;YAC5B,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC9C,MAAM,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC3B,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;oBAAE,SAAS;gBAC9D,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,eAAe,GAAG,yCAAyC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;iBACjH,CAAC,CAAC;gBACH,CAAC,CAAC,UAAU,GAAG,KAAK,CAAC;gBACrB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Deterministic READINESS screen for `batch compose` (#802, #770 root cause 3).
3
+ *
4
+ * Admissibility (labels, claims, prescreen) is not readiness: a backlog backfill admitted a
5
+ * portfolio-mode feature, a 27-finding mobile punch list and two acquisition initiatives as
6
+ * `review=light` members because none of them trips a hard-block label. batch-issues-preparation
7
+ * documents the screen an operator applies by eye — a bounded stopping point, acceptance criteria
8
+ * present, not a tracker/epic/feature — and this module applies it without a model call, from the
9
+ * issue's labels, title and body only.
10
+ *
11
+ * Two kinds of signal:
12
+ * - BLOCKERS (hard): tracker/initiative shape (label, title, checklist count, linked sub-issues,
13
+ * multi-phase headings), a feature with no acceptance criteria, an empty body. Any blocker ⇒ not ready.
14
+ * - SCORE (soft): acceptance criteria present, a bounded-type label/title (`bug`, `chore`,
15
+ * `refactor`, `engineering-ready`, `ready:*`, `fix:`…), named code paths. Below
16
+ * {@link READINESS_FLOOR} ⇒ not ready ("nothing says this is bounded"); above it, the score
17
+ * ranks backfill so bounded bugs/chores come before under-specified work.
18
+ *
19
+ * Pure and dependency-free, same discipline as `prescreen.ts`.
20
+ */
21
+ /** Minimum score for an issue with no blocker to count as ready. */
22
+ export declare const READINESS_FLOOR = 2;
23
+ /** A checklist this long is a tracker/punch list, not one change's acceptance criteria. */
24
+ export declare const TRACKER_CHECKLIST_MIN = 10;
25
+ /** Task-list items that are themselves issue links: this many ⇒ a tracker with sub-issues. */
26
+ export declare const TRACKER_SUBISSUE_MIN = 3;
27
+ /** Initiative-shaped headings (strategy, metrics, kill criteria…): this many distinct ones ⇒ an initiative, not one change. */
28
+ export declare const INITIATIVE_HEADINGS_MIN = 2;
29
+ /** `Phase 1` / `Part 2` / `Milestone 3` headings: this many ⇒ a multi-stage initiative. */
30
+ export declare const INITIATIVE_PHASE_HEADINGS_MIN = 3;
31
+ /** Bodies shorter than this (trimmed) carry no spec at all. */
32
+ export declare const MIN_BODY_LENGTH = 40;
33
+ /** Labels that mark tracker/initiative-shaped work (`tracker`/`epic` are excluded elsewhere, as `not-a-unit`/`hard-block-label`). */
34
+ export declare const TRACKER_LABELS: readonly string[];
35
+ /** Labels that mark an issue as a feature request. */
36
+ export declare const FEATURE_LABELS: readonly string[];
37
+ /** Labels that mark bounded, implementable work. `ready:*` is matched by {@link READY_LABEL_RE}. */
38
+ export declare const BOUNDED_LABELS: readonly string[];
39
+ export interface ReadinessAssessment {
40
+ /** Soft score: higher = better specified. Ranks backfill; compared to {@link READINESS_FLOOR}. */
41
+ score: number;
42
+ /** No blocker and score ≥ floor. */
43
+ ready: boolean;
44
+ /** Hard reasons this is not one bounded change — each a human-readable clause. */
45
+ blockers: string[];
46
+ /** Positive signals that raised the score. */
47
+ signals: string[];
48
+ }
49
+ /** Readiness of one issue, from its labels, title and body alone. */
50
+ export declare function assessReadiness(title: string, rawBody: string, labels: readonly string[]): ReadinessAssessment;
51
+ //# sourceMappingURL=batch-readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"batch-readiness.d.ts","sourceRoot":"","sources":["../src/batch-readiness.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,oEAAoE;AACpE,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,2FAA2F;AAC3F,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,+HAA+H;AAC/H,eAAO,MAAM,uBAAuB,IAAI,CAAC;AAEzC,2FAA2F;AAC3F,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAK/C,+DAA+D;AAC/D,eAAO,MAAM,eAAe,KAAK,CAAC;AAElC,qIAAqI;AACrI,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAM3C,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAK3C,CAAC;AAEF,oGAAoG;AACpG,eAAO,MAAM,cAAc,EAAE,SAAS,MAAM,EAQ3C,CAAC;AAkDF,MAAM,WAAW,mBAAmB;IAClC,kGAAkG;IAClG,KAAK,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,EAAE,OAAO,CAAC;IACf,kFAAkF;IAClF,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,8CAA8C;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAID,qEAAqE;AACrE,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,SAAS,MAAM,EAAE,GACxB,mBAAmB,CA6FrB"}