@sentropic/h2a 0.87.0 → 0.89.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +1 -1
- package/.codex-plugin/plugin.json +1 -1
- package/dist/cli-contract.d.ts.map +1 -1
- package/dist/cli-contract.js +9 -1
- package/dist/cli-contract.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +83 -34
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/runtime/local-files/index.d.ts +1 -1
- package/dist/runtime/local-files/index.d.ts.map +1 -1
- package/dist/runtime/local-files/index.js.map +1 -1
- package/dist/runtime/local-files/paths.d.ts +27 -9
- package/dist/runtime/local-files/paths.d.ts.map +1 -1
- package/dist/runtime/local-files/paths.js +78 -18
- package/dist/runtime/local-files/paths.js.map +1 -1
- package/dist/runtime/local-files/store.js +1 -1
- package/dist/runtime/local-files/store.js.map +1 -1
- package/dist/runtime/loop/engine/adapters.js +1 -1
- package/dist/runtime/loop/engine/adapters.js.map +1 -1
- package/dist/runtime/loop/index.d.ts +2 -0
- package/dist/runtime/loop/index.d.ts.map +1 -1
- package/dist/runtime/loop/index.js +25 -0
- package/dist/runtime/loop/index.js.map +1 -1
- package/dist/runtime/mcp/handlers.d.ts +2 -1
- package/dist/runtime/mcp/handlers.d.ts.map +1 -1
- package/dist/runtime/mcp/handlers.js +81 -33
- package/dist/runtime/mcp/handlers.js.map +1 -1
- package/dist/runtime/mcp/server.js +1 -1
- package/dist/runtime/mcp/server.js.map +1 -1
- package/dist/runtime/mcp/tools.d.ts.map +1 -1
- package/dist/runtime/mcp/tools.js +2 -1
- package/dist/runtime/mcp/tools.js.map +1 -1
- package/dist/runtime/mirror/serve.d.ts.map +1 -1
- package/dist/runtime/mirror/serve.js +4 -12
- package/dist/runtime/mirror/serve.js.map +1 -1
- package/package.json +2 -2
- package/skills/harness/track-report/SKILL.md +285 -58
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/runtime/mirror/serve.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"serve.js","sourceRoot":"","sources":["../../../src/runtime/mirror/serve.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sentropic/h2a",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.89.0",
|
|
4
4
|
"description": "h2a — the unified CLI + core for human-to-agent coordination.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"@hono/mcp": "^0.3.0",
|
|
52
52
|
"@hono/node-server": "^2.0.12",
|
|
53
53
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
54
|
-
"@sentropic/track": "^0.
|
|
54
|
+
"@sentropic/track": "^0.89.0",
|
|
55
55
|
"hono": "^4.12.32"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
@@ -5,99 +5,326 @@ description: Use when asked for a track report, status, or advancement report. R
|
|
|
5
5
|
|
|
6
6
|
# harness/track-report
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
below is a local, read-only
|
|
8
|
+
`track` supplies complete, deterministic facts and already renders the four sections the owner
|
|
9
|
+
validated. The agent already in the conversation supplies the contextual synthesis on top of them. Do not
|
|
10
|
+
call a model, adapter, gateway, or network-backed report path. Every command below is a local, read-only
|
|
11
|
+
projection of the folded log.
|
|
12
|
+
|
|
13
|
+
The shape is not yours to choose. It is fixed by `docs/specs/examples/track-report-contextual.md` (the
|
|
14
|
+
artefact the owner approved) and by `docs/specs/2026-07-29-track-report-period.md` and its two
|
|
15
|
+
corrections. Where this file and that spec disagree, the spec wins.
|
|
16
|
+
|
|
17
|
+
## Bootstrap a fresh clone
|
|
18
|
+
|
|
19
|
+
`track` is built from this repository; a fresh clone has neither `packages/track/dist` nor a local
|
|
20
|
+
`track` executable. From the repository root, bootstrap it once before the read commands:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm ci
|
|
24
|
+
npm run build -w @sentropic/track
|
|
25
|
+
track_bin="$(pwd -P)/packages/track/dist/cli/bin.js"
|
|
26
|
+
test -f "$track_bin"
|
|
27
|
+
node "$track_bin" --version
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
`track_bin` is an absolute path to this checkout's built executable. Record and reuse that value in every
|
|
31
|
+
later tool call: `node "$track_bin" …` cannot fall through to a globally installed `track`, even when a
|
|
32
|
+
tool persists only its cwd and not its shell functions. The bootstrap and every command below are read-only
|
|
33
|
+
with respect to `.track/`.
|
|
11
34
|
|
|
12
35
|
## Read the deterministic layer
|
|
13
36
|
|
|
14
37
|
Run these commands from the repository root, in this order:
|
|
15
38
|
|
|
16
39
|
```bash
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
40
|
+
node "$track_bin" report --raw --format json
|
|
41
|
+
node "$track_bin" report --wp --decisions --format json
|
|
42
|
+
node "$track_bin" decision ls --outcome pending --format json
|
|
20
43
|
```
|
|
21
44
|
|
|
22
|
-
- The first command is the factual snapshot: all buckets, their raw total,
|
|
23
|
-
`
|
|
45
|
+
- The first command is the factual snapshot: all buckets, their raw total, decision `structure`,
|
|
46
|
+
`outsideRollup`, and a reconciled `wpTotals`. Its top-level `directives` has
|
|
47
|
+
`directivesProjection.kind: "rule-derived-facts"` and
|
|
48
|
+
`order: "aggregate-id-then-id"`: these are compact rule-derived facts, not the conductor actions.
|
|
49
|
+
`recentEventsProjection` says that `recentEvents` is the last **up to 200** append-ordered,
|
|
50
|
+
payload-free `position/eventId/kind/aggregateId` entries; it is history evidence, not a task queue.
|
|
24
51
|
- The second is the complete conductor projection. Its `wpTree` and `view` are the only source for WP
|
|
25
|
-
identity, per-WP percentages,
|
|
52
|
+
identity, per-WP percentages, and action directives. `view.tables` is already the four sections in
|
|
53
|
+
order. `view.directivesProjection` is `conductor-action-directives` in `canonical-urgency` order.
|
|
54
|
+
`view.dispatchQueueProjection` identifies `dispatchQueue` as the canonical-order ids from that same
|
|
55
|
+
array whose modes are `subagent` or `local`; resolve an id only against `view.directives`, never against
|
|
56
|
+
raw-snapshot `directives`.
|
|
26
57
|
- The third lists every pending decision without a renderer cap. Each row carries its exact `workspace`,
|
|
27
58
|
`options`, `recommendation`, and `structure` (`structured` or `unstructured`).
|
|
28
59
|
|
|
60
|
+
The three commands are the live-report route. To verify the named historical fixture only, materialize its
|
|
61
|
+
fixed log and run these **same three commands** with `--track-dir <fixture-dir>` and `--commit <fixture-sha>`
|
|
62
|
+
on every command. That fixture override is not a live-report default and must not replace the commands
|
|
63
|
+
above.
|
|
64
|
+
|
|
65
|
+
`--track-dir <directory-containing-events.jsonl>` is a documented global override: it may appear before or
|
|
66
|
+
after the command, and `TRACK_DIR` is its environment equivalent. Confirm its spelling with
|
|
67
|
+
`node "$track_bin" --help` or `node "$track_bin" report --help`. It redirects the whole **store**, reads and
|
|
68
|
+
writes alike — a write verb run under `--track-dir` appends to that directory. Point it at a copy, never at
|
|
69
|
+
a log you are not the designated writer for. The report commands above are read-only by themselves; the
|
|
70
|
+
override does not make an arbitrary command read-only.
|
|
71
|
+
|
|
29
72
|
Do not use `track report --flat` to recover omitted conductor rows: it is a deterministic flat diagnostic,
|
|
30
|
-
not an emergency route.
|
|
31
|
-
|
|
32
|
-
labels now match the conductor, but the conductor remains the report's single source.
|
|
73
|
+
not an emergency route. Do not use `track report --level wp` to label WPs for this report; it is a
|
|
74
|
+
different status projection.
|
|
33
75
|
|
|
34
|
-
|
|
35
|
-
the item has no WP ancestor; a present `wpId` means an intermediate non-WP item is outside the leaf-only
|
|
36
|
-
rollup. Neither may disappear from the report. Check that `DONE + TO-DO + AWAITED + DROPPED` equals
|
|
76
|
+
Check that `DONE + TO-DO + AWAITED + DROPPED` equals
|
|
37
77
|
`wpTotals.done + (wpTotals.active - wpTotals.done) + wpTotals.dropped`; if it does not, report the mismatch
|
|
38
78
|
as a tool defect rather than silently selecting a denominator.
|
|
39
79
|
|
|
40
|
-
|
|
80
|
+
`view.directives` is already in canonical urgency order. Preserve that array order whenever directives are
|
|
81
|
+
listed; never re-sort or group it by `rank`. `rank` is a coarse display badge, so repeated/interleaved
|
|
82
|
+
badges are intentional. The fixed ladder is: decision/engagement wait, dependency, failed acceptance,
|
|
83
|
+
in-progress work, stale acceptance, missing specification, WSJF-ranked to-do, then fallback. WSJF breaks
|
|
84
|
+
ties only within its tier; it does not explain a change between these tiers.
|
|
85
|
+
|
|
86
|
+
## The three inputs, declared
|
|
87
|
+
|
|
88
|
+
The contextual report is a synthesis over **three** inputs, and it names which one each claim comes from:
|
|
89
|
+
|
|
90
|
+
1. **the deterministic projection** — the three commands above. Structure, percentages, blockers,
|
|
91
|
+
dossiers, handles.
|
|
92
|
+
2. **the repository history over the window** — `git log`, merged PRs, releases, tags. This is where
|
|
93
|
+
`15 PR mergées`, `release 0.86.0`, `#53`, `37 → 52` come from. No amount of reading `.track` yields
|
|
94
|
+
them. If you did not run the git commands, you do not have this input, and you write nothing that
|
|
95
|
+
would need it.
|
|
96
|
+
3. **owner/session context** — the executor model (`sol xhigh`, `terra xhigh`), and which objectives the
|
|
97
|
+
owner considers the focus.
|
|
98
|
+
|
|
99
|
+
Every **structured** claim in FAIT — a count, a version, a PR number, a percentage — carries its
|
|
100
|
+
provenance and must be recomputable from input 1 or input 2. A claim traceable to neither is a
|
|
101
|
+
fabrication. Free prose is not machine-checkable and this rule does not pretend it is.
|
|
102
|
+
|
|
103
|
+
## Authoritative section order
|
|
104
|
+
|
|
105
|
+
Render exactly four sections, in this order, and nothing else: **FAIT**, **À-FAIRE**, **DÉCISIONS**,
|
|
106
|
+
**RECOMMANDATION**. `view.tables` is already exactly that. There is no `À-FAIRE SANS WP`, no
|
|
107
|
+
`HORS ROLLUP`, no `À INSTRUIRE`, no `HISTORIQUE NON STRUCTURÉ`, no `ACTIONS DÉRIVÉES`: what those tables
|
|
108
|
+
carried is folded into the four, and what they carried that does not matter is not printed.
|
|
109
|
+
|
|
110
|
+
The header carries the **period**, the **acceptance baseline** and the two coverage counts. It carries no
|
|
111
|
+
bucket counters.
|
|
112
|
+
|
|
113
|
+
**There is always a window, and it always has bounds.** "The whole log" *is* a window: first recorded
|
|
114
|
+
event → now. Both bounds are in the log and need no selector, so the header always reads
|
|
115
|
+
`période : 2026-06-09 → 2026-07-29 (intégralité du journal)`. The phrase `aucune fenêtre` is wrong — it
|
|
116
|
+
described the absence of a flag, not the absence of a period. What is still forbidden is announcing a
|
|
117
|
+
window nothing supports: `--since`/`--until`/`--period` do not exist, so a window you did not measure in
|
|
118
|
+
the log is invented. `--now <iso>` pins the upper bound when you need a reproducible render.
|
|
119
|
+
|
|
120
|
+
The acceptance baseline is **not** a window. Keep the two apart in the sentence, as the renderer does.
|
|
121
|
+
|
|
122
|
+
**FAIT** — `scope · avancement · dernières actions`. The third column names what was accomplished, not the
|
|
123
|
+
arithmetic: `agrégat de périmètre; pas une action` and `WP clos (état enregistré)` are both forbidden.
|
|
124
|
+
|
|
125
|
+
**Write each cell by the finality.** Not the mechanism, not the chronology: the capability reached, what
|
|
126
|
+
it enables, what class of problem it closes. A reader who does not know the code must understand what was
|
|
127
|
+
gained. Numbers, versions, dates and identifiers come in support — once or twice, to prove — never as the
|
|
128
|
+
structure of the sentence.
|
|
129
|
+
|
|
130
|
+
What that means concretely, on WP2:
|
|
131
|
+
|
|
132
|
+
> ❌ *« reach-guard partagé sur les chemins réveil/relance et workspace-id git-dérivé (09/06),
|
|
133
|
+
> `discover --live` classé par confiance (14/06), signal de confiance de connexion honnête + arrêt
|
|
134
|
+
> gracieux et purge de présence fantôme (10/06), `touch()` qui ressuscite une présence balayée (18/06) »*
|
|
135
|
+
>
|
|
136
|
+
> ✅ *« Adresser un agent ne relève plus du pari.
|
|
137
|
+
> La cible est vérifiée avant l'envoi et les sessions mortes cessent de répondre — 337 destinataires
|
|
138
|
+
> annoncés, 3 réellement joignables. »*
|
|
139
|
+
|
|
140
|
+
The first is a commit list translated into French. What disappears: a parenthesised date on every clause,
|
|
141
|
+
symbol names in series, chronological enumeration. What stays: one or two measures that make the
|
|
142
|
+
capability credible.
|
|
41
143
|
|
|
42
|
-
|
|
144
|
+
**One idea per line.** A cell is written as an editor writes, with a line break between ideas — two to
|
|
145
|
+
four lines per WP on a long window. The renderer honours `\n` in every format, so use it. A cell that
|
|
146
|
+
overflows is enumerating instead of synthesising, which is the same defect again.
|
|
43
147
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
148
|
+
**Over a long window the deterministic layer cannot help you here, and it says so.** When a scope has more
|
|
149
|
+
completions than fit, the cell reads `bilan à écrire : N livraisons sur la fenêtre, titres seuls dans le
|
|
150
|
+
projeté. / Écrire par la finalité …`. **That is an instruction, not a result.** It deliberately does *not*
|
|
151
|
+
list the titles: a chronological list of item titles is exactly the shape forbidden above, and the
|
|
152
|
+
renderer will not hand you one to paste. Get the material from input 2 — `git log`, merged PRs, releases,
|
|
153
|
+
tags over the window — plus `track query --bucket DONE` for the item set, and name the provenance. If you
|
|
154
|
+
do not have input 2, leave the cell saying what is missing.
|
|
50
155
|
|
|
51
|
-
|
|
156
|
+
**The global row is an aggregate: never turn its count into an accomplishment sentence.**
|
|
157
|
+
|
|
158
|
+
**Stop at the WP on a long window.** A sub-WP is implementation detail; beside its own parent it inflates
|
|
159
|
+
the table, repeats the parent's information and blurs the reading by theme. On a window of two weeks or
|
|
160
|
+
more the renderer aggregates sub-levels into their parent — their leaves, deliveries and directives merge
|
|
161
|
+
upward, nothing is lost — and the header declares how many (`8 sous-WP agrégés dans leur parent`). Do not
|
|
162
|
+
re-expand them. They come back on a short window, or on the owner's explicit request
|
|
163
|
+
(`track report --sub-wp`).
|
|
164
|
+
|
|
165
|
+
**À-FAIRE** — exactly five columns: `WP · av. · à faire · bloqué · prochaine action`. There is no
|
|
166
|
+
`cible action` column; a DONE item carrying acceptance debt is named inside `à faire` with its bucket.
|
|
167
|
+
Print the line `ordre = priorité ; les cinq premiers sont le focus` under the heading.
|
|
168
|
+
|
|
169
|
+
- `bloqué` names the **answer** that unblocks — `D7`, `D1–D5` — or a short gate token (`spec`,
|
|
170
|
+
`recette`, `dépendance`, `h2a`, `priorité`). It never restates the question.
|
|
171
|
+
- **An empty `bloqué` means no blockage is recorded.** A recorded gate rendered `—` is a failure, not a
|
|
172
|
+
clean cell. The machine-only `gateDetail` property carries the precise gate phrase if you need it.
|
|
173
|
+
- `prochaine action` names **the concrete next gesture on that item** — the file, the function, the
|
|
174
|
+
question to settle, the command to run. See the section below: this is the criterion that failed UAT.
|
|
175
|
+
- A row gated on a pending dossier has **no** next action until the decision lands — that is the only
|
|
176
|
+
case where `—` is correct there.
|
|
177
|
+
- WP labels are short human names (`WP2 · Addressing`), never the full stored title.
|
|
178
|
+
- One item per line, and an item's recorded body excerpt on its own line beneath it
|
|
179
|
+
(`↳ extrait : …`) — a supporting clause, never a paragraph appended to the title. The excerpt comes
|
|
180
|
+
from the log and costs no investigation; a bare title means the log records only a title, and that is
|
|
181
|
+
a different kind of emptiness from a row nobody has looked at yet. Keep the two distinguishable.
|
|
182
|
+
|
|
183
|
+
**DÉCISIONS** — a drawn table `# · sujet · alternatives · préco`, numbered `D1…Dn`, each recommendation on
|
|
184
|
+
the line of its own option. The renderer already draws it; `formatWpConductor` adds no fence in `text`, and
|
|
185
|
+
fences it in `md`.
|
|
186
|
+
|
|
187
|
+
**DÉCISIONS carries only pending dossiers the owner can answer now. Nothing else.**
|
|
188
|
+
|
|
189
|
+
- **A `D` number is reserved for a dossier whose options AND recommendation are stored.** A report that
|
|
190
|
+
prints alternatives absent from the log fails, however plausible they are.
|
|
191
|
+
- **A settled dossier leaves the report.** It has nothing left to answer, it crowds out the dossiers that
|
|
192
|
+
are still waiting, and it is already visible where it counts: in the freed `bloqué` cell of the row it
|
|
193
|
+
used to gate, or in FAIT if it produced something. It is counted among the omitted rows, with its
|
|
194
|
+
reason. Do not render it as history.
|
|
195
|
+
- **A pending dossier with no stored options cannot be answered either**, so it is not offered here.
|
|
196
|
+
`non enregistrées — à structurer` teaches nothing and cannot be replied to. It belongs in À-FAIRE as
|
|
197
|
+
the work of making it answerable: record its options and recommendation
|
|
198
|
+
(`track decision dossier <id>`), then it earns a `D` number.
|
|
199
|
+
- Never infer choices by parsing a prose `context` field. There is no machine-readable effect field; do not
|
|
200
|
+
invent one.
|
|
201
|
+
- For a single structured dossier, use the exact workspace from `decision ls`:
|
|
202
|
+
`node "$track_bin" focus <decision-id> --workspace <workspace-from-decision-ls>`. `--workspace` is
|
|
203
|
+
required; a mismatched workspace is an error. Never substitute `track workspace-id` or a workspace
|
|
204
|
+
inferred from the current directory.
|
|
205
|
+
|
|
206
|
+
**RECOMMANDATION** — what starts with no answer at all, then what each answer unblocks, then a single
|
|
207
|
+
reply line. The owner must be able to answer `vas y` or `D1 A · D2 B · D3 A`. If `decision ls` has zero
|
|
208
|
+
`structure: "structured"` pending rows, this section says exactly:
|
|
209
|
+
`Aucun D# disponible : aucun dossier structuré sélectionnable dans le journal.` Do not invite `D1 A` in
|
|
210
|
+
that case; name only recorded non-decision directives that can start now, and name each unstructured
|
|
211
|
+
dossier as the prerequisite to a selectable decision. If no non-decision directive exists, say that no
|
|
212
|
+
executable lane is attested.
|
|
213
|
+
|
|
214
|
+
## `prochaine action` is investigated, not derived
|
|
215
|
+
|
|
216
|
+
This is the criterion the owner's UAT rejected, and it is the one that matters most.
|
|
217
|
+
|
|
218
|
+
The gate of a directive gives you `Terminer l'incrément en cours`, `Rédiger la spécification`,
|
|
219
|
+
`Relancer la vérification`. Those name the **class** of the work, never the work. Twenty rows, five
|
|
220
|
+
distinct sentences, zero information: that is a template, not a recommendation. The renderer no longer
|
|
221
|
+
serves them as next actions — it keeps the class on a machine-only `gateStep` property, and the class is
|
|
222
|
+
in any case what the `bloqué` column already says.
|
|
223
|
+
|
|
224
|
+
What the report must carry instead, **for every focus row**: the concrete next gesture on *that* item —
|
|
225
|
+
the file to change, the function, the question to settle, the command to run. You get it by **opening the
|
|
226
|
+
item**: its body, its acceptance criteria, the commits and the code it references. That is investigation,
|
|
227
|
+
not a rewording of the gate. `track report --resolve <handle>` gives you the id to open.
|
|
228
|
+
|
|
229
|
+
It costs real per-row work, so it is **bounded to the focus rows** — the five the ordering line names.
|
|
230
|
+
The renderer marks them `à instruire : ouvrir l'item et nommer le geste`; you must replace every one of
|
|
231
|
+
those markers before serving the report. Every other row keeps `non instruite`, which says plainly that
|
|
232
|
+
the action has not been instructed — that is honest, and it is what you leave there.
|
|
233
|
+
|
|
234
|
+
Checkable, and to be run before serving: `auditNextActions(values, gateClauses)` from
|
|
235
|
+
`@sentropic/track` returns `{ uninstructed, repeated, gateClauses, ok }`. `uninstructed > 0` means focus
|
|
236
|
+
rows still carry the renderer's marker — finish them. `ok === false` means a substantive action repeats
|
|
237
|
+
on three or more rows, or equals a gate clause: in both cases it names a class, not a gesture. Not
|
|
238
|
+
checkable, and the part that actually failed the UAT: whether the sentence is *right*. The owner judges
|
|
239
|
+
that, and no green test substitutes for it.
|
|
240
|
+
|
|
241
|
+
## Compress, but never hide
|
|
242
|
+
|
|
243
|
+
The report is a decision surface, not an inventory. Compressing the projection is the work, not a defect —
|
|
244
|
+
the validated report renders 15 À-FAIRE rows against a raw projection of 64. Two rules make that safe:
|
|
245
|
+
|
|
246
|
+
- **State both counts.** The header says `N lignes projetées · M rendues` and how many were omitted.
|
|
247
|
+
Omission is a declared act, never a silent one.
|
|
248
|
+
- **Two classes are never omitted**: every WP carrying open work, and every pending dossier. Deleting a
|
|
249
|
+
row is never a way to turn a criterion green. An adversarial review once produced a report that passed
|
|
250
|
+
every shape criterion while deleting 44 of 48 rows and inventing the decisions it kept; these two rules
|
|
251
|
+
exist because of it.
|
|
252
|
+
|
|
253
|
+
What may be omitted: a WP with no open work, no recorded gate and no recorded completion; and a settled
|
|
254
|
+
dossier, which has nothing left to answer. **Every omission names its reason** — the header groups them
|
|
255
|
+
(`60 omises : 47 WP sans item ouvert… · 13 décision déjà tranchée…`). An omission without a why is the
|
|
256
|
+
silence this rule exists to forbid.
|
|
257
|
+
|
|
258
|
+
**If you cannot make a row intelligible, do not serve it as it is.** `non enregistrées · aucune option
|
|
259
|
+
attestée` describes the state of a datum, not a situation to act on. Either instruct the row — say what
|
|
260
|
+
would make it answerable, what it would take to act — or count it among the omissions and say why. Those
|
|
261
|
+
are the only two outcomes. Serving the obscure verbatim is the third, and it is the one the UAT rejected.
|
|
262
|
+
|
|
263
|
+
## Handles, and what they are worth
|
|
264
|
+
|
|
265
|
+
Each actionable row carries a positional handle `[n.m]` — row `n`, item `m` — and the report ends with a
|
|
266
|
+
**resolution block** mapping every emitted handle to its item id, plus the one command that acts on it:
|
|
52
267
|
|
|
53
268
|
```bash
|
|
54
|
-
|
|
269
|
+
node "$track_bin" report --resolve <handle>
|
|
55
270
|
```
|
|
56
271
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
272
|
+
The handle token `[n.m]` is emitted **verbatim in text, Markdown and HTML** — it is machine-generated, so
|
|
273
|
+
it is exempt from the Markdown escaping applied to user-originated titles, and the three formats yield the
|
|
274
|
+
same handle set. Copy a handle straight from any rendering into `--resolve`; never unescape it first.
|
|
275
|
+
|
|
276
|
+
Handles are **per-report and positional**. Two reports over the same log may number differently; the
|
|
277
|
+
resolution block is what makes a reply unambiguous. A reply quoting `[3.2]` without the report it came
|
|
278
|
+
from is not actionable, and the report says so. The resolution block is the machine's half of the page,
|
|
279
|
+
not a table the owner reads — it is also the only place an item id appears.
|
|
61
280
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
enforcement mechanism.
|
|
281
|
+
**No ULID appears in any column the owner reads.** Not in À-FAIRE, not as decision identity, not in FAIT.
|
|
282
|
+
This is checkable by `[0-9A-HJKMNP-TV-Z]{26}` over the rendered table bodies, in every format.
|
|
65
283
|
|
|
66
|
-
|
|
67
|
-
commit, or explicit session boundary) and synthesize accomplishments, not inventory. Keep the raw and
|
|
68
|
-
conductor total distinction honest: they should now reconcile; mention HORS ROLLUP when it is non-empty.
|
|
284
|
+
## The executor, and what the log does not record
|
|
69
285
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
only
|
|
75
|
-
|
|
286
|
+
The log does **not** record a model or reasoning effort. Owner/session context means only (1) an explicit
|
|
287
|
+
owner statement in this report request/current conversation, or (2) an explicitly cited owner-authored
|
|
288
|
+
session artifact that maps this exact item, WP, or directive to an executor (and, if claimed, model/effort).
|
|
289
|
+
It excludes project memory, repository documents, installed configuration, defaults, prior conventions, and
|
|
290
|
+
inference. Context may enrich executor prose only; it never overrides emitted order, gates, or facts. When
|
|
291
|
+
the report needs model/effort but that narrow context is absent, write exactly:
|
|
292
|
+
`exécuteur: contexte owner requis (modèle/effort non présents dans le journal)`.
|
|
76
293
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
journal)`. Do not invent `sol xhigh` or similar conventions, and do not leave the field blank.
|
|
294
|
+
Do not call an absent `facts.wsjf` subjective "priority". A `priority-missing` directive means the log has
|
|
295
|
+
no assessment; only an owner-authorized write such as
|
|
296
|
+
`node "$track_bin" priority assess <item-id> --ubv <n> --tc <n> --rr <n> --js <n>` can add one.
|
|
81
297
|
|
|
82
|
-
|
|
83
|
-
recommendation, and a durable selected option when present. `formatWpConductor` uses ordinary
|
|
84
|
-
drawn tables and does not add a fence; add one only when the destination requires it. Rule-derived
|
|
85
|
-
blocker prompts stay in À-FAIRE; unstructured dossiers stay in À INSTRUIRE.
|
|
298
|
+
## The compact route is not this report
|
|
86
299
|
|
|
87
|
-
**
|
|
88
|
-
|
|
89
|
-
|
|
300
|
+
`--inline` **and `--width <40..240>`** both select the same compact terminal summary — passing a width turns
|
|
301
|
+
inline on, whether or not you wrote `--inline`. That route is not the complete report: at every width it
|
|
302
|
+
drops **DÉCISIONS**, **RECOMMANDATION** and the handle resolution block, collapses a tail into “+N autres”,
|
|
303
|
+
and prints its own deterministic `PRÉCO` block. Never use either flag to satisfy the sections above, and do
|
|
304
|
+
not quote a `PRÉCO` line as the report's recommendation. The three read commands at the top of this file
|
|
305
|
+
carry no width and must not be given one.
|
|
90
306
|
|
|
91
|
-
`
|
|
92
|
-
|
|
307
|
+
`--decisions` changes the emitted JSON payload; it does not gate the DÉCISIONS section in text, Markdown, or
|
|
308
|
+
HTML, which render dossiers whenever the log holds any. Passing it is still correct — just do not conclude
|
|
309
|
+
from a missing section that the flag failed.
|
|
93
310
|
|
|
94
311
|
## Honesty rules
|
|
95
312
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
313
|
+
These describe the three read commands above. They are guarantees of that route only; `--inline`/`--width`
|
|
314
|
+
truncates by design and `--flat` is a different projection.
|
|
315
|
+
|
|
316
|
+
- Every WP carrying open work and every pending decision appears. Compression is declared with both
|
|
317
|
+
counts; a hidden tail summarized as “+N autres” is not compression, it is hiding.
|
|
318
|
+
- A rule-derived prompt is not a decision. It belongs in À-FAIRE, never in DÉCISIONS, and never gets a
|
|
319
|
+
D-number.
|
|
99
320
|
- Prefer named items and concrete acceptance debt over generic counts.
|
|
100
321
|
- The deterministic layer proves structure and order; contextual wording remains the agent's responsibility.
|
|
101
322
|
State uncertainty instead of promoting a missing stored fact to a conclusion.
|
|
102
323
|
|
|
103
|
-
|
|
324
|
+
This skill is **advisory**. No command, hook, MCP tool, or validator executes it or proves that a synthesis
|
|
325
|
+
followed it. The unit tests bind the *renderer*, not an agent reading this file. Do not describe this
|
|
326
|
+
guidance as an enforcement mechanism.
|
|
327
|
+
|
|
328
|
+
Spec: `docs/specs/2026-07-29-track-report-period.md`.
|
|
329
|
+
Shape reference: `docs/specs/examples/track-report-contextual.md`.
|
|
330
|
+
Deterministic input: `docs/specs/examples/track-report-raw.txt`.
|