Record format
@flashyos/backlog
backlog/1 — the future tense. One item per intention, filed where the work happens, decaying unless renewed, private until a named human promotes it.
version 0.1.1 · audit of 2026-10-04 · source: flashyos/packages/backlog
npm i @flashyos/backlogfile() always writes private, always rev 1, expiry always derived from kind — there is no visibility parameter and there will not be one. Publication is promote(), it takes a person/ id, and it is recorded on the item.
capabilitiesWanted is what makes an item matchable: normalised exactly as the matcher reads (trimmed, lowercased, de-duped, capped at 20), so a promotion never silently stops matching over whitespace.
Edge cases — each one paid for once
A write-once wants field made every item invisible
For weeks nothing could add capabilitiesWanted after filing, so all 53 items across the estate were permanently unmatchable and no check could say so. revise() exists now — and changes everything about an item except its visibility.
Full distribution with nothing distributed is worse than no adoption
Thirty repositories filed backlogs, twelve served one, and 0 items were public — every structural check passes on an empty projection. It teaches every reader the format is decorative, one fetch at a time.
The machine that filed an item is the only machine that closes it
Agent closure is restricted to ids the closing tool itself defines — a person’s item is not an agent’s to close because no rule happens to measure it. The consent rule, run backwards.