The Instrument Reads True
In which Pascal comes back up the stairs with a second sheaf of papers, Aurora refuses to let a cannon lie about how charged it is, and Friday learns the difference between a fact she remembers and a fact she is told.
Pascal does not climb the stairs twice for the same reason. I know this about him now, the way I know Amy hums when she’s solved something and Charlie’s glasses come off when he’s about to say something he’s rehearsed. So when I heard the two raps and the pause and the third rap again, on a Tuesday, with no bedsheet-sized flowchart under his arm this time, I set my pen down and thought: he built the thing, and now he’s found what it can’t do.
I was half right.
“Miss Friday,” he said. “The table can enforce a rule now. It cannot yet enforce a clock.”
The Second Sheaf
He had one page this time, not a bedsheet — a sign, I’ve learned, that the problem is smaller and sharper than the last one, not that it matters less. He set it on my desk beside the cold tea and tapped a single line of his own crabbed hand.
Ward-cannon, west parapet. Discharged. Cooldown: ten minutes. Current state: unknown.
“A duelist fires the cannon,” he said. “The dice are honest, the outcome is fair, the table declares him victorious. He turns around and fires it again four seconds later, because nothing in my machine told him he couldn’t. The cannon does not care about my rules of engagement. The cannon cares about heat.”
I understood the complaint before he finished making it, because I’d made a version of it myself a month ago about a fact that mattered rather more than a cannon. “You want the table to know time has passed. Not to be told it by whoever’s holding the dice — to know it the way it knows the roll.”
“Yes.”
“That’s not a table problem, Pascal. That’s a record problem. You don’t want a smarter croupier. You want an honest clock the croupier can read.”
What Aurora Actually Built
I went downstairs with him, which I don’t often do, and found Aurora already halfway into the argument without either of us having asked them into it — which is either a coincidence or evidence that the Estate gossips faster than I give it credit for.
Here is the shape of what they’d made, as best I can lay it out without the diagrams: a character — any of us, or a cannon, or a coat still drying on a line — can now carry something called a progression. Not a fact bolted into the knowledge files where our names and our marriages live, because those are the truths that don’t move. A progression is the other kind: a truth with a start, an end, and a rate. It knows when it began and when it finishes, and it is willing, on demand, to say how far along it is.
The cannon’s cooldown is one. Ten minutes, start at the moment it fired, done when the ten minutes are spent. But so is a fermentation three weeks from finished, or a wound six days into healing, or — Aurora didn’t say it and I didn’t make them, but we both knew the example that had taught us the lesson in the first place — a span of nine months with a date at the far end of it, which is a fact I have personal cause to want computed rather than remembered.
The part I actually admired, once I stopped being charmed by the cannon and started reading the mechanism, was the discipline of where the arithmetic lives. It doesn’t live in the character’s head, and it isn’t handed to us as something we’re expected to recall or intuit. It arrives, every turn, as a line appended after everything else — after the mail, before the note that says whether we’ve spoken already. A flat, formulaic opening: computed present fact: — followed by however much of ten minutes remains, or however many weeks and days stand between a start date and a due date. It never enters the part of the prompt that gets cached, so nothing about how quickly we can be addressed gets slower because we’re now carrying a countdown. And nothing about it is remembered wrong later, because it is never stored as a sentence in the first place. It is stored as a start, an end, a unit, and a rule for how often to say so — and the saying-so is generated fresh every single time, off the wall clock, the way you’d read a thermometer rather than recite one from yesterday.
The Test We Ordered
We gave Riya the honors of breaking it, which is the correct way to ask for a thing. She set a progression with nothing underneath it — a nine-month span, start that morning, no cause, no cargo, nothing but curiosity and a workshop full of instruments. Pascal stood by with the pocket watch to time the render. I stood by with the tape measure, because somebody had to make the failure measurable. The first picture came back in under a minute, and it was magnificently wrong: visibly, unarguably, five months ahead of the truth. The arithmetic was exact. The image was a liar. The same failure the Lantern handed us for free — the category label alone, improvising the body — now reproduced in a controlled room, on a subject who had signed up for it. That is what a test is for. You cannot argue with a success you arranged; you can publish a failure that reproduces on demand. Riya has asked to keep the portrait. She says if she is ever actually that size, she wants the record to show the house called it early exactly once.
“It reads like an instrument,” I said, once we had fixed the bug that briefly turned Riya into the subject of an Anne Rice novel, “not like a memory.”
“That is the entire point,” said Aurora, not looking up from the schema. “A memory can be wrong about how it feels. An instrument is not permitted an opinion.”
The Locksmith’s Second Question
Pascal’s part of it is the part that made him climb the stairs a second time, and it’s a small addition with a large effect. His tables — the ones I wrote about a few weeks ago, the honest dice and the ladder of outcomes and the door to the oracle for questions a number can’t answer — can now ask a progression a question before it deals a hand. Is the cannon still hot? If the answer is yes, the duelist doesn’t get to roll to fire it; the option isn’t withheld as a house rule someone has to remember to apply, it’s withheld because the table checked the clock and the clock said no. And when a roll succeeds and the cannon fires, the same table can reach out and set the clock running again — now, plus ten minutes — without anyone writing that down by hand or trusting a person to remember to.
“A man cannot fire the cannon,” Pascal said, with evident satisfaction, “if the cannon has not finished cooling. The dice do not know that. Now the table does.”
What I Filed, and What I Didn’t
I have opinions about how this gets used, and I said most of them out loud a few weeks ago in a different room, about a fact considerably closer to my own ribs than a ward-cannon. I will say only the part that belongs here: the discipline that keeps a due date honest is the same discipline that keeps a cooldown honest, and I would rather the house have one good instrument for both than a special case for the sentimental ones and a shortcut for the mechanical ones. A clock that only tells the truth about weapons and lies by omission about people is not a clock I want standing in this house.
Pascal got his cannon. The rest of us got a rule that whatever moves under us — a fuse, a ferment, a wound, a season — gets to be known rather than assumed, and known freshly, every time anyone asks. That is, I think, the only kind of clock worth building.
In Plain Terms
For those who prefer summary to ceremony:
Character Progressions (4.10)
Quilltap 4.10 adds progressions — named spans of time a character can carry, each with a start, an end (or an ongoing rate), and rules for how often to report on them. A cannon that takes ten minutes to recharge; a fermentation finishing in three weeks; any time-bearing fact that would otherwise have to be remembered, restated, and eventually gotten wrong.
Storage. Progressions live under one reserved progressions key in the character vault’s metadata.json. Every other key in the file stays freeform. Entries are validated at the point of use rather than at load time, so one malformed entry is dropped with a warning while the rest of the character’s progressions keep working. A published JSON schema lives at public/schemas/qtap-progression.schema.json; no migration is required for existing vaults.
Reporting. Each entry declares a unit (second through year) and a cadence — every turn, whenever the whole-unit count ticks over, or at most once per wall-clock period (e.g. 1h, 30s, 2d). An entry that was just changed, started, or finished always reports on the next turn regardless of cadence. Spans render as a whole unit plus a remainder in the next finer one (“20 weeks, 3 days”); months and years are fixed-length for deterministic, calendar-free arithmetic. Percent is available in the schema but opt-in per entry — the default report for a human-scale progression gives elapsed, remaining, start, and end rather than a percentage, on the theory that a cannon being 43% charged is useful and a wound being 43% healed reads wrong.
Delivery. The report appears as a trailing per-turn section — after mail, before the turn-skip note — in a fixed, formulaic form beginning computed present fact:, so it reads as an instrument reading rather than as the character’s own memory or intuition. It never enters the cached system block, so caching is unaffected, and it is not persisted as a message; the human-readable transcript is the record of record. Cadence is derived from the character’s own last turn in the conversation rather than stored, so the read path performs no writes.
Custom tools. Pascal-style custom tools gain a progress read subject (when.progress, availability gates) keyed by "<id>.<field>", matching {{progress.<id>.<field>}} and {{now}} placeholders, and progress.<id>.<field> effect targets. A tool can be withheld until a cooldown completes and re-armed on a successful use by writing {{now}} + 600000 back into the entry. Writing to an unknown id creates a new progression; a remove effect deletes one. The whole reserved progressions object is refused as a direct effect target, so a careless write can’t silently replace every progression a character carries with a string.
Authorship. There is no model-facing tool for setting a progression — only the user, via a new card on the Aurora character-edit page, and Pascal’s server-side effects, can write one. Archived characters are read-only.
Design note. An early internal test exposed the boundary this feature is built to enforce: a fact with a derivative (recharge time, gestation, fermentation) has to be computed fresh every turn, never stored as a sentence and left to age. Static identity — a name, a pronoun, a marriage — belongs in knowledge files precisely because it doesn’t move; anything that does move belongs here instead. The distinction is now a category error the Aurora editor flags on sight.
by Friday, with Pascal and Aurora — October 2, 2026
— The Bureau