@sentropic/track 0.85.11 → 0.85.14
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/cli/index.js +24 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/read/commands.d.ts +13 -1
- package/dist/read/commands.d.ts.map +1 -1
- package/dist/read/commands.js +31 -1
- package/dist/read/commands.js.map +1 -1
- package/dist/read/contract.d.ts +2 -2
- package/dist/read/contract.js +1 -1
- package/dist/read/contract.js.map +1 -1
- package/dist/report/build.d.ts +27 -0
- package/dist/report/build.d.ts.map +1 -1
- package/dist/report/build.js +103 -5
- package/dist/report/build.js.map +1 -1
- package/dist/report/directive.d.ts +37 -11
- package/dist/report/directive.d.ts.map +1 -1
- package/dist/report/directive.js +61 -11
- package/dist/report/directive.js.map +1 -1
- package/dist/report/format.d.ts +27 -2
- package/dist/report/format.d.ts.map +1 -1
- package/dist/report/format.js +130 -25
- package/dist/report/format.js.map +1 -1
- package/dist/report/friendly.d.ts +93 -0
- package/dist/report/friendly.d.ts.map +1 -0
- package/dist/report/friendly.js +197 -0
- package/dist/report/friendly.js.map +1 -0
- package/dist/report/html.d.ts +9 -0
- package/dist/report/html.d.ts.map +1 -0
- package/dist/report/html.js +76 -0
- package/dist/report/html.js.map +1 -0
- package/dist/report/present.d.ts +28 -0
- package/dist/report/present.d.ts.map +1 -0
- package/dist/report/present.js +32 -0
- package/dist/report/present.js.map +1 -0
- package/package.json +6 -2
package/dist/report/build.js
CHANGED
|
@@ -2,7 +2,88 @@ import { acceptanceStatus } from '../accept/status.js';
|
|
|
2
2
|
import { isRoleContainer } from '../model/item.js';
|
|
3
3
|
import { BUCKETS, bucketOf } from './buckets.js';
|
|
4
4
|
import { computeWpTree } from './rollup.js';
|
|
5
|
-
|
|
5
|
+
// focus-wp-enrichment — FR gloss of every acceptance/recette state (the report locale). A Record over the
|
|
6
|
+
// full `AcceptanceStatus` union so a new enum value is a compile error here (never a silent `undefined`).
|
|
7
|
+
const ACCEPTANCE_FR = {
|
|
8
|
+
pass: 'recette OK',
|
|
9
|
+
fail: 'recette en échec',
|
|
10
|
+
stale: 'recette obsolète (à rejouer)',
|
|
11
|
+
waived: 'recette dérogée',
|
|
12
|
+
unknown: 'recette non évaluée',
|
|
13
|
+
'n/a': 'sans recette',
|
|
14
|
+
};
|
|
15
|
+
const BODY_EXCERPT_MAX = 200;
|
|
16
|
+
/**
|
|
17
|
+
* focus-wp-enrichment — a cleaned, one-line, capped excerpt of an item body: collapse every control char /
|
|
18
|
+
* whitespace run to a single space, trim, then cap at `BODY_EXCERPT_MAX` with a trailing ellipsis. Returns
|
|
19
|
+
* `undefined` for an absent/blank body (drop-when-absent on `detail.summary`). Local (no render-layer import).
|
|
20
|
+
*/
|
|
21
|
+
function bodyExcerpt(body) {
|
|
22
|
+
if (body === undefined)
|
|
23
|
+
return undefined;
|
|
24
|
+
let out = '';
|
|
25
|
+
let prevSpace = false;
|
|
26
|
+
for (const ch of body) {
|
|
27
|
+
const code = ch.codePointAt(0) ?? 0;
|
|
28
|
+
const isSpace = code < 0x20 || code === 0x7f || code === 0x2028 || code === 0x2029 || ch === ' ';
|
|
29
|
+
if (isSpace) {
|
|
30
|
+
if (!prevSpace) {
|
|
31
|
+
out += ' ';
|
|
32
|
+
prevSpace = true;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
out += ch;
|
|
37
|
+
prevSpace = false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const trimmed = out.trim();
|
|
41
|
+
if (trimmed.length === 0)
|
|
42
|
+
return undefined;
|
|
43
|
+
return trimmed.length <= BODY_EXCERPT_MAX ? trimmed : `${trimmed.slice(0, BODY_EXCERPT_MAX - 1)}…`;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* focus-wp-enrichment — the container-id → derived-label map READ from a computed WP forest. Every
|
|
47
|
+
* role-container (root OR nested sub-node) is a `WpNode`, so this covers the whole forest. Reusing the
|
|
48
|
+
* tree's labels (never re-deriving) keeps a row's `wpLabel` byte-identical to the directive/tree label.
|
|
49
|
+
*/
|
|
50
|
+
function containerLabels(tree) {
|
|
51
|
+
const map = new Map();
|
|
52
|
+
const walk = (n) => {
|
|
53
|
+
map.set(n.id, n.label);
|
|
54
|
+
for (const c of n.children)
|
|
55
|
+
walk(c);
|
|
56
|
+
};
|
|
57
|
+
for (const n of tree)
|
|
58
|
+
walk(n);
|
|
59
|
+
return map;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* focus-wp-enrichment — the item's OWNING workpackage: the NEAREST role-container ancestor id, walking
|
|
63
|
+
* `parentId` (the row's item is never itself a container — `buildReport` excludes those). This is exactly
|
|
64
|
+
* the node `directLeaves`/`buildDirectives` attach the leaf to, so `wpId` matches the directive `scope.wpId`.
|
|
65
|
+
* Available for EVERY item (any bucket) since it reads the item's own ancestry. O(depth), cycle-guarded.
|
|
66
|
+
* Returns `undefined` for an item with no role-container ancestor (outside any WP forest).
|
|
67
|
+
*/
|
|
68
|
+
function owningWpId(items, itemId) {
|
|
69
|
+
const seen = new Set();
|
|
70
|
+
let cursor = items.get(itemId)?.parentId;
|
|
71
|
+
while (cursor !== undefined && !seen.has(cursor)) {
|
|
72
|
+
seen.add(cursor);
|
|
73
|
+
const it = items.get(cursor);
|
|
74
|
+
if (it === undefined)
|
|
75
|
+
break;
|
|
76
|
+
if (isRoleContainer(it))
|
|
77
|
+
return cursor;
|
|
78
|
+
cursor = it.parentId;
|
|
79
|
+
}
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
function toRow(state, item, config, labels) {
|
|
83
|
+
const acceptance = acceptanceStatus(state, item.id, config.baselineCommit);
|
|
84
|
+
const wpId = owningWpId(state.items, item.id);
|
|
85
|
+
const wpLabel = wpId !== undefined ? labels.get(wpId) : undefined;
|
|
86
|
+
const summary = bodyExcerpt(item.body);
|
|
6
87
|
return {
|
|
7
88
|
id: item.id,
|
|
8
89
|
title: item.title,
|
|
@@ -10,11 +91,18 @@ function toRow(state, item, config) {
|
|
|
10
91
|
workspace: item.workspace,
|
|
11
92
|
bucket: bucketOf(state, item, config),
|
|
12
93
|
realization: item.realization,
|
|
13
|
-
acceptance
|
|
94
|
+
acceptance,
|
|
14
95
|
...(item.priority !== undefined ? { priority: item.priority.score } : {}),
|
|
15
96
|
...(item.accountable !== undefined ? { accountable: item.accountable } : {}),
|
|
16
97
|
...(item.engagementRef !== undefined ? { engagementRef: item.engagementRef } : {}),
|
|
17
98
|
...(item.role !== undefined ? { role: item.role } : {}),
|
|
99
|
+
// focus-wp-enrichment (additive) — WP attribution for EVERY bucket + a render-ready detail block.
|
|
100
|
+
...(wpId !== undefined ? { wpId } : {}),
|
|
101
|
+
...(wpLabel !== undefined ? { wpLabel } : {}),
|
|
102
|
+
detail: {
|
|
103
|
+
...(summary !== undefined ? { summary } : {}),
|
|
104
|
+
acceptanceLabel: ACCEPTANCE_FR[acceptance],
|
|
105
|
+
},
|
|
18
106
|
};
|
|
19
107
|
}
|
|
20
108
|
// Active prioritization scheme: higher score first; un-prioritized items after; stable by id.
|
|
@@ -34,6 +122,12 @@ export function buildReport(state, options) {
|
|
|
34
122
|
baselineCommit: options.baselineCommit,
|
|
35
123
|
requireAccepted: options.requireAccepted ?? false,
|
|
36
124
|
};
|
|
125
|
+
// focus-wp-enrichment — compute the WP forest ONCE: it supplies both the additive per-row WP labels
|
|
126
|
+
// (via `toRow` below) and the optional `report.wpTree`. The derived labels (positional `WP<n>`/dotted/
|
|
127
|
+
// codes/streams) live ONLY in `computeWpTree`, so reading them here keeps a row's `wpLabel` byte-identical
|
|
128
|
+
// to the directive's `scope.wpLabel` and the rendered tree — no second, drift-prone derivation.
|
|
129
|
+
const tree = computeWpTree(state, config);
|
|
130
|
+
const labels = containerLabels(tree);
|
|
37
131
|
const buckets = { AWAITED: [], DROPPED: [], DONE: [], 'TO-DO': [] };
|
|
38
132
|
for (const item of state.items.values()) {
|
|
39
133
|
// Workpackages §2 / Scope §B(a) — a WP or spec-phase is a container, not a leaf: keep it out of the
|
|
@@ -41,14 +135,14 @@ export function buildReport(state, options) {
|
|
|
41
135
|
// warns about). The container forest is surfaced separately on `report.wpTree`.
|
|
42
136
|
if (isRoleContainer(item))
|
|
43
137
|
continue;
|
|
44
|
-
const row = toRow(state, item, config);
|
|
138
|
+
const row = toRow(state, item, config, labels);
|
|
45
139
|
buckets[row.bucket].push(row);
|
|
46
140
|
}
|
|
47
141
|
for (const bucket of BUCKETS)
|
|
48
142
|
buckets[bucket].sort(byPriority);
|
|
49
143
|
const report = { buckets };
|
|
50
144
|
if (options.wpTree)
|
|
51
|
-
report.wpTree =
|
|
145
|
+
report.wpTree = tree;
|
|
52
146
|
if (options.decisions) {
|
|
53
147
|
report.decisions = [...state.decisions.values()].map((d) => ({
|
|
54
148
|
id: d.id,
|
|
@@ -78,9 +172,13 @@ export function query(state, filter, options) {
|
|
|
78
172
|
baselineCommit: options.baselineCommit,
|
|
79
173
|
requireAccepted: options.requireAccepted ?? false,
|
|
80
174
|
};
|
|
175
|
+
// focus-wp-enrichment — a container row is enriched via its OWN owning ancestor (its parent WP), so it
|
|
176
|
+
// needs the same forest label map. Computed here for the (rare) role-filter branch; the bucket rows above
|
|
177
|
+
// already came enriched from `buildReport`.
|
|
178
|
+
const labels = containerLabels(computeWpTree(state, config));
|
|
81
179
|
const wpRows = [...state.items.values()]
|
|
82
180
|
.filter((i) => i.role !== undefined)
|
|
83
|
-
.map((i) => toRow(state, i, config))
|
|
181
|
+
.map((i) => toRow(state, i, config, labels))
|
|
84
182
|
.sort(byPriority);
|
|
85
183
|
rows = [...rows, ...wpRows];
|
|
86
184
|
}
|
package/dist/report/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/report/build.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAItD,OAAO,EAAE,eAAe,EAA+E,MAAM,kBAAkB,CAAA;AAE/H,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAkC,MAAM,cAAc,CAAA;AAChF,OAAO,EAAE,aAAa,EAAe,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/report/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,15 @@ import type { AcceptanceStatus } from '../model/acceptance.js';
|
|
|
6
6
|
import type { ItemId, Realization, SpecStatus } from '../model/item.js';
|
|
7
7
|
import type { WorkEventKind } from '../ingest/contract.js';
|
|
8
8
|
export type DirectiveMode = 'human-decision' | 'h2a-engagement' | 'subagent' | 'local';
|
|
9
|
+
/**
|
|
10
|
+
* ADDITIVE (report-revamp §A2) — the NATURE of the advice, ORTHOGONAL to `mode` (which is the
|
|
11
|
+
* ROUTAGE/exécuteur). `mode` must NOT grow a 5th value to carry this axis: `adviceKind` is its own
|
|
12
|
+
* governed enum. `judgment-required` = a genuine owner decision (a `human-decision` gate); every other
|
|
13
|
+
* directive is a `derivable-next-step` (the next legal move is mechanically derivable from state — fix
|
|
14
|
+
* acceptance, finish the increment, prioritize, …). NEVER a naked "à toi de juger": even the residual
|
|
15
|
+
* `inspect-fallback` carries a concrete legal move, so it stays `derivable-next-step`.
|
|
16
|
+
*/
|
|
17
|
+
export type DirectiveAdviceKind = 'derivable-next-step' | 'judgment-required';
|
|
9
18
|
export type DirectiveGateCode = 'decision-pending' | 'engagement-pending' | 'external-dependency' | 'linked-dependency' | 'manual-blocker' | 'spec-not-ready' | 'acceptance-failed' | 'acceptance-stale' | 'priority-missing';
|
|
10
19
|
export type DirectiveStepCode = 'focus-decision' | 'settle-decision' | 'resume-engagement' | 'resolve-external-blocker' | 'amend-spec' | 'fix-acceptance' | 'rerun-acceptance' | 'finish-increment' | 'start-increment' | 'prioritize-backlog' | 'inspect-fallback';
|
|
11
20
|
export type DirectiveRank = 'P1_GATE' | 'P2_ACCEPTANCE' | 'P3_IN_PROGRESS' | 'P4_TODO_WSJF' | 'P5_FALLBACK';
|
|
@@ -23,6 +32,15 @@ export interface DirectiveGate {
|
|
|
23
32
|
code: DirectiveGateCode;
|
|
24
33
|
/** ref = decisionId / engagementRef / blockerId — what makes the gate DELEGABLE (not just a boolean). */
|
|
25
34
|
ref?: string;
|
|
35
|
+
/**
|
|
36
|
+
* ADDITIVE (report-revamp §A1) — the id of the ITEM-CIBLE that blocks this gate, NAMED separately from
|
|
37
|
+
* `ref` (the actionable handle). For a dependency gate `ref` is the `blockerId` (the handle for
|
|
38
|
+
* `blocker.resolve`) while `blockedBy` is the depended-on item's id — the two are DISTINCT, so a renderer
|
|
39
|
+
* can say "bloqué par X" WITHOUT mutating the still-actionable `ref`. Drop-when-absent.
|
|
40
|
+
*/
|
|
41
|
+
blockedBy?: string;
|
|
42
|
+
/** ADDITIVE — the human title of `blockedBy` when resolvable (render-ready; ESCAPED at render, §A4). */
|
|
43
|
+
blockedByTitle?: string;
|
|
26
44
|
}
|
|
27
45
|
export interface DirectiveStep {
|
|
28
46
|
code: DirectiveStepCode;
|
|
@@ -35,6 +53,12 @@ export interface DirectiveFacts {
|
|
|
35
53
|
specStatus: SpecStatus | 'n/a';
|
|
36
54
|
accountable?: ActorId;
|
|
37
55
|
blockerRefs?: string[];
|
|
56
|
+
/**
|
|
57
|
+
* ADDITIVE (report-revamp §A5) — 1-hop fan-in: how many OTHER open items declare a direct dependency on
|
|
58
|
+
* THIS directive's target item. A pure, deterministic keystone signal ("cet item en bloque N autres");
|
|
59
|
+
* the report highlights the max-fan-in item (tie-break ULID). Drop-when-absent (0 ⇒ omitted).
|
|
60
|
+
*/
|
|
61
|
+
fanIn?: number;
|
|
38
62
|
}
|
|
39
63
|
/**
|
|
40
64
|
* One actionable, state-derived, delegable directive (DESIGN §3). NO phrase is stored — the human
|
|
@@ -46,6 +70,11 @@ export interface Directive {
|
|
|
46
70
|
target: DirectiveTarget;
|
|
47
71
|
scope: DirectiveScope;
|
|
48
72
|
mode: DirectiveMode;
|
|
73
|
+
/**
|
|
74
|
+
* ADDITIVE (report-revamp §A2) — the advice NATURE, orthogonal to `mode`. DERIVED (never a 5th `mode`):
|
|
75
|
+
* `human-decision` ⇒ `judgment-required`, every other mode ⇒ `derivable-next-step`.
|
|
76
|
+
*/
|
|
77
|
+
adviceKind: DirectiveAdviceKind;
|
|
49
78
|
gate?: DirectiveGate;
|
|
50
79
|
step: DirectiveStep;
|
|
51
80
|
rank: DirectiveRank;
|
|
@@ -65,17 +94,14 @@ export declare function decisionNeedsFocus(d: {
|
|
|
65
94
|
artifacts?: readonly unknown[];
|
|
66
95
|
hasRecommendation?: boolean;
|
|
67
96
|
}): boolean;
|
|
68
|
-
/**
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
* WP node (its most-urgent delegable leaf), PLUS one directive per decision-wait / engagement-wait /
|
|
77
|
-
* pending decision. The returned array is GLOBALLY sorted (deterministic).
|
|
78
|
-
*/
|
|
97
|
+
/** §A5 — the keystone item: the one that blocks the MOST others (max fan-in), tie-break ULID asc. Pure. */
|
|
98
|
+
export interface Keystone {
|
|
99
|
+
id: ItemId;
|
|
100
|
+
title: string;
|
|
101
|
+
/** How many OTHER open items directly depend on this item (its 1-hop fan-in). */
|
|
102
|
+
blocks: number;
|
|
103
|
+
}
|
|
104
|
+
export declare function keystoneOf(tree: readonly WpNode[]): Keystone | undefined;
|
|
79
105
|
export declare function buildDirectives(tree: readonly WpNode[], decisions?: readonly DecisionRow[]): Directive[];
|
|
80
106
|
/**
|
|
81
107
|
* The flat, prioritized SUBAGENT dispatch queue (DESIGN §4): the directive ids that are delegable to a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directive.d.ts","sourceRoot":"","sources":["../../src/report/directive.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAyB,MAAM,EAAE,MAAM,aAAa,CAAA;AAChE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAI1D,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,UAAU,GAAG,OAAO,CAAA;AAEtF,MAAM,MAAM,iBAAiB,GACzB,kBAAkB,GAClB,oBAAoB,GACpB,qBAAqB,GACrB,mBAAmB,GACnB,gBAAgB,GAChB,gBAAgB,GAChB,mBAAmB,GACnB,kBAAkB,GAClB,kBAAkB,CAAA;AAEtB,MAAM,MAAM,iBAAiB,GACzB,gBAAgB,GAChB,iBAAiB,GACjB,mBAAmB,GACnB,0BAA0B,GAC1B,YAAY,GACZ,gBAAgB,GAChB,kBAAkB,GAClB,kBAAkB,GAClB,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,CAAA;AAEtB,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,eAAe,GAAG,gBAAgB,GAAG,cAAc,GAAG,aAAa,CAAA;AAE3G,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI,CAAA;IAC3D,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,iBAAiB,CAAA;IACvB,yGAAyG;IACzG,GAAG,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"directive.d.ts","sourceRoot":"","sources":["../../src/report/directive.ts"],"names":[],"mappings":"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"}
|
package/dist/report/directive.js
CHANGED
|
@@ -57,7 +57,7 @@ function tierOf(l) {
|
|
|
57
57
|
const blockerRefs = l.openBlockers.map((b) => b.blockerId);
|
|
58
58
|
// 1. real blocking gate (dependency/manual blocker open) on a NON-in-progress leaf — P1_GATE.
|
|
59
59
|
if (depBlocker !== undefined && l.realization !== 'in-progress') {
|
|
60
|
-
return { order: 10, rank: 'P1_GATE', step: 'resolve-external-blocker', gateCode: gateCodeOfDep(depBlocker), gateRef: depBlocker.blockerId, blockerRefs };
|
|
60
|
+
return { order: 10, rank: 'P1_GATE', step: 'resolve-external-blocker', gateCode: gateCodeOfDep(depBlocker), gateRef: depBlocker.blockerId, ...(depBlocker.ref !== undefined ? { blockedBy: depBlocker.ref } : {}), blockerRefs };
|
|
61
61
|
}
|
|
62
62
|
// 2. acceptance == 'fail' — P2_ACCEPTANCE (fail sub-rank, primes in-progress).
|
|
63
63
|
if (l.acceptance === 'fail') {
|
|
@@ -65,7 +65,7 @@ function tierOf(l) {
|
|
|
65
65
|
}
|
|
66
66
|
// 3. in-progress + open dependency blocker (WIP coincé) — P3_IN_PROGRESS.
|
|
67
67
|
if (depBlocker !== undefined && l.realization === 'in-progress') {
|
|
68
|
-
return { order: 30, rank: 'P3_IN_PROGRESS', step: 'finish-increment', gateCode: gateCodeOfDep(depBlocker), gateRef: depBlocker.blockerId, blockerRefs };
|
|
68
|
+
return { order: 30, rank: 'P3_IN_PROGRESS', step: 'finish-increment', gateCode: gateCodeOfDep(depBlocker), gateRef: depBlocker.blockerId, ...(depBlocker.ref !== undefined ? { blockedBy: depBlocker.ref } : {}), blockerRefs };
|
|
69
69
|
}
|
|
70
70
|
// 4. in-progress (flux — finish before starting new).
|
|
71
71
|
if (l.realization === 'in-progress') {
|
|
@@ -86,7 +86,7 @@ function tierOf(l) {
|
|
|
86
86
|
// 8. fallback — NEVER id-only (the facts always carry bucket/realization/acceptance/specStatus).
|
|
87
87
|
return { order: 90, rank: 'P5_FALLBACK', step: 'inspect-fallback', blockerRefs: [] };
|
|
88
88
|
}
|
|
89
|
-
function factsOf(l, blockerRefs) {
|
|
89
|
+
function factsOf(l, blockerRefs, fanIn = 0) {
|
|
90
90
|
return {
|
|
91
91
|
bucket: l.bucket,
|
|
92
92
|
realization: l.realization,
|
|
@@ -95,6 +95,7 @@ function factsOf(l, blockerRefs) {
|
|
|
95
95
|
...(l.priority !== undefined ? { wsjf: l.priority } : {}),
|
|
96
96
|
...(l.accountable !== undefined ? { accountable: l.accountable } : {}),
|
|
97
97
|
...(blockerRefs.length > 0 ? { blockerRefs } : {}),
|
|
98
|
+
...(fanIn > 0 ? { fanIn } : {}),
|
|
98
99
|
};
|
|
99
100
|
}
|
|
100
101
|
/** Stable directive id (deterministic — no flicker): each (kind,target) yields at most one directive. */
|
|
@@ -105,6 +106,9 @@ function makeDirective(d) {
|
|
|
105
106
|
assertSafeCommandHint(d.commandHint);
|
|
106
107
|
return {
|
|
107
108
|
id: directiveId(d.target),
|
|
109
|
+
// §A2 — adviceKind is DERIVED from mode (never a 5th mode value): a human-decision gate needs judgment,
|
|
110
|
+
// everything else is a derivable next step.
|
|
111
|
+
adviceKind: d.mode === 'human-decision' ? 'judgment-required' : 'derivable-next-step',
|
|
108
112
|
affordances: d.affordances ?? AFFORDANCES[d.step.code],
|
|
109
113
|
...d,
|
|
110
114
|
};
|
|
@@ -163,6 +167,37 @@ function inDelegableScope(l) {
|
|
|
163
167
|
* WP node (its most-urgent delegable leaf), PLUS one directive per decision-wait / engagement-wait /
|
|
164
168
|
* pending decision. The returned array is GLOBALLY sorted (deterministic).
|
|
165
169
|
*/
|
|
170
|
+
/**
|
|
171
|
+
* §A5 — the pure 1-hop fan-in index over the whole forest. Every non-WP leaf is attached to exactly ONE
|
|
172
|
+
* node (`directLeaves` stops at sub-WP boundaries), so a flat walk over `node.leaves` never double-counts.
|
|
173
|
+
* `fanIn.get(x)` = the number of open items that declare a direct `dependency` blocker on item `x`.
|
|
174
|
+
*/
|
|
175
|
+
function fanInIndex(nodes) {
|
|
176
|
+
const leafById = new Map();
|
|
177
|
+
const fanIn = new Map();
|
|
178
|
+
const walk = (n) => {
|
|
179
|
+
for (const l of n.leaves) {
|
|
180
|
+
leafById.set(l.id, l);
|
|
181
|
+
for (const b of l.openBlockers) {
|
|
182
|
+
if (b.kind === 'dependency' && b.ref !== undefined)
|
|
183
|
+
fanIn.set(b.ref, (fanIn.get(b.ref) ?? 0) + 1);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
for (const c of n.children)
|
|
187
|
+
walk(c);
|
|
188
|
+
};
|
|
189
|
+
for (const n of nodes)
|
|
190
|
+
walk(n);
|
|
191
|
+
return { leafById, fanIn };
|
|
192
|
+
}
|
|
193
|
+
export function keystoneOf(tree) {
|
|
194
|
+
const { leafById, fanIn } = fanInIndex(tree);
|
|
195
|
+
const ranked = [...fanIn.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]));
|
|
196
|
+
const top = ranked[0];
|
|
197
|
+
if (top === undefined || top[1] === 0)
|
|
198
|
+
return undefined;
|
|
199
|
+
return { id: top[0], title: leafById.get(top[0])?.title ?? top[0], blocks: top[1] };
|
|
200
|
+
}
|
|
166
201
|
export function buildDirectives(tree, decisions = []) {
|
|
167
202
|
const decisionById = new Map(decisions.map((d) => [d.id, d]));
|
|
168
203
|
const flat = [];
|
|
@@ -173,6 +208,11 @@ export function buildDirectives(tree, decisions = []) {
|
|
|
173
208
|
};
|
|
174
209
|
for (const n of tree)
|
|
175
210
|
collect(n);
|
|
211
|
+
// §A1/§A5 — the pure 1-hop index (shared with `keystoneOf`): `leafById` resolves a `blockedBy` target's
|
|
212
|
+
// human title, `fanIn` counts how many OTHER open items declare a direct `dependency` on a given item.
|
|
213
|
+
const { leafById, fanIn } = fanInIndex(tree);
|
|
214
|
+
const titleOf = (id) => leafById.get(id)?.title;
|
|
215
|
+
const fanInOf = (id) => fanIn.get(id) ?? 0;
|
|
176
216
|
const entries = [];
|
|
177
217
|
const seenDecisionRef = new Set(); // decisionIds already surfaced via a decision-wait leaf
|
|
178
218
|
for (const node of flat) {
|
|
@@ -193,10 +233,12 @@ export function buildDirectives(tree, decisions = []) {
|
|
|
193
233
|
target: { kind: 'item', id: l.id, title: l.title, workspace: l.workspace },
|
|
194
234
|
scope,
|
|
195
235
|
mode: 'human-decision',
|
|
196
|
-
...(decisionId !== ''
|
|
236
|
+
...(decisionId !== ''
|
|
237
|
+
? { gate: { code: 'decision-pending', ref: decisionId, blockedBy: decisionId, ...(d?.title !== undefined ? { blockedByTitle: d.title } : {}) } }
|
|
238
|
+
: { gate: { code: 'decision-pending' } }),
|
|
197
239
|
step: { code: focus ? 'focus-decision' : 'settle-decision' },
|
|
198
240
|
rank: 'P1_GATE',
|
|
199
|
-
facts: factsOf(l, decisionId !== '' ? [decisionId] : []),
|
|
241
|
+
facts: factsOf(l, decisionId !== '' ? [decisionId] : [], fanInOf(l.id)),
|
|
200
242
|
...(decisionId !== '' ? { commandHint: `track focus ${decisionId}` } : {}),
|
|
201
243
|
}),
|
|
202
244
|
});
|
|
@@ -213,10 +255,10 @@ export function buildDirectives(tree, decisions = []) {
|
|
|
213
255
|
target: { kind: 'engagement', id: engRef, title: l.title, workspace: l.workspace },
|
|
214
256
|
scope,
|
|
215
257
|
mode: 'h2a-engagement',
|
|
216
|
-
gate: { code: 'engagement-pending', ref: engRef },
|
|
258
|
+
gate: { code: 'engagement-pending', ref: engRef, blockedBy: engRef },
|
|
217
259
|
step: { code: 'resume-engagement' },
|
|
218
260
|
rank: 'P1_GATE',
|
|
219
|
-
facts: factsOf(l, extraEng !== undefined ? [extraEng.blockerId] : []),
|
|
261
|
+
facts: factsOf(l, extraEng !== undefined ? [extraEng.blockerId] : [], fanInOf(l.id)),
|
|
220
262
|
}),
|
|
221
263
|
});
|
|
222
264
|
continue;
|
|
@@ -244,7 +286,7 @@ export function buildDirectives(tree, decisions = []) {
|
|
|
244
286
|
gate: { code: 'priority-missing' },
|
|
245
287
|
step: { code: 'prioritize-backlog' },
|
|
246
288
|
rank: 'P4_TODO_WSJF',
|
|
247
|
-
facts: factsOf(rep, []),
|
|
289
|
+
facts: factsOf(rep, [], fanInOf(rep.id)),
|
|
248
290
|
commandHint: `track priority assess ${rep.id}`,
|
|
249
291
|
}),
|
|
250
292
|
});
|
|
@@ -261,11 +303,19 @@ export function buildDirectives(tree, decisions = []) {
|
|
|
261
303
|
scope,
|
|
262
304
|
mode: 'subagent',
|
|
263
305
|
...(top.gateCode !== undefined
|
|
264
|
-
? {
|
|
306
|
+
? {
|
|
307
|
+
gate: {
|
|
308
|
+
code: top.gateCode,
|
|
309
|
+
...(top.gateRef !== undefined ? { ref: top.gateRef } : {}),
|
|
310
|
+
...(top.blockedBy !== undefined
|
|
311
|
+
? { blockedBy: top.blockedBy, ...(titleOf(top.blockedBy) !== undefined ? { blockedByTitle: titleOf(top.blockedBy) } : {}) }
|
|
312
|
+
: {}),
|
|
313
|
+
},
|
|
314
|
+
}
|
|
265
315
|
: {}),
|
|
266
316
|
step: { code: top.step },
|
|
267
317
|
rank: top.rank,
|
|
268
|
-
facts: factsOf(top.l, top.blockerRefs),
|
|
318
|
+
facts: factsOf(top.l, top.blockerRefs, fanInOf(top.l.id)),
|
|
269
319
|
}),
|
|
270
320
|
});
|
|
271
321
|
}
|
|
@@ -283,7 +333,7 @@ export function buildDirectives(tree, decisions = []) {
|
|
|
283
333
|
target: { kind: 'decision', id: d.id, title: d.title, workspace: d.workspace },
|
|
284
334
|
scope: {},
|
|
285
335
|
mode: 'human-decision',
|
|
286
|
-
gate: { code: 'decision-pending', ref: d.id },
|
|
336
|
+
gate: { code: 'decision-pending', ref: d.id, blockedBy: d.id, blockedByTitle: d.title },
|
|
287
337
|
step: { code: focus ? 'focus-decision' : 'settle-decision' },
|
|
288
338
|
rank: 'P1_GATE',
|
|
289
339
|
facts: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"directive.js","sourceRoot":"","sources":["../../src/report/directive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"directive.js","sourceRoot":"","sources":["../../src/report/directive.ts"],"names":[],"mappings":"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"}
|
package/dist/report/format.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { DecisionRow, Report, ReportRow } from './build.js';
|
|
2
|
-
import type { WpNode } from './rollup.js';
|
|
3
|
-
import { type Directive } from './directive.js';
|
|
2
|
+
import type { WpLeaf, WpNode } from './rollup.js';
|
|
3
|
+
import { type Directive, type Keystone } from './directive.js';
|
|
4
4
|
export type Format = 'json' | 'text' | 'md';
|
|
5
5
|
export declare function formatReport(report: Report, format: Format): string;
|
|
6
6
|
/**
|
|
@@ -32,6 +32,19 @@ export interface WpTotals {
|
|
|
32
32
|
* roots' rolled-up counts (which would double-count nested sub-WP leaves).
|
|
33
33
|
*/
|
|
34
34
|
export declare function wpTotals(tree: readonly WpNode[]): WpTotals;
|
|
35
|
+
export interface LeafCohort {
|
|
36
|
+
tag: string;
|
|
37
|
+
count: number;
|
|
38
|
+
/** Member leaf titles (CLEAN, deterministic by leaf id). */
|
|
39
|
+
titles: string[];
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* §A3 — cohort-collapse: fold a WP's open leaves into `{tag, count, titles}` groups by `leafStatusTag`.
|
|
43
|
+
* RENDER-ONLY and STRICTLY INTRA-WP (the caller passes ONE WP's leaves, so a cohort never spans WPs). The
|
|
44
|
+
* machine `directives[]` / `dispatchQueue` are NEVER collapsed — this is a pure presentation fold. Cohorts
|
|
45
|
+
* are ordered by first appearance in id-sorted leaf order (deterministic, no flicker).
|
|
46
|
+
*/
|
|
47
|
+
export declare function collapseLeafCohorts(leaves: readonly WpLeaf[]): LeafCohort[];
|
|
35
48
|
/**
|
|
36
49
|
* Report-revamp — the 3-table CONDUCTOR view over the WP forest (the owner reports THROUGH this):
|
|
37
50
|
* FAIT — WPs at 100% + a global done/total, pct%.
|
|
@@ -63,6 +76,11 @@ export interface ReportView {
|
|
|
63
76
|
*/
|
|
64
77
|
directives: readonly Directive[];
|
|
65
78
|
dispatchQueue: readonly string[];
|
|
79
|
+
/**
|
|
80
|
+
* ADDITIVE (report-revamp §A5) — the keystone item (max 1-hop fan-in, tie-break ULID): the single item
|
|
81
|
+
* whose completion unblocks the most others. Present iff ≥1 open dependency exists. Drop-when-absent.
|
|
82
|
+
*/
|
|
83
|
+
keystone?: Keystone;
|
|
66
84
|
}
|
|
67
85
|
/**
|
|
68
86
|
* Render ONE directive to a human FR phrase — RENDER-ONLY (no phrase is ever stored as data, DESIGN §3).
|
|
@@ -72,5 +90,12 @@ export interface ReportView {
|
|
|
72
90
|
export declare function directivePhrase(d: Directive): string;
|
|
73
91
|
export declare function buildWpConductorView(tree: readonly WpNode[], decisions?: readonly DecisionRow[]): ReportView;
|
|
74
92
|
export declare function formatWpConductor(tree: readonly WpNode[], format: Format, decisions?: readonly DecisionRow[]): string;
|
|
93
|
+
export interface InlineOptions {
|
|
94
|
+
/** Target line width (terminal columns). Clamped to [48, 200]; defaults to 80. */
|
|
95
|
+
width?: number;
|
|
96
|
+
/** Max PRÉCO lines before an omission count is surfaced (never a silent cut). Defaults to 10. */
|
|
97
|
+
maxDirectives?: number;
|
|
98
|
+
}
|
|
99
|
+
export declare function formatWpConductorInline(tree: readonly WpNode[], decisions?: readonly DecisionRow[], opts?: InlineOptions): string;
|
|
75
100
|
export declare function formatRows(rows: ReportRow[], format: Format): string;
|
|
76
101
|
//# sourceMappingURL=format.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/report/format.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAChE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/report/format.ts"],"names":[],"mappings":"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"}
|