@cleocode/core 2026.5.131 → 2026.5.133
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/db/index.d.ts +36 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +36 -0
- package/dist/db/index.js.map +1 -0
- package/dist/gc/daemon.d.ts +17 -8
- package/dist/gc/daemon.d.ts.map +1 -1
- package/dist/gc/daemon.js +24 -67
- package/dist/gc/daemon.js.map +1 -1
- package/dist/gc/gc-subsystem.d.ts +96 -0
- package/dist/gc/gc-subsystem.d.ts.map +1 -0
- package/dist/gc/gc-subsystem.js +186 -0
- package/dist/gc/gc-subsystem.js.map +1 -0
- package/dist/gc/index.d.ts +1 -0
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +1 -0
- package/dist/gc/index.js.map +1 -1
- package/dist/go/driver.d.ts +132 -0
- package/dist/go/driver.d.ts.map +1 -0
- package/dist/go/driver.js +191 -0
- package/dist/go/driver.js.map +1 -0
- package/dist/go/index.d.ts +13 -0
- package/dist/go/index.d.ts.map +1 -0
- package/dist/go/index.js +13 -0
- package/dist/go/index.js.map +1 -0
- package/dist/goal/advance-with-persist.d.ts +80 -0
- package/dist/goal/advance-with-persist.d.ts.map +1 -0
- package/dist/goal/advance-with-persist.js +105 -0
- package/dist/goal/advance-with-persist.js.map +1 -0
- package/dist/goal/arm.d.ts +61 -0
- package/dist/goal/arm.d.ts.map +1 -0
- package/dist/goal/arm.js +65 -0
- package/dist/goal/arm.js.map +1 -0
- package/dist/goal/index.d.ts +2 -0
- package/dist/goal/index.d.ts.map +1 -1
- package/dist/goal/index.js +2 -0
- package/dist/goal/index.js.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/orchestrate/lifecycle-ops.js +1 -1
- package/dist/orchestrate/lifecycle-ops.js.map +1 -1
- package/dist/orchestration/classify-readiness.d.ts +172 -0
- package/dist/orchestration/classify-readiness.d.ts.map +1 -0
- package/dist/orchestration/classify-readiness.js +346 -0
- package/dist/orchestration/classify-readiness.js.map +1 -0
- package/dist/orchestration/index.d.ts +2 -0
- package/dist/orchestration/index.d.ts.map +1 -1
- package/dist/orchestration/index.js +1 -0
- package/dist/orchestration/index.js.map +1 -1
- package/dist/output.d.ts +2 -0
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +59 -1
- package/dist/output.js.map +1 -1
- package/dist/release/pr-evidence.d.ts +4 -3
- package/dist/release/pr-evidence.d.ts.map +1 -1
- package/dist/release/pr-evidence.js +4 -3
- package/dist/release/pr-evidence.js.map +1 -1
- package/dist/sagas/index.d.ts +1 -0
- package/dist/sagas/index.d.ts.map +1 -1
- package/dist/sagas/index.js +1 -0
- package/dist/sagas/index.js.map +1 -1
- package/dist/sagas/next.d.ts +77 -0
- package/dist/sagas/next.d.ts.map +1 -0
- package/dist/sagas/next.js +159 -0
- package/dist/sagas/next.js.map +1 -0
- package/dist/sentient/daemon-entry.d.ts +6 -0
- package/dist/sentient/daemon-entry.d.ts.map +1 -1
- package/dist/sentient/daemon-entry.js +10 -1
- package/dist/sentient/daemon-entry.js.map +1 -1
- package/dist/sentient/daemon.d.ts +30 -0
- package/dist/sentient/daemon.d.ts.map +1 -1
- package/dist/sentient/daemon.js +12 -2
- package/dist/sentient/daemon.js.map +1 -1
- package/dist/sentient/index.d.ts +2 -0
- package/dist/sentient/index.d.ts.map +1 -1
- package/dist/sentient/index.js +5 -0
- package/dist/sentient/index.js.map +1 -1
- package/dist/sentient/propose-tick.d.ts +101 -0
- package/dist/sentient/propose-tick.d.ts.map +1 -1
- package/dist/sentient/propose-tick.js +284 -0
- package/dist/sentient/propose-tick.js.map +1 -1
- package/dist/sentient/tick.d.ts +23 -0
- package/dist/sentient/tick.d.ts.map +1 -1
- package/dist/sentient/tick.js +91 -21
- package/dist/sentient/tick.js.map +1 -1
- package/dist/store/dual-scope-db.d.ts +183 -0
- package/dist/store/dual-scope-db.d.ts.map +1 -0
- package/dist/store/dual-scope-db.js +315 -0
- package/dist/store/dual-scope-db.js.map +1 -0
- package/dist/store/open-cleo-db.d.ts +51 -4
- package/dist/store/open-cleo-db.d.ts.map +1 -1
- package/dist/store/open-cleo-db.js +56 -2
- package/dist/store/open-cleo-db.js.map +1 -1
- package/dist/store/schema/cleo-global/nexus.d.ts +1 -1
- package/dist/store/schema/cleo-global/signaldock.d.ts +1 -1
- package/dist/store/schema/cleo-shared/brain.d.ts +1 -1
- package/dist/tasks/add.d.ts.map +1 -1
- package/dist/tasks/add.js +16 -2
- package/dist/tasks/add.js.map +1 -1
- package/dist/tasks/evidence.d.ts +3 -2
- package/dist/tasks/evidence.d.ts.map +1 -1
- package/dist/tasks/evidence.js.map +1 -1
- package/dist/verification/verify-tools.d.ts +164 -0
- package/dist/verification/verify-tools.d.ts.map +1 -0
- package/dist/verification/verify-tools.js +236 -0
- package/dist/verification/verify-tools.js.map +1 -0
- package/package.json +16 -11
- package/templates/CLEO-INJECTION.md +3 -2
- package/templates/workflows/release-prepare.yml.tmpl +86 -7
|
@@ -0,0 +1,346 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grill-Gate Predicate — E3-GRILL-GATE (T11495)
|
|
3
|
+
*
|
|
4
|
+
* Decides whether a task unit is ready to proceed autonomously (`proceed`)
|
|
5
|
+
* or needs human/orchestrator clarification before work starts (`grill`).
|
|
6
|
+
*
|
|
7
|
+
* The predicate is pure: it operates on pre-loaded task data + optional
|
|
8
|
+
* supporting signals and never opens a DB or calls the network directly.
|
|
9
|
+
* Callers (e.g. `cleo go`) supply the unit + signals; the predicate
|
|
10
|
+
* focuses solely on classification logic.
|
|
11
|
+
*
|
|
12
|
+
* ## Grill triggers (AC2)
|
|
13
|
+
* 1. Missing acceptance criteria — task has no `acceptance` entries.
|
|
14
|
+
* 2. Owner-decision required — task carries an `owner-decision` label OR
|
|
15
|
+
* `blockedBy` contains "owner" / "decision" text.
|
|
16
|
+
* 3. IVTR max-retries exhausted — any phase in `ivtrLoopBackCount` has
|
|
17
|
+
* reached {@link MAX_LOOP_BACKS_PER_PHASE} (requires HITL escalation).
|
|
18
|
+
* 4. Release/publish gate active — task `pipelineStage` is `'release'` and
|
|
19
|
+
* no HITL approval token is present (reuses existing `orchestrate approve`
|
|
20
|
+
* / `reject` / `pending` surface — no new HITL introduced).
|
|
21
|
+
* 5. Scope ambiguity — epic-type task with no children AND no attached spec
|
|
22
|
+
* or research artifact (blob list) — cannot be safely autonomously worked.
|
|
23
|
+
*
|
|
24
|
+
* ## Auto-proceed condition (AC2)
|
|
25
|
+
* - Implementation-or-later epic (`pipelineStage` ∈ `implementation-stages`)
|
|
26
|
+
* that has a non-empty ready frontier (at least one child task satisfies
|
|
27
|
+
* all dependencies), or any concrete task/subtask that clears all GRILL
|
|
28
|
+
* triggers.
|
|
29
|
+
*
|
|
30
|
+
* @module orchestration/classify-readiness
|
|
31
|
+
* @task T11495 E3-GRILL-GATE classifyReadiness predicate
|
|
32
|
+
* @epic T11492 SG-AUTOPILOT
|
|
33
|
+
* @see {@link classifyReadiness}
|
|
34
|
+
*/
|
|
35
|
+
import { MAX_LOOP_BACKS_PER_PHASE } from '../lifecycle/ivtr-loop.js';
|
|
36
|
+
// ─── Internal constants ───────────────────────────────────────────────────────
|
|
37
|
+
/**
|
|
38
|
+
* Label (case-insensitive) that marks a task as requiring an owner decision
|
|
39
|
+
* before work begins.
|
|
40
|
+
*
|
|
41
|
+
* Applied by convention via `cleo update --label owner-decision`.
|
|
42
|
+
*/
|
|
43
|
+
const OWNER_DECISION_LABEL = 'owner-decision';
|
|
44
|
+
/**
|
|
45
|
+
* Keywords checked in `task.blockedBy` (free-text) to detect implicit
|
|
46
|
+
* owner-decision blocks. Checked case-insensitively.
|
|
47
|
+
*/
|
|
48
|
+
const OWNER_DECISION_BLOCKED_BY_KEYWORDS = ['owner', 'decision'];
|
|
49
|
+
/**
|
|
50
|
+
* Pipeline stages that represent active release/publish gates.
|
|
51
|
+
*
|
|
52
|
+
* A task at one of these stages requires explicit HITL approval (via
|
|
53
|
+
* `cleo orchestrate approve`) before autonomous execution. Reuses the
|
|
54
|
+
* existing `pending` / `approve` / `reject` surface — no new HITL path.
|
|
55
|
+
*/
|
|
56
|
+
const RELEASE_PIPELINE_STAGES = new Set(['release', 'publish']);
|
|
57
|
+
/**
|
|
58
|
+
* Blob attachment name patterns (lowercased) that signal a spec or research
|
|
59
|
+
* artifact is present for an undecomposed epic.
|
|
60
|
+
*
|
|
61
|
+
* Any blob whose name contains one of these substrings is treated as a
|
|
62
|
+
* sufficient spec artifact to suppress {@link GrillTrigger.AMBIGUOUS_SCOPE}.
|
|
63
|
+
*/
|
|
64
|
+
const SPEC_ARTIFACT_NAME_PATTERNS = ['spec', 'research', 'adr', 'rfc', 'design', 'plan'];
|
|
65
|
+
/**
|
|
66
|
+
* Pipeline stages at or beyond the implementation phase.
|
|
67
|
+
*
|
|
68
|
+
* An epic in one of these stages with a non-empty ready frontier is treated
|
|
69
|
+
* as safely proceeding — it has been planned and decomposed.
|
|
70
|
+
*/
|
|
71
|
+
const IMPLEMENTATION_STAGES = new Set([
|
|
72
|
+
'implementation',
|
|
73
|
+
'validation',
|
|
74
|
+
'audit',
|
|
75
|
+
'test',
|
|
76
|
+
'release',
|
|
77
|
+
'publish',
|
|
78
|
+
'contribution',
|
|
79
|
+
]);
|
|
80
|
+
// ─── Internal helpers ─────────────────────────────────────────────────────────
|
|
81
|
+
/**
|
|
82
|
+
* Return `true` when the task is missing any meaningful acceptance criteria.
|
|
83
|
+
*
|
|
84
|
+
* A task is considered to have criteria when its `acceptance` array contains
|
|
85
|
+
* at least one entry — either a non-empty string or a structured
|
|
86
|
+
* {@link AcceptanceGate} object.
|
|
87
|
+
*
|
|
88
|
+
* @param task - Task record to inspect.
|
|
89
|
+
*/
|
|
90
|
+
function hasMissingAc(task) {
|
|
91
|
+
const ac = task.acceptance;
|
|
92
|
+
if (!ac || ac.length === 0)
|
|
93
|
+
return true;
|
|
94
|
+
// Ensure every entry is non-empty (filter out blank-string artifacts).
|
|
95
|
+
const meaningful = ac.filter((item) => typeof item === 'string' ? item.trim().length > 0 : true);
|
|
96
|
+
return meaningful.length === 0;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Return `true` when the task requires an owner decision before work can start.
|
|
100
|
+
*
|
|
101
|
+
* Two signals are checked:
|
|
102
|
+
* 1. `task.labels` contains `'owner-decision'` (exact, case-insensitive).
|
|
103
|
+
* 2. `task.blockedBy` free-text mentions "owner" OR "decision"
|
|
104
|
+
* (case-insensitive substring match).
|
|
105
|
+
*
|
|
106
|
+
* @param task - Task record to inspect.
|
|
107
|
+
*/
|
|
108
|
+
function requiresOwnerDecision(task) {
|
|
109
|
+
const labels = (task.labels ?? []).map((l) => l.toLowerCase());
|
|
110
|
+
if (labels.includes(OWNER_DECISION_LABEL))
|
|
111
|
+
return true;
|
|
112
|
+
const blockedBy = (task.blockedBy ?? '').toLowerCase();
|
|
113
|
+
if (blockedBy.length > 0) {
|
|
114
|
+
for (const kw of OWNER_DECISION_BLOCKED_BY_KEYWORDS) {
|
|
115
|
+
if (blockedBy.includes(kw))
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return false;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Return `true` when the IVTR loop has exhausted retries for any phase.
|
|
123
|
+
*
|
|
124
|
+
* Checks every phase's `loopBackCount` against {@link MAX_LOOP_BACKS_PER_PHASE}.
|
|
125
|
+
* A count equal to or greater than the limit means the next `loopBackIvtr`
|
|
126
|
+
* call would throw `E_IVTR_MAX_RETRIES` — the task must escalate to HITL.
|
|
127
|
+
*
|
|
128
|
+
* @param ivtrState - Resolved IVTR state or `null`/`undefined` when absent.
|
|
129
|
+
*/
|
|
130
|
+
function hasIvtrMaxRetries(ivtrState) {
|
|
131
|
+
if (!ivtrState)
|
|
132
|
+
return false;
|
|
133
|
+
const counts = ivtrState.loopBackCount;
|
|
134
|
+
if (!counts)
|
|
135
|
+
return false;
|
|
136
|
+
return Object.values(counts).some((count) => count >= MAX_LOOP_BACKS_PER_PHASE);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Return `true` when the task is at an active release/publish gate without
|
|
140
|
+
* prior HITL approval.
|
|
141
|
+
*
|
|
142
|
+
* @param task - Task record to inspect.
|
|
143
|
+
* @param hitlApproved - Whether approval was already granted.
|
|
144
|
+
*/
|
|
145
|
+
function hasReleaseGate(task, hitlApproved) {
|
|
146
|
+
const stage = task.pipelineStage ?? null;
|
|
147
|
+
if (!stage)
|
|
148
|
+
return false;
|
|
149
|
+
return RELEASE_PIPELINE_STAGES.has(stage) && !hitlApproved;
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Return `true` when an epic's scope is ambiguous (cannot proceed autonomously).
|
|
153
|
+
*
|
|
154
|
+
* Ambiguity is signalled by:
|
|
155
|
+
* - The task is an `epic` type.
|
|
156
|
+
* - It has no direct children (`children` is empty or absent).
|
|
157
|
+
* - It has no attached spec/research artifact blobs.
|
|
158
|
+
*
|
|
159
|
+
* When the epic IS at `implementation` stage or beyond we do NOT mark it
|
|
160
|
+
* ambiguous — the implementation stage implies decomposition already happened.
|
|
161
|
+
*
|
|
162
|
+
* @param task - Task record to inspect.
|
|
163
|
+
* @param children - Direct child tasks (may be empty).
|
|
164
|
+
* @param blobNames - Names of attached blobs (may be empty).
|
|
165
|
+
*/
|
|
166
|
+
function hasAmbiguousScope(task, children, blobNames) {
|
|
167
|
+
if (task.type !== 'epic')
|
|
168
|
+
return false;
|
|
169
|
+
// If the epic is in an implementation-or-later stage it was already
|
|
170
|
+
// decomposed — no ambiguity.
|
|
171
|
+
const stage = task.pipelineStage ?? '';
|
|
172
|
+
if (IMPLEMENTATION_STAGES.has(stage)) {
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
// Children exist → not ambiguous.
|
|
176
|
+
if (children && children.length > 0)
|
|
177
|
+
return false;
|
|
178
|
+
// A spec/research artifact is sufficient to proceed.
|
|
179
|
+
const lowerBlobs = (blobNames ?? []).map((n) => n.toLowerCase());
|
|
180
|
+
const hasSpecArtifact = SPEC_ARTIFACT_NAME_PATTERNS.some((pattern) => lowerBlobs.some((name) => name.includes(pattern)));
|
|
181
|
+
if (hasSpecArtifact)
|
|
182
|
+
return false;
|
|
183
|
+
return true;
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Return `true` when an epic has a non-empty ready frontier.
|
|
187
|
+
*
|
|
188
|
+
* A task in the frontier is one that:
|
|
189
|
+
* - has a non-terminal status (`pending` or `active`)
|
|
190
|
+
* - has all its `depends` entries satisfied (status `done` or `archived`)
|
|
191
|
+
*
|
|
192
|
+
* @param children - Direct child tasks of the epic.
|
|
193
|
+
*/
|
|
194
|
+
function hasReadyFrontier(children) {
|
|
195
|
+
const terminalStatuses = new Set(['done', 'cancelled', 'archived']);
|
|
196
|
+
const satisfiedStatuses = new Set(['done', 'archived']);
|
|
197
|
+
const childMap = new Map(children.map((c) => [c.id, c]));
|
|
198
|
+
return children.some((child) => {
|
|
199
|
+
if (terminalStatuses.has(child.status))
|
|
200
|
+
return false;
|
|
201
|
+
const deps = child.depends ?? [];
|
|
202
|
+
return deps.every((depId) => {
|
|
203
|
+
const dep = childMap.get(depId);
|
|
204
|
+
return dep !== undefined && satisfiedStatuses.has(dep.status);
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
}
|
|
208
|
+
// ─── Public API ──────────────────────────────────────────────────────────────
|
|
209
|
+
/**
|
|
210
|
+
* Classify whether a task unit is ready to proceed autonomously or needs
|
|
211
|
+
* grilling (clarification / escalation) before work starts.
|
|
212
|
+
*
|
|
213
|
+
* **Pure function**: does not open any DB, file, or network connection.
|
|
214
|
+
* All live state (children, IVTR, blobs) is pre-fetched by the caller and
|
|
215
|
+
* passed via {@link ReadinessSignals}.
|
|
216
|
+
*
|
|
217
|
+
* ## Grill triggers (checked in order)
|
|
218
|
+
* 1. {@link GrillTrigger.MISSING_AC} — `task.acceptance` is empty or absent.
|
|
219
|
+
* 2. {@link GrillTrigger.OWNER_DECISION_REQUIRED} — `owner-decision` label or blockedBy text.
|
|
220
|
+
* 3. {@link GrillTrigger.IVTR_MAX_RETRIES} — IVTR loop-back count ≥ MAX per any phase.
|
|
221
|
+
* 4. {@link GrillTrigger.RELEASE_GATE} — `pipelineStage` ∈ {release, publish} without approval.
|
|
222
|
+
* 5. {@link GrillTrigger.AMBIGUOUS_SCOPE} — epic with no children and no spec artifact.
|
|
223
|
+
*
|
|
224
|
+
* ## Auto-proceed
|
|
225
|
+
* - All triggers clear.
|
|
226
|
+
* - OR: implementation-or-later epic with a non-empty ready frontier
|
|
227
|
+
* (only possible when MISSING_AC is absent — an epic without ACs still grills).
|
|
228
|
+
*
|
|
229
|
+
* @param task - Full task record to classify.
|
|
230
|
+
* @param signals - Optional pre-fetched supporting state. When omitted, checks
|
|
231
|
+
* that require live state are skipped gracefully.
|
|
232
|
+
* @returns {@link ReadinessResult} with `verdict`, `reason`, and `triggers`.
|
|
233
|
+
*
|
|
234
|
+
* @example Basic usage (no async signals):
|
|
235
|
+
* ```typescript
|
|
236
|
+
* const result = classifyReadiness(task);
|
|
237
|
+
* if (result.verdict === 'grill') {
|
|
238
|
+
* console.warn(`Grill: ${result.reason}`);
|
|
239
|
+
* }
|
|
240
|
+
* ```
|
|
241
|
+
*
|
|
242
|
+
* @example With pre-fetched signals:
|
|
243
|
+
* ```typescript
|
|
244
|
+
* const children = await accessor.getChildren(task.id);
|
|
245
|
+
* const ivtrState = await getIvtrState(task.id);
|
|
246
|
+
* const blobNames = (await blobList(task.id)).map(b => b.name);
|
|
247
|
+
*
|
|
248
|
+
* const result = classifyReadiness(task, { children, ivtrState, blobNames });
|
|
249
|
+
* ```
|
|
250
|
+
*
|
|
251
|
+
* @task T11495 E3-GRILL-GATE
|
|
252
|
+
* @epic T11492 SG-AUTOPILOT
|
|
253
|
+
*/
|
|
254
|
+
export function classifyReadiness(task, signals = {}) {
|
|
255
|
+
const { children, ivtrState, blobNames, hitlApproved = false } = signals;
|
|
256
|
+
const triggers = [];
|
|
257
|
+
// ── 1. Missing acceptance criteria ──────────────────────────────────────
|
|
258
|
+
if (hasMissingAc(task)) {
|
|
259
|
+
triggers.push('MISSING_AC');
|
|
260
|
+
}
|
|
261
|
+
// ── 2. Owner-decision required ───────────────────────────────────────────
|
|
262
|
+
if (requiresOwnerDecision(task)) {
|
|
263
|
+
triggers.push('OWNER_DECISION_REQUIRED');
|
|
264
|
+
}
|
|
265
|
+
// ── 3. IVTR max-retries exhausted ───────────────────────────────────────
|
|
266
|
+
if (hasIvtrMaxRetries(ivtrState)) {
|
|
267
|
+
triggers.push('IVTR_MAX_RETRIES');
|
|
268
|
+
}
|
|
269
|
+
// ── 4. Release / publish gate ────────────────────────────────────────────
|
|
270
|
+
if (hasReleaseGate(task, hitlApproved)) {
|
|
271
|
+
triggers.push('RELEASE_GATE');
|
|
272
|
+
}
|
|
273
|
+
// ── 5. Ambiguous scope ───────────────────────────────────────────────────
|
|
274
|
+
if (hasAmbiguousScope(task, children, blobNames)) {
|
|
275
|
+
triggers.push('AMBIGUOUS_SCOPE');
|
|
276
|
+
}
|
|
277
|
+
// ── Short-circuit: any trigger fires → grill ────────────────────────────
|
|
278
|
+
if (triggers.length > 0) {
|
|
279
|
+
const reason = buildGrillReason(task, triggers, children);
|
|
280
|
+
return { verdict: 'grill', reason, triggers };
|
|
281
|
+
}
|
|
282
|
+
// ── Auto-proceed check for impl+ epics ─────────────────────────────────
|
|
283
|
+
// Epics in implementation-or-later stage with a non-empty ready frontier
|
|
284
|
+
// are explicitly marked as auto-proceed (AC2).
|
|
285
|
+
const stage = task.pipelineStage ?? '';
|
|
286
|
+
if (task.type === 'epic' &&
|
|
287
|
+
IMPLEMENTATION_STAGES.has(stage) &&
|
|
288
|
+
children &&
|
|
289
|
+
children.length > 0 &&
|
|
290
|
+
hasReadyFrontier(children)) {
|
|
291
|
+
return {
|
|
292
|
+
verdict: 'proceed',
|
|
293
|
+
reason: `Epic ${task.id} is in '${stage}' stage with a non-empty ready frontier — proceed autonomously.`,
|
|
294
|
+
triggers: [],
|
|
295
|
+
};
|
|
296
|
+
}
|
|
297
|
+
return {
|
|
298
|
+
verdict: 'proceed',
|
|
299
|
+
reason: `Task ${task.id} cleared all readiness checks — proceed autonomously.`,
|
|
300
|
+
triggers: [],
|
|
301
|
+
};
|
|
302
|
+
}
|
|
303
|
+
// ─── Internal: reason builder ─────────────────────────────────────────────────
|
|
304
|
+
/**
|
|
305
|
+
* Build a human-readable reason string for a `grill` verdict.
|
|
306
|
+
*
|
|
307
|
+
* Lists every active trigger so the caller can surface all issues in a single
|
|
308
|
+
* `AskUserQuestion` / pending-row without a follow-up round-trip.
|
|
309
|
+
*
|
|
310
|
+
* @internal
|
|
311
|
+
*/
|
|
312
|
+
function buildGrillReason(task, triggers, children) {
|
|
313
|
+
const parts = [`Task ${task.id} (${task.title}) requires grilling:`];
|
|
314
|
+
for (const trigger of triggers) {
|
|
315
|
+
switch (trigger) {
|
|
316
|
+
case 'MISSING_AC':
|
|
317
|
+
parts.push(' • MISSING_AC — task has no acceptance criteria; define them before starting work.');
|
|
318
|
+
break;
|
|
319
|
+
case 'OWNER_DECISION_REQUIRED': {
|
|
320
|
+
const hasLabel = (task.labels ?? [])
|
|
321
|
+
.map((l) => l.toLowerCase())
|
|
322
|
+
.includes(OWNER_DECISION_LABEL);
|
|
323
|
+
if (hasLabel) {
|
|
324
|
+
parts.push(` • OWNER_DECISION_REQUIRED — label '${OWNER_DECISION_LABEL}' indicates an open owner decision.`);
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
parts.push(` • OWNER_DECISION_REQUIRED — blockedBy '${task.blockedBy}' indicates an owner/decision dependency.`);
|
|
328
|
+
}
|
|
329
|
+
break;
|
|
330
|
+
}
|
|
331
|
+
case 'IVTR_MAX_RETRIES':
|
|
332
|
+
parts.push(' • IVTR_MAX_RETRIES — IVTR loop-back retries exhausted; HITL escalation required.');
|
|
333
|
+
break;
|
|
334
|
+
case 'RELEASE_GATE':
|
|
335
|
+
parts.push(` • RELEASE_GATE — task is in '${task.pipelineStage}' stage; use 'cleo orchestrate approve' to unblock.`);
|
|
336
|
+
break;
|
|
337
|
+
case 'AMBIGUOUS_SCOPE': {
|
|
338
|
+
const childCount = children?.length ?? 0;
|
|
339
|
+
parts.push(` • AMBIGUOUS_SCOPE — epic has ${childCount} children and no spec artifact; decompose or attach a spec before work begins.`);
|
|
340
|
+
break;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
return parts.join('\n');
|
|
345
|
+
}
|
|
346
|
+
//# sourceMappingURL=classify-readiness.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"classify-readiness.js","sourceRoot":"","sources":["../../src/orchestration/classify-readiness.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@ export type { AtomicityErrorCode, AtomicityInput, AtomicityResult, } from './ato
|
|
|
12
12
|
export { AtomicityViolationError, checkAtomicity, MAX_WORKER_FILES } from './atomicity.js';
|
|
13
13
|
export type { ClassifyOptions, ClassifyResult } from './classify.js';
|
|
14
14
|
export { CLASSIFY_CONFIDENCE_FLOOR, CLASSIFY_FALLBACK_AGENT_ID, classifyTask, getRegisteredAgentIds, validateClassifierRules, } from './classify.js';
|
|
15
|
+
export type { GrillTrigger, ReadinessResult, ReadinessSignals, ReadinessVerdict, } from './classify-readiness.js';
|
|
16
|
+
export { classifyReadiness } from './classify-readiness.js';
|
|
15
17
|
export type { ContextEstimation } from './context.js';
|
|
16
18
|
export { countManifestEntries, estimateContext } from './context.js';
|
|
17
19
|
export type { DashboardRateMetric, OrchestrateDashboardMetrics } from './dashboard.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ import { buildSpawnPrompt, DEFAULT_SPAWN_TIER, } from './spawn-prompt.js';
|
|
|
12
12
|
export { analyzeDependencies, buildDependencyGraph, detectCircularDependencies, findMissingDependencies, } from './analyze.js';
|
|
13
13
|
export { AtomicityViolationError, checkAtomicity, MAX_WORKER_FILES } from './atomicity.js';
|
|
14
14
|
export { CLASSIFY_CONFIDENCE_FLOOR, CLASSIFY_FALLBACK_AGENT_ID, classifyTask, getRegisteredAgentIds, validateClassifierRules, } from './classify.js';
|
|
15
|
+
export { classifyReadiness } from './classify-readiness.js';
|
|
15
16
|
export { countManifestEntries, estimateContext } from './context.js';
|
|
16
17
|
export { collectOrchestrateDashboard, formatDashboardPromptSummary } from './dashboard.js';
|
|
17
18
|
export { DEDUP_EMBED_CHARS, loadHarnessProfile, persistHarnessProfile, resolveHarnessHint, } from './harness-hint.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EACL,gBAAgB,EAChB,kBAAkB,GAGnB,MAAM,mBAAmB,CAAC;AAG3B,+CAA+C;AAC/C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,uBAAuB,GACxB,MAAM,cAAc,CAAC;AAMtB,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAE3F,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orchestration/index.ts"],"names":[],"mappings":"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"}
|
package/dist/output.d.ts
CHANGED
|
@@ -94,6 +94,7 @@ export interface FormatOptions {
|
|
|
94
94
|
* @task T4668
|
|
95
95
|
* @task T4670
|
|
96
96
|
* @task T338
|
|
97
|
+
* @task T11420
|
|
97
98
|
* @epic T4663
|
|
98
99
|
*/
|
|
99
100
|
export declare function formatSuccess<T>(data: T, message?: string, operationOrOpts?: string | FormatOptions): string;
|
|
@@ -110,6 +111,7 @@ export declare function formatSuccess<T>(data: T, message?: string, operationOrO
|
|
|
110
111
|
*
|
|
111
112
|
* @task T4672
|
|
112
113
|
* @task T338
|
|
114
|
+
* @task T11420
|
|
113
115
|
* @epic T4663
|
|
114
116
|
*/
|
|
115
117
|
export declare function formatError(error: CleoError, operation?: string): string;
|
package/dist/output.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEhG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOxC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAW7F;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAElD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,aAAa,IAAI,OAAO,EAAE,GAAG,SAAS,CAOrD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,oFAAoF;IACpF,GAAG,CAAC,EAAE,OAAO,gBAAgB,EAAE,QAAQ,CAAC;CACzC;
|
|
1
|
+
{"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEhG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAOxC,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;AAW7F;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAElD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,aAAa,IAAI,OAAO,EAAE,GAAG,SAAS,CAOrD;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,oFAAoF;IACpF,GAAG,CAAC,EAAE,OAAO,gBAAgB,EAAE,QAAQ,CAAC;CACzC;AAiGD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,IAAI,EAAE,CAAC,EACP,OAAO,CAAC,EAAE,MAAM,EAChB,eAAe,CAAC,EAAE,MAAM,GAAG,aAAa,GACvC,MAAM,CAoCR;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAuBxE;AAED,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,GAAG,MAAM,CAK7D"}
|
package/dist/output.js
CHANGED
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* @task T338 (ADR-039 envelope unification)
|
|
20
20
|
*/
|
|
21
21
|
import { randomUUID } from 'node:crypto';
|
|
22
|
-
import { getCurrentWarningCollector } from '@cleocode/lafs';
|
|
22
|
+
import { getCurrentWarningCollector, validateEnvelope } from '@cleocode/lafs';
|
|
23
23
|
import { CleoError } from './errors.js';
|
|
24
24
|
import { getCurrentExecutionSessionId, getCurrentOriginSessionId, getCurrentSessionId, } from './sessions/context-alert.js';
|
|
25
25
|
/**
|
|
@@ -135,6 +135,61 @@ function createCliMeta(operation, duration_ms = 0) {
|
|
|
135
135
|
* @task T338
|
|
136
136
|
* @epic T4663
|
|
137
137
|
*/
|
|
138
|
+
/**
|
|
139
|
+
* Validate a canonical CLI envelope under strict mode (CLEO_STRICT_ENVELOPE /
|
|
140
|
+
* CLEO_ENV=ci) and log a structured warning to stderr on violation.
|
|
141
|
+
*
|
|
142
|
+
* Validation uses the same `validateEnvelope` path as the LAFS SDK (native
|
|
143
|
+
* Rust fast-path when available, AJV fallback otherwise). This avoids a
|
|
144
|
+
* blocking throw in production — the envelope is emitted but the process exit
|
|
145
|
+
* code is set to LAFS_VIOLATION (104) so callers can detect failures.
|
|
146
|
+
*
|
|
147
|
+
* The check is gated to avoid the T11292 latency regression noted for the
|
|
148
|
+
* 7-10s CLI startup case. Activate via:
|
|
149
|
+
* - CLEO_STRICT_ENVELOPE=1 — always validate
|
|
150
|
+
* - CLEO_ENV=ci — validate in CI
|
|
151
|
+
* - NODE_ENV=test — validate in test
|
|
152
|
+
*
|
|
153
|
+
* @internal
|
|
154
|
+
* @task T11420
|
|
155
|
+
*/
|
|
156
|
+
function maybeValidateEnvelope(envelope) {
|
|
157
|
+
const strict = process.env['CLEO_STRICT_ENVELOPE'] === '1' ||
|
|
158
|
+
process.env['CLEO_ENV'] === 'ci' ||
|
|
159
|
+
process.env['NODE_ENV'] === 'test';
|
|
160
|
+
if (!strict)
|
|
161
|
+
return;
|
|
162
|
+
const result = validateEnvelope(envelope);
|
|
163
|
+
if (!result.valid) {
|
|
164
|
+
// Structured stderr diagnostic (gated to not pollute normal output)
|
|
165
|
+
if (process.env['CLEO_DEBUG'] || process.env['CLEO_STRICT_ENVELOPE'] === '1') {
|
|
166
|
+
process.stderr.write(`[lafs-validator] envelope shape violation: ${result.errors.join('; ')}\n`);
|
|
167
|
+
}
|
|
168
|
+
process.exitCode = 104; // ExitCode.LAFS_VIOLATION
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Format a successful result as a canonical CLI envelope.
|
|
173
|
+
*
|
|
174
|
+
* Produces the unified `CliEnvelope<T>` shape: `{success, data, meta, page?}`.
|
|
175
|
+
* This replaces all three legacy shapes (minimal `{ok,r,_m}`, full `{$schema,_meta,result}`,
|
|
176
|
+
* and observe `{success,result}`) with a single canonical format (ADR-039).
|
|
177
|
+
*
|
|
178
|
+
* The `mvi` option in `FormatOptions` is accepted for backward compatibility but
|
|
179
|
+
* no longer affects the envelope shape — the canonical shape is always emitted.
|
|
180
|
+
*
|
|
181
|
+
* @param data - The operation result payload.
|
|
182
|
+
* @param message - Optional success message (attached to `meta.message`).
|
|
183
|
+
* @param operationOrOpts - Operation name string or `FormatOptions` object.
|
|
184
|
+
* @returns JSON-serialized `CliEnvelope<T>`.
|
|
185
|
+
*
|
|
186
|
+
* @task T4672
|
|
187
|
+
* @task T4668
|
|
188
|
+
* @task T4670
|
|
189
|
+
* @task T338
|
|
190
|
+
* @task T11420
|
|
191
|
+
* @epic T4663
|
|
192
|
+
*/
|
|
138
193
|
export function formatSuccess(data, message, operationOrOpts) {
|
|
139
194
|
const opts = typeof operationOrOpts === 'string' ? { operation: operationOrOpts } : (operationOrOpts ?? {});
|
|
140
195
|
const baseMeta = createCliMeta(opts.operation ?? 'cli.output');
|
|
@@ -163,6 +218,7 @@ export function formatSuccess(data, message, operationOrOpts) {
|
|
|
163
218
|
meta: message ? { ...meta, message } : meta,
|
|
164
219
|
...(opts.page && { page: opts.page }),
|
|
165
220
|
};
|
|
221
|
+
maybeValidateEnvelope(envelope);
|
|
166
222
|
return JSON.stringify(envelope);
|
|
167
223
|
}
|
|
168
224
|
/**
|
|
@@ -178,6 +234,7 @@ export function formatSuccess(data, message, operationOrOpts) {
|
|
|
178
234
|
*
|
|
179
235
|
* @task T4672
|
|
180
236
|
* @task T338
|
|
237
|
+
* @task T11420
|
|
181
238
|
* @epic T4663
|
|
182
239
|
*/
|
|
183
240
|
export function formatError(error, operation) {
|
|
@@ -201,6 +258,7 @@ export function formatError(error, operation) {
|
|
|
201
258
|
error: errorObj,
|
|
202
259
|
meta: createCliMeta(operation ?? 'cli.output'),
|
|
203
260
|
};
|
|
261
|
+
maybeValidateEnvelope(envelope);
|
|
204
262
|
return JSON.stringify(envelope);
|
|
205
263
|
}
|
|
206
264
|
/** Format any result (success or error) as LAFS JSON. */
|
package/dist/output.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* `pr:<number>` evidence-atom validator.
|
|
3
3
|
*
|
|
4
4
|
* Resolves a GitHub pull request via the `gh` CLI and decides whether the PR
|
|
5
|
-
* satisfies the `testsPassed
|
|
6
|
-
* dogfood gap (T9764): tasks that ship via the
|
|
7
|
-
* previously had no zero-friction way to record
|
|
5
|
+
* satisfies the `implemented`, `testsPassed`, and `qaPassed` gates (T9838).
|
|
6
|
+
* Closes the release-verb dogfood gap (T9764): tasks that ship via the
|
|
7
|
+
* standard PR + admin-merge flow previously had no zero-friction way to record
|
|
8
|
+
* evidence retroactively —
|
|
8
9
|
* `tool:test` re-runs the entire monorepo suite and `note:` is rejected for
|
|
9
10
|
* hard gates on critical verifications.
|
|
10
11
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pr-evidence.d.ts","sourceRoot":"","sources":["../../src/release/pr-evidence.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"pr-evidence.d.ts","sourceRoot":"","sources":["../../src/release/pr-evidence.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,OAAO,EACL,KAAK,eAAe,EAIrB,MAAM,qBAAqB,CAAC;AAQ7B;;;;;;;;;GASG;AACH,MAAM,MAAM,gBAAgB,GACxB;IACE,EAAE,EAAE,IAAI,CAAC;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACnB,GACD;IACE,EAAE,EAAE,KAAK,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EACJ,oBAAoB,GACpB,yBAAyB,GACzB,yBAAyB,GACzB,wBAAwB,CAAC;CAC9B,CAAC;AAMN;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9E;AAyDD;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,KACR,OAAO,CAAC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAE7E;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,gBA2DrC,CAAC;AAMF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,MAAM,EAAE,CASvF;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,eAAe,CAAC,mBAAmB,CAAC,EAC5C,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CA2GzF;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,4BAA4B;IAC3C,gFAAgF;IAChF,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAC7C,uCAAuC;IACvC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;IACjC,mEAAmE;IACnE,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,4BAAiC,GACtC,OAAO,CAAC,gBAAgB,CAAC,CAyG3B"}
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* `pr:<number>` evidence-atom validator.
|
|
3
3
|
*
|
|
4
4
|
* Resolves a GitHub pull request via the `gh` CLI and decides whether the PR
|
|
5
|
-
* satisfies the `testsPassed
|
|
6
|
-
* dogfood gap (T9764): tasks that ship via the
|
|
7
|
-
* previously had no zero-friction way to record
|
|
5
|
+
* satisfies the `implemented`, `testsPassed`, and `qaPassed` gates (T9838).
|
|
6
|
+
* Closes the release-verb dogfood gap (T9764): tasks that ship via the
|
|
7
|
+
* standard PR + admin-merge flow previously had no zero-friction way to record
|
|
8
|
+
* evidence retroactively —
|
|
8
9
|
* `tool:test` re-runs the entire monorepo suite and `note:` is rejected for
|
|
9
10
|
* hard gates on critical verifications.
|
|
10
11
|
*
|