@llm4ts/flow 2.17.0 → 2.19.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.
Files changed (58) hide show
  1. package/dist/Approval.d.ts +1 -1
  2. package/dist/Approval.d.ts.map +1 -1
  3. package/dist/Artifacts.d.ts +2 -2
  4. package/dist/Artifacts.d.ts.map +1 -1
  5. package/dist/BenchReport.d.ts +2 -2
  6. package/dist/BenchReport.d.ts.map +1 -1
  7. package/dist/CostLedger.d.ts +2 -2
  8. package/dist/CostLedger.d.ts.map +1 -1
  9. package/dist/CoverageLedger.d.ts +180 -0
  10. package/dist/CoverageLedger.d.ts.map +1 -0
  11. package/dist/CoverageLedger.js +415 -0
  12. package/dist/CoverageLedger.js.map +1 -0
  13. package/dist/EpicBrief.d.ts +54 -0
  14. package/dist/EpicBrief.d.ts.map +1 -1
  15. package/dist/EpicBrief.js +92 -5
  16. package/dist/EpicBrief.js.map +1 -1
  17. package/dist/Equiv.d.ts +3 -3
  18. package/dist/Equiv.d.ts.map +1 -1
  19. package/dist/Flow.d.ts +1 -1
  20. package/dist/Flow.d.ts.map +1 -1
  21. package/dist/FlowError.d.ts +9 -1
  22. package/dist/FlowError.d.ts.map +1 -1
  23. package/dist/FlowError.js +11 -1
  24. package/dist/FlowError.js.map +1 -1
  25. package/dist/Judgment.d.ts +2 -2
  26. package/dist/Judgment.d.ts.map +1 -1
  27. package/dist/Landing.d.ts +9 -1
  28. package/dist/Landing.d.ts.map +1 -1
  29. package/dist/Landing.js +16 -5
  30. package/dist/Landing.js.map +1 -1
  31. package/dist/Persistence.d.ts +2 -2
  32. package/dist/Persistence.d.ts.map +1 -1
  33. package/dist/PlanExecution.d.ts +1 -1
  34. package/dist/PlanExecution.d.ts.map +1 -1
  35. package/dist/ProgramJudge.d.ts +1 -1
  36. package/dist/ProgramJudge.d.ts.map +1 -1
  37. package/dist/RefineRound.d.ts +94 -0
  38. package/dist/RefineRound.d.ts.map +1 -0
  39. package/dist/RefineRound.js +157 -0
  40. package/dist/RefineRound.js.map +1 -0
  41. package/dist/Replay.d.ts +2 -2
  42. package/dist/Replay.d.ts.map +1 -1
  43. package/dist/Review.d.ts +3 -3
  44. package/dist/Review.d.ts.map +1 -1
  45. package/dist/ReviewCache.d.ts +1 -1
  46. package/dist/ReviewCache.d.ts.map +1 -1
  47. package/dist/Roster.d.ts +1 -1
  48. package/dist/Roster.d.ts.map +1 -1
  49. package/dist/RosterSeats.d.ts +1 -1
  50. package/dist/RosterSeats.d.ts.map +1 -1
  51. package/dist/Stories.d.ts +1 -1
  52. package/dist/Stories.d.ts.map +1 -1
  53. package/package.json +4 -2
  54. package/src/CoverageLedger.ts +549 -0
  55. package/src/EpicBrief.ts +123 -9
  56. package/src/FlowError.ts +12 -1
  57. package/src/Landing.ts +24 -6
  58. package/src/RefineRound.ts +227 -0
@@ -0,0 +1,415 @@
1
+ import * as Schema from "effect/Schema";
2
+ import { BriefStatus, crossProblem, dispositionWords, hasOverride } from "./EpicBrief.js";
3
+ /**
4
+ * The coverage ledger: what the epic briefs of a target repository have
5
+ * decided about a legacy extract pack, scenario by scenario. It is derived,
6
+ * never state: a pure function of the pack, the briefs and the epics'
7
+ * recorded progress. The report, the context the next brief inherits and the
8
+ * checks across briefs all read it. Only approved briefs bind; a draft's
9
+ * claims are shown as proposed.
10
+ */
11
+ const Disposition = Schema.Literals(["in-scope", "dropped", "provided", "deferred"]);
12
+ /** One brief's word on one scenario. */
13
+ export const Claim = Schema.Struct({
14
+ epicId: Schema.String,
15
+ /** Whether the brief is approved; a draft's claim binds nothing. */
16
+ approved: Schema.Boolean,
17
+ disposition: Disposition,
18
+ /** The in-scope item's title, the reason, the pointer or the deferral note. */
19
+ note: Schema.String,
20
+ /** The epics this claim was kept against on purpose (`keep: <why>` in its brief). */
21
+ keptAgainst: Schema.Array(Schema.String),
22
+ /** Whether the claim still binds: false for a draft's, an overruled one, a deferral handed over. */
23
+ standing: Schema.Boolean
24
+ });
25
+ export const LedgerStatus = Schema.Literals([
26
+ "unclaimed",
27
+ "in-scope",
28
+ "dropped",
29
+ "provided",
30
+ "deferred",
31
+ "proposed",
32
+ "conflict"
33
+ ]);
34
+ /** How far the owning epic is: brief approved, planned, stories merging, landed. */
35
+ export const DeliveryState = Schema.Literals(["approved", "planned", "in-progress", "landed"]);
36
+ export const LedgerEntry = Schema.Struct({
37
+ program: Schema.String,
38
+ scenario: Schema.String,
39
+ status: LedgerStatus,
40
+ /** Every claim on the scenario, approved or not, in brief order. */
41
+ claims: Schema.Array(Claim),
42
+ /** The approved epics behind the status; both sides of a conflict. */
43
+ owners: Schema.Array(Schema.String),
44
+ /** In-scope entries only: the owning epic's delivery state. */
45
+ delivery: Schema.optionalKey(DeliveryState)
46
+ });
47
+ export const ProgramTotals = Schema.Struct({
48
+ program: Schema.String,
49
+ scenarios: Schema.Int,
50
+ inScope: Schema.Int,
51
+ dropped: Schema.Int,
52
+ provided: Schema.Int,
53
+ deferred: Schema.Int,
54
+ proposed: Schema.Int,
55
+ unclaimed: Schema.Int,
56
+ conflicts: Schema.Int
57
+ });
58
+ /** A claim on a program or scenario the pack no longer has. */
59
+ export const StaleClaim = Schema.Struct({
60
+ epicId: Schema.String,
61
+ program: Schema.String,
62
+ scenario: Schema.String,
63
+ disposition: Disposition
64
+ });
65
+ export const LedgerBriefInfo = Schema.Struct({
66
+ epicId: Schema.String,
67
+ status: BriefStatus,
68
+ delivery: Schema.optionalKey(DeliveryState)
69
+ });
70
+ export const CoverageLedger = Schema.Struct({
71
+ entries: Schema.Array(LedgerEntry),
72
+ programs: Schema.Array(ProgramTotals),
73
+ stale: Schema.Array(StaleClaim),
74
+ /** Briefs designed against another legacy repository than the pack in hand. */
75
+ skipped: Schema.Array(Schema.String),
76
+ briefs: Schema.Array(LedgerBriefInfo),
77
+ totals: Schema.Struct({
78
+ scenarios: Schema.Int,
79
+ /** Decided: in scope, dropped or provided by an approved brief. */
80
+ accounted: Schema.Int,
81
+ /** Dropped, provided, or in scope in an epic that landed. */
82
+ delivered: Schema.Int,
83
+ /** Unclaimed, deferred, only proposed, or in conflict. */
84
+ remaining: Schema.Int,
85
+ conflicts: Schema.Int
86
+ })
87
+ });
88
+ const claimsOf = (epicId, brief) => {
89
+ const approved = brief.status === "approved";
90
+ const disposed = (disposition, entries) => entries.map((entry) => ({
91
+ epicId,
92
+ approved,
93
+ disposition,
94
+ note: entry.note,
95
+ program: entry.program,
96
+ scenario: entry.scenario
97
+ }));
98
+ return [
99
+ ...brief.scope.flatMap((item) => item.citations.map((citation) => ({
100
+ epicId,
101
+ approved,
102
+ disposition: "in-scope",
103
+ note: item.title,
104
+ program: citation.program,
105
+ scenario: citation.scenario
106
+ }))),
107
+ ...disposed("dropped", brief.dropped),
108
+ ...disposed("provided", brief.provided),
109
+ ...disposed("deferred", brief.deferred)
110
+ ];
111
+ };
112
+ const unique = (values) => [...new Set(values)];
113
+ const trimmed = (path) => path.replace(/[\\/]+$/, "");
114
+ const lastSegment = (path) => trimmed(path).split(/[\\/]/).at(-1) ?? "";
115
+ /**
116
+ * Whether two `Legacy:` paths name the same repository. The same checkout is
117
+ * written with or without a trailing slash, and lives under another home on a
118
+ * colleague's machine or in CI: the folder's name is what stays.
119
+ */
120
+ export const sameLegacy = (left, right) => trimmed(left) === trimmed(right) ||
121
+ (lastSegment(left).length > 0 && lastSegment(left) === lastSegment(right));
122
+ const deliveryOf = (progress) => progress === undefined
123
+ ? "approved"
124
+ : progress.landed
125
+ ? "landed"
126
+ : progress.merged > 0
127
+ ? "in-progress"
128
+ : progress.planned
129
+ ? "planned"
130
+ : "approved";
131
+ export const buildLedger = (inputs) => {
132
+ const legacy = inputs.legacy;
133
+ const skipped = inputs.briefs
134
+ .filter((entry) => legacy !== undefined && !sameLegacy(entry.brief.legacy, legacy))
135
+ .map((entry) => entry.epicId);
136
+ const read = inputs.briefs.filter((entry) => !skipped.includes(entry.epicId));
137
+ const briefById = new Map(read.map((entry) => [entry.epicId, entry.brief]));
138
+ const progressById = new Map(inputs.epics.map((epic) => [epic.epicId, epic]));
139
+ const known = new Map(inputs.pack.programs.map((program) => [program.name, program.scenarios]));
140
+ const bySlot = new Map();
141
+ const stale = [];
142
+ for (const entry of read) {
143
+ for (const claim of claimsOf(entry.epicId, entry.brief)) {
144
+ if (!(known.get(claim.program) ?? []).includes(claim.scenario)) {
145
+ stale.push({
146
+ epicId: claim.epicId,
147
+ program: claim.program,
148
+ scenario: claim.scenario,
149
+ disposition: claim.disposition
150
+ });
151
+ continue;
152
+ }
153
+ const key = `${claim.program}\u0000${claim.scenario}`;
154
+ bySlot.set(key, [...(bySlot.get(key) ?? []), claim]);
155
+ }
156
+ }
157
+ /**
158
+ * The status the approved claims give a scenario. Deferrals bind nobody.
159
+ * Every other pair of claims is put to `crossProblem`, the rule the
160
+ * per-brief check uses: a clash nobody kept on purpose is a conflict;
161
+ * shared ownership needs one `keep:`; a contradiction is settled for the
162
+ * one brief that kept its decision, and the other claim becomes history.
163
+ */
164
+ const settle = (program, scenario, located) => {
165
+ const binding = located.filter((claim) => claim.approved && claim.disposition !== "deferred");
166
+ const deferrers = located.filter((claim) => claim.approved && claim.disposition === "deferred");
167
+ const kept = (mine, theirs) => {
168
+ const brief = briefById.get(mine.epicId);
169
+ const problem = crossProblem(program, scenario, mine.disposition, {
170
+ epic: theirs.epicId,
171
+ disposition: theirs.disposition
172
+ });
173
+ return brief !== undefined && problem !== undefined && hasOverride(brief, problem);
174
+ };
175
+ const keptAgainst = new Map();
176
+ const overruled = new Set();
177
+ let disputed = false;
178
+ for (let i = 0; i < binding.length; i += 1) {
179
+ for (let j = i + 1; j < binding.length; j += 1) {
180
+ const left = binding[i];
181
+ const right = binding[j];
182
+ if (left === undefined || right === undefined)
183
+ continue;
184
+ if (left.epicId === right.epicId) {
185
+ // One brief disposing of a scenario twice disagrees with itself.
186
+ if (left.disposition !== right.disposition)
187
+ disputed = true;
188
+ continue;
189
+ }
190
+ const clash = crossProblem(program, scenario, left.disposition, {
191
+ epic: right.epicId,
192
+ disposition: right.disposition
193
+ });
194
+ if (clash === undefined)
195
+ continue;
196
+ const leftKeeps = kept(left, right);
197
+ const rightKeeps = kept(right, left);
198
+ if (leftKeeps)
199
+ keptAgainst.set(left, [...(keptAgainst.get(left) ?? []), right.epicId]);
200
+ if (rightKeeps)
201
+ keptAgainst.set(right, [...(keptAgainst.get(right) ?? []), left.epicId]);
202
+ if (clash.kind === "AlreadyOwned") {
203
+ if (!leftKeeps && !rightKeeps)
204
+ disputed = true;
205
+ }
206
+ else if (leftKeeps === rightKeeps) {
207
+ // Nobody kept it, or both insist: still a contradiction.
208
+ disputed = true;
209
+ }
210
+ else {
211
+ overruled.add(leftKeeps ? right : left);
212
+ }
213
+ }
214
+ }
215
+ const survivors = binding.filter((claim) => !overruled.has(claim));
216
+ const conflict = disputed || (binding.length > 0 && survivors.length === 0);
217
+ const status = located.filter((claim) => claim.approved).length === 0
218
+ ? located.length === 0
219
+ ? "unclaimed"
220
+ : "proposed"
221
+ : conflict
222
+ ? "conflict"
223
+ : (survivors[0]?.disposition ?? "deferred");
224
+ const standing = (claim) => !claim.approved
225
+ ? false
226
+ : conflict
227
+ ? claim.disposition !== "deferred"
228
+ : claim.disposition === "deferred"
229
+ ? status === "deferred"
230
+ : !overruled.has(claim);
231
+ const owners = status === "conflict"
232
+ ? unique(binding.map((claim) => claim.epicId))
233
+ : status === "deferred"
234
+ ? unique(deferrers.map((claim) => claim.epicId))
235
+ : unique(survivors.map((claim) => claim.epicId));
236
+ return {
237
+ status,
238
+ owners: located.filter((claim) => claim.approved).length === 0 ? [] : owners,
239
+ claims: located.map((claim) => ({
240
+ epicId: claim.epicId,
241
+ approved: claim.approved,
242
+ disposition: claim.disposition,
243
+ note: claim.note,
244
+ keptAgainst: keptAgainst.get(claim) ?? [],
245
+ standing: standing(claim)
246
+ }))
247
+ };
248
+ };
249
+ const entries = [];
250
+ for (const program of inputs.pack.programs) {
251
+ for (const scenario of program.scenarios) {
252
+ const located = bySlot.get(`${program.name}\u0000${scenario}`) ?? [];
253
+ const { status, owners, claims } = settle(program.name, scenario, located);
254
+ const [owner] = owners;
255
+ entries.push({
256
+ program: program.name,
257
+ scenario,
258
+ status,
259
+ claims,
260
+ owners,
261
+ ...(status === "in-scope" && owner !== undefined
262
+ ? { delivery: deliveryOf(progressById.get(owner)) }
263
+ : {})
264
+ });
265
+ }
266
+ }
267
+ const count = (list, status) => list.filter((entry) => entry.status === status).length;
268
+ const programs = inputs.pack.programs.map((program) => {
269
+ const own = entries.filter((entry) => entry.program === program.name);
270
+ return {
271
+ program: program.name,
272
+ scenarios: own.length,
273
+ inScope: count(own, "in-scope"),
274
+ dropped: count(own, "dropped"),
275
+ provided: count(own, "provided"),
276
+ deferred: count(own, "deferred"),
277
+ proposed: count(own, "proposed"),
278
+ unclaimed: count(own, "unclaimed"),
279
+ conflicts: count(own, "conflict")
280
+ };
281
+ });
282
+ const accounted = count(entries, "in-scope") + count(entries, "dropped") + count(entries, "provided");
283
+ return {
284
+ entries,
285
+ programs,
286
+ stale,
287
+ skipped,
288
+ briefs: read.map((entry) => ({
289
+ epicId: entry.epicId,
290
+ status: entry.brief.status,
291
+ ...(entry.brief.status === "approved"
292
+ ? { delivery: deliveryOf(progressById.get(entry.epicId)) }
293
+ : {})
294
+ })),
295
+ totals: {
296
+ scenarios: entries.length,
297
+ accounted,
298
+ delivered: count(entries, "dropped") +
299
+ count(entries, "provided") +
300
+ entries.filter((entry) => entry.status === "in-scope" && entry.delivery === "landed")
301
+ .length,
302
+ remaining: entries.length - accounted,
303
+ conflicts: count(entries, "conflict")
304
+ }
305
+ };
306
+ };
307
+ /**
308
+ * What approved briefs decided, scenario by scenario: the view another brief
309
+ * inherits. Only claims that still stand: an overruled decision, or a
310
+ * deferral another epic took up, binds nobody.
311
+ */
312
+ export const inheritedFrom = (ledger) => ledger.entries.flatMap((entry) => entry.claims
313
+ .filter((claim) => claim.approved && claim.standing)
314
+ .map((claim) => ({
315
+ program: entry.program,
316
+ scenario: entry.scenario,
317
+ epic: claim.epicId,
318
+ disposition: claim.disposition,
319
+ note: claim.note,
320
+ ...(claim.keptAgainst.length === 0 ? {} : { keptAgainst: claim.keptAgainst })
321
+ })));
322
+ // ---- The report -----------------------------------------------------------------
323
+ const percent = (part, whole) =>
324
+ // Floored: 299 of 300 is 99%, never a whole it has not reached.
325
+ `${whole === 0 ? 0 : Math.floor((part / whole) * 100)}%`;
326
+ const plural = (count, word) => `${count} ${word}${count === 1 ? "" : "s"}`;
327
+ /** `142 scenarios · 96 accounted for (68%) · 58 delivered · 46 remaining · 2 conflicts`. */
328
+ export const ledgerHeadline = (ledger) => {
329
+ const totals = ledger.totals;
330
+ return [
331
+ plural(totals.scenarios, "scenario"),
332
+ `${totals.accounted} accounted for (${percent(totals.accounted, totals.scenarios)})`,
333
+ `${totals.delivered} delivered`,
334
+ `${totals.remaining} remaining`,
335
+ plural(totals.conflicts, "conflict")
336
+ ].join(" · ");
337
+ };
338
+ const deliveryWords = {
339
+ approved: "approved",
340
+ planned: "planned",
341
+ "in-progress": "in progress",
342
+ landed: "landed"
343
+ };
344
+ const claimText = (claim) => `${claim.epicId}: ${dispositionWords[claim.disposition]}${claim.note.length === 0 ? "" : ` (${claim.note})`}`;
345
+ const titled = (title, lines) => lines.length === 0 ? [] : [`## ${title}`, "", ...lines, ""];
346
+ /**
347
+ * The ledger as a page a person reads: the headline, a table per program,
348
+ * then only the lists that need someone: conflicts, scenarios still
349
+ * deferred, unclaimed ones, what drafts propose, stale citations.
350
+ */
351
+ export const renderLedger = (ledger, options) => {
352
+ const of = (status) => ledger.entries.filter((entry) => entry.status === status);
353
+ const name = (entry) => `${entry.program} › ${entry.scenario}`;
354
+ const unclaimed = ledger.programs.flatMap((program) => {
355
+ const open = of("unclaimed").filter((entry) => entry.program === program.program);
356
+ return open.length === 0
357
+ ? []
358
+ : [`- ${program.program}: ${open.map((entry) => entry.scenario).join("; ")}`];
359
+ });
360
+ return [
361
+ "# Coverage ledger",
362
+ "",
363
+ ledgerHeadline(ledger),
364
+ "",
365
+ `Legacy: ${options.legacy}`,
366
+ "",
367
+ "Derived from the epic briefs of this repository and the legacy extract pack. Regenerate",
368
+ "it with `epic-design --coverage`; to change it, change a brief.",
369
+ "",
370
+ "## Briefs",
371
+ "",
372
+ ...(ledger.briefs.length === 0
373
+ ? ["no epic brief yet"]
374
+ : ledger.briefs.map((brief) => {
375
+ const delivery = brief.delivery === undefined || brief.delivery === "approved"
376
+ ? ""
377
+ : `, ${deliveryWords[brief.delivery]}`;
378
+ return `- ${brief.epicId} — ${brief.status}${delivery}`;
379
+ })),
380
+ "",
381
+ "## Programs",
382
+ "",
383
+ "| Program | Scenarios | In scope | Dropped | Provided | Deferred | Proposed | Unclaimed | Conflicts | Accounted |",
384
+ "| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |",
385
+ ...ledger.programs.map((program) => `| ${[
386
+ program.program,
387
+ program.scenarios,
388
+ program.inScope,
389
+ program.dropped,
390
+ program.provided,
391
+ program.deferred,
392
+ program.proposed,
393
+ program.unclaimed,
394
+ program.conflicts,
395
+ percent(program.inScope + program.dropped + program.provided, program.scenarios)
396
+ ].join(" | ")} |`),
397
+ "",
398
+ ...titled("Conflicts", of("conflict").map((entry) => `- ${name(entry)} — ${entry.claims
399
+ .filter((claim) => claim.approved)
400
+ .map(claimText)
401
+ .join("; ")}`)),
402
+ ...titled("Deferred, still waiting", of("deferred").map((entry) => {
403
+ const claim = entry.claims.find((c) => c.approved && c.disposition === "deferred");
404
+ return `- ${name(entry)} — deferred by ${claim?.epicId ?? entry.owners.join(", ")}${claim === undefined || claim.note.length === 0 ? "" : `: ${claim.note}`}`;
405
+ })),
406
+ ...titled("Unclaimed", unclaimed),
407
+ ...titled("Proposed by drafts", of("proposed").map((entry) => `- ${name(entry)} — ${entry.claims.map(claimText).join("; ")}`)),
408
+ ...titled("Stale citations", ledger.stale.map((claim) => `- ${claim.epicId} cites ${claim.program} › ${claim.scenario} (${dispositionWords[claim.disposition]}), which the pack no longer has`)),
409
+ ...titled("Skipped briefs", ledger.skipped.map((epicId) => `- ${epicId}`)),
410
+ ...titled("Briefs that could not be read", (options.unreadable ?? []).map((brief) => `- ${brief.dir}: ${brief.reason}`))
411
+ ]
412
+ .join("\n")
413
+ .replace(/\n+$/, "\n");
414
+ };
415
+ //# sourceMappingURL=CoverageLedger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoverageLedger.js","sourceRoot":"","sources":["../src/CoverageLedger.ts"],"names":[],"mappings":"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"}
@@ -121,18 +121,72 @@ export declare const BriefProblem: Schema.Union<readonly [Schema.Struct<{
121
121
  readonly program: Schema.String;
122
122
  readonly scenario: Schema.String;
123
123
  readonly disposition: Schema.String;
124
+ }>, Schema.Struct<{
125
+ readonly kind: Schema.Literal<"AlreadyOwned">;
126
+ readonly program: Schema.String;
127
+ readonly scenario: Schema.String;
128
+ /** The approved epic that already has the scenario in scope. */
129
+ readonly epic: Schema.String;
130
+ }>, Schema.Struct<{
131
+ readonly kind: Schema.Literal<"ContradictsBrief">;
132
+ readonly program: Schema.String;
133
+ readonly scenario: Schema.String;
134
+ /** The approved epic that decided otherwise. */
135
+ readonly epic: Schema.String;
136
+ /** This brief's disposition, in words. */
137
+ readonly here: Schema.String;
138
+ /** The other epic's disposition, in words. */
139
+ readonly disposition: Schema.String;
124
140
  }>, Schema.Struct<{
125
141
  readonly kind: Schema.Literal<"ApprovedWithOpenPoints">;
126
142
  readonly numbers: Schema.$Array<Schema.Int>;
127
143
  }>]>;
128
144
  export type BriefProblem = typeof BriefProblem.Type;
129
145
  export declare const renderBriefProblem: (problem: BriefProblem) => string;
146
+ /** How a brief disposes of a scenario. */
147
+ export type BriefDisposition = "in-scope" | "dropped" | "provided" | "deferred";
148
+ export declare const dispositionWords: Readonly<Record<BriefDisposition, string>>;
149
+ /** What an approved brief of another epic decided about a scenario (the coverage ledger). */
150
+ export interface InheritedDecision {
151
+ readonly program: string;
152
+ readonly scenario: string;
153
+ readonly epic: string;
154
+ readonly disposition: BriefDisposition;
155
+ readonly note: string;
156
+ /** The epics this decision was kept against on purpose (`keep: <why>` in that brief). */
157
+ readonly keptAgainst?: ReadonlyArray<string>;
158
+ }
159
+ /**
160
+ * The one rule for two briefs on one scenario, read from the side of the
161
+ * brief that has `here`. A deferred scenario is free on either side; two
162
+ * briefs that agree are fine; both in scope is ownership shared or disputed;
163
+ * anything else is a contradiction. The ledger and the per-brief check both
164
+ * use it, so they cannot disagree about what a conflict is.
165
+ */
166
+ export declare const crossProblem: (program: string, scenario: string, here: BriefDisposition, other: {
167
+ readonly epic: string;
168
+ readonly disposition: BriefDisposition;
169
+ }) => BriefProblem | undefined;
170
+ /**
171
+ * Whether the brief overrides a check on purpose: the check's own `[check]`
172
+ * question, answered `keep: <why>`. Any other answer, or an answer to
173
+ * another question, overrides nothing.
174
+ */
175
+ export declare const hasOverride: (brief: EpicBrief, problem: BriefProblem) => boolean;
130
176
  /** The pointers of the provided entries: what the caller verifies before checking. */
131
177
  export declare const providedPointers: (brief: EpicBrief) => ReadonlyArray<string>;
132
178
  export interface BriefCheckInputs {
133
179
  readonly pack: PackIndex;
134
180
  /** The provided pointers that were found in the target (or its pack). */
135
181
  readonly pointers: ReadonlySet<string>;
182
+ /**
183
+ * What approved briefs of other epics decided (the coverage ledger). Their
184
+ * decisions are inherited: they count towards completeness, and deciding
185
+ * otherwise here is a problem. Absent: the brief is checked on its own.
186
+ */
187
+ readonly others?: ReadonlyArray<InheritedDecision>;
188
+ /** This brief's epic, as the other briefs name it. Default: the brief's own id. */
189
+ readonly epicId?: string;
136
190
  }
137
191
  /** Every problem of a brief against the pack, all at once; empty means acceptable. */
138
192
  export declare const checkEpicBrief: (brief: EpicBrief, inputs: BriefCheckInputs) => ReadonlyArray<BriefProblem>;
@@ -1 +1 @@
1
- {"version":3,"file":"EpicBrief.d.ts","sourceRoot":"","sources":["../src/EpicBrief.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EpicBrief.d.ts","sourceRoot":"","sources":["../src/EpicBrief.ts"],"names":[],"mappings":"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"}