@ai-dossier/cli 0.82.0 → 0.83.1
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 +17 -6
- package/dist/batch-compose.d.ts +35 -7
- package/dist/batch-compose.d.ts.map +1 -1
- package/dist/batch-compose.js +82 -12
- package/dist/batch-compose.js.map +1 -1
- package/dist/batch-readiness.d.ts +51 -0
- package/dist/batch-readiness.d.ts.map +1 -0
- package/dist/batch-readiness.js +187 -0
- package/dist/batch-readiness.js.map +1 -0
- package/dist/commands/batch.d.ts +11 -0
- package/dist/commands/batch.d.ts.map +1 -1
- package/dist/commands/batch.js +110 -9
- package/dist/commands/batch.js.map +1 -1
- package/dist/commands/publish.d.ts.map +1 -1
- package/dist/commands/publish.js +3 -2
- package/dist/commands/publish.js.map +1 -1
- package/dist/commands/remove.d.ts.map +1 -1
- package/dist/commands/remove.js +3 -2
- package/dist/commands/remove.js.map +1 -1
- package/dist/prescreen.d.ts +12 -2
- package/dist/prescreen.d.ts.map +1 -1
- package/dist/prescreen.js +186 -34
- package/dist/prescreen.js.map +1 -1
- package/dist/workspace-layout.d.ts +57 -0
- package/dist/workspace-layout.d.ts.map +1 -0
- package/dist/workspace-layout.js +192 -0
- package/dist/workspace-layout.js.map +1 -0
- package/package.json +1 -1
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
|
|
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
|
|
1249
|
-
|
|
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 —
|
|
1282
|
-
`--
|
|
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`.
|
package/dist/batch-compose.d.ts
CHANGED
|
@@ -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
|
-
/**
|
|
100
|
-
|
|
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
|
|
168
|
-
*
|
|
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":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"batch-compose.d.ts","sourceRoot":"","sources":["../src/batch-compose.ts"],"names":[],"mappings":"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"}
|
package/dist/batch-compose.js
CHANGED
|
@@ -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
|
-
/**
|
|
144
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
380
|
-
*
|
|
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 =
|
|
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
|
|
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":"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"}
|
|
@@ -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"}
|