@rasensio/aidlc-content 1.91.0 → 1.94.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/docs/cost-tracking.md +13 -0
- package/docs/roadmap.md +32 -15
- package/package.json +1 -1
package/docs/cost-tracking.md
CHANGED
|
@@ -107,6 +107,14 @@ hook installed there is no data, and — the failure that produced two bugfixes
|
|
|
107
107
|
exactly like an idle one. Hence `capture.log` and `lastCaptureError`, so "captured nothing" can be told
|
|
108
108
|
apart from "was never asked".
|
|
109
109
|
|
|
110
|
+
**A command that refuses records says so itself.** For a month, `aidlc cost sync` refused the same 124
|
|
111
|
+
records every run, logged each as a bare `validation-rejected` with the reason dropped, and printed
|
|
112
|
+
nothing. The note on `aidlc cost` fired every time, pointing at a log that did not say what failed, so
|
|
113
|
+
the one warning meant to say "capture has gone dark" was trained into noise. Now sync counts what it
|
|
114
|
+
could not append, keeps the ledger's own reason (`invalid cursor`), and prints one `rejected:` line per
|
|
115
|
+
reason. A failed write is logged as `append-failed`, not as a refusal. The count is per record, not
|
|
116
|
+
per attempt, because the attribute and backfill passes both retry a refused Claude Code record.
|
|
117
|
+
|
|
110
118
|
**How attribution works**, because this is where the surprises are. A usage record gets an instance and
|
|
111
119
|
a phase by intersecting two windows:
|
|
112
120
|
|
|
@@ -165,6 +173,11 @@ Everything is under `packages/cli/src/cost`:
|
|
|
165
173
|
array order, because array order is only right while response groups stay contiguous and the
|
|
166
174
|
transcript format is internal to Claude Code. If contiguity broke, inferring would send the cursor
|
|
167
175
|
backwards and re-charge a span of transcript.
|
|
176
|
+
Every provider's output must fit the ledger's closed schema, and `cost-provider-ledger-contract`
|
|
177
|
+
tests exactly that. It exists because Codex wrote its cursor as `<rollout>#<n>` and the ledger's
|
|
178
|
+
cursor rule has no `#`: every Codex record was refused, by sync and live capture alike, while each
|
|
179
|
+
side's own tests passed. The cursor is now `<rollout>:<n>`. The fix went in the provider, not the
|
|
180
|
+
rule, so ledger lines a new `aidlc` writes stay readable by every older one already installed.
|
|
168
181
|
- `context.ts` — resident-context reading for `aidlc cost context`. Reads token counts only; never
|
|
169
182
|
copies transcript content, so nothing here can carry a prompt or a secret into a report.
|
|
170
183
|
- `dedupe-history.ts` — the corrective pass over existing ledgers. It distinguishes a *proven
|
package/docs/roadmap.md
CHANGED
|
@@ -88,6 +88,14 @@ worktree flow disagreed — one linked the item by hand, the other left it in `b
|
|
|
88
88
|
listed items and never opened as a path, and an item that already has a `promoted_to` is refused before
|
|
89
89
|
anything is created. The move is left uncommitted; committing it is the caller's.
|
|
90
90
|
|
|
91
|
+
**A start that fails part way leaves nothing behind.** An item with no `promoted_to:` line gets one.
|
|
92
|
+
If the link still fails, `aidlc start` removes the worktree, branch, registry entry and instance
|
|
93
|
+
directory it made, and leaves the item where it was with its text unchanged, so the same command
|
|
94
|
+
works once the cause is fixed. It removes only what that run created, and names anything it could
|
|
95
|
+
not remove. Why: on 2026-10-10 two agent-written items had no `promoted_to:` line. The start failed
|
|
96
|
+
at the link but kept everything it had made, and the retry failed with "already registered".
|
|
97
|
+
Recovery took `git worktree remove`, `git branch -D` and `aidlc doctor` for each item.
|
|
98
|
+
|
|
91
99
|
**The instance's copy is the fallback when an item loses its link.** When no item names a completing
|
|
92
100
|
instance, `roadmap-done` reads the instance's own `roadmap-item.md`. If that copy's `promoted_to`
|
|
93
101
|
names the instance, every open item with the copy's `id` and `promoted_to: null` is linked and moved
|
|
@@ -105,22 +113,31 @@ that picks has no way to write. `priority` is an ordinary extension field (a ran
|
|
|
105
113
|
project declares in `roadmap.item_fields`.
|
|
106
114
|
|
|
107
115
|
**Seeing the roadmap** is `aidlc roadmap view`: one self-contained HTML page, opened in the browser,
|
|
108
|
-
with
|
|
109
|
-
items marked, the latest 20 done items with the rest behind a control,
|
|
110
|
-
and each card links to its item file, its instance folder and
|
|
111
|
-
GitHub when the branch and `origin` are known.
|
|
116
|
+
with three tabs. **Board** has a column per status — backlog in `roadmap next` order with ranks and ready
|
|
117
|
+
items marked, the latest 20 done items with the rest behind a control, hold split into Parked, Declined
|
|
118
|
+
and On hold with the reason on each card — and each card links to its item file, its instance folder and
|
|
119
|
+
retrospective, and its pull requests on GitHub when the branch and `origin` are known. Each open card
|
|
120
|
+
says how long it has sat in its state ("in backlog 9 days", from its last history entry), and inbox,
|
|
121
|
+
backlog and in-progress cards past 30 days are marked stale. Cards and map boxes share a look per status:
|
|
122
|
+
inbox dashed, backlog gray, in progress yellow, done green, hold dotted and faded, with the status word
|
|
123
|
+
kept in each box. Clicking a card opens its executive summary, the rest of the item's text, its
|
|
112
124
|
dependencies and a copy button for its next command (a triage prompt, start in a worktree, rank, or
|
|
113
|
-
`aidlc continue`); the page itself runs nothing
|
|
114
|
-
chains, one labelled group per cluster of linked items, packed side
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
125
|
+
`aidlc continue`); the page itself runs nothing, and links in item text show as text. **Dependencies**
|
|
126
|
+
is a zoomable map of the `depends_on` chains, one labelled group per cluster of linked items, packed side
|
|
127
|
+
by side: each item under its first dependency in a box that wraps its whole title, a link to anything
|
|
128
|
+
not yet done drawn red and dashed, an unknown id drawn as a red dashed node (a typo there silently blocks
|
|
129
|
+
`roadmap next`), items with no dependency hidden behind a toggle, and a status key in the corner. Done
|
|
130
|
+
boxes start hidden behind a "done hidden — show" switch, and hovering a box lights its whole chain.
|
|
131
|
+
**Shipped** lists done items by week, newest first, with the count each week and a running total.
|
|
132
|
+
Board and Dependencies each have their own status chips, presets (Active work, Needs a decision,
|
|
133
|
+
Shipped, Parked, Everything) and Ready/Blocked toggles. The Board opens on inbox, backlog and in
|
|
134
|
+
progress, with done and hold folded into rails you click to reopen; Dependencies opens on every status
|
|
135
|
+
but hides clusters that are entirely done ("Open chains only"), and dims what its filters exclude rather
|
|
136
|
+
than removing it. The tab, both tabs' filters and the hide-done switch live in the URL hash, so a reload
|
|
137
|
+
or a shared link reopens the same view. `/` focuses search, `j` and `k` move to the next and previous
|
|
138
|
+
item (the open panel follows), `1`, `2` and `3` switch tabs, `Esc` closes the panel or clears the
|
|
139
|
+
search. The page opens light; the header button switches to dark, and the browser remembers it across
|
|
140
|
+
regenerations. The page is written to `<git-common-dir>/aidlc/roadmap.html` — outside every working tree, so
|
|
124
141
|
it is never committed and every worktree shares one copy — or wherever `--out` says; `--no-open` only
|
|
125
142
|
writes it. Nothing rebuilds it on a move: until 2026-10-06 every move rewrote two committed Mermaid
|
|
126
143
|
graphs, so every promotion left two shared generated files modified in whichever checkout ran it.
|