One project — across nodes, across time, across tasks

A walkthrough of provLedger: a colleague asks for a discount rate on the weekly tile, and the record shows it was built in May and taken out in June — why, what was tried instead, who said so and how widely it was shared — before the session drafts the reply. The ledger shown is a worked example, not a live database.

●Teams · q3-rollup
chat
01The question
Revenue Reporting
Channels
#q3-rollup●
#finance-data
#deck-review
Direct
SNSarah Nolan
DWDan Whitaker
PRPriya Raman
#q3-rollup 6 members October 2026
Priya Raman is typing
Reply
Send
~/q3-rollup on main
>
● provledger · locating records · 11 candidates · 2 nodes chosen
pkg.rollup.discount_rate · pkg.tiles.weekly_tile
nothing written — a question is not a plan

the answer, checked against the records

Yes. A discount rate was built for the weekly tile on 14 May and removed on 30 June. #e38 #e52

You said why on 3 June: “take the discount rate off the weekly tile until the v2 feed carries discounts again.” #40

The v2 orders feed had stopped carrying orders.discount; data platform said so on 29 May. #r7

Backfilling it from the v1 archive was tried and dropped: the archive keeps 90 days, the quarter needs 190. #43

An estimate from list_price was tried too: expected within half a point, measured 8.1% against 14.7%. #x5 #o5

A rule has stood on the tile since then: do not depend on orders.discount. #41

Scope: 2 nodes, 1 constraint, 1 influencing record, 4 changes, 2026-05-14 to 2026-08-21; 11 candidates, 2 chosen; nothing truncated. Computed in 0.3 s.
● where it is recorded
[Open records] provledger why pkg.rollup.discount_rate
[The task] 127.0.0.1:8765/plan/rollup-a
🏠 Home 🎯 Outcomes 🧬 Node · read-only
Q3-ROLLUP

pkg.rollup.discount_rate

removed upstream 1 · downstream 2 9 records · 8 runs
removed on 2026-06-30 (run 47): the code is gone; what was recorded on it stays

Change history

2026-06-30
Removed from the code. Its records stay.
run 47measured from the source
observed
2026-06-24
Rejected: estimate it from list_price — expected within half a point, measured 8.1% against 14.7%.
rollup-arejected alternativemeasured outcome
Surfaced 2derived
2026-06-12
Rejected: backfill it from the v1 archive — the archive keeps 90 days, the quarter needs 190.
rollup-arejected alternative
Surfaced 2derived
2026-06-03
Take the discount rate off the weekly tile until the v2 feed carries discounts again.
rollup-areasonsource level linked
Surfaced 3 stated
“take the discount rate off the weekly tile until the v2 feed carries discounts again”
tier
stated — the user's own words, with the span captured as you typed it
source level
linked · a reference you can open
recorded in
rollup-a, 2026-06-03 10:12
Sources · 2
#r7 email · “Re: orders feed v2 schema” · said by Mei Lin, data platform: “the v2 orders feed stops carrying orders.discount from the June release” 2026-05-29 16:05 · mail.example.com/thread/v2-schema · last checked 2026-10-13 linked supports
#r8 meeting · “Q2 metrics review” · said by Sarah Nolan: “take it off the tile for now; revisit when v2 carries discounts” 2026-06-02 15:00 · docs.example.com/q2-metrics-review · last checked 2026-10-13 linked supports
provledger why pkg.rollup.discount_rate
2026-05-14
Added: the weekly discount rate, read from orders.discount.
run 39measured from the source
observed

How widely it was shared

visibility
shareable — it travels in an export; a personal record would not
said by
Mei Lin, data platform, in an email · Sarah Nolan, at the Q2 metrics review
shown to
3 later tasks — promo-view, fx-refresh, q3-close
adopted by
promo-view, 2026-08-21 — it changed its plan because of the rule #i4
recipients
not on record — the ledger keeps who said it, not who received it

Constraints

Do not depend on orders.discount: the v2 feed no longer provides it. — from rollup-a · linked · Surfaced 3 · Adopted 1
~/q3-rollup on main
>
● provledger · receipts facts · 2 nodes · the timeline, the gaps and the range
pkg.rollup.discount_rate · pkg.tiles.weekly_tile
nothing written — a question is not a plan, and their words never enter the ledger

material for this reply

A weekly discount rate was built on 2026-05-14 and removed on 2026-06-30
2026-05-14added to the weekly tile, read from orders.discount#e38 2026-05-29 16:05email · “Re: orders feed v2 schema” · said by Mei Lin, data platform: “the v2 orders feed stops carrying orders.discount from the June release” · linked#r7 2026-06-02 15:00meeting · “Q2 metrics review” · said by Sarah Nolan: “take it off the tile for now; revisit when v2 carries discounts”#r8 2026-06-03 10:12your words: “take the discount rate off the weekly tile until the v2 feed carries discounts again” · captured as you typed it#40 2026-06-03 10:14recorded as a rule: do not depend on orders.discount · shareable#41 2026-06-12rejected: backfill from the v1 archive — it keeps 90 days, the quarter needs 190#43 2026-06-24expected: a list_price estimate within half a point · measured: 8.1% against 14.7%#x5 #o5 2026-06-30removed in run 47; its records stay#e52 2026-08-21promo-view changed its plan because of the rule#i4
gaps — state these as gaps, do not fill them
—nothing on record says the v2 feed carries orders.discount nowunstated
Scope: 2 nodes, 1 constraint, 1 influencing record, 4 changes, 2026-05-14 to 2026-08-21; 11 candidates, 2 chosen; nothing truncated. Computed in 0.3 s.
→ Write the reply from the lines above. Every claim must map to one of them. Where a line is marked unstated, say so as a gap. Nothing else may be written.
● handed to this session's model · the material is the whole input · provLedger writes nothing

Hi Priya — we did build this. A weekly discount rate went on the tile on 14 May and came off on 30 June #e38 #e52.

It came off because the v2 orders feed stopped carrying orders.discount: Mei Lin on data platform wrote that on 29 May #r7, and the Q2 metrics review agreed to take it off the tile until v2 carries discounts #r8 #40.

Two ways around it were tried. Backfilling from the v1 archive did not work: it keeps 90 days and the quarter needs 190 #43. Estimating it from list_price was expected to land within half a point and came out at 8.1% against 14.7% #x5 #o5.

So it comes down to one thing nobody has recorded since: whether v2 carries discounts now unstated. That is worth checking with data platform before we build it again.

↳ 8 sentences · 8 map onto the material · 0 dropped · figures checked against the fact table
↳ before you send: confirm with data platform whether the v2 feed carries orders.discount now — nothing on record says so
↳ nothing was sent. The draft stops here; the copy-and-paste is yours.
provLedger

One project, seen three ways — and every piece of knowledge it holds carries the source it came from.

across nodesthe map and the data flow: what is read, what processes it, what comes out.
across timeone thing, everything that happened to it. Append-only — nothing is overwritten, nothing is deleted.
across taskswhat each run read, what it decided, what it rejected, and how it turned out.

A request that sounds new, and the record showing it was already tried. The ledger in this walkthrough is a worked example, not a live database.

provLedger

People forget. Your agent doesn't.

Not just what changed — the decision behind it.

Every decision, every tombstone, every name behind them — none of it forgotten.

claude plugin marketplace add yizhao95/prov_ledger

0:00 / 1:43

Interface wording is the product's own; the ledger shown here is a worked example, not a live database. The dashboard is read-only and opens the database read-only, so it can never block or change what it is showing. The reply is written by the session's own model from the material provLedger assembles — provLedger writes none of it, and nothing is ever sent automatically. The command's name is still provisional. Try it with claude plugin marketplace add yizhao95/prov_ledger.

↗ github.com/yizhao95/prov_ledger