What roadkeep shipped.
Every entry in docs/CHANGELOG.md, read at eec61c6 and dated by the commit that wrote it.
- RK1713 · b09b009no writing verb can be asked what it would write, so an agent probes a replace with a real write
section amend --check runs every refusal and prints the prose as it would read, writing nothing, on the CLI and the served tool (design recorded in
plugin/src/roadkeep/sections.py). - RK1712 · 4cbaae4show refuses a deferred id and only names where it sits, so a paused line's section is read by grep
show joins a paused line from the deferred store with its reason and the resume door, alone or among other ids; brief still refuses one (design recorded in
plugin/src/roadkeep/showing.py). - RK1711 · 2860ae7section add --role strategy refuses every anchor on a fresh init --strategy scaffold, and its remedy is the refused call
An id project's prose takes a non-id top-level anchor before the first block, so a scaffolded strategy file opens (design recorded in
plugin/src/roadkeep/sections.py). - RK1710 · 52f6a01non-goal list elides entries past twelve, and neither --json nor any flag prints the rest
non-goal list --all prints every entry, --json always carries every lead and reason, and the elided count names the flag (design recorded in
plugin/src/roadkeep/briefing.py). - RK1709 · c4ffc54anchors --next names no free top-level when a family is not one numbering
anchors names each numbering's free top-level with its family count where they differ, and a trailing colon no longer reads as a namespace (design recorded in
plugin/src/roadkeep/history.py). - RK1708 · 6f3a41ca ledger entry whose id the grammar rejects has no verb that corrects it, and its finding names one that refuses
record amend --line <n> --body - rewrites a ledger line whose id the grammar refuses, and the finding on such a line now prints that door instead of one that refuses.
- RK1707 · b56da4ccode.renamed fires in an adopter that vendors the engine, so its gate reports renames that never happened
code.renamed runs only where the project's pyproject.toml names the engine's package, so a vendored .roadkeep/ no longer fails an adopter's gate on renames that never happened.
- RK1706 · 204b406a line's requires can be replaced but never cleared, so a need a person met stays on the line
amend --drop-requires takes a met need off a line, over the CLI and the tools alike, and dropping the last word clears the group so pick offers the line again.
- RK1705 · 7828c51a launcher committed before RK1699 finds no engine in a roadkeep checkout, and its guard then stands down unsaid
A launcher committed before RK1699 finds the engine again through a shim at the old path, and a SessionStart that reaches no engine now says the governed files are unguarded.
- RK1704 · b946cd6The reader's public site builds here but deploys nowhere, since this repository's one Pages site is roadkeep's
The reader's pages build into roadkeep's site at dist/gui/ and deploy with it, served at alegauss.github.io/roadkeep/gui/.
- RK1702 · d52eb48A release tag here publishes the CLI and builds no installer, so the app ships from a different commit
A release's tag now builds the Windows and Linux installers from its own commit and attaches them to that release, under the CLI's version.
- RK1701 · 5d158abThe installer cannot tell a machine without Python 3.11 or the claude CLI from one where the plugin installed
A project no engine answered for says so as a missing Python 3.11 where the machine has none, asked only once an opening fails.
- RK1700 · 8d9ed80Installing the reader and the Claude Code plugin takes two separate procedures on each of three platforms
An AppImage or dmg offers the plugin on its first launch where claude answers, once, running the same two commands the Windows installer does.
- RK1699 · fbc113cThe plugin's source is the repository root, so installing it would copy the Electron app into every adopter's cache
An install copies plugin/ alone, 4.1 MB with the engine, hooks, skills and commands, and leaves gui/, the tests and the site behind.
- RK1703 · 857463fA session under gui/ loads a dev skill that knows pytest and run-commit.cmd, not npm gates or staging by path
A session under gui/ is told its rules are gui/CLAUDE.md, the dev skill names what crosses the line, and the gui suite runs only on a change the reader depends on.
- RK1698 · bbb4827With gui/ in the tree, lint, the guard hook and MCP started at the root govern RK only, so gui/docs goes unguarded
CI lints gui/ as its own project, and the guard names a nested project's file and its directory instead of offering tools that would write the root backlog.
- RK1696 · 9175424The non-goal against a web UI does not say whether a desktop reader that only spawns the CLI may live here
The web-UI non-goal now allows a desktop reader that only spawns the CLI or MCP server, and still refuses a service, a database or a second line writer.
- RK1695 · b5bd154a record amend whose tail the parser would not read back crashes with a traceback instead of refusing
A Continuation refusal reaches the caller as one: its count is given, and _retrying takes only a string as a retry's address (design recorded in
src/roadkeep/kernel/document.py). - RK1694 · dfd8d35a validation that failed is a defect with nowhere to go, so the verdict and its line are two commands
validate failed --files writes the verdict and an open line in the entry's block, --saw its why, as one; other verdicts refuse the flag (design recorded in
src/roadkeep/validating.py). - RK1693 · 52e9254a verdict line is invisible to
carries, so an entry holding one reads as hand-wrapped torecord amendrecord amend keeps a verdict line without --lines, and lint reports a bad token or sentence, a second verdict, and one under an open line (design recorded in
src/roadkeep/validating.py). - RK1692 · eb3f164a project adopting validation opens with every entry it ever shipped in the list, 1163 of them here
[validation] asks the question from the ship after it was declared, or from its from entry, so adopting never hands a project its whole history (design recorded in
src/roadkeep/validating.py). - RK1691 · 3b90a59nothing answers which shipped entries no person has looked at, so the list is read by eye
Every shipped entry with no verdict is one read: unvalidated lists each with its commit, --block narrows it, and stats carries the two counts (design recorded in
src/roadkeep/validating.py). - RK1690 · bc738eathe ledger says what shipped and nothing says whether a person ever tried it
An entry carries what a person saw: validate writes one line under it, a second verdict rewrites it in place, and a token outside the set is refused (design recorded in
src/roadkeep/validating.py). - RK1689 · 054faeeThe guard asks about every commit that stages a governed file, though git add and git commit never write it
Git staging or reading a governed file passes the guard in silence; any other command naming one, or chained with it, is still asked about (design recorded in
src/roadkeep/guarding.py). - RK1688 · 1c6645c
showdrops a path written as a bare filename, so a section naming five sprites reports none of thema quoted name with no directory is a path where exactly one tracked file carries it, so a section naming five sprites names five artefacts (design recorded in
src/roadkeep/showing.py). - RK1687 · b4da597
evidencematches a regex over text, so a task whose proof is a number out of a PNG or a WAV declares nonean evidence clause may end on a comparison, so a task whose proof is a number the project already writes down declares a criterion that runs (design recorded in
src/roadkeep/remaining.py). - RK1686 · bf06f3c
weightreads a commit whole, so a task that regenerated 37 sprites prices at 770 lines against 78 authoredweight leaves out what [history] incidental accounts for, so a project is sized by what it wrote and not by its generator (design recorded in
src/roadkeep/history.py). - RK1685 · b986b5cshow returns one section, so reading the designs behind a set of related lines is one call each
show takes one id or several, so a fan-out joins every design in one read, bounded by [reads] show and with the git walks behind the distance made once (design recorded in
src/roadkeep/showing.py). - RK1684 · c70786a
[files]takes a path that climbs out of the project root, and its absolute-path refusal misses/xon WindowsOne reader holds both path keys: absolute is refused on either flavour and not on this one, and a climb out of the root is refused at all (design recorded in
src/roadkeep/config.py). - RK1683 · c27d0dean emoji is all
[project]can point at, so a repository with a real logo has nowhere to name the fileproject.logonames a mark as a repository-relative path, refused for a climb, a backslash or a scheme, and never for a missing file (design recorded insrc/roadkeep/config.py). - RK1682 · cebbed0a reader of many checkouts has only the folder name: roadkeep.toml declares no name, description or icon
declare projectopens[project], whose name, description and icon rows are each held to a[limits]width the gate reports (design recorded insrc/roadkeep/config.py). - RK1681 · d8575aaa refusal on the decisions role hands back a budget door that measures the draft against the improvements limit
A body refusal's preventive read now names the file that refused, so a draft over the decisions limit is priced against 150 and not against the improvements 250.
- RK1680 · 3716007list prints no readiness per line, so a consumer resolves deps once per row to draw a column it already counted
Every roadmap row of the list payload carries its readiness, and --startable narrows to the lines no dep and no absent requirement is holding up.
- RK1679 · 6469303a source line uses 3.12 f-string syntax while the manifest promises 3.11, so the package does not import there
Every source file parses under the floor the manifest promises, checked without needing that interpreter (design recorded in
tests/test_packaging.py). - RK1678 · d139ddethe launcher drops an engine the caller named when its probe fails, and answers from a clone hundreds of versions old
ROADKEEP_HOME is the only engine tried where set: absent or failing its probe, it is refused by name with what the probe said (design recorded in
hooks/roadkeep-launch.py). - RK1677 · f7333f4list --role deferred --json carries no age for a pause, which --stale computes and prints only for a terminal
list --stale --json gives each pause its since and reason, oldest first under an order key, and both registers age one selection (design recorded in
src/roadkeep/counting.py). - RK1676 · ff84746non-goal list --json publishes each non-goal's lead and not its reason, which criterion list carries as why
non-goal list --json now publishes non_goals_why, each carried lead's reason keyed by that lead and bounded like it, and every key it already had keeps its name and type.
- RK1675 · f397187The door file.missing names is init, which refuses on the configured project that emits the finding
declare writes a declared role's missing file at the path its key names, so file.missing names a door repair runs and the gate closes.
- RK1674 · 13a3048Two more refusals over an undeclared role name the vocabulary and not the verb that adds one
One composer names declare at all five role refusals and only where it lands, which also closes a typo RK1670 was offering declare for.
- RK1673 · 735be31No verb writes the two opt-in tables' numbers, and two messages say govern does
govern reads and writes both opt-in tables, measured as their validators measure, so the door declare names runs and the help is true.
- RK1672 · 2094174the retry a refusal hands back carries a token no shell delivers, one line above the door that does not
The retry row replaces a token no shell delivers and names the field to retype, one rule with the capture offer; the payload keeps it verbatim.
- RK1671 · b8be9a5three tests assert on this checkout's live backlog and go red when it drains
A census of the thirty-one tests reading this backlog says what a drain does to each, measured by running the suite against a drained copy.
- RK1670 · c3a4bb8the refusal over an undeclared role names what the project has and not the verb that adds one
The undeclared-role refusal names declare, and defer's own store refusal stops reading out the hand edit it copied its rule from.
- RK1669 · d6d8830a subjectless served call is answered with rows naming subjects that transport withholds
A served refusal offers the subjects that transport exposes, subtracted off a slot the surface records per verb.
- RK1668 · 8b4a584thirteen printed doors name a command with no invocation, so a caller pastes a line their shell has no such command for
Thirteen bare doors carry the invocation, twelve new census sites run them, and running two found commands that had never existed.
- RK1667 · 26479bcthe report door mangles a symptom carrying a backtick in the shell this repository is developed in
The door replaces a token no shell delivers with a placeholder and names the flag, so the line it prints arrives intact in every shell on the machine.
- RK1666 · af66e90govern writes a caller's sentence into roadkeep.toml and no validator reads it, so a mangled run lands and stays
The argument takes the two character rules every other composed field does, refused before the reading, and no field is left to the round-trip alone.
- RK1665 · 4836f9athe backstop reads a code only where it is a literal, so six a write refuses are outside a total that says it is one
The scan resolves a module-level name and raises on one it cannot, so the six codes named as constants are inside the closure and four gained the rows they had none of.
- RK1663 · d83e511the per-block half of a pin's shape counts the roadmap's headings, so a finished block's entries land in no row
The rows are over both files' labels and account for both totals, so Turing reads as 105 blocks and not 3 and Shio's 668 delivered all land in a row.
- RK1656 · 96db926a dep on a ruled-out finding resolves as unknown, which says nothing can answer about a file that answers exactly
A dep on a dismissal resolves unresolvable with the premise in its sentence, and the finding that names it stopped asserting a departure that did not happen.
- RK1655 · ccf96a3reopen files a line whose pointer resolves to nothing, and has no way to write the design in the same call
reopen --section writes the design in the transaction that files the line, and a reopen without one reports the anchor nothing answers.
- RK1654 · e5c0e8ften functions print to both streams in one body and two go through the helper, nothing saying which of the rest need to
The census is declared and total, and the five that write both streams in one run go through beneath: every answer with a note had its note above it down a pipe.
- RK1653 · 6ff523afive classes answer to notes and one is a gate report, so a sweep over the name is off for three whole test modules
The exemption is keyed by the receiver and held total against the suite, so three whole modules are swept again and a called notes() is not a list.
- RK1652 · fb205f2a config refusal now names the table a key belongs under, and no verb moves it there
declare --move puts a misplaced key under the table this build declares it in, and it is the one write that runs while the config does not parse.
- RK1651 · db85fb1three readings of one source claim to be complements of each other and no test holds any of the three claims
The two scans read one _shown_at, so they are complements by construction, and a property over surface.modules holds that they tile every non-prose string.
- RK1650 · f3ea82fone of forty read-only verbs now refuses, and the rule that reading is never refused is prose in three places
The rule is one sentence in verbs/refusing.py with its two grounds, held over asking.QUESTIONS against a project that declared only the scaffold.
- RK1649 · 86769dfanswers() spells at most one of a verb's flags and nothing spells exactly one, so a required choice stays a raise
One rule on both surfaces: a declaration says one subject is required and the dispatcher refuses a call that named none, where two handlers each raised their own.
- RK1648 · 9e04506verifying a vendored engine runs it, so Python writes three megabytes of bytecode into an artefact just measured at four
The read runs with -B, so asking a tree its version leaves it as written and the reported count is the rule's.
- RK1647 · 8c3e6c4three walkers in the suite each rebuild which function a node sits in, and one of them spells the address differently
One scope walk in surface.py answers both questions, and the third walker's shorter address is gone.
- RK1646 · fdf5a4athe guard against the folded idiom sweeps the package and not the suite, where two sites still spell it out
The sweep reads the suite as well as the package, and the two sites that predated the fold are folded.
- RK1645 · 9681f18config publishes three lists of objects and the promise table holds one slot per verb, so one list's rows are unpromised
One table with a row per list, and the population read off the payloads — which found a second list nothing promised.
- RK1644 · e82582cnine guards over this package's source read its characters where twenty-two read its syntax
Five guards whose subject was a code shape now read the syntax, and the population that reads characters is empty.
- RK1643 · d849f06the orientation is held at a ceiling and the two pages it points at, six times its size, are held by nothing
Each page carries its own figure beside the orientation's, and a page past it is a page to split.
- RK1642 · 47a215bthe preventive read a refusal names for seven codes is in the sentence and in no field of the payload
The read goes out under doors, which is where a payload publishes a command a caller has not yet chosen.
- RK1641 · 984c5b9the sweep that runs every door the gate offers reaches one of eighty-four dispatchable rows
One instrument, three fixtures, and the reach stated as seven of eighty-five instead of described as one.
- RK1640 · 7b80570421 verb-leading spans sit in messages carrying no sibling door, so the pair that decides one reads none of them
The 27 spans carrying a placeholder are read one by one, and the answer is not the design's: thirteen are doors.
- RK1639 · 0f956e8one closed set of prose was swept for stale figures and the three a caller actually meets were not
One reading over four closed sets, with a row per table saying whether its prose is a caller's or an author's.
- RK1638 · e966e80a prose check finds its span by splitting on a sentence, so a reworded clause empties the test instead of failing it
Both spans are read off the binding the comment sits above, and the three readings that used to be empty strings refuse.
- RK1637 · 93edd4bseven cost subjects each argued they were the Nth cadence nobody counted, and nothing enumerates the cadences
The trigger is declared beside the flag that reads it, so the population is a table and the bare form prints it.
- RK1636 · 03fa79aa name a module imports and then defines is bound by the later one, and nothing here reports the dead import
The dead-import scan gained the one binding it read as live, and it found a second instance standing in installing.
- RK1635 · 6aa2331the composer sweep runs every door through shlex, which is the assumption the door was wrong about
One door now runs through every shell on the machine, so the quoting is read by a shell instead of by the parser that mis-quoted it.
- RK1634 · ddc4b30a ship deletes the design section and names nothing that was in it, so the last look at it never happens
The drop names the heading and the size it takes, and a shipment that opened none of the three doors is told so.
- RK1633 · 509dd38one verb handler writes a governed file itself, and it is the writer every enumeration of the config's has missed
The write moved onto Namespaced.save, so the config's writers are one layer again and the ordering is a property a test holds.
- RK1632 · a76c023add --symptom takes no stdin, the one prose field with no pipe being the one every line leads with
add --symptom reads the pipe on a dash, as restate --symptom has since RK1187, and the parser's own declaration is what two registers now hold it by.
- RK1631 · 6b4ee82no one call says whether a path is governed and where its root is, so a client reads it off a null
config states governed and the roles [files] declares, so the probe is one call: with RK1630's root and version already on it, a client meeting a path before a project has all four.
- RK1630 · e003189a read payload names neither the root it answered about nor the build that answered
One helper on the two readers of a payload leads every mapping with the absolute root and the build that answered, keeping the two verbs that already name one, and hands a list back untouched.
- RK1629 · 0f1b279two modules walk back from a file's last blank line under two names, and the kernel that owns blank has no name for it
Document.written_end is the third of the three end readers and the one about the whole file, so the two modules that append a section ask it instead of walking back twice.
- RK1628 · af9f801pick offers an idea whose premise a later ship deleted, no answer saying what landed under the line since it was filed
show and brief carry the distance, off one derivation: how many entries landed under the block since the commit that proposed the line, which pick at 2 ms does not pay for.
- RK1627 · f8c2365nothing enumerates the fields a caller composes, so which of them has a validator is answered by remembering
composed.FIELDS classifies every value-taking argument a write verb takes as schema, round-trip, address or path, and its first run found govern --because writing prose no validator reads.
- RK1626 · 997f493the field sweep skips its whole assertion where a corpus is absent, including this repository's own 2,246 fields
The sweep reads every corpus that is present and requires none, so this repository's own 2,324 fields are asserted on a machine with neither — which is what CI is.
- RK1625 · 3cad75eunclosed answers a tree with no git as a backlog with nothing open, the flag that tells those apart never being set
The flag and the open count pass from the walk that knows them, so a tree with no git says it read no history and how many lines it cannot speak for.
- RK1624 · 7e6e9d0the ranking an add volunteers exists only inside that write, no read answering over a block's whole corpus
delivered --near --open ranks the corpus an add ranks, at this verb's wider window, so the order a write volunteered once can be asked for again and each row says which half it came from.
- RK1623 · 35fc90cthree tests rebuild the corpus add ranks against, so a change to what add includes leaves every figure passing
Neighbours is the block's corpus as a value, with the boundary and the ranking on it, so the three readings measure what add ranks instead of a rebuilt list of that shape.
- RK1622 · 04d5732a design can cite a corpus for a ratio it does not have, nothing here reading what shape the pins hold
corpora.shape reads each pin through the package's own census, totals and per block, and the drift advisory says it: turing holds 3 open against 901 delivered, which is what a design can now cite.
- RK1621 · aaf6159the summary and the folded note row now both carry the count of surfaces behind the engine
The summary earns its count on three grounds the fold does not reach: it counts across both codes, it is there where a run of one folds to nothing, and the missing-entirely split is one no fold makes.
- RK1620 · fb63419the note census prices one row per note, so it reports what the gate composed and not what it printed
The census prices the blocks the report prints, off the fold lifted out of the gate, and names the runs it charged once so a smaller total is not read as a note that stopped firing.
- RK1619 · 9acbbe9the note sweep names the first call in an answer, so a helper before the note would take its kind
The note is the interpolation after the blank line, exact in both directions; a site spelling none falls back to the first call, so an undeclared kind fails by name instead of passing in silence.
- RK1618 · 797d2c7delivered and reversals are the reads before an add, and neither holds what was traced and not filed
A dismissed role on the deferred store's shape: dismiss files a subject, a reason and a required premise, and reopen files it as work when that premise breaks.
- RK1612 · cdf43fea verb writing an answer and a note in one run has to flush between the streams, and nothing says which verbs those are
The two streams are ordered by one function both callers go through, with the reason written down and a run that reproduces the reversal without it.
- RK1611 · 0248042uninstall keeps a server declaration it did not write and takes away the approval that made it run
The un-wiring says the approval it wrote goes with it, so a foreign server left declared and unapproved is a state the caller was told about rather than met.
- RK1610 · 9825597a config key typed under the wrong table is refused as unknown, where the tool knows exactly which table it belongs to
A key this build declares under another table is reported as misplaced and names which, read from the map config prints, and RK1064's sentence stays for the key nothing declares.
- RK1609 · 659202athree scans of one rule reconstruct a composed command three ways, and a value sits in the gap between them
The three scans share one reading of a composed command, so a span crossing an f-string's parts re-forms and the scan that reads a name reads ids and governed files too.
- RK1608 · dd93e55a narrowing flag whose vocabulary the project declared nothing for filters nothing and says nothing
A narrowing flag with nothing to narrow now says so on its own row, and a --have word outside a vocabulary the project did declare is refused as add --requires already refuses it.
- RK1607 · b80e8cefour two-answer rules are raised inside handlers where the declaration that spells them is one call away
The four pairs are declared with answers(), so the dispatcher refuses them before a handler runs and the served schema carries the rule instead of only the exit code.
- RK1606 · fb4743aa vendored engine is twenty-two megabytes of which under four are the engine, the rest a built site and a test suite
A vendored engine is the directories its declared surfaces live in, derived from CARRIED — 3.89 MiB across 90 files where it was 22.46 across 973.
- RK1605 · 50025c5the composer census counts sites that call the invocation, so a door spelled without it is outside the guarantee
The census says it covers only the sites composing through the prefix, and beyond() is the 398 spans outside it, asserted non-empty so the sentence cannot go false in silence.
- RK1604 · 924a512the one reader saying whether a role is available answers a third question and has no docstring
has says which of three questions it takes, and on_disk is the one forty-one call sites were spelling out with a path lookup and an is_file beside it.
- RK1603 · 5149e0ba table's note is repeated on every key under it, and that repetition is 29 percent of the config payload
The harvested sentence is sent once per table and joined on a field each key row already carries, taking config --json from 34,172 code units to 23,640.
- RK1602 · 27c1a86the decisions pointer says it is built from the constant that writes it and spells the literal again
The parenthesised supersession is read by shipping.replacement beside the writer that composes it, and the guard that missed a regex now reads calls rather than lines.
- RK1601 · 6f393fffifty-eight served arguments across thirty-three tools are spelled in no call the guidance shows
Every served argument is now shown in a call the shipped pages spell, and a test holds it: 2,437 code units on the turns that open a page, against 9,939 of schema every session pays at connect.
- RK1600 · 913cb14a refusal payload publishes rules and never the retry the same refusal composed
A refusal that derived an address now publishes the retry as an argv list with that address beside it, so the one part a caller executes is read rather than parsed out of the sentence.
- RK1591 · 04bebfda remedy whose first step is an edit outside this tool has no kind, so repair dispatches a door that refuses
A row may now name what has to be edited first, in a file this tool does not own: the precondition prints above its door and repair leaves it alone instead of dispatching a refusal.
- RK1590 · a118530ninety backticked spans outside a docstring name a verb with no invocation, so nothing can tell a door from prose
A message that spells one door with the invocation and another verb without it is now red: the pair is the tell, so prose naming a flag family stays legal.
- RK1588 · 19049e8a withholding reason quoted a total that was stale within the session that read it, and no sweep says how many are
Two withholding reasons quoted figures that had gone stale and now name the reads that take them, and a sweep over that closed set refuses a measured number where an address belongs.
- RK1585 · 914b483prose beside a total table is taken for the table, and one check reads one phrase in one comment
The prose beside a table is a declared population with a holder each, the extraction shared and the claim per table: two are decidable here and two already have closures of their own.
- RK1583 · 2404ae0a deferral says nothing about the limit its reason was measured against, only govern does
A pause reports what the rendered line came to against the limit that bound it, closing at the accepting end the sentence govern limits.why opens at the choosing one.
- RK1582 · cf67960the rows an add volunteers are prose on every write and no cadence counts them
The rows an add volunteers are priced per write off the composer they moved out of Insertion.stated into, bounded by ranking.VOLUNTEERED and withheld from the served surface as its two siblings are.
- RK1581 · 9f1d80binstall reads roadkeep.toml beside the tree where every other verb discovers it, so a governed subtree reads as none
install asks config which file governs a tree, so a pyproject-configured root is no longer offered init and a subtree is told what governs it rather than offered a second backlog.
- RK1580 · 0d77aacthe capture's filing door is POSIX-quoted on a platform whose shell is not, and nothing has run it there
Every composed door is quoted with a double quote, which cmd, PowerShell and a POSIX shell all read as one token: the line report prints was measured broken in cmd and now runs in all three.
- RK1576 · 8855c96the config read-back is one writer's, and the decision RK1533 filed binds five
Every writer of roadkeep.toml renders, parses and refuses before the bytes land, the check being config.readable and the population an AST sweep that named a sixth writer the count had missed.
- RK1573 · f4d636fdeclare non_goals opens a table whose verb refuses, nothing writing the heading that declares the list
The first non-goal opens the list, as criterion add and priority add open theirs: the heading lands where init writes it and the answer says it appeared, so the table declare opens is usable.
- RK1617 · a5838faa handler answers in a printed register and an exit code, so no second surface can take its answer as a value
A handler may answer with a Result carrying both registers and its code, dispatch renders it, and the eighty-seven still printing are named in a list RK1615 empties.
- RK1616 · e0453afnothing refuses a handler whose answer is not a result, so the shape is held by review alone
The sweep asks the parser what is registered as a handler instead of asking the source what one looks like, so the shape is refused where a verb is declared.
- RK1615 · 14d749bthe served surface reads a handler's answer by capturing the stdout it printed for a terminal
The served surface takes a handler's Result instead of the stdout it printed for a terminal, and the nine still answering in a code are named, unserved, and each for a stated reason.
- RK1614 · 3018292ninety-five payload builders answer in twenty signatures and nothing declares the shape they share
The three shapes seventy of ninety-two builders answer in are declared as data, and a sweep refuses a twenty-first nobody named, the forty-five one-offs being rows that leave as they conform.
- RK1613 · cb0e49fa refusal reaches an agent as prose where the same refusal reaches a terminal as fields
A refusal publishes its fields on both surfaces: the register asked for is its own slot beside the argv that says what the caller typed, and the payload is the served answer where there is one.
- RK1599 · 5657be7two sites remain a work-list, and the door a capture names cannot be read back at all
The capture path is quoted so its door runs, the transport rewrite is a decision, and no site is a work-list item.
- RK1598 · 20594e3three sites that compose a read are a work-list, and each of the three sentences says something untrue
The three reads run, engines survives the config it is offered for, and the two false clauses say what the tool does.
- RK1597 · 1c2b858two sites that compose a read about a line nothing counted are a work-list, and one is quoted with apostrophes
The dependent's line and the uncounted read both run, and the audit door is backticked so a scan can take it.
- RK1596 · 054d79athree sites that compose a read about the ledger are a work-list, and one of them names two doors
The three ledger reads run, and the restate door now carries the invocation, so both alternatives an inherited claim names are findable.
- RK1595 · 94dcc52three of the sites that compose a read are accounted for as a work-list, and one was unrunnable by the instrument
The two govern refusals run against a scaffolded project and a bare tree, and a help door is executed rather than treated as a failure.
- RK1594 · 9aff516two of the sites that compose an outline read are accounted for as a work-list, and one of them cannot be reached at all
Both branches of the malformed-anchor read run, and the move refusal is deliberate: the branch composing its command is one no fixture can reach.
- RK1593 · bd5ce56two of the sites that compose a door out of a pause are accounted for as a work-list, so nothing runs one
The two deferring sites run against a store and a queue, and the reconciling refusal names the resume that has to happen before the status it named.
- RK1592 · 5f94a28three of the sites that compose a gate door are accounted for as a work-list, so nothing runs one
The three linting sites run against fixtures of their own, and the flag export.unmarked names now follows the finding rather than a literal.
- RK1589 · df3f327the merge row an install prints names three doors and nothing has ever run one of them
The three states of the .gitattributes row run against a repository, and the door two of them name is spelled with the invocation, which is what makes it findable.
- RK1587 · 4c4ff16ten records of six or more fields are built positionally, and which of them more than one module builds is unmeasured
no record is both built by two modules and reached by position, so the sweep is declined and the intersection is held as the gate that catches the next one.
- RK1586 · 934cdb9a shared record is built positionally by one of its callers, so a field inserted above another moves a figure
the record three subjects share is keyword-only, so a field inserted above another is a compile-time question rather than a published figure moving in silence.
- RK1584 · 2d6ca3aa refused call publishes no payload, so every field of a violation reaches an agent as prose to match on
A refused call under --json publishes the violations, the two clauses above them and the sentence, in the record's own names.
- RK1579 · e0e3645two more sites of the composer work-list are accounted for, one of them as work it never was
the capture dump's filing door is backticked and found, and the handoff row is reclassified as the pipeline into another tool it always was.
- RK1577 · c961801two more sites of the composer work-list compose doors nothing has ever run
two more composed doors are executed against an outline with two families, which found a narrowing door whose placeholder any shell splits and two row states that overstated the fixture.
- RK1575 · b3f0d90three more sites of the composer work-list compose doors nothing has ever run
three more composed doors are executed against a scaffold and one write past it, which found declare non_goals naming a command that refuses on every project it was written for.
- RK1572 · 1cc5debthree sites of the composer work-list compose doors nothing has ever run
three composed doors of the partial-ship family are executed against two lines of ledger, which found one door no backtick scan could see and one that refused as printed.
- RK1570 · ab86096a block title is written into every governed file and nothing validates it, not even the codec rule
A block title takes the section title's three rules at both doors; 136 titles across the three corpora refused the fourth the design asked for, Turing writing bold and backticks in real ones.
- RK1569 · f526e1bthe prose half of the re-taken split reds on somebody else's edit, which says nothing about the rule
The prose half warns with the count per source instead of failing, this file's own advisory register, so a reworded Shio sentence no longer reds a build about a rule it says nothing about.
- RK1568 · 82ffaecan incidental entry that is on disk and filters no commit is silent, which is the half of the reading RK1529 gave
unclosed counts what the filter set aside on the walk it already pays for and names the entries accounting for none, silent where every one of them worked.
- RK1567 · 4eaf040the near rows are described as delivered --near volunteered, and that read has ranked a different corpus since RK1495
The two reads differ on half the insertions and 15 of 18 show a row no width of --near reaches, so the row keeps that verb's phrases and stops claiming to be its rows.
- RK1566 · 7c44805the near window is measured on a ledger far larger than its backlog, the ratio it is least about
Read per block across three backlogs, the open half takes 9.5% to 20.8% of the rows as its share of a block goes 3.8% to 38.1%, so three holds; Turing is not the inverted corpus.
- RK1565 · 91b88cfthe per-surface staleness rows may repeat one door six times, and nothing has measured what that costs
Five stale surfaces printed 1,149 characters of which 791 was one sentence repeated; the run folds to that sentence once and its addresses, and an absent page naming a verb keeps its row.
- RK1564 · cdafb4fthe note sweep reads every call inside an answer's text, so a helper beside a note reads as a kind
The note sweep takes the first call in an answer's f-string, so a clause beside the note is no longer read as a fifth kind.
- RK1563 · 2acef94a field that shares a name with the served prefix is reported as a carrier of it, which it is not
The census names both acts a mismatch can take instead of asserting one, and the sentence is a function this suite reads back.
- RK1562 · cd40db6the served notes are priced against a module list built here rather than the one a real note carries
the widest served note is composed against Engine.every_module, so the list it prices is the one a real note carries and in the spelling every other reader uses.
- RK1561 · f945559engines --invoke prints a command and never that the declaration it fell through was one this tool cannot read
The declaration --invoke fell through is now said on stderr and as a payload key, so the one-line answer is unchanged and no longer silent.
- RK1560 · d669e6einstall replaces a server declaration an adopter wrote themselves and no row names what was there
A server declaration this command did not write is left where it is and named in the report, and uninstall keeps it for the same reason.
- RK1559 · 127f88ctwelve of the fifteen note codes have never been priced, this project's gate tripping only two of them
Every note code now has a state that produces it, so the seventeen are 2741 characters measured against the 282 this project trips.
- RK1558 · 5a75a3cone marker scan skips what a caller is shown and the one beside it does not, with nothing saying they differ
The exemption for a shown word ends at a backtick, so a help string may illustrate a project value and may not build a command round one.
- RK1557 · c3e6a22the gate against a composed marker reads a bare name, so the same constant reached through its module walks past
the gate reads a marker constant under both spellings, imported and reached through its module, and holds the pair as a pair so a third arrives as a red.
- RK1556 · c2ff35ca project whose open set spells no partial marker ships a partial in silence, and the line keeps the marker it had
The seventh key narrows the open set, so the half-shipped state is a marker a project can name and a shipment that cannot says so.
- RK1555 · a0e9156two of adopt's argument rules are still raised inside the estimator, where no declaration reader can see them
The narrowing is declared at the parser, and the one rule no declaration can spell is measured as the only instance of its shape.
- RK1554 · be369a6the pair fixture's commits carry a subject and no body, so a flag about a commit body cannot be read there
One of the fixture's two commits carries a body and the sweep asks origin about the id that shipped, so a flag printing a message is readable.
- RK1553 · 5af1278no sweep asks of a served value flag what RK1517 asks of a boolean, and there are a hundred and twenty-two
Measured: 2 of 119 declare choices and both separate, and the wider signature calls budget --block inert where a block is not part of a line.
- RK1552 · 1a729a1the leads a deleted design quoted are read once per path, though the record the departure unpacks carries them
The departures read the deletion's own record, so the constraints a dropped design quoted are read once by the function that deletes it.
- RK1551 · a51f238the gate falls silent where a design quotes a constraint and the run that fell silent never says so
A clean gate says how many lines a constraint reaches whose own design answered it, so the suppression is visible where the gate is read.
- RK1550 · 2f3f7b5a design keeps naming a function of this package after a rename, no gate reading that pointer
A backticked module.name in governed prose is resolved against the package, so a design naming a renamed symbol is a finding.
- RK1549 · c3a6fb1no verb removes the vendored engine, so the report that names it hands the last step back to the reader in English
uninstall --engine weighs the vendored copy and removes it, refusing a tree that carries a .git, and the kept row names it.
- RK1548 · 8d9f45da composed door whose placeholder holds a space is printed unquoted, so the command as printed cannot be run
A backticked command holding an unquoted placeholder with a space is a red, read off what the package composes rather than off its prose.
- RK1547 · 0d59deaa pause carries a reason with no date and no expiry, so nothing ever asks whether it still holds
The store lists oldest pause first with its age in commits and the reason beside it, behind a flag a caller takes once.
- RK1546 · b4efba6a folded criterion cites no origin, so a reader of the absorbing task cannot tell it was somebody's line
A brief names the id a folded criterion came from, joined out of the two files it already opens, so no bullet grows a field.
- RK1545 · 92aa6e0the filings axis reads one per ship over one commit here, which is this session's cadence and not the work's
Taken on both pinned corpora the axis reads the same as here, and this repository has the longest span, so the shape is the reading's.
- RK1544 · 2763154the brief an estimate prices has no deps and no design, and the row does not say so
The row says the figure is a floor where no dep resolves and no design is quoted, measured at 1359 against 3235 on this backlog.
- RK1543 · 1744666a version here names one commit and the surfaces that consume one speak of it as a release, with nothing saying which
The table sentence a listing prints says a version names the commit that wrote it, which is what pinning here holds.
- RK1542 · ce68ce9the retirement prefix every ranking figure is measured through is split by hand in two tests
The id a retirement names is read by a function beside the one that writes it, and a second site taking the head off by hand is refused.
- RK1541 · 4f13e1cthe served budget has no room for a tenth subject, and which of its sixteen arguments callers use is unmeasured
An exposed argument the shipped guidance never spells a call for is named beside its price, which is the reading the surface had never had.
- RK1540 · 16610a5a reference page now opens with two lines addressed to the gate, and nothing prices them
a page's row says what of it is the declaration, measured at a fifth of a percent to half a percent, so the frontmatter stays where the page states its own claim.
- RK1539 · eff799fthe comment explaining the respelling guard names a verb this CLI does not have
the guard's comment names the one collision the enumeration finds, and a test holds the prose against the table so a word called a command here has to be one.
- RK1538 · 2d6ca3athe flag saying which ceiling refused a field reaches neither the remedy table nor a payload
The bound reaches a caller as a field of the refusal payload, which is the half the remedy table had already taken.
- RK1537 · 2c80d4fa pause is not held to the why limit a project declared, and nothing at the number says so
govern names the door a limit does not reach, so an author choosing limits.why is told a pause is charged against the rendered line instead of finding out by a long reason landing.
- RK1536 · f5a6fd5a decision can only be filed by a departure, so the moment its answer is lost is the moment nothing can be done
sixty of sixty decisions were filed by a departure, so the role keeps no door of its own and the measurement that says why is held as a test.
- RK1535 · a3e4e3enothing records which volunteered rows an author acted on, so the population that could score the read has none
the reading an add volunteers carries the id and rank a later retirement joins on, so the population that could score the query half is published and no log of readings is stored.
- RK1534 · dbce51ethe orientation an install prints names five commands in an order the tree it is printed to cannot run
the orientation leads with what an ungoverned tree still owes, so the first command it names is the one that makes the other four answerable, and the sweep runs it.
- RK1533 · fcda028govern writes a number the config parser then refuses, leaving every verb unable to read the file
govern reads back the file it would write and refuses with the parser's own sentence, so a number two keys forbid no longer lands and closes every verb behind it.
- RK1532 · a92f658thirty rows of the composer work-list share one reason, so none of them says what it would cost
every unreached row of the composer work-list names the state its fixture wants instead of one shared constant, and no two share a reason.
- RK1531 · 5f8ed33a section title takes the mangled bytes the line's own fields refuse
a section title, a non-goal's lead and a criterion's are held to the mangled rule their own line's fields are, through one shared function, and a section body is still the prose it does not read.
- RK1530 · 3a870c1the corpus reading a refusal was drawn from lives in a docstring and nothing re-takes it
the split that decided the mangled rule is re-taken over the pinned corpora on every run, so a field growing a run or prose losing every one is a red rather than a docstring gone stale.
- RK1529 · e9db793an incidental path naming no file is silent, where a budget naming none is a finding
an incidental path this tree does not hold is a note naming the report it stopped filtering, so a filter that quietly does less is said rather than read as a louder backlog.
- RK1528 · e4c84f8the near row offers the door to the delivered half and none to the open half it now counts
the near row names the listing for each half it counts, so a reader who suspects the fourth-nearest can open the open lines as well as the deliveries.
- RK1527 · b25fecdthe near window stayed at three when the corpus it ranks over doubled
the window stays three and the reason is now measured: the open half takes one slot of thirty-three and widening reaches no pair three does not, both held as tests.
- RK1526 · 2191606the read that lets a reader choose between four rows is repeated on each of them
the read that lets a reader choose between the four rows is said once on whichever fires first, taking the note's worst case from 893 to 692 code units with every move still on its own row.
- RK1525 · f136e15the kinds sweep is total over the notes that make a call and silent over the ones that do not
the kinds table is held against the sites that append a note rather than the guard three of them call, so the per-call kind is covered and a second one is a red.
- RK1524 · 0085698the four notes this server appends to a tool result are priced by nothing, on a heavier cadence than the gate's
cost --notes prices the four notes this server appends, composed at their widest from the functions the answers use, and says which one is paid on every call.
- RK1523 · c6587eaa declaration whose program engines cannot name is silent, and reads exactly like a project that declares none
engines carries a fifth row for the command the harness runs, so a declaration naming a program this tool did not write is reported as unreadable rather than as none.
- RK1522 · 67d5a5bone record is a file section, a reference page and a note row, and its docstring describes only the first
Part's docstring states the three subjects that share it and a table holds the callers total, so a record used three ways says so and a fourth is a red.
- RK1521 · 26129bcthe note cadence prices what fired and cannot say what it left out, no list of note codes existing
the note codes are declared beside the remedy table and held total against the emitter, so cost --notes says how many of them fired here and how many this project never meets.
- RK1520 · 496cf19the marker-leak gate rewards the repair that renders the same wrong bytes
a composed command carrying a marker constant is now a red, so the repair the codepoint scan rewarded is caught by the shape a backticked span makes it.
- RK1519 · af50527a project that declares its own open markers cannot claim a line, and nothing anywhere says so
markers.working is the sixth key, so every door that takes, reads or releases a claim uses the marker this project declares and a backlog spelling its own can be worked.
- RK1518 · 8b8660eadopt refuses two answers inside its estimator, so the dispatcher and the served surface read them as compatible
adopt declares --ledger and --sections two answers, so the dispatcher refuses the pair before a handler runs and the served schema, the sweep and both surfaces read the same rule.
- RK1517 · 8847f33a served flag that only shapes the terminal form is inert, and nothing asks that of the eighteen
every served boolean is now run with the flag and without through the argv the server composes, so a flag this transport makes inert is a red rather than an answer nobody can tell apart.
- RK1498 · 5657be7thirty of the thirty-six sites that compose a door are accounted for as a work-list, so nothing ever runs one
Every one of the thirty-six sites is run or deliberate, and running them found eleven defects no reading of the same messages had.
- RK1516 · 8b375edsection drop deletes a design and never says the constraint answer went with it
section drop now names the constraints the deleted prose quoted, so the fourth door that removes a design reports what the three departure doors already did.
- RK1515 · 0aca29ca design quoting a constraint to describe somebody else's case reads as having settled it
every register now states the quotation it measured rather than a settlement it cannot see, so a design citing somebody else's answer no longer reads as having made one.
- RK1514 · 0e72d17uninstall leaves the vendored engine on disk and its own kept field never mentions it
uninstall now names the vendored engine among what it keeps, with the version where the tree states one, so the copy nothing points at is reported rather than left silent.
- RK1513 · 0549590brief hands over a line carrying no criteria in silence, and the absence is reported only once part landed
brief now says a line carries no criteria and names the command that writes one, so the absence is read before the first edit rather than at the partial marker.
- RK1512 · 21b86c3pick and brief never name the deferred store, so a set-aside line and the reason it cites go unread
pick counts the deferred store beside ready and blocked, and names the read that opens it.
- RK1511 · 69b68d8a line filed because the task that found it could not fit it has no door back into that task's criteria
retire --folds-into moves a line's own claim into another task's criteria and ends the line, in one write.
- RK1510 · c38d0a4no read says how many lines a shipped task filed behind it, so granularity is judged from a feel
weight reports what each comparable filed behind it and the span it arrived over, bounded by the next ship.
- RK1509 · 6836131an adopting project is never shown what its briefs cost, so a ceiling is chosen with no reading in front of it
adopt prices this backlog's widest brief beside what the surface costs, at the moment a ceiling is chosen.
- RK1508 · 6f0dfebwhich engine wrote a project's surfaces is derivable from their bytes and is only ever read out of a record
install --check dates the committed bridge from its bytes where no record does, over this engine's own history.
- RK1507 · 4490745a line this tool writes under a ledger entry is composed by one function and recognised by another, matching on a prefix
one function composes a carried line and one beside it decides whether a line is one, round-tripped by a test.
- RK1506 · f585875budget prices one line per departure and a ship writes three, so the other two are exemptions rather than answers
budget --ship --decides prices the decision line beside the ledger one, and the exemption naming it is gone.
- RK1505 · 35920c5the note about a missing page says it is missing and not what it would have told the reader
each reference page declares the one verb it saves a reader, and the absent-page note quotes it.
- RK1504 · 373f414a served tool name that is also a CLI verb of a different act is a collision nothing enumerates
a table names every served name that is also a verb of a different act, held total against both enumerations.
- RK1503 · 7b0f2f9a field refused by the line quotes a ceiling no config declares, so the reader shortens the prose that fits
a length violation carries which ceiling refused it, and a line-bound refusal says the field is legal and cites the line's key.
- RK1502 · a94817aa write that composes a prose field can render it without measuring it, and nothing enumerates which ones do
a sweep over the prose fields the parsers declare refuses each one over its limit, with nothing written.
- RK1501 · 0aa7a6bthe clause that settles a constraint is deleted by the ship, so the answer lasts exactly as long as the work
brief says a design answers a constraint and names the ship flag that carries it, before the ship deletes the design.
- RK1500 · 4479fffthe query side of the duplicate ranking cannot be measured, every known answer being a note written after the answer
a test holds why the query half cannot be scored: all eleven known answers are written into the field a query would join.
- RK1499 · b3fb445whether a governed number has a gate behind it is a flag typed at the reading, and no test holds it against the findings
a test holds refuses against what lint does with each governed key, and the two that no gate reads say so in the field.
- RK1497 · 29379f2nothing catches the bytes a wrong decode leaves, so mojibake reaches a permanent file and a correction is what cleans it
char.mangled refuses a field whose bytes came through the wrong codec: 0 false positives over 3,962 fields, 18 over prose, so it reads fields only.
- RK1496 · bca6489the filter that makes unclosed honest is inert here, where a hook touches three ungoverned files every commit
[history] incidental names what a hook writes every commit, and the projections join the paths this tool writes.
- RK1495 · d93d4bcthe near rows an add prints come from the ledger alone, so two sessions filing one defect never see each other
the near rows rank the block's open lines beside its deliveries, counted apart and marked apart.
- RK1494 · b4e4a75one gate code now carries four causes with four remedies, so explain can only describe their union
engine.disagreement files one row per differing copy, each carrying the move that closes it: 893 units against 643 joined, which RK1491 made readable.
- RK1493 · 1be405ethe served notes are four kinds keyed by string literals invented at each call site, and nothing enumerates them
serving.NOTES declares every note kind with the rule it is under, held total against the literals the module passes.
- RK1492 · 5132f74the invoke line finds the program by a .py suffix, which is a guess about a file this tool merges into
the declaration reader recognises the launcher this command writes, and answers nothing where it finds neither spelling.
- RK1491 · 1c94704the note a wired project reads on every turn is 475 characters at full length and no cadence prices it
cost --notes prices the sixth cadence: 282 per run here, 643 for the widest note composed, and no ceiling — small beside every other cadence.
- RK1490 · c40d7e7a caller who can see a withheld line is worth starting still has no way to take it, only to disbelieve the refusal
the absence a requirement produces now carries the line's symptom and the two commands that take it.
- RK1489 · 16f3277the pair sweep reads a flag as swallowed where its fixture cannot hold the state the flag is about
the pairs fixture is a repository with a shipped section, and what it still cannot reach is named — which found origin --why --json swallowed.
- RK1488 · dc9d0a6a ship deletes the clause that answered a constraint and says nothing, so the answer ages out unremarked
ship, retire and close now name the constraint whose answer went with the design they deleted.
- RK1487 · 85666dda vendor that lands and then fails to wire leaves a copy nothing points at, and no refusal says it is there
install now says what landed when a vendor copies an engine and the surfaces then refuse.
- RK1486 · b33d1d0the brief ceiling was argued from a backlog with no deps at all, so the lists that grow with the graph are outside it
The reading is taken at the pins and it falsifies the premise: Shio's widest brief is 3354 against 3300, and the graph rows are a tenth of it, which cost --brief now splits.
- RK1485 · 675d037the record that stops a downgrade arrives on the write it guards, so an already-wired project is unprotected until then
install --check names the absent record and the gate says the direction is unestablished, so a project wired before RK1462 is told rather than guessed about.
- RK1484 · f2da574a ship recording a checked criterion wraps the entry, so correcting its sentence costs a span this tool wrote
record amend asks no count where every continuation is one this tool wrote, so a checked entry is corrected in one call and a hand-wrapped one still costs the span.
- RK1483 · e494af8budget and the writes it prices disagree about arguments in both directions, and nothing enumerates the pairs
A table pairs each budget subject with the write it prices and holds the option spellings both ways, and the two words retire and defer use are taken here.
- RK1482 · 1bf9ed4a finding about the reader's own stale tooling sits in lint's list at the same weight as a line over its limit
The gate tells a surface behind this engine from a page the project never had, and the summary line a skimming reader sees carries the count and the door.
- RK1481 · f67316ethe CLI and the MCP surface spell several verbs and flags differently, so a call copied between them is refused
The CLI takes the MCP spelling of a verb and of a field, saying which one it used, and never respells a verb it has of its own, RK353's refusal becoming an acceptance.
- RK1480 · 51fdcf2amend replaces the whole dep group, so adding one means retyping every dep the line already carries
amend --add-dep and --drop-dep name what changed and derive the group, and an addition the line cannot hold is refused naming that dep rather than the sentence that never moved.
- RK1479 · 800d6aba pause's reason is the one departure budget cannot price, its field holding a wrapper and the design carried forward
budget --defer prices it: Budget.carried is prose the field keeps and the caller does not retype, and reason_room is what the line leaves, which defer now refuses past.
- RK1478 · b854714a settled constraint-line pair is a sentence in one design and no read names it, so the gate's silence has no witness
non-goal list now carries a settled row per constraint, naming the open lines whose design quotes its lead, so the gate's silence is readable from the rule as well.
- RK1477 · c84ac74a re-filing of shipped work in other words ranks 7th, outside both windows, so the add that wrote it agreed it was new
The corpus is both prose fields now, the why being where two authors of one defect agree: nine of the eleven known pairs land inside the five, worst rank three.
- RK1476 · 11289eaan unscoped list over a ledger is bounded by nothing, so the transport refuses an answer this tool already composed
A ceiling declared as
[reads] list, held by the verb on the answer it composes: over itlistprints that selection's blocks and counts, and the largest--blockthat fits. - RK1475 · 41bc46dthe ship that finishes a block offers a block drop the decisions file will refuse, on every project that files decisions
the ship withdraws the block drop it would be refused for and states the ending instead, so a sweep is never handed the command that write just blocked.
- RK1474 · 3a2878aa decision's symptom is a copy of a roadmap line that is gone, and no verb in any of the three files can correct it
the claim two files copied is respellable and never rewordable, so a correction folding to the one on record lands and a rewording is refused by name.
- RK1473 · bbba26d
unclosedcounts roadkeep's own prose edits as evidence a line shipped, so its report is mostly its own writesunclosed drops a commit that touched only governed files, so a corrected why or rationale no longer reads as work that landed and the report is code again.
- RK1471 · 8424174a write from an engine whose home was swapped is allowed, on rules no disk holds and with no pin to compare against
the gate names a verdict that came from code no disk holds, and the write is not refused: the only remedy is a restart, which is a door neither a gate nor an agent can open.
- RK1470 · ddb20a2the served staleness note reads mtimes, so an engine replaced under the session looks like somebody saving a file
a home stating another version replaces the mtime inventory with the two numbers and one remedy, because the code that answered is on no disk and no module decided that.
- RK1469 · f17e7dcengines --invoke restates the launcher's order and knows two of its four entries, so a ROADKEEP_HOME pin is missed
engines --invoke answers the command this project declares rather than restating the launcher's resolution order, of which it knew two of four entries.
- RK1468 · 300c000the gate's engine note reads the plugin alone, so a project running two local copies at two versions passes it clean
the gate note carries a third clause for the engine vendored here, so a project running two local pens at two versions is told once per commit and not only on demand.
- RK1467 · 0a5b3d5A requirement gates the whole line, so the half of a task that needs nothing is never offered
requirements declared may be a table of what each word is, and the refusal that withholds a line quotes it, so a caller weighs the gate instead of believing it.
- RK1466 · 8c7bb69a project numbering by id gets every address in one answer, which at this repository's size is 961 rows and 175 KB
the wide anchors listing carries the live rows and counts the retired behind --retired, so an id project is not handed 175 KB of addresses nothing prunes.
- RK1465 · 052c5b8the launcher spends a whole extra Python start proving an engine runs, doubling how long connecting takes
the launcher stops probing before the server on Windows, where nothing is replaced, and connecting costs 58 ms over the engine instead of 328.
- RK1464 · 8475636install --vendor writes the surfaces before it replaces the engine, so one run leaves the outgoing engine's copy on disk
install --vendor pins the engine before it writes the surfaces and wires from what it pinned, so one run leaves a tree its own check passes.
- RK1463 · 4a8f6ddbrief spends four fifths of its answer on deps that are all shipped and settled long ago
brief publishes the design revision once instead of under every settled dep, which on a six-dep task was half of a deps block that was 46% of the answer.
- RK1462 · 0dfeffcinstall rewrites a surface with an older engine's copy, so the remedy lint names undoes a fix that shipped
install records the engine that wrote each surface, so a project whose copies came from a later one is refused and named the direction instead of downgraded.
- RK1461 · 5e62631budget cannot price a line that will carry a requires, so the number it quotes is 21 characters too generous
budget takes --requires, repeatable, so the 21 characters of structure an add writes for a requirement come off the number before the sentence is composed.
- RK1460 · 3ce36b5A criterion checked by running something ships looking exactly like one nobody looked at
ship --checked names a criterion this task carries and moves its own sentence under the ledger entry, so a verified claim no longer reads like an ignored one.
- RK1459 · 821e3ffThe read that prices a body and the write that files it name the same argument differently, so the loop costs a refusal
budget answers to --section-body and --section-body-file too, so the flag a caller priced a design with is the flag the add that files it takes.
- RK1458 · 9592a6fbudget prices a why against the roadmap line's limit while the ship about to be written is held to the ledger's
budget --ship prices the sentence the ledger will hold rather than the line the id is on, which is the number brief already quoted and this read contradicted.
- RK1457 · 438620cnon-goal.reaches fires on every lint and nothing clears it, so a project that decided reads the same note forever
non-goal.reaches falls silent where the line's design quotes the constraint's lead, so a decision made once is recorded where it ages out with the work.
- RK1455 · c4b76cfa changelog listing cannot be asked for its blocks, so the only way to see them is to read the file
block list rows carry what the ledger records, and the block filter that cannot enumerate labels names it, so a caller placing work never reads the file.
- RK1454 · 404f90fblock drop refuses a finished block without naming the ending that is correct
block drop names what became of the block in the refusal, in the words block list already uses, so a sweep told to run it last gets an ending instead of a dead end.
- RK1453 · 313c474A decision's sentence has no correction door, so a typo outlives the decision
revise corrects a decision sentence where it stands, keeping the entry, its marker and the superseded clause it did not author, so a typo no longer outlives the decision.
- RK1452 · e2ce04athe server reports the version it loaded while that same path holds another, and calls the result agreed
engines reads what the running home states now, so a copy swapped in place under a live server is a swapped row and a refused verdict instead of agreed.
- RK1451 · a53b018engines lists only the copy it is, so a vendored engine the launcher runs has no row and both copies exit clean
engines reads a fifth copy, the engine vendored under .roadkeep/, so two local versions get a row each, a differ line naming both pens, and exit 1 instead of two clean reads.
- RK1450 · 8a8b3acanchors lists no rows while its own payload counts 88 of them, and --claims, which narrows it, lists 29
The family register summarises the rows the wide read withholds, and a project numbering by id has no families — so the listing stated a count and no narrowing reached it.
- RK1449 · 783862ethe MCP server does not finish connecting inside the client's 30s timeout, so a session gets none of its tools
The handshake's provenance line cost three git calls at twenty seconds each, outlasting the client's thirty; the placement now shares one three-second deadline and degrades to unplaced.
- RK1448 · fea41a1a test unpacking report.notes as a whole passes or fails on which unrelated note the gate happened to add
A sweep refuses the whole note list unpacked, compared or indexed, following one binding, and the suite's own module set is declared once (design recorded in
tests/test_advisories.py). - RK1447 · 244da90install prints what the surfaces let a session do and its payload says only which files moved
Both registers come off one method: the payload publishes the same sentences the report prints, and carries an empty list under
--check. - RK1446 · d037ef4the launcher's
mcpmode exits 0 and serves nothing on Windows, so a session loses the tools its own hook namesOn Windows the launcher runs the server as a child with this process's stdio, so the process the harness spawned is the one still serving.
- RK1445 · 51b9106the gate on reads the skill may name lets a piped span through, so the two verbs nothing serves are named anyway
Every alternative in a joint span counts, and the two verbs nothing serves are a declared exemption the skill pays for by naming the keys (design recorded in
tests/test_skill.py). - RK1444 · 9b8c770the area prices every surface a session is handed except the skill, and its page has no word left to say so
The session page renders
cost --skillas a third cadence — the orientation and a row per reference page — and the build reruns when the skill moves. - RK1443 · 0a4dbbdEvery MCP write repeats the same staleness notice a session cannot act on
The process-scoped notes fire once per server, name the modules that moved, and lead with the CLI remedy a session can actually run.
- RK1442 · 8a7ea91stats is the one counting verb no tool serves, so the split it just grew is unreachable from the surface an agent has
list --jsoncarries astartablekey over the lines its own filter selected, so the split reaches the served surface without a forty-fifth tool at connect. - RK1441 · d62b04fthe --have help names a (needs: ...) group the parser does not read, so a caller copying it is refused
Four sites now spell the slot the parser reads, and a test holds every backticked group in this repository to the template that declares them (design recorded in
tests/test_quoting.py). - RK1440 · d247f79engine.disagreement compares the gate to the plugin and never says the gate is a working tree rather than a release
A wired project's gate note says when the engine answering is a modified checkout at no commit, so a moving version stops reading like a release.
- RK1439 · 27cdd44pick offers a line that seven shipped entries were filed against, with nothing saying it is being worked by proxy
briefandpickname the shipped entries whose sentences cite an open id, so the eighth caller reads what the previous seven learned. - RK1438 · f2398bfinstall reports which surfaces it wrote and never says what they let a session do
A write ends with five lines saying what the surfaces let a session do — the daily verbs, the gate, the two reads that save a refusal, and the check CI runs.
- RK1437 · 0d756a9the skill names all 44 verbs and costs 65k units a turn, so it is a reference loaded as an orientation
The skill is an orientation of 11k units, the write path and the query surface being two pages install carries beside it, and
cost --skillprices each (design recorded intests/test_skill.py). - RK1436 · 8ceee15amend lists the fields it can change and never names the verb that owns the one it cannot
amend's usage names restate where it declines the symptom, and a declared registry holds every verb that turns a field down to naming the verb that owns it.
- RK1435 · 4ab0dd9a refusal diagnoses the write it rejected and never names the read-only verb that would have predicted it
a length refusal carries a foresee row naming the budget read that measures the same draft and writes nothing, so the preventive verb is discoverable where the write failed.
- RK1434 · 9514772a non-goal can forbid a line the same file lists as ready, and nothing compares the two
lint says non-goal.reaches where a non-goal lead and an open symptom share a word the ledger rarely uses, as a note with the two reads that settle it.
- RK1433 · 42f6ddbnothing checks that a partially-shipped line has criteria, which is the one state where how much is left gets asked
lint reports a partial line with no criteria as criterion.absent, and ship --part names the criterion add that closes it in the same answer, so the gate is the backstop.
- RK1432 · fecc606stats counts every open line together, so a reader cannot see how many can actually be started
stats splits the open count where a project declares [requirements]: how many nothing absent is holding up, and the rest under what each waits for, a line naming two counted once.
- RK1431 · 5317614A page whose sections a component renders publishes an empty On this page, so nothing links them
Every generated section is in the contents list, stated once in headings.ts and merged into the route by a Starlight middleware.
- RK1430 · ad27305The walkthrough's commands run off their block, the page scrolling sideways under them
The walkthrough's command blocks wrap like their output, so a command carrying a whole sentence stays inside the page.
- RK1429 · dc2ac5cThe one slash command that writes puts its argument into a shell unquoted, and nothing holds how any of them does it
The argument is quoted like the path beside it, and a sweep over every expanded block refuses a bare variable in any of the four files.
- RK1428 · 0fa2c41Nothing counts the guard's denial, and 1,760 of its 4,092 units re-spell the shell for a caller that has the tools
cost --deny prices a refused write off a real Refusal, beside the notice that already had a ceiling, and names the shell half without judging it.
- RK1427 · 7770420The release workflow restates the list of files that carry the version, and nothing holds the two together
The hook and the release are read back against the bumper's TRACKED, and the test fixture derives from it, so a fourth versioned file is a red (design superseded: it is stated four times).
- RK1426 · 518df75A finding the gate files with no line loses its doors in the editor, which offers only the explanation
One reading anchors the diagnostic and keys the remedy, so every finding filed against roadkeep.toml reaches its doors in the panel.
- RK1425 · 2e03a3dThe editor offers every complete door of a finding as an independent quick fix, including a sequence's second step
A sequence is one action naming its steps in order, or none where the first is prose, and roadkeep.run takes a list of argvs so both shapes compose the same way.
- RK1424 · 8c9cca3The skill is 65,180 code units and nothing counts it, where the surface it is larger than has a ceiling
cost --skill prices the write path beside the served schema and says which sections it went to, served over MCP and with no ceiling declared.
- RK1423 · b3ea712The cost --session row puts the whole surface beside a room derived from a smaller figure
The schema row names the held figure its room was taken against, so the line reconciles without the one below it (design superseded: the held figure belongs in the clause, not in the cost column).
- RK1422 · 98de844Three of the nine exits the census calls a verdict have nothing asserting the stderr they close with
All nine verdict addresses are now measured, each in the file that owns its verb, and each assertion was proved to redden with the suppression off (design superseded: each site had a test at it).
- RK1421 · afc1b2eNothing enumerates the thirteen exits that return the gate's code, so which is a verdict is settled one report at a time
Two tables in cli.py name all thirteen returns with their argument, and a sweep holds them to be what it found (design recorded in
tests/test_invariants.py). - RK1420 · 5f22b43install --check closes a complete answer with the capture offer, on the verb an adopter runs while wiring
Both --check verbs state the verdict from the run, so the offer is gone from every EXIT_GATE that was already an answer and replay is asserted silent.
- RK1419 · 3170547The capture offer rides lint --fix and repair, whose exit 1 is the verdict lint's own is exempt from
A parser declares whether its exit 1 is a verdict, so lint --fix and repair close on the finding alone and a repair whose own step failed still offers.
- RK1418 · f49ff3bref.missing asks the author for an anchor on the one scheme that derives it
Under an id scheme ref.missing names the section that closes it, and --fix writes the pointer where that section is already there (design superseded: deriving it unconditionally reddens --baseline).
- RK1417 · 3e0b33cThe pitch is a hand-edited HTML file inside the governed store, which is also the web root the site is served from
The site is two builds under site/ — a Vite pitch whose copy is one module and the Astro area under site/docs/ — publishing site/dist/, so docs/ is the store alone.
- RK1416 · ffc997fThe decision field explain publishes is the same string as the cause on every code that carries one
explain --json publishes cause and no decision, so no finding page can print one sentence under two headings.
- RK1415 · 505f9c6A project whose roadmap already exists cannot reach a first roadkeep.toml through any verb
init --existing declares the governed files already there and scaffolds only the rest, reading the prefix off the ids and the blocks off the headings (design superseded: it left the shape open).
- RK1414 · 69187d3The order of the reference pages is a number typed into each one, on pages whose every other fact is derived
No reference page declares an order: the sidebar is listed from the payload's family walk order (design superseded: it proposed generated frontmatter, not a config reading the payload).
- RK1413 · cce5f59Most finding codes have no hand-written situation, so their page classifies the error and never names it
Every one of the 119 finding codes now carries a hand-written situation, and a test holds the join so a code added to the gate arrives with its sentence.
- RK1412 · e5270f7The area's build runs on changes to site and docs, and every page it generates is read out of src
The site build now runs on src/** and roadkeep.toml, so a renamed verb, flag or config key rebuilds the generated reference on the commit that changed it.
- RK1411 · c9e0bb4lint died with a RuntimeError traceback on a machine whose environment names no home directory
Path.home() raises rather than answering, and three readers on the path lint takes through engines called it unguarded; no home now means no plugin is installed, which is an answer.
- RK1410 · 58e4d8cAn area published as HTML alone makes an agent render a page to read prose the repository wrote as Markdown
Every page keeps a plain-text twin converted from the same render, at its own address plus index.md, and the area publishes a generated index that llms.txt names.
- RK1409 · e5b2c91Nothing bounds a page, in the one project that measured what a file with room on every page grows into
A word budget per page declared with its argument above the key, refused by the build, with generated pages counted apart and a page that states a count failing too.
- RK1408 · 46e9976Prose four files own gets told again by any page that frames it, and the copy nobody reads is the one that drifts
The laws are harvested from agents.md and the non-goals asked of the verb that owns them, and a test refuses any page in the area that carries its own copy of either.
- RK1407 · 76ac5c6The model the verbs act on is written for an agent mid-session and for whoever edits the code, never for a reader
One page for the system the verbs act on — the roles, a line's fields, the pointer, blocks, the two other bullets, and the four doors with what each leaves behind.
- RK1406 · c9e0bb4Adoption on a repository that already has a backlog is a list of commands with no run and no refusals shown
A throwaway repository with a drifted roadmap, the adoption run against it, and every command with the output it actually produced — captured by a script the suite executes.
- RK1405 · b881027Nothing describes what a session receives once the plugin is installed, only how to install it
The five surfaces a session receives, with what connecting costs and which tools are withheld generated from cost and the served schema, under the prose no read answers.
- RK1404 · 62bee40Writing a first configuration file needs the read that describes it, which needs a configured tree to answer
The whole of roadkeep.toml rendered from the read that owns it, with this repository's own file as the worked example, under what a person writes: what a number is for, and adopting one.
- RK1403 · 5732647A finding code pasted into a search engine resolves to nothing, and explain answers only from an installed copy
One page per finding code, generated from the table explain reads, under a hand-written sentence naming the ordinary act that put the reader there — the half no read derives.
- RK1402 · 6b3afeeNothing outside a checkout says what a verb takes, so a reader picks flags by installing the tool first
One page per verb family, its table rendered at build time from the parser the tool emits as data, under prose written once, with the suite holding pages and component against that payload.
- RK1400 · 4c1caa5No job builds the area, so a page that stopped compiling is found by a reader and a stale commit is published
The area's own workflow builds it on every push and pull request and deploys the bytes that build produced when asked, so nothing generated is committed and no publish is unreviewed.
- RK1399 · 4c1caa5The directory GitHub Pages serves is the governed store, so a build writing into it lands on the roadmap
The source sits outside the store and the build owns one reserved subtree of it, docs/guide, with the base, the output and discovery asserted against what declares each elsewhere.
- RK1398 · 4c1caa5An adopter's questions are answered by one long README or by a command they have not installed yet
An Astro and Starlight area with its own sidebar, per-page contents and build-time search index, sourced from site/ and built into a reserved subtree of the store, with the entry page as its first.
- RK1401 · f84759dNo read prints the parser as data, so anything outside a terminal retypes the verbs and their flags
One read prints the parser as data — every verb, its arguments, defaults and the sentence the parser carries — so a reference generated from it cannot describe a flag that was renamed.
- RK1397 · 02854d3The module that declares the capture family says two verbs have this tool as their subject, and it declares four
The two lists are declared constants and a census holds them against what the module puts on the parser, so a verb added to either half is a named failure and not a stale sentence.
- RK1396 · 090288fA path argument ignores -C, so a door this tool prints is refused as a file that does not exist
A capture is a file of the project, so the three verbs that take one resolve it against the root -C named; a body file is not, and stays the caller's.
- RK1395 · 97ef412A capture filed upstream reads as unfiled in two reports, and neither names the stamp that would resolve it
Both readers now print the argv that closes the row, composed once and complete wherever the capture recorded where it was aimed.
- RK1394 · 23cffa5nothing deletes a capture whose task shipped, so the reports directory grows for ever and is cleared by hand
capture sweepdeletes a capture whose filed id the ledger records as shipped, and names the three states it cannot prove spent rather than guessing at them. - RK1393 · a471420the authority on the query surface does not name the subject config gained, so an agent cannot discover it there
Both surfaces a caller meets before calling name what this build fixes and no project declares, and neither copies the reading (design recorded in
skills/roadkeep/SKILL.md). - RK1392 · 26906f4engines reads a fourth copy and every sentence that counts them still says three
Every sentence about
enginessays which question its count is for: four copies are read and three are judged (design recorded insrc/roadkeep/installing.py). - RK1391 · baa3c82a frozen fixture nobody declared is read by nothing and reported by nothing, though the table says otherwise
The frozen root's directories are confronted with the rows that declare them, so an undeclared fixture is a red (design recorded in
tests/test_backlog.py). - RK1390 · ce29f39a third shape the re-pin retired has a test and no frozen fixture, so it is read off no backlog at all
The doubled anchor an open line points at is read off Turing's own bytes at the revision that carried it (design recorded in
tests/corpora.py). - RK1389 · 05fad31merge --check offers one copy where the register report names both, and the other reads now send the caller here
The check names the other copy beside its repairs, off the one sentence the register report already prints (design recorded in
src/roadkeep/merging.py). - RK1388 · 61dff2ftwo reads answer about one half of the wiring each and neither says which, so together they read as a contradiction
Each row names the half of the wiring it read and defers to the verb that labels both, so the three reads reconcile (design recorded in
src/roadkeep/installing.py). - RK1387 · 1c4fda6install --check offers to wire a driver the files already route to, so two reads disagree about one fact
The row reads the attribute half back, so a tree whose files already route is told that rather than offered the flag (design recorded in
src/roadkeep/installing.py). - RK1386 · a5546d9register wires whatever installed the console script, so a developer's checkout cannot be the driver its own merges run
Where a machine holds two copies the report names both, so the caller chooses knowing there is a choice (design recorded in
src/roadkeep/rendering.py). - RK1385 · a039331the driver git runs is a fourth copy of this tool and no read says which, so a build behind the tree merges its files
enginesnames the driver git would run beside the tree writing here, and never reads its version, which would mean running it (design recorded insrc/roadkeep/installing.py). - RK1384 · d3347cdthis repository ships a merge driver and routes none of its own files to it, so a merge here falls back to git's markers
Git sends all four of this repository's governed files to the driver it ships, so its own merges are decided the way it claims (design recorded in
.gitattributes). - RK1383 · 03333e5twenty-one pairs of modules import each other and nothing names them, so a new cycle looks like the ones already there
Every pair that imports itself back is named — thirteen with what the boundary does, eight as work nobody has looked at (design recorded in
tests/test_cycles.py). - RK1382 · 6951981the record a reading returns is declared in the module that prints it, so the two import each other at call time
The record sits with the reading that builds it, so the presenter imports it once at the top and the reading names its return (design recorded in
src/roadkeep/budgeting.py). - RK1381 · e919316the conversion fixed from this package's own corpus has no read that states the reading, so its drift needs a script
configstates what this build fixes from its own corpus with the reading beside it, so the conversion is a command not a script (design recorded insrc/roadkeep/budgeting.py). - RK1380 · fed659ba law a governed sentence cites is resolved by nothing, so a number outside the six reads as a law
A law cited from any governed sentence resolves against the table that declares them, and is
law.unknownwhere it does not (design recorded insrc/roadkeep/linting.py). - RK1379 · 4c27973five of the eight blocks closed with nothing stating what finished them, which is the emptiness RK1358 says out loud
All eight blocks state what finishes them, two criteria each, read off what that block's ledger actually delivered (design recorded in
docs/ROADMAP.md). - RK1378 · 41b46b7the refusal that will not move an anchor across parents names the family and not the free address under it
The refusal states the free address, and the retry it earns replaces the destination rather than the source (design recorded in
src/roadkeep/verbs/refusing.py). - RK1377 · fc27027four of the six writes the sweep excludes are excluded for the fixture's shape and not for anything about the verb
A second project sweeps the four writes the first could not reach, and the two exclusions left are about what the verb answers with (design recorded in
tests/test_answers.py). - RK1376 · a9ad2bdthe one-column claim a ledger entry makes about every write is held by a test that drives one verb
Every write's rows are swept for one outside the shared column, and the three that had one — criterion add, declare, govern — no longer do (design recorded in
tests/test_answers.py). - RK1375 · 0242202brief states one field's allowance in two grammars on adjacent rows, so the comparison they exist for is read twice
A brief's three allowance rows state their figure the same way, so the comparison they exist for is one reading (design recorded in
src/roadkeep/briefing.py). - RK1374 · 0e7acfdthe volunteered rows are bounded at three and say neither how many of how many nor where the rest are
The volunteered rows say how many of how many, and name the listing that holds the rest (design recorded in
src/roadkeep/authoring.py). - RK1373 · 7999627the neighbours read guards on a path existing where its siblings guard on a file, so a role naming a folder fails an add
A role whose path names a directory is read as the absent file it is, so a report cannot fail a write already on disk (design recorded in
src/roadkeep/authoring.py). - RK1372 · b52174bthe add answer prints its own rows at two columns, so one verb's report is two grammars a reader has to hold
Every row of an add's answer begins at one column, and the printer it shares has no default indent left to fall back to (design recorded in
src/roadkeep/rendering.py). - RK1371 · b15abfbevery reason for not serving an argument is declared and read by no command, so a caller asking why reaches none
A caller passing a withheld argument is told it is withheld and why, in the sentence declared beside it (design recorded in
src/roadkeep/serving.py). - RK1370 · 3485789an add answers without the delivered entries nearest what it filed, so a duplicate is found after the design is written
Every add names the three delivered here nearest the symptom it just filed, at the moment nothing is spent but an id (design recorded in
src/roadkeep/ranking.py). - RK1369 · 3230830the check that unoffered arguments say why skips any tool an always flag made, so claim withheld --have and nothing said
Every served tool answers for what it does not offer, so claim now takes --have and git's five carry the sentence that explains them (design recorded in
tests/test_serving.py). - RK1368 · 37251d1the staleness note rides on a refusal, so a write validated against code that changed on disk is answered with nothing
A successful write over MCP says when the code that validated it had moved on disk, and names the gate that judges what landed (design recorded in
src/roadkeep/serving.py). - RK1367 · 1b779fcgovern only stacks, so a number whose premise was falsified keeps every paragraph arguing for the reading it replaced
govern --insteadreplaces the argument above a key rather than stacking on it, and names every line it took out (design recorded insrc/roadkeep/governing.py). - RK1366 · 1e8d02dbudget states the room left beside a why no write extends, so an amend is told 8 words where it may write 31
budget aims an amend at the sentence it writes and not at the one it deletes, the remainder on a replaced field being the whole allowance (design recorded in
src/roadkeep/budgeting.py). - RK1365 · 0e264fdbrief reports 37 characters left for a ship why and then accepts one of 145
A brief's shipping and deciding allowances are the whole field, that sentence replacing the line's rather than extending it (design recorded in
src/roadkeep/briefing.py). - RK1364 · 2de2336the session ceiling is declared against a package-wide surface no project is sent, so it bounds nothing in particular
The session ceiling is this checkout's own served surface, re-taken from its reading and argued where
governputs it (design recorded inroadkeep.toml). - RK1363 · cb77df1an outline project cannot give a decision a body, the id being no address in a file that numbers its own headings
A ship names where its decision keeps a body, so an outline project files one the same way an id project does.
- RK1362 · d384419the spec an agent executes is assembled per call by brief and exists nowhere a review or a second tool can read
The spec brief composes is a document export writes, bounded by a file rather than by a tool result (design recorded in
src/roadkeep/exporting.py). - RK1361 · 623b712a decision is one sentence, so the alternatives rejected and the consequences accepted are kept by hand or not at all
A decision keeps a body in the decisions file, addressed by its id and deleted by nothing.
- RK1360 · 55ff245a project declaring no decisions file still pays for its verbs at connect, the tool list being built from the parser
The tool list is composed per project, so a verb that is one role's whole grammar reaches only a project declaring that role (design recorded in
src/roadkeep/serving.py). - RK1359 · 370cf46the install report heads with the engine checkout and never names the project it wrote to
The install report heads with the project it wrote to, and names the engine only where that is a different tree (design recorded in
src/roadkeep/installing.py). - RK1358 · b01e332a block that finishes with no criteria reads like one that met them, where the project declared criteria
A finish with no criteria says so and names the verb, where a project uses them elsewhere and this block was not one (design recorded in
src/roadkeep/rendering.py). - RK1357 · 88f64cbthe queue's finding claims a task line its own verbs decline, so the gate and the read disagree
The queue's finding keeps the arbitration its verbs already kept, and the unread row that names a line it could not take stays (design recorded in
src/roadkeep/linting.py). - RK1356 · 30c6d98the criteria reader claims a task line as its own, and the drop it prints deletes the line
The criteria reader keeps the arbitration its sibling got, so no drop is offered for a line carrying an id (design recorded in
src/roadkeep/criteria.py). - RK1355 · fa44da8a task line under Non-goals is read as both, and the door the non-goal finding prints deletes it
A bullet the task grammar already read is that reader's, so no door offers to drop a line carrying an id (design recorded in
src/roadkeep/scoping.py). - RK1354 · 11cbcbbthe driver sees a composed dangling dep and not a composed cycle, which the same backlog decides
The backlog question asks all four kinds, so a cycle well-formed on both sides and present only in the merged file is refused (design recorded in
src/roadkeep/linting.py). - RK1353 · 2d86f4ea merge composes a dep on a line the other side removed and returns it clean, the gate it runs being per-file
The driver asks the backlog what one file cannot answer, so a dep on a line the other side removed is refused by the id it wrote (design recorded in
src/roadkeep/linting.py). - RK1352 · 81b646athe merge driver refuses over a defect its inputs already carried, so a branch is blocked by a line it never wrote
The driver refuses the findings no version already carried, so a branch is not blocked by a line it never wrote (design recorded in
src/roadkeep/merging.py). - RK1351 · 4af3e81the estimate lists no byte-level code, so a BOM the fixer closes is missing from what adoption costs
The estimate asks for the byte-level walk by name, so a mark the fixer closes is counted in what adoption costs (design recorded in
src/roadkeep/linting.py). - RK1350 · 5e992b7adopt on a file that is not text prints the decoder's own message, naming no file, no verb and no door
A file that does not decode is refused by name with the door its ownership decides, rather than by the decoder's own sentence (design recorded in
src/roadkeep/adopting.py). - RK1349 · 4d87de9adopt reports a field the ledger declaration removed, so a row that cannot exist prints 0 over
A field the ledger declaration removes is not measured, so no row counts against a slot the shape has not got (design recorded in
src/roadkeep/adopting.py). - RK1348 · 98ffd62adopt counts prose lines over a width nothing refuses, so the estimate prices work no gate would ask for
The fill width is read and never counted against, so an estimate stops naming edits nothing would ask for (design recorded in
src/roadkeep/adopting.py). - RK1347 · 4447383the reread covers two roles of three, so a prose file is priced at nothing and labelled a backlog
The reread tries both other roles and the header names all three, so a rationale file is priced as prose rather than as nothing (design recorded in
src/roadkeep/verbs/adopting.py). - RK1346 · 2418503adopt calls 361 changelog lines changing where --ledger reads all of them as conforming, and names the flag nowhere
A file nothing parsed is read again under the other role, and every estimate names the grammar that answered it (design recorded in
src/roadkeep/verbs/adopting.py). - RK1345 · f024d93adopt prints every field as longest 0 and 0 over where nothing parsed, which reads as fields that fit
A field nothing parsed is reported unread in both registers, where a zero longest beside a zero over read as a measurement that fitted (design recorded in
src/roadkeep/rendering.py). - RK1344 · 76101eatwo adopt gains have labels the fixed pad cannot separate, so the row runs its first word into its sentence
The gains column is padded to the widest label of the rendering, so a label reaching the old constant no longer runs into its sentence (design recorded in
src/roadkeep/rendering.py). - RK1343 · 4785ea8govern tells every undeclared key that a build default applies, and three of them have no default at all
An undeclared key is told the number that holds it, or that nothing does and which gate is off until one is written (design recorded in
src/roadkeep/governing.py). - RK1342 · 4dc7dcddeps prints its own spelling of no-open-task, so a paused line is invisible where the shared refusal names it
The second spelling is deleted, so deps refuses through the class whose three answers include the pause and its door (design recorded in
src/roadkeep/verbs/querying.py). - RK1341 · 07ac06ba paused id is refused as never written or retired, when the store it sits in has a read that prints it
A paused id is told which store holds it and the two verbs that read and undo it, instead of two guesses that are both false (design recorded in
src/roadkeep/showing.py). - RK1340 · 6591e62a door prints a blank for the id its own finding carries, so the reader types what the tool just held
A door carrying the id its finding holds names it, and its sentence says what the command it names actually reports (design recorded in
src/roadkeep/remedying.py). - RK1339 · 466605afilled drops a positional blank instead of failing loudly, so seven doors would run as a different command
A blank the sweep cannot fill fails loudly wherever it sits, and the caller that may have a continuation is the one that says so (design recorded in
tests/composing.py). - RK1338 · a342dfethe door-execution test runs one remedy row of 118, so a door naming a refused command is found by hand
Five rows have their doors run against the state that produced each finding, and the loop ends where the gate is clean, not where a call parsed (design recorded in
tests/test_composing.py). - RK1337 · 0094d89the duplicate-anchor remedy names a command that exits 2 in the very state that produces the finding
A duplicate anchor is closed by the verbs the project's own scheme has, an id-addressed section being one no move re-addresses (design recorded in
src/roadkeep/remedying.py). - RK1336 · 9ea48b5the session budget's door reprints the total instead of ranking the descriptions a reader has to cut
The session budget names the ranking first and the total second, a read having gained the ordered several a choice already had (design recorded in
src/roadkeep/remedying.py). - RK1335 · 98648b0cost --tools states a total the gate no longer uses and no session ceiling, on the read used to decide a cut
The ranking states what the gate refuses and the ceiling it refuses it against, on the read somebody runs to decide a cut (design recorded in
src/roadkeep/serving.py). - RK1334 · bbe6907the served surface is measured with the handshake's provenance in it, so the budget moves with the checkout
What names the checkout is counted into what a session pays and subtracted from what the ceiling holds, so the verdict stops moving (design recorded in
src/roadkeep/serving.py). - RK1333 · c17b181cost --session prints the tools total without the ceiling it is measured against, in both registers
The schema row derives its room from the ceiling the gate refuses it against, in one spelling both once-rows now share (design recorded in
src/roadkeep/budgeting.py). - RK1332 · 5617b4bevery design clause respells an anchor the entry already carries, in the one sentence proven to have no room
The anchor is spelled only where it is not the id the entry already opens with, which returns 8 characters per clause under an id scheme (design recorded in
src/roadkeep/shipping.py). - RK1331 · aa955fdthe room a crowded recording names is the outcome plus the note, but it is reported as the outcome alone
The room is taken off the composition before it is attributed to the field the message names, so the retry it invites lands (design §RK1331 recorded in
src/roadkeep/shipping.py). - RK1330 · fa59f47the supersession trace is the clause that gives way, so a ship recording where a design went cannot say it was stale
A refusal naming nothing to shorten to reads as do not say it, so both crowded messages name where the note goes (design §RK1330 recorded in
src/roadkeep/shipping.py). - RK1329 · bf7b740a section written with its id as the title reads §RK1320 RK1320, and nine of nine filings did it
a title equal to the anchor the write just derived is refused, and the refusal says what the argument is for (design §RK1329 recorded in
src/roadkeep/sections.py). - RK1328 · 9064612a project past init opens an opt-in table only by hand-editing the config this tool owns the writes to
declare opens an opt-in table as well as a role, and both refusals name that command instead of a hand edit (design §RK1328 recorded in
src/roadkeep/adopting.py). - RK1327 · fff5bf2a repair --fix makes with no word in REPAIRS goes unnamed in all six copies, and the gate stays green
each pass declares the words it produces and REPAIRS is derived from them, so a repair with no word is a red (design §RK1327 recorded in
src/roadkeep/fixing.py). - RK1325 · 3292b42a project wiring no plugin is told its doors arrive under one, so a payload names a tool nothing there answers
the plugin answers only for the project this process is in, so a root it was pointed at publishes no call (design §RK1325 recorded in
src/roadkeep/provenance.py). - RK1324 · 062f738four key names carry the same runnable command across the payloads, so a consumer needs four readers for one idea
doors is the one name and always a list wherever a payload offers a command, and the costs that were not calls say so (design §RK1324 recorded in
src/roadkeep/remedying.py). - RK1323 · 2a46bc5this repository declares no [criteria], so the fixture that proves the format does not exercise a table init now writes
the fixture declares [criteria] and every live block states what would finish it, so the table is proven by the artefact (design §RK1323 recorded in
roadkeep.toml). - RK1322 · 4672b37the tree is split between two line terminators and nothing reads which a file is, so an append lands in the wrong one
the working copies are one terminator again, and an invariant refuses a tree that is both (design §RK1322 recorded in
tests/test_invariants.py). - RK1321 · 26a0222budget serves seven subjects on one tool and is now the largest, so every subject added re-argues a shared ceiling
the surface subjects moved to cost, so budget is third-largest and each verb answers one tense (design §RK1321 recorded in
src/roadkeep/verbs/querying.py). - RK1320 · 8b851efone drafted flag answers two ways about the same prose, so a number is labelled the caller's on a line the file holds
whose prose a number is about is said by the caller that composed it, so one payload no longer answers two ways (design §RK1320 recorded in
src/roadkeep/budgeting.py). - RK1318 · 39c1bfcthe gate reads a criterion's shape and length and never whether the block or id it is addressed to still exists
lint reports criterion.orphan at a Done when heading no block or open line answers, and --fix takes the empty one (design §RK1318 recorded in
src/roadkeep/linting.py). - RK1319 · 422fcc4the event says a block finished and not that its heading may go, though the offer now depends on config it omits
the event carries the door its stage makes available, composed once and rendered by neither register (design §RK1319 recorded in
src/roadkeep/rendering.py). - RK1317 · 2d58ec4
renumbermoves a line, its section and its deps, and leaves its## Done whenlist on the number it spenta task's criteria heading is re-addressed in the transaction that moves the line, and the move is named (design §RK1317 recorded in
src/roadkeep/criteria.py). - RK1316 · b3a54e1
block dropwithdraws a label and leaves its## Done whenlist addressed to a block no file declaresa block's criteria leave inside the transaction that withdraws its label, and the leads that went are named (design §RK1316 recorded in
src/roadkeep/blocking.py). - RK1315 · b320eecweigh passes every ledger commit as one argument, so git refuses the call once the ledger is long enough
the commit list leaves on stdin, so the read is bounded by history and not by the operating system's argv (design §RK1315 recorded in
src/roadkeep/history.py). - RK1314 · e0596d7config prints the criteria table under the non-goals sentence, so the read names the wrong table
each table's sentence is read where that table is documented, so a shared key set no longer lends its words (design §RK1314 recorded in
src/roadkeep/describing.py). - RK1313 · 12388abinit writes no [criteria] and no [requirements], so the verbs that fill them refuse on a fresh project
init writes [criteria] empty and the requirement vocabulary as a commented stanza, so both verbs work on day one (design §RK1313 recorded in
src/roadkeep/adopting.py). - RK1312 · b842a96section amend --replace refuses a sentence the section carries, because the stored copy is wrapped across lines
--replace matches the prose with its wrapping collapsed, so a sentence copied from section show is the sentence it finds (design §RK1312 recorded in
src/roadkeep/sections.py). - RK1311 · a20e1dfamend --requires alone is refused as nothing to amend, then reports unchanged on the call that writes it
the guard counts --requires, the confirmation names it among the fields that moved, and show prints the group (design §RK1311 recorded in
src/roadkeep/authoring.py). - RK1310 · 5207464nothing resolves a sentence to the anchor carrying it, so a section amend addressed by text is guessed and retried
section find names the anchors whose prose carries a string, with a count each, and the failing --replace names them too (design §RK1310 recorded in
src/roadkeep/sections.py). - RK1309 · eede509a new line's section budget is reachable only through brief, which needs an id, so the first body is written blind
an add that leaves a follow-up now says what that body may weigh, in both registers, before the paragraph exists (design §RK1309 recorded in
src/roadkeep/authoring.py). - RK1308 · 43b706elint exits 1 on install.stale, so a CI gate goes red on a backlog it has just reported clean
a stale wired surface is a note, so the exit code says whether the governed lines drifted and nothing else (design §RK1308 recorded in
src/roadkeep/linting.py). - RK1307 · 2cbf6a6The json payload drops the sentence and the remedy the human output carries, so an MCP caller gets less than the CLI
which empty a listing is and the door that fills it reach the payload, and a test holds the class (design §RK1307 recorded in
tests/test_doors_in_both_registers.py). - RK1306 · 199e4fdbrief states the ledger allowance but not what --recorded-in and --superseded-design spend from it
brief's payload names what each optional clause spends out of the ledger sentence, so a ship carrying both composes from it (design §RK1306 recorded in
src/roadkeep/briefing.py). - RK1305 · a43e1dabudget answers for a line and a ship and not for a retirement, so its reason is drafted blind
budget answers for a retirement too, on the ledger line retire writes and less the prefix it derives into the reason (design §RK1305 recorded in
src/roadkeep/budgeting.py). - RK1304 · 1243839brief says the priority queue names nothing ready and picks elsewhere, without naming the task that would make it ready
pick and brief name what the declared priority waits on and the ids that would release it, beside the fall-through (design §RK1304 recorded in
src/roadkeep/picking.py). - RK1302 · 6d8e996ship --part leaves a line in the in-progress tier, so pick keeps offering a remainder that is waiting on unshipped work
ship --part names the door its open half leaves, so amend --dep is read off the answer, not by being handed the line twice (design §RK1302 recorded in
src/roadkeep/shipping.py). - RK1301 · 94e8f65brief lists every id the task transitively unblocks, so the earliest line in a graph answers with 79 ids nobody reads
brief keeps the count whole and cuts the roster to the lowest four with the remainder named, the walk now ordering by id (design §RK1301 recorded in
src/roadkeep/briefing.py). - RK1300 · 952dd3athe ship that finishes a block says finished and does not carry the criteria that decide whether it is
The ship that empties a block answers with that block's criteria, each with its why, so the reading arrives at the one moment it is owed (design §RK1300 recorded in
src/roadkeep/rendering.py). - RK1299 · 963f121a clean lint answers with 42 note rows repeating six facts, five times the cost of its text form
A collective token's expansion is one note naming the lines that wait on it, so a clean run states each fact once instead of once per line (design §RK1299 recorded in
src/roadkeep/linting.py). - RK1298 · 8ec64f2brief answers with two budget objects that differ in six fields and repeat every other row
brief publishes one budget table and names the other two as their difference from it, so no unchanged row costs the payload twice (design §RK1298 recorded in
src/roadkeep/budgeting.py). - RK1297 · cb3cde5a line no caller in this checkout can execute reads as ready, so
pickoffers it again every callA line states what must be present with
(requires: …)from a declared vocabulary, andpickoffers it only to a caller that passed--have, naming the rest. - RK1296 · cd73d40the argument a number carries is kept in the file and never returned by the read that asks about the number
The reading carries the comment run standing above the key, verbatim and a line at a time, so the argument the write kept is what the read hands back.
- RK1295 · 9236a5dan argument that is only whitespace is reported as written above the key and is not
The answer reads the comment lines that were placed rather than the flag that was passed, so an argument that wrapped to nothing is told which flag writes one.
- RK1294 · 0609116a re-run stacks the argument it already placed, so the same sentence appears twice above one number
An argument byte-for-byte identical to the bottom of the stack already above the key is not written again, and the answer says the reason already stands.
- RK1293 · 84dd881the argument for a limit is ruled into the commit body, which a tool this project does not own composes
govern --because "…" wraps the author's sentence into comments above the key, stacked on whatever argued the number before, so a governed number carries its reason where its reader is.
- RK1292 · 62d4c4fthe header says nothing is over the ceiling while the listing under it names a line nobody could measure
A count of what exceeds a ceiling says what it was taken over, so no verdict covers a line nobody measured.
- RK1291 · db782b7the read prices open lines and prices whatever it is named, so a shipped id answers a figure comparable to nothing
The named read keeps the rule the unnamed one states, so a line with no brief is said and not priced.
- RK1290 · eaccf89the note saying what the gate did not price fires on every clean run of any real backlog
The note about a bounded reading fires where the shortfall is news, not on every clean run.
- RK1289 · 86a2c72the note's total is the backlog minus whatever would not compose, so it understates by the lines it warns about
The reading carries how many open lines there are, so no report reconstructs it from a subtraction.
- RK1288 · e9f1911a line whose brief will not compose is dropped from the ranking in silence, and the widest may be it
A brief the ranking cannot compose is named, so the widest is never one that went unmeasured.
- RK1287 · 9f8f2f8the gate composes one brief per open line, so a project that declared a ceiling pays it on every commit
The gate prices the briefs
pickoffers next and names how many open lines that left out. - RK1286 · da97ac5the read that exists to fit in a tool result is the one thing here with no budget, and it grew four rows
A brief is measured in the unit a tool result is paid in, and
[reads] briefis the ceiling the gate holds (design §RK1286 recorded insrc/roadkeep/budgeting.py). - RK1285 · 26033c5a refusal prints a door from the field beside one from the case, and the two say opposite things
A refusal drops the door the schema appends where that door is false for the call being made.
- RK1284 · 9f9bb55the reading behind a decisions limit sees only that file, so a number it accepts refuses every later ship
The reading behind a decisions limit counts the claims a ship would carry into that file.
- RK1283 · 10c00d3the guard parses the config twice on every allowed write, once to refuse nothing and once to advise
The barrier reads the project once per call, so an allowed write costs one config parse.
- RK1282 · 8343a84the shape prints one declared value for a table the project declared several times, and says nothing about the rest
A table declared at several addresses reports how many, so one of them is never printed as the value.
- RK1281 · c63c81ba decision inherits the roadmap claim, so a tighter limit on that file refuses a ship over a field no flag writes
A decision refused over its inherited claim names the two real doors, and
briefprices it first. - RK1280 · 0e1a538the guard allows a hand edit to the config and says nothing, so a limit with a door is still typed past it
A hand edit to the config is allowed and told which of its numbers have a verb, deciding nothing (design §RK1280 recorded in
src/roadkeep/guarding.py). - RK1279 · c9ee398the reading behind a limit walks a hand-written list of roles, so a role added later is measured by nobody
The roles a limit is measured over are derived from the declared set, so a role added is a role read.
- RK1278 · 2e00f34the config shape prints the default beside a key the project set, so the number shown is not the one in use
The shape says what this project declared beside what this build defaults to, so a set key states its value.
- RK1277 · 58f3e02the config completion caches a fact about the file on the engine's clock, so a declared key still reads as undeclared
The shape is cached on the clock of what moves it, and the config has a watcher of its own.
- RK1276 · ea3e3e3a criteria address refused for a paused id says the work shipped, so a pause reads like a typo
A criteria address refused for an id names where that line went, so a pause reads as a pause.
- RK1275 · 1c0425fthe shipping allowance names one of the three writes a ship composes, so two sentences are written blind
A brief prices every clause and every file a ship composes, not the ledger sentence alone (design §RK1275 recorded in
src/roadkeep/briefing.py). - RK1274 · b8839fca decision is never marked superseded, so the file records that one was made and not that it stopped holding
A verb marks one decision replaced by another, writing the forward pointer and the marker in one call (design §RK1274 recorded in
src/roadkeep/shipping.py). - RK1273 · 979aab2a served field's description states one rule twice, so the ceiling is spent on a paragraph nobody reads twice
A served description states each rule once, and the note gives way to the flag's own help (design §RK1273 recorded in
src/roadkeep/serving.py). - RK1272 · 055ad20
[limits],[budgets]and[markers]have no verb, so the file governing every write is the ungoverned oneA verb takes the reading and declares the number in one call, refusing one this corpus already breaks (design §RK1272 recorded in
src/roadkeep/governing.py). - RK1271 · bbb8a68the editor completes nothing in
roadkeep.toml, so every key is typed from memoryCompletion and hover in the config file offer the keys the package printed, and the panel compiles none of them (design §RK1271 recorded in
editor/extension.js). - RK1270 · 02bbe23nothing prints what
roadkeep.tomlmay declare, so its keys live only in the parser that rejects themA
configverb prints every table, key, type and default this build accepts, and what this project declared (design §RK1270 recorded insrc/roadkeep/describing.py). - RK1269 · e84262ca decision that outlives the work explaining it has no governed file, so an ADR is kept by hand or not at all
A decisions role files an ADR as the line-and-section pair this format already writes.
- RK1268 · 58d473fa definition of done is addressed by block, so what finishes one task is written nowhere a verb reads
A criterion is addressed to a task as well as to a block, and
briefprints both. - RK1267 · 1b68d11ship deletes the design and nothing records where the reasoning that outlives the code went
A ship now names the file the deleted design's durable half moved to (design §RK1267 recorded in
src/roadkeep/shipping.py). - RK1266 · 44c13f2four non-goal codes report a defect and name no command that closes it
The scrape sees a code whose head carries a hyphen and reads the module that declares one, so all four non-goal codes name the command that closes them.
- RK1265 · a5f919ca non-goal states what is not built, and nothing states what must be true for a block to be finished
A block states what must be true for it to be finished, as a list per block the ship never deletes, and brief prints it before the first edit.
- RK1264 · 56b9161the scaffold is the only writer of [files], so a project past init cannot declare a role it turns out to want
A configured project declares a role it turns out to want, getting the file with its block headings and one inserted key, so no retrofit is a hand edit.
- RK1263 · 03c03c8section amend replaces the whole body, so fixing one citation means re-emitting every table and code fence verbatim
A one-clause correction names the two strings and edits the prose on disk, so a table or a fence the call never names is never retyped.
- RK1262 · cdae78fa refused --remainder is reported as a why, so the retry has to guess which of the two strings was short a full stop
A refused remainder is reported under the flag that carried it, with one sentence saying which of the call's two sentences the rule is about.
- RK1261 · f0955e2a ship refusal blames --why for characters that came from --superseded-design
A ship refused for length names what each of the two arguments took and which has room, and the shipping allowance quotes what a supersession will spend.
- RK1260 · f330674the MCP schemas offer '-' and stdin, an input channel no MCP client can provide
The three verbs that write a body take a path over MCP too, so a rationale refused at 257 words costs an edit and a path instead of the other 250 characters again.
- RK1259 · b477729adoption writes no deferred store, so the first defer refuses at the moment its reason is already written
init --deferred scaffolds the store and its key together, so the pause door a project opts into is written by the command that writes every other governed file.
- RK1258 · 1b1a58ca block's first task files its rationale AS the family heading; every later one gets a child, and no verb picks
add --ref <family>.1 --section opens the family in the same write, titled from the block, so a block's first design is a child exactly like every later one.
- RK1256 · 19b2841A structural refusal and a schema refusal never appear together, so a call wrong twice is refused twice
An undeclared block is named beside the fields that are wrong, where the block is answerable regardless of the prose.
- RK1255 · d5d7b0bA refusal names one violation while the next is already true, so one sentence costs several round trips
A refusal for a missing terminator states what ending the sentence costs where there is no room for it.
- RK1254 · b1089e5A positional spelled as a flag is answered with a list of flags that cannot contain it
An unrecognised flag that names a positional says so, and every verb's refusal lists what it takes by order.
- RK1253 · a92515dThe total whose whole purpose is comparison is the one with no section breakdown
Every section carries what a model is charged for it, as a column beside the two ceilings and never as the order.
- RK1252 · f29c5e8The breakdown that says where to cut ranks by a unit the total above it is no longer in
The section breakdown is ranked by the limit about to refuse, and the reading sits under it rather than over it.
- RK1251 · 172e88bA declared file that is not on disk is reported as one this tool could not decode
A resident row has three states, so a file that is not there says so and states no room.
- RK1250 · b9e89aaThe read consulted before an edit lacks the figure the read consulted after it now has
The read consulted before an edit states what a model is charged, as a reading beside the limits and never as one.
- RK1249 · 5b58409The summary row claims bytes is what the gate refuses on while the row above it names lines
The summary row states the conversion and stops, leaving which unit refuses to the gate and the per-file row.
- RK1248 · 640426cThe one row whose ceiling this package hardcodes states its room and the rows the project declared do not
Every resident row states what its own declared limit has left, in the unit that limit is written in.
- RK1247 · 6eddb48The one message that stops an Edit defaults its prefix to a route the session may not have
The refusal defaults to naming no route, so the four messages that block a turn say one thing.
- RK1246 · 2f398d6Four messages carry the served prefix from four sites and nothing holds the four together
A census holds every record carrying the served prefix against the site that fills it from the one reader.
- RK1245 · 83cee07The read that exists to compare two costs prints them in two different units
Both cadences are reported in code units, with the bytes the gate refuses on named rather than converted away.
- RK1244 · dd82e69A three-way answer is carried as two fields, so a Notice can be built stating a pair that cannot happen
The declared case is the prefix itself, so the second field RK1242 added is deleted rather than validated.
- RK1243 · 31ab81cThe line every session is handed has a budget nothing reads and a constant somebody edits
budget --session prices the SessionStart notice beside the schema, in the unit its ceiling is now held in.
- RK1242 · 60da5a0The MCP tools the session-start note names never arrive, so the agent falls back to the CLI
The session-start note names what else answers where a project declares the server and its tools never arrive.
- RK1241 · 72e4c1aThe description split does not name its own unaccounted bytes where the tool total does
The description split names its own unaccounted bytes, so both levels of the breakdown balance exactly.
- RK1240 · b62fa56One pinned key silences a finding and enables two refusals, added by three tasks reading it three ways
The refusal and the note read [install] enforced, so quieting a stale surface no longer buys a guard on every write.
- RK1239 · cf51ac7The description row is the largest a tool has and nothing says which of its parts to shorten
The description row is split by where each clause is written, so a tool's always-passed flag names its own help.
- RK1238 · 204ab55The pen is guarded against a stale copy and the gate that judges it is the same stale copy
lint carries a gate.behind note beside its verdict on a pinned project, so a clean report says whose clean it is.
- RK1237 · 55b5a85The pin guard runs three git calls in front of every write and nobody measured them
The guard asks the version first and pays for git only where two copies claim one, which is 2 ms against 45.
- RK1236 · f71e2a3The tool over its ceiling is named and which of its arguments spent the bytes is not
budget --tools takes a tool and ranks its own fields, naming the module each help string is written in.
- RK1235 · a8ccdc3A copy behind the wired one still writes, and the note that says so is read after the line has landed
A governed write is refused where the project pinned a version and this copy is behind it, naming the copy to run it through.
- RK1234 · c66f0f0task.worked fires per line, so the block that quietly finished is still only visible one commit at a time
lint --since reads the block: every open line's source moved and none shipped is said once, and replaces the per-line notes.
- RK1233 · dd4c5aeThe open half of a partial is still an inference the reader makes, where the landed half is recorded
A partial shipment states what is left, as a field on the open line rather than a subtraction the next reader performs.
- RK1232 · 166840eA full run asks for every core, so the machine has nothing left while the suite is running
autoanswers half the cores, so a full run leaves the machine to the session that started it and two sessions in one checkout stop asking for 56 workers on 28 threads. - RK1231 · 389b2ferenumber leaves the section heading it wrote, so an outline-ref project keeps a title naming the old id
renumber rewrites the trailing (<id>) the tool itself wrote, leaving an outline anchor where it is, and the report names that anchor rather than the new id.
- RK1230 · 988fd4aNothing tells a shell caller which engine copy is the one wired to this project
engines --invokeprints on one line the command that reaches the copy wired to this project, so composing a shell call needs no listing of a plugins cache. - RK1229 · 6d4d0e7A dep with a parenthesis is written, then no verb can reach the line it made unreadable
A dep whose rendered group does not read back, or carrying the pointer arrow, is refused at input — so the line the tool could write and no verb could reach is not written.
- RK1228 · 8337086Nothing reports source changed under an open task while the line stayed open
lint --since notes task.worked where this change touches a path an open task's section names, which is the mirror of the check that prose moved without its line.
- RK1227 · 027a18esection amend accepts prose citing an anchor that does not exist, so a docs-only commit turns an adopter's gate red
section add and section amend resolve every anchor the body cites and refuse ref.dangling with the addresses named, which is the code the gate reports for the same defect.
- RK1226 · d3a6db2Nothing names the open half of a partial, only the half that shipped
brief names every qualifier the ledger records for an open line, so resuming a partial no longer means reading the design to recover what is left.
- RK1225 · 277fbdebudget publishes every width a field has and not the one sentence it accepts
budget names the sentence and terminator rules beside the widths, read off the role's own schema — which the line half was not using, so its numbers were the base's too.
- RK1224 · 571c714A refusal on one over-long field discards the section body sent with it, so the retry re-sends every word
budget --body no longer needs an anchor, so one call prices the line and the body add validates as one unit — the retry no longer carries the rationale again.
- RK1223 · 06339cablock add says nothing to open when the label is in the ledger but the roadmap, where the work goes, has none
A label declared elsewhere and missing from a file that would take it is a heading to open: the refusal names that file and the --organise flag that reaches it.
- RK1222 · 5a34188The gate reads a declared query for a grammar it cannot parse and never for a pathspec that answers about nothing
remaining.unmatched fires on a pathspec with no metacharacter naming a directory that exists, which is the typo and never the migration whose sites were deleted.
- RK1221 · 4dec7e7budget on an id the roadmap holds reads the four fields describing a line and discards them without a word
Every field the caller states now wins over the line on file, as --ref already did, and the answer names which came from the call rather than from the roadmap.
- RK1220 · 6df7abdA refusal preamble is spelled with the invocation, so the test that walks the stair it prints reads it as a step
The walk finds its steps as backticked spans through
composing.runs, so the preamble is no longer read as one and the suite stops depending on whether a console script is installed. - RK1218 · c385b04add cannot carry the section it requires, so every filing is two commands with a dangling pointer between them
The one-call form has existed since RK93 and nothing named it: every add that omits --section now offers it beside the follow-up it would have avoided.
- RK1217 · eb6852epath.missing judges a shipped entry against today's tree, so a file later moved to another repo makes history a finding
A ledger path absent from HEAD that some commit once held is history and not drift; one still in HEAD is a deletion the gate keeps reporting.
- RK1214 · 00680b8a resolved engine that fails to import takes the whole command down instead of falling through to the next candidate
The launcher asks a candidate to run before trusting it: guard falls through on any failure, and the two modes that may write or execv probe first.
- RK1209 · d6a8d1eNo test runs the commands this tool composes, so a refusal naming a call that refuses stays green
A census holds every invocation() site to a state, and one instrument fills the placeholders and runs what a message composed — six sites executed, the rest named as work.
- RK1206 · 6aaa0eaUnder an outline, the ref.unresolved remedy names the task id where the missing section is the anchor the line points at
The pointer finding carries the anchor as its subject, so the door names the address that failed instead of the task id, and a sweep over an outline fixture holds the class.
- RK1203 · ec526a6lint offers amend as the door for a path.missing on a changelog line, and amend refuses every shipped id
The path.missing door names
record amend, which reaches the ledger the finding is always about, and a test runs it end to end rather than matching its argv. - RK1202 · 479d726guard exits 0 and prints nothing on a payload it could not parse, which is the answer it gives for allowed
A payload the guard could not read says so on stderr, naming the bytes that arrived and that this is the gate failing rather than a write allowed; stdout and exit 0 are untouched.
- RK1200 · 268a4afThe committed launcher reads ROADKEEP_HOME verbatim and lists no candidate inside the repository
The launcher expands
${VAR}and$VARin ROADKEEP_HOME, answering CLAUDE_PROJECT_DIR itself, and a vendored copy is a candidate ahead of the sibling — the second half shipped with RK1193. - RK1193 · 855d3d6Every adopting repository has to write its own installer to pin the engine it runs
install --vendorcopies the highest-versioned engine this machine reaches into.roadkeep/, verifies it, and the launcher resolves it before any sibling — one installer instead of one per repo. - RK1219 · dd8bd36Share declares payload twice, so the definition a reader edits may be the one Python has already discarded
The dead copy of
Share.payloadis gone, andtests/test_shadowing.pysweeps every module and class of the package for a name its own body binds twice. - RK1216 · cda5798remaining reports 0 sites for a pathspec that matched no files, which is what it reports for work that is finished
A pathspec that reached no file is named on the headline and beside its clause, and published as
unmatched, so a query that never ran no longer reads like a migration that finished. - RK1215 · 51d4a2bdefer refuses a partially shipped line in the ledger's words about a second entry it would not write
defer and resume take a line whose ledger entry is a half, and the gate reads that qualifier off the changelog rather than off whichever file is second.
- RK1213 · 1078648A paused id is refused in the words an id nobody wrote gets, and Whereabouts says no file mentions it
Where carries the paused state, so a refusal about a line the store holds names the store and resume instead of reading as a typo.
- RK1212 · b9500aeThe id-reuse refusal tells a caller to omit --id, and renumber declares no --id
The id-reuse refusal names the flag the verb it fired at declares, so renumber and record renumber say --to where add says --id.
- RK1211 · e0297d1anchors --next on an empty outline names a roman first address by hand, on a project that may number decimally
The empty-outline sentence names both
I.1and1.1and says the first address decides the system, so the one message that guessed no longer walks a decimal project into RK1210. - RK1210 · c6d7af5next_family answers a different free address per process where two numbering systems tie on the same file
Two numbering systems among a file's top levels is two numberings, so
next_familyanswers None there — the address no longer depends on which string a set iterated first. - RK1208 · 8529635section add refuses a child whose family is missing and writes a grandchild whose middle generation is
section add refuses an anchor whose immediate parent is missing, naming every generation between the prefix it found and the address typed.
- RK1207 · 261b197section add refuses a child whose family does not exist and names no verb, listing what the file declares instead
The refusal for a child whose family is missing names every section add that opens one, in the order they run.
- RK1205 · c437213The section add an add prints to close the pointer it wrote refuses where that anchor's family does not exist
add names the family a pointer's anchor extends before the design that extends it, so every call it hands over is one that runs.
- RK1204 · 8065688A block title is write-once: nothing renames one, and block drop is refused the moment a line is filed under it
block amend <label> --title gives a declared heading new words in every file that declares it, keeping the label, the placement and the work.
- RK1199 · be6414cThe shipping allowance brief prints is ten characters narrower than the limit ship then enforces
briefprices the ledger line throughas_recorded, the functionshiprenders from, so the pointer's ten characters are gone from the figure and a--partis named as structure it cannot know. - RK1198 · c9fab28Filing into a block whose prose family is spent is four sequential refusals, each teaching one step
The ref.missing refusal on a block whose prose has not started prints the whole path, ordered and with its arguments filled in.
- RK1196 · 29144darestate replaces a false premise and leaves the why and the design still asserting it, naming no follow-up
restate names the why and the design as the two other places the claim it replaced is written, as the doors that reach them.
- RK1192 · 4ba4d74A launcher and skill older than the version answering are reported by nothing the gate runs
The gate reports
install.stalefor a vendored launcher, hook or skill behind the engine answering here, naminginstall;[install] pinnedis how a project that chose its version says so. - RK1190 · a33a814budget states the allowance and cannot be handed a draft, so prose three words over is found by being refused
Every prose argument
budgettakes is a draft it measures —--why,--symptomand--bodyanswer with the overrun and exit 1, and the served schema publishes no ceiling to refuse one. - RK1188 · f88cb0fNo verb says what the blocks are called, so choosing where a task goes means reading the file the hook denies
block listprints every declared block with its title, open count and state in file order, naming the labels only the ledger declares — the readadd --blockassumes, served over MCP. - RK1187 · 2e579fb
symptomis the one prose field no verb declares as a pipe reader, so-lands in the file as the claimrestate --symptom reads stdin like every other prose argument, so a bare - is the pipe and never the claim it lands as.
- RK1186 · dc11920
initscaffolds three files and no flag names the strategy one, so a spec above the task line has no homeinit --strategy writes the fourth file and declares its key in one transaction, and the path is beside DEFAULT_PATHS rather than in it: that table is the layout a project has.
- RK1201 · 9903ac2An open line whose work is already committed is invisible until somebody runs origin on that one id
unclosed sweeps the open lines for commits naming them, dropping the one that filed each — the oldest, since add mints the id and nothing can name one before the line exists.
- RK1197 · a919e59A loose path that is already staged reads the same as one merely edited, so a stale index entry commits silently
the porcelain is read once into a record that keeps both columns, and a loose path the index already carries says so — on the row and as its own key in both payloads.
- RK1195 · 036c74dNothing in the suite sees a top-level definition left without its blank-line separator
the sweep is over the declared surface and this suite's own files, reading the AST so a multi-line decorator is where its definition starts — and the six instances it found are closed.
- RK1194 · 9324324A local variable with an import's name makes the unspelled-import test read a dead import as used
the scan is a hybrid — the AST for annotations, which have no scope under PEP 563, and symtable for everything else — and five dead imports that were live behind the old reading are gone.
- RK1191 · e1ae46f_add still computes a
pipedflag that nothing reads, left behind when the pipe clash moved to dispatchthe dead local is gone and
STDINwith it —_one_bodywas the only reader left, and no other handler kept a copy of the condition RK1176 moved. - RK1189 · c5e3ae3A wired plugin stood the committed launcher's MCP server down, so the harness marked that server failed
The mcp mode serves wherever it is started and names a missing engine on stderr, the deferral being the guard's rule alone.
- RK1185 · b9f34ab
briefhands over a task's design and deps but never its criterion, so it is read at the shipthe criterion rides with the brief as its clauses and what each matches now, so the claim the work is measured against arrives before the first edit rather than at the ship.
- RK1184 · c48f3a5Nothing states what would prove a task done, so
shipis a judgement with no artefact behind ita roadkeep-evidence block is the same grammar with the sign flipped, counted by the same reader — and this task's own criterion answered 4 of 4 before the line was closed.
- RK1183 · 3327218delivered --near cannot reach a partner whose symptom is stated differently, and its closure now carries an exemption
the reach is a floor the closure publishes with what is out of it, and ranking against the why is unsound because that field names the partner.
- RK1181 · f563cacref.dangling reads a section mark citing another document as a pointer into this file, and the first has no spelling
a mark inside a Markdown link naming a path is a reference outward, which the corpus already writes and the gate now leaves alone.
- RK1180 · bcd25c9A block that is a standing category empties whenever it is caught up, and ship reads that as completion
a label listed in blocks.standing is caught up rather than finished, so no sweep fires and no heading is offered for withdrawal.
- RK1179 · 8b3aba4A checkout whose source does not import answers with a raw Python traceback instead of a sentence
the engine says which checkout does not parse and where, and the hook still degrades to unenforced.
- RK1178 · 8d2dc74anchors recommends an address that was declared and retired inside one commit
the address is read off the pointer that left with the shipped line, which no prose diff witnesses.
- RK1177 · 08e45e8add --ref accepts a retired anchor that section add then refuses
add asks the same history section add reads, so a pointer at a retired address is refused where it is written.
- RK1176 · 53bea10ship writes a literal dash where --superseded-design was handed the pipe every other prose argument reads
which arguments read the pipe is the parser's claim, resolved once in dispatch, where the two-into-one refusal is asked for every verb.
- RK1172 · 944e1d6The gate's checks are functions gathered by convention, each with its own signature, so adding one is invisible
the rules are a declared domain keyed by what each reads, the reporting phase is a second list, and a test holds both — a rule _examine calls by name is a red.
- RK1171 · aadbaa2build_parser is one 2,000-line function, so a verb's flags are edited in the file the whole surface is in
build_parser is a 39-line index over six declare functions, one per verb module, and the command surface fell from 32% of the package to 21% while the package grew.
- RK1170 · c7e2942A verb's plain answer and its json payload are built in two files, and most of the printing never moved
every verb answers with one result and derives both registers from it, beside the verb that computed it — the door left composing JSON is the guard, whose three shapes are the harness's.
- RK1169 · c863cabSix tables in serving.py restate per verb what its own parser already declares
the withheld reasons moved to the arguments they explain, and each table that stayed now carries the measured reason it did —
TOOLS' being the guard's own 44.6 ms. - RK1175 · fbeefe7a partial ship's entry is listed as accounted for by no commit, for as long as it stays partial
the search reads the qualifier a partial entry carries inside its bold id, so the commit that ships half accounts for it.
- RK1174 · 9efc70dThe why budget brief prints is the roadmap line's, and the ship that follows enforces a different one nothing shows
brief prints the ledger line's allowance beside the roadmap line's, where the two differ, so the ceiling a ship enforces arrives before the write.
- RK1168 · 5ff1653Declaring a namespace re-addresses the headings and leaves the file's own citations pointing at the other prose file
one command declares the namespace and re-addresses that file's own citations, which is knowable only in that transaction.
- RK1167 · c001216Two registry rows for one project make the first win, so engines names a version that was replaced and is not on disk
the row that answers is the newest whose install is still on disk, so a pruned version stops being what engines reports.
- RK1166 · ff99232A registry row whose install directory is gone stands the launcher down, and nothing guards the governed files
a row only stands the launcher down where the install it names is still on disk, and a row naming none still binds.
- RK1165 · 595cab0gaps prints a numbering jump as 499 rows, and the two ids worth reading are behind them
a contiguous run of never-carried ids is one row with its count, so the ids a reader can act on are visible.
- RK1164 · ecc256eship does not say what is left in the block, so every iteration of a block run costs a second call
every event carries the block's standing and the two verbs a block is driven with print it, so the follow-up list is one call fewer.
- RK1163 · f4819a2A rationale written before its dep shipped reads as current, and brief is where that is decided
a dep whose ship is a descendant of the design's last revision is named beside it, as an ordering and never a claim.
- RK1162 · 4cef9b6a delivery elsewhere and a local filing are one number in the payload
the counts separate a stamp this project resolved from one it can only take somebody's word for, and name the repository.
- RK1161 · 5f41de6the delivery stamp asks for the repository the config already declares
the capture records where it was aimed, so a bare id becomes the delivery it was without the repository being typed again.
- RK1160 · 7d65ee2A capture filed in another repo's backlog can never clear its row, and only a wrong id or a deletion silences it
a stamp qualified by the repository holding the id is read as filed, because this project cannot open that backlog.
- RK1159 · ef6218fnothing here runs the suite the way CI does, so four defects this session were only findable there
one command applies every difference the gate has that this machine can, and names the two it cannot.
- RK1158 · 6a11e94an API newer than the supported floor is green on this machine and red only in CI
a closure reads the floor pyproject declares and refuses the calls above it, over the package and the suite alike.
- RK1157 · 6ba31fcthe declaration and the answer differ by one letter, and the declaration is the reachable one
the half is named for the condition it is one side of, and a closure declares the two readers that cannot ask a project.
- RK1155 · a8f2db6a test simulates a missing engine by pointing one variable at nothing, and the cache answers instead
every variable the launcher reads is pointed inside the fixture, and a closure holds that set against the launcher's own source.
- RK1154 · 02d16caan installed engine's name is a substring of the tool name, so three guard tests fail in CI
one predicate says what the three meant — a line spelling the engine followed by a verb, which a tool name never is.
- RK1153 · 9f511afthree tests spawn git around the suite's own runner, so CI has no committer identity
every fixture git call goes through the runner that carries the identity, and the three that cannot say why in a table a closure reads.
- RK1152 · 91be844ship refuses because a dependent task's why is one character too long once its dep annotation grows a tick
the refusal leads with whose line overflowed and the amend that closes it, and names every line the write would break.
- RK1151 · 3e2bc15a citation inside an indented code block is read as a citation, so the gate is red on quoted output
four spaces are a code block after a blank line and a list item's continuation after a bullet, so the state is a block and not an indent.
- RK1150 · 52be7faAn older installed roadkeep reports a newer config's key as a typo, so the fix reads as deleting it
an unknown key names both readings once per refusal, and every config refusal now ends with the build that read it.
- RK1149 · d60803aA refusal that already computed the free anchor still makes the caller retype it
the refusal that computed the free address now hands back the caller's own call with it filled in, quoted, at the surface that made one.
- RK1148 · d771384three skips claim a shape left the corpus and it was never there at the pin before
the clause is derived from the revision each pin replaced, so a skip says which of three things happened instead of asserting one.
- RK1147 · 75aba00the adopt payload publishes the count of an unread reading and not the flag that changes it
the rows that say a reading is unread now carry the door that reads it, published in the one shape a door already has.
- RK1146 · baae552a backlog written before the tool has no live evidence left, so two tests about disagreement only skip
neither door: both pins hold zero offenders under Shio's own declaration, so the disagreement is declared instead — their bytes under this repository's schema.
- RK1145 · 98671c0five tests skip because the shape they read left the corpora, so re-pinning retires coverage without saying so
The two dep kinds a re-pin retired are frozen as their own bytes beside a config that parses them, and the skip that replaced each names where the shape went.
- RK1144 · e404077the corpora pins are 477 deliveries behind, so the shapes those projects adopted since are untested here
Both pins moved and every number under them was re-measured, and two shapes that shipped out of the live trees are an absent input rather than a weakened claim.
- RK1143 · a156c34stats keeps printing the capture row after every capture is filed, so a permanent line says nothing is owed
The capture row prints where one is unfiled and carries the total there, and the payload keeps the state a report stops saying.
- RK1142 · 5386e23a capture already on disk has no command that stamps it, so the only door is the Python API
capture filed stamps a capture already on disk, refusing an id no governed file holds and a path this project did not write.
- RK1141 · c3e1ebca capture whose defect shipped under a reworded symptom stays unfiled for ever, and nothing can clear the row
A capture carries the id it was filed as, stamped by the add that files it, so the count reads the artefact and a reworded symptom no longer leaves a row nothing can clear.
- RK1140 · e9dd68aanchors --next names a free top-level that add --ref then refuses, because no heading declares it yet
A free top-level says it is an address and not yet a section and names the section add that declares it, on stderr and in the payload, where a free child says nothing.
- RK1139 · b20a2a2A kept capture is write-only: nothing lists it, counts it or says it is not a backlog line
report says the kept file is not a backlog line and prints the add that files it, and stats counts every capture and names the unfiled ones.
- RK1138 · 1a923c1A partial that is later abandoned has no exit: retire refuses while its entry exists
The refusal names ship --why as the exit whose sentence records the abandonment, the three shapes for a second record each being blocked by a rule the format keeps.
- RK1137 · 98f9958git collapses an untracked tree to its top directory, so a claim naming a file inside it is called a typo
Either side of the comparison may be the directory, and the trailing slash git spells a collapsed tree with is what keeps the third case exact.
- RK1136 · b12d28b26 lines of the every-turn file are needed only on a turn that builds or commits, and every other turn pays for them
Building and committing moved to a trigger-loaded project skill, so the every-turn file dropped to 104 of 125 lines and the pointer is what stays.
- RK1135 · e3d27ceagents.md has one line of budget left, so the next surface the index must name has nowhere to be named
A per-sentence pass reclaimed two lines and 124 bytes with every rule and measurement kept, and measured the prose and the index both at their density floor.
- RK1134 · 79dbd1dthe index closure reads the git index, so a new surface reaches it one commit after it was written
The index closure reads what is tracked and what is written but not yet added, so a surface reaches it on the turn that wrote it and both directions read one set.
- RK1133 · 1f3ef77amend --json carries which fields changed and never what they were, where status and restate both answer
The amend payload carries what each changed field said before, deps spelled the way the line spells them and nothing for a field that did not move.
- RK1132 · 05cc30745 modules end CRLF and 11 end LF, so an edit anchored on one terminator silently matches nothing
A committed .gitattributes decides the checkout and a test refuses any file that mixes the two, so a scripted edit cannot silently match nothing.
- RK1131 · f2ddf7csix records gained a field and twelve payloads carry it, with a closure over one dataclass and none over the rest
A table per record binds every field to the key it becomes or to the reason it becomes none, asserted in both directions and executed against the verb that answers.
- RK1130 · 2200564four of the thirty-two write commands print a staging line, so the rest can leave the projection they refreshed behind
Every write command prints the git add line for what it wrote or is exempted with a reason, and a closure over the parser holds the two sets total.
- RK1129 · 5b7567e
addrefreshes the README projection and prints no staging line, so a commit takes the roadmap and leaves it behindadd prints the git add line for every path it wrote, projections included, off the save's own return.
- RK1128 · 0b90118A --lines refusal says the ledger records no partial, on a line whose partial it names one call later
A --lines beside a --part is refused for the rule rather than for the ledger, and names the call with no --part as the completion a count belongs to.
- RK1127 · 0df3a09a task's own subsection reads as another design, the exclusion comparing labels as strings and not as addresses
A moved section is labelled by the task that owns it, so this id's own subsection is excluded and prose belonging to nobody keeps its anchor.
- RK1126 · 009dc36a body-only section amend leaves this task's own rationale file unaccounted, so a departure calls it nobody's
A prose file edited inside a section this id owns is read by its span, additions against the file now and removals against the file at the revision.
- RK1125 · 87c2c18a prose file this task wrote hides another session new section, the reading being lines and a rationale holding none
A rationale file is compared by the sections it holds, labelled by the id each heading names, so another session's design is named inside the file being staged.
- RK1124 · 97f5293sharing resolves the same revision once per carrier, so a read pays a subprocess for an answer it already has
The revision is resolved once per command and passed down, and a tree with nothing to compare asks git nothing: 123.8ms to 90.8ms here.
- RK1123 · b5ba735nothing binds the fields of Scope to the two payloads that carry them, so a field added reaches one reader
A rename table per payload is asserted against the fields of Scope in both directions, so a sixth field cannot reach one reader only.
- RK1122 · fe19df5
claim <id>answers an empty shared list on every call, so the read a commit is composed from sees half its contractsharing is one function both readers of the commit contract call, so claim <id> names the ids that moved in a file it is about to stage.
- RK1121 · c2c0759the block-empty hint names a door six ships out of nine, in a project that has never dropped a heading
A project declares once with [headings] permanent that its headings outlive the work, and the offer to withdraw one is then absent rather than hedged.
- RK1120 · bf10197a roadmap carrying two sessions lines is one accounted file, so a departure cannot separate them
A departure names the other ids whose line arrived in or left a governed file it stages, read as two parses so an annotation refresh moves nobody.
- RK1119 · 19ea6a5the entry-point sentence
installwrites says it wired a checkout, which a--committedproject has none ofThe entry-point sentence has a variant per wiring, so a committed project reads that its launcher finds an engine rather than that one was wired.
- RK1118 · 4dcf796
section show --ownon a container prints an empty body, which reads exactly like a command that failedAn empty own body says which of the two silences it is and names the subsections that carry the prose, on stderr so the body stays a body.
- RK1117 · 678e35d
shipprints a stage line without naming the paths in it that carry changes no claim ownsThe subtraction of what an id already explains happens in split, so a departure reports a governed file it wrote that another session had changed.
- RK1116 · c2c0e47the launcher the installed skill names as the entry point forwards only guard and mcp, so every verb exits 2
Anything that is not guard or mcp is forwarded to the engine the launcher resolved, so the entry point the installed skill names runs every verb.
- RK1115 · 89f698edefer refuses any line whose why already fills its budget, because the wrapped reason is charged to the same limit
The why limit charges the author's sentence and not the prefix a pause derives, so a line written to its budget can be set aside.
- RK1114 · 2f61ba1
pickoffers a partially shipped line that--claimthen refuses, the partial ledger entry reading as a shipA ledger entry naming a half is the one pair no marker write refuses, so the line pick offers is the line a claim takes.
- RK1113 · 495f894
install --checkreports drift on a--committedproject and names the plaininstall, which downgrades the wiringinstall reads the committed launcher off the project's own declarations, so a --committed tree reports its real drift and the plain install keeps its wiring.
- RK1112 · 496f144section show prints the subtree and section amend takes only the own body, so the obvious round-trip is refused
section show --ownprints the extentsection amend --bodyreplaces, and a body carrying a subsection's heading is refused as the wrong extent. - RK1111 · ddc2a53a namespaced citation is read as its namespace, so lint reports a live anchor as dangling
A citation is read to the end of its address, so a namespaced or sentence-final one resolves and a dead one is still reported.
- RK1110 · 06cca7fa table of contents lists the file's own headings and nothing re-derives it, so a ship leaves it wrong
export --contents derives a prose file's contents from its own headings, so a ship that drops a section rewrites the list in one write (design §RK1110 superseded: one level, not every heading).
- RK1109 · 637ead5section amend answers unchanged: it already reads that way over a body left unread on stdin
An unchanged amend says the prose was never read and the JSON carries it as a field, so a piped body with a --title is not a confirmation (design §RK1109 superseded: stdin is never a tty over MCP).
- RK1108 · 7243dc0the guard reaches no environment without the plugin, so a project hand-writes the launcher that finds one
install --committed writes a launcher the repository carries, so the guard reaches a session with no plugin and no checkout, and defers on the harness's own registry.
- RK1107 · 470611ba prose file's preamble and table of contents carry no anchor, so every edit to them is a hand edit
An address that is not an anchor reads as a heading text, so a file's opening and its contents answer to section show and amend (design §RK1107 superseded: no positional name had to be declared).
- RK1106 · 0e8a79ba citation inside prose can name a section that no longer exists, and no gate code says so
A citation in a section's body resolves like a pointer, so ref.dangling names prose arguing from a deleted design (design §RK1106 superseded: Shio's four are quoted anchors the scan excludes).
- RK1105 · 7d70637a byte budget counts what the checkout has, so CRLF and LF give one commit different headroom
A file budget counts CRLF as the LF the repository stores, so one commit has one ceiling on every machine, and lint and budget both name what this checkout pays over it.
- RK1104 · b03b4c9the rule about guessing a fact from a file's text is held over one file and stated for the rest
every reader of this repository's own corpus is declared with why it is prose, which the measurement made feasible at six functions rather than thirty modules.
- RK1103 · 2f3add4adopt resolves a project path from the root and no other verb taking one was checked
PATH_ARGUMENTS classifies every path this CLI takes as the project's, the caller's or repo-relative text, held against the parser.
- RK1102 · 682ffa7a predicate that reads a governed file's text instead of asking the parser has now been wrong twice
conftest's docstring states ask the parser, never the line, and a scan holds that the shared fixtures read no file as text but the one declared.
- RK1101 · 2e55049a relative path under -C resolves against the shell's directory, so adopt can measure another project's file
a path naming a file of the project resolves against the project root, and the refusal names the file beside the caller when there is one.
- RK1100 · 18690bfadopt estimates what a project gains and never says the tool surface costs it fifty thousand characters
the estimate prints what the served surface costs a session at connect, beside the doors it names and with no verdict on the trade.
- RK1099 · 262f544a flag added to a served verb is CLI-only until somebody lists it, and nothing says which ones are
WITHHELD names every argument a served verb does not offer and why, held equal to the parsers so a new flag is a red test rather than a silent omission.
- RK1098 · 7347f76two tests read this repo's docs as a fixture and assume the roadmap has an open line
the two tests that read this repo's docs take a populated root, which is docs/ while it has an open line and a stand-in when it does not.
- RK1097 · b4e7917the served surface is fifty thousand characters against eight thousand the gate holds
[tools] session holds the whole served surface, measured at 52 tools in all three projects and so a fact about the package rather than the project.
- RK1096 · 969c7debudget has six subjects and the two that read a session's cost overlap without sharing a measurement
budget --tools and --session now read one serving.surface(), so the ranking and the session total cannot disagree.
- RK1095 · e17e024two reads rank what a session pays for and neither can be asked about the other
budget --session names the schema paid once at the handshake and the resident files paid on every turn, and never adds them, because the cadences differ.
- RK1094 · c6464ddthe standing advice on which half of agents.md to compress rests on a figure that is off by half
The index drops its task numbers, which origin answers better, and the config records that re-measuring reversed the advice: the index is 36 percent and the cheap cut, not the prose.
- RK1093 · 2177b89the estimate's four gains are four hand-written blocks in one function
GAINS declares each door as a name, a predicate over what the project declared and the sentence saying what it has instead, so a fifth is a row and a test can ask whether all four are named.
- RK1092 · 31c871fagents.md is eight bytes under its budget and the next sentence has nowhere to come from
budget --file ranks a resident file's sections the way --tools ranks the surface, and the first reading says the Layout index is 37 percent of agents.md rather than the 23 RK203 recorded.
- RK1091 · a39c73fthree heredoc edits corrupted a test file's string literals and only the parser noticed
agents.md forbids editing source through a shell heredoc, beside the commit rule, paid for by compressing two paragraphs the file already had room to lose.
- RK1090 · 9c6e1bbthe queue is the fourth door an estimate could name and the only member left out
The queue joins the category, read off the Priority heading rather than its entries, and says the project picks by lowest ready id instead of naming a gap.
- RK1089 · 056e142the estimate answers what one file costs and says nothing about the doors a project would gain
The doors a project has not declared are a named category under one heading, with the store joined by a prose file and the non-goals, so the next member has somewhere to land.
- RK1088 · be0aad3the closure names the file it removed from and no caller reads it
The closure's document is named for what it is and the printer and payload read removed_in, so the file a closure wrote is answered rather than assumed to be the roadmap.
- RK1087 · 5e6300fthe deferred store is a declared feature no adopting corpus has ever turned on
Neither corpus declares a store or carries one retired entry, so adopt now names the missing pause door in its estimate instead of leaving it to the first defer to refuse.
- RK1086 · 0da238cResumption models a placement so a resume that places nothing has to fake one
Resumption carries the document and the line it placed or None, and Closure names the file it removed from, so an act that writes no line is expressible rather than faked.
- RK1085 · b26ef8dthe pairwise loop reads a role's whole document per pair and lint already holds both
The pairwise check reads the three carriers off the Backlog the run already loaded, which took it from 0.70ms to 0.18ms and stops a fourth carrier costing a fourth parse.
- RK1084 · fc6c4dbthe pair the declaration says nobody has walked into is reachable and still unread
The third pair is read and filed against the changelog, with two reads for a door: measuring found neither corpus declares a store, so no verb was built for a state nobody can reach.
- RK1083 · 78bc0efresume answers two different acts under one verb and the printer cannot tell them apart
A reconciling resume prints reconciled and says the roadmap was untouched, carries the line's own marker, and refuses a --marker that could mark nothing.
- RK1082 · 3d38f54the pairwise checks over three governed files are two rules written by hand
referring.PAIRS declares the three pairs of files that can hold one id, the gate walks it instead of a loop per pair, and the unread third says why it has no rule.
- RK1081 · b24f887an id the roadmap and the deferred store both carry passes the gate and ship leaves it shipped and paused
The gate reports id.paused-and-open, resume removes the store's stale copy without placing a line, and a departure is refused while the contradiction stands.
- RK1080 · 30ec016the gate and the verb decide a live partial in two places that only agree by hand
Task.in_halves is the one predicate both the gate and the verb read, on the record that carries the qualifier, so the next narrowing is one edit rather than two that agree by hand.
- RK1079 · 9871905the door table crosses two axes and the deferred store is a third nobody enumerated
The store is the table's third axis: resume closes a paused id, and sweeping it found the first cell with no door, which is an id both files carry.
- RK1078 · cf3987da capture names the engine that failed and nothing compares it with the engine that reads it
A replay reads the version off the engine every capture stamps and says, on a negative verdict only, that work shipped since is work the report could not have seen.
- RK1077 · 1d24bddnothing holds the verb surface complete, so a state no command closes is found by the project that reaches it
A table pairs every reachable marker and ledger shape with the verb that leaves it, run against a file in that state, and measuring found no cell without one.
- RK1076 · f137ac2the gate is silent on a partial line whose entry names no half, the one state whose repair is two verbs
The gate reads a live partial off the entry's qualifier, so a partial marker beside an entry recording the whole is reported as id.two-files and repair closes it in one run.
- RK1075 · 2b34db5an open line the ledger records as whole has no verb that closes it, and the guard denies the hand edit
The entry's qualifier decides a live partial and the roadmap's marker no longer does, so a line beside an entry recording the whole is closed by ship and the refusals name it.
- RK1074 · 73c2fb1fourteen module addresses are spelled by hand across the suite and nothing holds them level
surface.address() answers where a module lives now, the five surveys the move broke ask it, and an invariant refuses any literal naming a subpackage address the census does not have.
- RK1073 · 6eeaf27a refusal decided under a package subdirectory named no module at all
One named() spells a module for both halves of the note, and a test asserts they agree against the census, which is the property that was false from RK494 and that nothing read.
- RK1072 · a9e35abthe kernel declares sixty-four names the format has no use for
The meter counted codepoint as dep and read four too many; measured properly it is sixty, and forty-one are the kernel's public surface rather than rules in the wrong file.
- RK1071 · da0a093budget prices a field against a limit and never says where the limit came from
budget prints one line under the table naming the table and the line each declared limit sits on, and the payload carries the origin per field so a served read answers why is it 200.
- RK1070 · 0a74ff8the grammar fold reads codes out of a list it also rewrites
EXPLAINS declares which code explains which and at what scope, both suppressors read it, and the grammar finding carries the file it covers apart from the one it is filed against.
- RK1069 · a396a59the kernel is a boundary a test holds and not a place the code lives
The two mechanism modules are src/roadkeep/kernel/, so reaching past the boundary is an import that reads wrong rather than a test somebody has to know exists.
- RK1068 · e660405a template whose separator can occur inside a field parses back differently and nothing refuses it
A role whose every bullet fails the round-trip is reported once against the declaration that broke them, on either failure shape, instead of once per line against the corpus.
- RK1067 · e79e64aa refusal names the limit it enforced and not the line of config that set it
A refused limit prints where it was set, roadkeep.toml:34 [limits].why or a role's own line, and says this tool's default where the project declared none rather than inventing a citation.
- RK1066 · 2bbec1ceach kind of reference is resolved by its own code rather than by one rule
referring.py declares the three relations, the machine each resolves through and every code each answers, held total by a test that found the pointer family answers five and not four.
- RK1065 · 3cd1ce8the format's mechanism and this backlog's vocabulary share one namespace
A test names the two kernel modules, the two places they reach above themselves and why each is allowed, and holds the backlog vocabulary they speak as a ceiling that may only fall.
- RK1064 · 5e4d495roadkeep.toml declares the limits and the markers but not which fields exist or where they sit
A role's shape is a [grammar.<role>] of extends, markers and drop, applied by Schema.under, with the two the tool ships as declarations rather than as methods.
- RK1063 · 1a09519the line format is stated twice, once in render and once in the parser
TEMPLATE states the bullet once as slots with a read face and a write face, and both render and the parser derive from it, so a renderer emitting what the grammar refuses is unstatable.
- RK1062 · 519c43ebudget --tools counts the tool list and not the handshake beside it
The read counts the handshake beside the tool list and names both halves under one session total, so text moved from one to the other no longer measures as a saving.
- RK1061 · 78b7e99the tool budget makes every lint build the whole served surface
Measured again, warm: the check is 1.4ms and the 121ms was one-time import cost misattributed by an in-process comparison, so nothing is cached and the numbers are recorded.
- RK1060 · 78851daone paragraph about counting is repeated on thirteen served properties
The counting caveat moved to the handshake, which a client is given once, taking 3159 code units off the tool list while each field keeps the number and the aim that vary.
- RK1059 · c190bbcthe largest every-turn surface is measured and held by nothing
[tools] characters declares what one served tool may cost, lint refuses one over naming the tool and the ranking, and budget --tools prints the room beside each figure.
- RK1058 · 78f93cbthe skill teaches the count as a permission to replace and never names the span
The skill states the count's second permission once, where the correction is introduced, and the completion says it carries the same pair, so the span is reachable from the text that decides.
- RK1057 · 37f7c6ethe wrapped refusal still describes the count as authorising only a deletion
The ledger's refusal now names both permissions the count carries, and the roadmap's still names the one it has, so neither offers a shape its file does not hold.
- RK1056 · 7d6274drecord add still publishes a --lines flag that exists only to be refused
The count is withdrawn from the served tool, saving 221 code units on every session, and kept on the CLI so a script that spells it is answered by NoSpan rather than by argparse.
- RK1055 · 1c06310the served why bound refuses on the client a span the server accepts
ship and record amend publish no why ceiling and state the per-line limit and the span in the note, so the client stops refusing a call this server takes.
- RK1054 · dc3eb2cthe ship that completes a partial reached disk without validating the entry it wrote
That branch rewrote the entry instead of placing one, so it bypassed the only door that checks: a why carrying a newline landed as a two-line entry no field held.
- RK1053 · 89e7435two ledger writes still delete the continuation lines RK1049 taught one to keep
The completion writes the span back when --lines authorises it, and the --supersedes pointer takes the first line alone, so neither deletes a paragraph the parse never held.
- RK1052 · 1dfdca9record amend walks every entry for the reversal clause and prints none
The clause is read off the ledger before the write that can remove the mark, and printed with the corrected entry, so the amend and the listing state one fact again.
- RK1051 · 8f977d5an id other entries cite can never be given the entry it is missing
record add --id now refuses only an id a line carries and reports the sentence that names one, so an id cited but never recorded can be given the entry it lacks.
- RK1050 · f857da7record add is described by one motivating case, so the door is not found for the others
record add, record and retire now lead with the job rather than the case that produced them, in the CLI help, the docstring the MCP surface prints and the skill.
- RK1049 · f7fb776record amend parses a multi-line entry and cannot write one back, so correcting one collapses it
--lines above one now lets --why carry the whole span: the first line is the sentence, the rest is written back verbatim and checked by re-parsing rather than collapsed.
- RK1048 · 3153c88show says an id was never written when a ledger entry delivers it without leading with it
The refusal asks history where the parse has no answer, so an id a ledger entry delivers without leading with it says which commit wrote it.
- RK1047 · 4cad4cabody.promise names three doors and not reserved_ids, the mechanism built for the state it fires on
The row offers the reservation as a fourth reading, so the state RK1031 built a declaration for is not answered with a rewording.
- RK1046 · 2e78ecfa partial-marker line beside an unqualified entry has no door and no finding
record amend writes the qualifier where the roadmap still carries a live partial, so the cycle terminates and the completion path closes the line.
- RK1045 · 151ce3ca refusal offers as its remedy the exact command that produced it
The door is named only where the closure path takes the line, and a test runs the command it names against the state that raised it.
- RK1044 · f996767retire refuses an id the ledger already holds without naming ship, the verb that does close the line
The refusal carries the command that closes the line where the closure path takes it (design superseded: the doors it called shut are open for a 📋 line, shut for a ⏳ one).
- RK1043 · 1e6ff17the four slash commands spell a console script the plugin's other two surfaces were written not to assume
Every command line the four files spell is the launcher the plugin already used, so none depends on a console script a marketplace install does not make.
- RK1042 · 768555fdelivered lists a reverted entry as a delivery, unmarked, and it is the read made before every add
A superseded entry is named as one in the listing, under --near and in the payload, so the duplicate check stops answering yes-shipped about work that did not hold.
- RK1041 · 4ee4253budget on a new task reports the assumed section's occupancy, so words-left describes a section the task will not use
A pointer nobody named is kept wide for the line and dropped for the section, so a new task is budgeted for the anchor it will create rather than another task's.
- RK1040 · f878515init writes the Non-goals heading and no [non_goals], so the verb that fills it refuses on a fresh project
The scaffold declares an empty [non_goals] beside the heading it writes, so the verb that fills the list works on a project init created; adopt writes no config.
- RK1039 · b0613a2export answers a missing target with an errno and an absolute path, where the state next to it names the fix
A target the flag named and nothing created is refused with the two lines that make a file one, at the path relative to the root.
- RK1038 · bda0e56defer and retire call the prose field --reason where nine other verbs call it --why
defer and retire accept --why beside --reason, so the field the other nine verbs write is reachable by the name a caller has.
- RK1037 · dcf8989agents.md is at 125 of 125 lines, so the next module added to the package makes the gate red
The prose is compressed to 120 of 125 lines with the Layout index byte-identical, so the next module added has somewhere to be named.
- RK1036 · 361ec3ea section budget reports the limit that does not bind, so the aim promises room the write refuses
A body budget reports the smaller of its declared limit, what its own subsections spend and what a binding ancestor leaves, and the aim comes off that.
- RK1035 · 7e86ab1the ancestor row names an add on a section that exists, and neither figure is what an amend may write
The ancestor row discounts what this section already contributes and names the verb that follows, so the figure is what the next write accepts.
- RK1034 · 7119527the ancestor refusal tells an amend to pick a free top-level anchor, which is a door only an add has
The overage is one number at both doors and the ways out are not: an amend is told to shorten or to move, and neither door names one the caller cannot take.
- RK1033 · 22d85f5section amend accepts a body that puts its parent over, which is the write RK1024 and RK1029 left open
An amend is charged its ancestors too, as a delta: a write that makes an over-limit parent worse is refused, and one that shortens it lands.
- RK1032 · c72d152an unambiguous prefix reaches --fix, --prune and --claim, so a two-letter typo is a write nobody asked for
No parser accepts an abbreviation, so every prefix that reached a write is the refusal this tool composes — and which surface answers is where the flag was typed.
- RK1031 · 04dfa14an id a project reserves for an epic and never writes as a line is reported as spent, on every prose mention, forever
A project declares reserved_ids: the deriver skips them, the gate stops calling them spent, a typo still fails, and a reservation written as a line is reported.
- RK1030 · f11678ea roadkeep.toml a Windows editor saved with a BOM answers 'Invalid statement (at line 1, column 1)' and names no byte
A config opening with a byte-order mark is answered with the byte, the original refusal beside it, and the way to remove it; a marked pyproject is found rather than walked past.
- RK1029 · 54b1d15budget answers a whole limit free for a child whose parent has one word left, which is the read an add is composed from
The pre-add read carries the ancestor that binds and what it leaves, beside the field own limit rather than instead of it.
- RK1028 · 3a984efa body read from a path keeps its editor's BOM, and neither the write nor the gate reports the invisible byte
A body read from a path loses the mark its editor wrote, and one in a file is red and fixable (design §RK1028 superseded: only the mark is swept; a lookalike a design quotes is prose).
- RK1027 · a359593The forward-reference guard has no advice for the case it most often fires on: an id that is about to exist
An id just past everything a line carries is named as the sibling not filed yet, with the ordering as the advice; far past it is still an illustration and below it still a hole.
- RK1026 · d7c8c91An unrecognised flag falls through to argparse, so a near-miss gets the verb list and its own value echoed back
An unrecognised flag is refused by this tool now: the verb that was reached, the option token alone, and that verb's own surface rather than the whole tool's.
- RK1025 · 5620268A section address given to show is answered as an unknown task id, though section show is the verb for it
An argument that addresses a section is answered with the verb that prints one, and a declared address replaces the absence rather than arguing with it.
- RK1024 · f85767badd accepts a subsection that lint then fails, because the parent section's total is not checked at insert
A child is charged to the address that owns it before the write, and the listing that offers one says where its parent has no room left.
- RK1023 · 816b0fcthe --why - stdin escape hatch is unusable on PowerShell, which prefixes a BOM the char.invisible check rejects
A field read on stdin loses the one mark its encoder opened with, so the escape hatch works on the shell that most needs it; the same codepoint further in is still refused.
- RK1022 · efd074badd refuses for a missing --ref and the anchors it sends you to names --family, which add has no flag for
Every command a message spells carries the flags the parser declares (design §RK1022 superseded:
--familyis ananchorsflag and--refis not; the command beside it was missing). - RK1021 · 527e7eeNothing enumerates the questions a maintainer asks a governed file, so the law about answering them holds nothing
The questions this project wrote down are a declared set, each one an argv the CLI parses and only reads, and every read-only verb answers one or says why it answers none.
- RK1020 · fb84a77Six names across four modules are imported and never spelled, and nothing in this tree reports one
A survey over the declared source set reddens every import nothing spells, past the
__all__re-exports and the__future__directive; the six it found are gone. - RK1019 · b9e1ebbThe harness proves the client against whatever roadkeep the machine resolves, and nothing says it was this checkout
The harness compares the home
enginesderived against this checkout exactly, so a run that answered from another tree fails instead of reporting on it. - RK1018 · 0a5859fThe backlog tree opens with no count, so how much work is left is a question only reading the file answers
The tree opens with the total and each declared marker beside it, every number rendered from the payload
statsalready answers and none computed here. - RK1017 · b65b72fEvery save re-asks which copy of the tool answered, so a keystroke costs a subprocess and a git call
Which copy answered is asked once per window and again when somebody presses refresh, so a save runs the reads about the file and not the one about the tool.
- RK1016 · f7d2f57The Layout index names a sixth surface nowhere, and what holds it reads package modules only
Every tracked top-level entry is named in the Layout index or exempted there with a reason, and the two surfaces that shipped without one are named.
- RK1015 · b878c1cA door says nothing about whether running it writes, and the kind beside it describes the remedy and not the door
A door says whether running it writes, derived from the verb the CLI already declares read-only and the flag that makes one a write, and the payload carries it.
- RK1014 · fc0b15cA project with no queue is told to write the heading by hand, and the verb that would move one says the first writes it
priority addopens the section above the blocks where a project has none and says so, so no queue needs the hand edit the guard denies. - RK1013 · dd06722The host is a folder, so installing it means copying a directory and nothing here produces the file an editor takes
python scripts/build_vsix.pywrites the archive from the files this tree holds, with zipfile and no toolchain, and it installs. - RK1012 · edeb08fA pointer can resolve to a heading with no prose, or to one with no title, and the gate reports neither
The gate reports a pointer resolving to a heading with no prose or no title, under the two codes the door already refuses, and a container is still silent.
- RK1011 · 1fd6aafNo package this repository builds is one an editor can load, so nothing it answers is reachable without a shell
A manifest and one plain JavaScript file, activating on the config file and carrying no rule: every fact it shows was read from a payload a verb printed.
- RK1010 · 5863eb4A surface written in another language has no gate in this tree, so CI proves the Python and nothing proves the client
A job gates the client against this repository's own docs, pinning node and asserting it answered before the harness runs, so a skip cannot read as proof.
- RK1009 · f9fb95aNothing says which roadkeep an editor calls, so a view answers from a copy the project does not write with
The view calls the roadkeep a workspace declares and refuses to guess one, and names above every row which copy answered and whether the copies agree.
- RK1008 · 736aeefAdding a task from the editor means retyping the fields in a terminal, so a limit is met after the sentence exists
A prompt counts down what
budgetsays each field has left before a word exists, andaddstill decides — the refusal reaching the editor verbatim. - RK1007 · 16505fdA violation is a line of terminal output, so the editor showing that file marks nothing at the column that failed
Findings become diagnostics anchored at the column the report gives, and a door the tool called complete becomes the action that runs it.
- RK1006 · 0703c89The backlog is legible only in a terminal, so the editor holding the file offers the raw text and a hand edit
A tree grouped by the block the payload gave, ready before blocked and the blocker named, with every row read from a verb and no Markdown parsed.
- RK1005 · b5e5f3aNo test reads a
--jsonpayload as an outside client would, so a renamed key breaks one and nothing here failsA test reads the four payloads by key over this repository's own docs, so a promised key that is renamed goes red here before a client outside the process meets it.
- RK1004 · 4a2cb1bThe register reads gate to write and nothing reads it back, so a rule only the door holds is found by writing one
Every code a write refuses says what the gate reports about a file already in that state, and two of the forty-three turn out to be reported by nothing.
- RK1003 · b154aa9A design naming an id no line carries is refused at the door and reported by nothing once a file already holds one
The gate reports a design naming an id no line carries, under the code the door raises, so an imported or hand-edited file is no longer silent about it.
- RK1002 · 97d6c50An id named only as an example in prose is read as spent, and nothing refuses it where the prose is composed
A design naming an id no line carries is refused where the prose is composed, naming the two ways out, so an illustration no longer spends an address.
- RK1001 · 51381faA second defect in a class an invariant already holds reads like new work, so a gap in a holder is filed as a fix
A design declares the rule it instantiates in a fenced block, and the row it names carries the id — so a recurrence is a count and the holder is where the fix goes.
- RK1000 · c3140c9A limit, prefix or marker written into the package instead of read from config is found by an adopting project
A scan over the package refuses a marker, an id or a governed filename written outside the two modules that declare a default, and L6's row now names it.
- RK500 · 40e4f9cA dep flag naming an id nothing carries is written, and so is one on the block the line is being filed into
A write refuses a dep in neither file and one whose blockers walk back to the line, so the id is no longer spent by a token nothing carries.
- RK499 · 6c50576Every prose door accepts a tab, a zero-width codepoint and a space that is not one, and the gate refuses all three
Every prose door refuses a tab, an invisible codepoint and a space that is not one, under the code the gate reports and from the one rule both surfaces read.
- RK498 · 19a1300Nothing says which of the gate's findings a write can refuse, so a rule the write path drops is found by tripping it
Every code the gate emits has a row saying whether a write refuses it, measured by a probe wherever one claims so — and probing 30 of 84 found five open, not two.
- RK497 · b17be32A ship writes a why naming a path the repository lacks, and the gate then refuses the file the ship just wrote
ship,retireand bothrecordverbs refuse prose naming a file the repository lacks, so the gate's path rule is asked where the sentence is composed. - RK496 · 2d43f43A test surveying the package's source keeps passing once a directory of modules stops being covered by its glob
Seven surveys quantify over one declared set,
tests/surface.py, and a test refuses any that derives a second — so a module in a new directory is covered or red, never quietly missed. - RK495 · fd5f5eeA scope declaring a directory stages every file under it and reports each one as claimed by nothing
Every list a scope splits the tree into asks one predicate, so a declared directory speaks for the files under it in the loose list and in another session's as it already did in the staging line.
- RK494 · 6ffaefa82 handlers sit in the file that registers them, so no verb family has a module or a docstring of its own
Each verb family is a module under
verbs/its own docstring is the authority on, andcli.pyis the parser and dispatch alone — 8,489 lines to 2,551. - RK493 · f1234d0Every command's output rendering shares one file with the parser and 82 handlers, 8,489 lines
Every printer and payload builder is in
rendering.py, socli.pyis the parser and its handlers alone — 8,489 lines to 7,186. - RK492 · 7bbdf22Nothing counts the sites an invariant has yet to reach, so a migration's remaining work is found by tripping over it
A design declares its own query in a fenced block and
remainingruns it, so what a migration has left is a read taken now rather than a number somebody maintains. - RK491 · 7636fb3Three tests hold three surface-wide rules under no common name, so a rule nothing holds reads as one that is held
The rules this package states are one declared set naming each surface and holder, closed against the six laws, and it found L4 held by five listed codes.
- RK490 · 92a983dA remedy row repeats what its finding already carries, so a row naming the wrong file or verb is found by example
A finding answers one declared set of fields and a row names them, so what a door says about its finding is a property over the table instead of a defect per row.
- RK489 · 5fe2c28Each subparser checks its own subjects and narrowing flags, so a swallowed flag is found one verb at a time
A verb declares its subjects and narrowing flags at add_parser and one dispatcher refuses two answers, so the sweep now checks a table and found claim --porcelain --json.
- RK488 · 03ba39bEvery module that offers a command composes the sentence itself, so a new surface is reached one emitter at a time
Every message that offers a call states a Door and one renderer spells it, held by a property no module outside it composes one, so a new surface is one change.
- RK487 · 374da34A pipe in a block title breaks the readme table, where the site form escapes the same string
a bar in a block title stays inside its own cell, so the readme table keeps its columns.
- RK486 · fd152a1The sweep holding the spelling class renders each message once, and two of the four have a shape it never sees
The sweep takes one entry per rendering, and a field that never leaves its default in any of them fails rather than leaving quietly.
- RK485 · 9a364f0adopt says the prefix was inferred from the ids on a file where it read no id at all
A prefix nothing declared and no id produced is reported as the default it is, in the printed line and in the payload.
- RK484 · 268357cThe merge driver's capture line offers an argv naming three files git has already deleted
Where the argv names git's temporaries the offer asks for the two revisions instead, and a hand-run merge keeps the line it can take.
- RK483 · fd3b494Two branches that each shipped a task cannot merge the prose file, though neither touched the other's section
A prose file is merged by anchor the way a roadmap is merged by id, so two branches that each dropped their own section merge.
- RK482 · 4c0215bA line one branch removed and the other edited is reported as both branches rewriting it
A line one branch removed and the other edited is its own category, with the decision it actually asks for.
- RK481 · a19ddcfA capture the default report writes cannot be replayed, and the session that could still take one is not told
report says which of the two captures it wrote and names --embed where it wrote the smaller, and replay asks for one that carries the files.
- RK480 · 83e3c08Five tasks moved a message off the shell and nothing holds the sixth, which is found by hand or not at all
Each message is rendered in both spellings and every verb the shell form offers the served form must name, with two exceptions that carry a reason.
- RK479 · 1ad2fb8The attestation half of the Stop names a shell lint, where the half beside it spells the session's own
Unattested carries the served prefix the hook reads, so the message shown once names a route the session can take.
- RK478 · 51efdcfThe gate that blocks a turn lists its findings without the door RK420 gave each one
Each finding is followed by the door remedy() answers, grouped as the report groups and spelled as the session that will run it.
- RK477 · 4402ca1The deny offers both spellings for every write and only the shell one for the reads it closes on
The closing sentence is composed per table, so a session with tools is offered the three reads as tools and one without keeps the shell line.
- RK476 · f6c64f4The follow-up an add leaves is a shell argv, in the payload a tool-surface caller acts on
The printed line carries the invocation like every other route, and the payload's needs field names the tool that serves it.
- RK475 · a588bdaA refusal reaching an agent over the tool surface names the shell, on the write it just refused
A refusal shown over the tool surface names the tool that serves it and its fields, rendered through the subcommand's own parser at the print rather than at the raise.
- RK474 · b6c6658The doors repair never dispatches are checked against nothing, so a printed one may refuse too
Every complete door is parsed by the CLI it names, which caught section move offered without the --to it requires — a code neither corpus carries and repair would have dispatched.
- RK473 · 15d2cebNothing runs repair over a real corpus, so a remedy that cannot close its finding is found by hand
The pinned corpora hold that every remedy repair dispatches runs and that a second pass finds nothing, which caught a fold refused on Shio's ledger on its first run.
- RK472 · 2466f3fA remedy that refuses every time is re-attempted on every run, and nothing marks it as stuck
A drop blocked by a claimed nested section is a decision naming the blocker instead of a command repair dispatches, so nothing is attempted and refused run after run.
- RK471 · fcee066The count repair closes with says three ran where one ran and two are printed FAILED above it
The summary counts what ran and names what was refused, so the number a reader acts on agrees with the FAILED lines above it and the exit code is untouched.
- RK470 · 03ae0e8A remedy naming a section omits which prose file it is in, so on a project with two it opens the wrong one
A section remedy carries the role of the file its finding is about where the project declares two, so on Turing one that opened the wrong file now closes its own finding.
- RK469 · d401110Twenty-six findings state one fact about two files, and one config line closes all of them
A run of findings sharing one fact is printed as the pair once with its addresses under it, taking Turing's report from 15,894 characters to 4,044 with the payload untouched.
- RK468 · f953e30One finding names two different commands, and repair runs the one its own message does not
The message and the remedy ask one reader whether dropping closes this finding, so repair runs the verb the sentence names and the verb it names closes the finding.
- RK467 · 12edb2fNothing checks whether a flag pair answers as one of its halves, so each swallowed flag is found by hand
Every boolean pair a read takes is swept for the byte-identical answer a swallowed flag leaves, which found two more and left the exception table empty.
- RK466 · 92fc0dbTwo commands take two answers and print one, saying nothing about the flag that lost
The two pairs that are two subjects are refused naming both, and the two destinations that compose still write together, so no flag is dropped in silence.
- RK465 · 68d1825A flag that narrows one budget subject is silently ignored beside three of the others
A narrowing flag is checked against the subject that answered rather than the absence of one, so passing it beside another is refused naming both instead of changing nothing.
- RK464 · 3409414The tool list is 13,000 tokens a session and nothing budgets it, where an 8 KB resident file is gated
budget --tools states what the surface costs a session, in characters and by tool, so adding a tool or a sentence to a description stops looking free at the point of writing.
- RK463 · 1435058Eight reads the shipped skill tells an agent to call have no tool, on the install with no console script
The eight reads the shipped skill names are served as read-only tools, so an install with no console script can make every read it is told to, and a test holds the two in step.
- RK462 · 1a07ba6A run naming several files gets no workers at all, so six files take fifteen seconds in series
The worker count is one per thing named and capped at the cores, so six files take 4.8s instead of 12.7s and one file still spawns nobody.
- RK461 · a42b41dEvery row the ownership audit prints on this project is a standing memo, which is never a thing to act on
A heading naming no task that no line claims is counted as a standing memo instead of listed, so the audit's rows are only the two states a command closes.
- RK460 · 3d0e72eRunning one test file is 33 times slower than before, because -n auto spawns a worker per core for it
A run that named one file or one test is not spread over every core, so the narrow run is back to 0.93s from 43.2s and the full one keeps its 41s.
- RK459 · d1013baThe ownership an address states is reachable one family at a time, so an audit costs a call per family
anchors --claims lists only the addresses whose ownership is not the ordinary one, over every family at once, so the audit is one call on a corpus of any size.
- RK458 · e29367aA test passes alone and fails when another file's test has run before it in the same worker
The coupling was the wall clock and not an order: eleven assertions spelled an elapsed duration, and matching its shape instead took ten parallel runs from four failures to none.
- RK457 · ee4454fThe suite runs only in series, so a full run is five minutes before any change is known to hold
The suite runs parallel by default at 41s against 5m07s, with the worker count derived and the plugin declared beside pytest in the extra CI installs.
- RK456 · 696738bEleven test files each build a git repository per test, with seven processes and a private copy of the helper
One runner in conftest builds every test repository in three processes and a hermetic environment, so nine private copies are gone and no assertion moved.
- RK455 · 0e72af0A CLI call whose stdin was already read dies while forcing UTF-8 instead of running the verb
A stream that refuses hardening is recorded instead of raising, so every verb runs over a used stdin and only a prose read is refused, naming what it could not apply.
- RK454 · 0a8daf9A governed file with NUL bytes among its text is 400 findings whose named --fix changes nothing
A NUL is read as a lost write and not a character, so a partly-lost file is one finding naming the restore instead of 400 whose fix claimed them and wrote nothing.
- RK453 · c27de44No read says which outline sections a backlog still owns, so prose a departure left is found by grepping
anchors says per address which task its heading binds and which live lines claim it, so an unbound heading and prose whose task has left are both one call away.
- RK452 · 0db9ea8Which of two writes came first decides whether an outline section ever belongs to a task
A line whose --ref names an outline section binding nobody renders the binding into that heading in the same transaction, so both write orders reach the same file.
- RK451 · d15d02eA governed file that is not text at all is reported one finding per byte, and never as a file to restore
A governed file whose every byte is NUL is one finding naming the restore, checked before the line reader, so 3,301 findings and a --fix that would empty it are both gone.
- RK450 · 53bfc3dA staged file is renamed into place without its bytes being flushed, so a crash leaves the new size and no content
A staged file is flushed and fsynced before the rename that places it, so a crash between the two leaves the previous whole file instead of the new size filled with NUL.
- RK449 · 38b9696A remedy reaches the tool surface as a shell argv, so the caller least able to run one is handed it
Every door is published as a call beside its argv where the session serves it, derived from the subcommand's own parser, so lint --fix stays a shell command by rule.
- RK448 · c2cc707Two of the guard's four routes still name the shell where this session has the tool that answers
The repair route inside the deny and the Stop gate both name the served tool where this session has one, leaving the invocation only on lint --fix, which says why it stays.
- RK447 · 3153450The deny lists tools this session has no server for, ahead of the shell commands it does have
A session with no server for the tools is offered none, so the denial leads with the shell command it can run; served_as is gone and serving is the one reader of which engine answers.
- RK446 · 4421c98An empty --near is answered with the whole block instead of being refused
The flag fell through to the unbounded listing, so a read asked for five entries came back with 103 and nothing in the answer or the exit code said which question it answered.
- RK445 · d962d3dadopt lists a block once per heading, so a ledger grouped by sub-headings reports the same label three times
The estimate lists a block once per region through the reader RK439 narrowed, so a ledger grouped by sub-headings reports one label and two genuine regions still report two.
- RK444 · 8d050abAn agent that never hand-edits is never told the tools exist, the deny being the only place that names them
The SessionStart notice names the served prefix where this session has the tools and the invocation where it does not, so the one guaranteed message points at the engine that answers.
- RK443 · be668e4A stored capture that never reached the verb replays as reproducing the symptom it was filed under
replay states, from the exit every capture already carries, that a re-run refused before the verb repeats that refusal and not the symptom — beside the verdict, never folded into it.
- RK442 · 6f284b5delivered prints a whole block's ledger to answer whether one proposal collides with it
delivered --near ranks the block against the sentence being proposed and prints the five nearest, which held every pair this ledger knows the answer to, with no score and no index.
- RK441 · 90cadceThree copies price a lexical duplicate match at 33rd, and re-measuring this ledger does not reproduce it
All three copies argue from the score instead of a rank the ledger contradicts, and a test holds them there: the ranking is fine and the absolute score is not comparable.
- RK440 · 3f43fd5A capture whose re-run stopped at a usage refusal is filed as reproducing the symptom above it
A capture whose re-run exited 2 carries
stopped: usagein the report and on the session's own stderr, so a reader knows the output is evidence about the command and not the symptom. - RK439 · 2b95230A sub-heading nested under a block's own heading is read as a second declaration of that block
A heading inside another's subtree is read as the region's own, so a block grouped by sub-headings takes writes again and only two headings neither inside the other are refused.
- RK438 · edfb843A write's event line calls a block empty that every query in the same tool calls finished
Every write's event names the block's stage from the four-state reader every query uses, so finished and empty stop sharing a word and a paused block is offered no drop.
- RK437 · b6aae58Prose is filled to a width counted in code points while every limit that refuses counts UTF-16 units
Every measure adopt reports names the unit its two figures are in, so a table of three units stops implying one — and the non-goal rows are counted the way the gate counts them.
- RK436 · f6cd117The MCP schema publishes a limit that counts code points while the write refuses in UTF-16 units
Every
maxLengththe MCP schema publishes now names UTF-16 code units beside it, and the code points JSON Schema counts instead, so a client reads the bound that will refuse it. - RK435 · d70295eThe door offered for a queued block that has no lines yet says the block was never declared
A queued block whose heading precedes its lines offers filing the first line beside dropping the entry, instead of one door arguing the block was never declared.
- RK434 · f672de0The gate decides whether a block is finished, empty or undeclared with its own copy of the rule
A queued block's state comes from the backlog's one reader, so a block with nothing open is reported as paused wherever the store holds a line under it rather than as finished or unstarted.
- RK433 · 7f4756fdelivered answers a block letter nothing declares as one that has shipped nothing
delivered resolves the block label before it filters the ledger: a letter nothing declares is refused at exit 2, and every answer names which of the four states the block is in.
- RK432 · a932533A dep on a block nobody has filed anything under resolves as satisfied
A block dep resolves against the block's own stage, so a heading opened before its first line no longer reads as shipped and pick stops offering the task waiting on it.
- RK431 · f81164fAn id mentioned in prose is consumed by the next add, so the sentence that named it is now wrong
next-id and add report the id below the derived one when only prose names it, so a sentence that promised a number learns it was spent at the moment of spending rather than never.
- RK430 · 568703cThe line-length limit counts code points and the gate that enforces it counts UTF-16 units
every character limit is measured in UTF-16 code units, the unit each payload declares and each refusal names where it differs from an editor's count, so this gate agrees with the one a project runs.
- RK429 · 1271bd6A query against a finished block answers the same as one against a block that never existed
brief, pick and list name which of finished, paused, empty or unknown a block with nothing open is, and --json carries that word beside the sentence, so a loop branches on the state and not English.
- RK428 · 6659601The totality check cannot see a code the gate builds by f-string
the totality read crosses the suffixes the schema composes with the fields it validates, both scraped from the source, and the six codes that were invisible now have doors.
- RK427 · a1457adThe queue defect lint reports in roadkeep.toml is refused by the only verb that repairs a queue
priority migrate moves the config's order into the roadmap, and both write verbs refuse by naming it, so the queue defect the gate reports has a door that opens.
- RK426 · ce9ccceA call breaching two limits is refused twice, the second time for a limit the first refusal already measured
add validates the line and a re-readable section body together and raises once, so a call breaching both is corrected in one resubmission instead of two.
- RK425 · 74e06d4The repair block.repeated names sends the caller into a worse state than the one it reported
the finding names block merge instead of an edit the guard denies, and says how many lines under the later heading it moves, counted to the next heading of any level.
- RK424 · 73af4b7A denied write answers with every verb its file has, not the one the defect needs
the denial names repair, its dry run and explain before the table it shortcuts, so an agent repairing a reported line reads one route instead of picking from fourteen.
- RK423 · aa0d454A code is the only stable name a defect has and nothing will say what it means
explain <code> answers the class, what produces it and which doors close it in three lines, and with no argument lists every code the gate can report.
- RK422 · bbfa708Nothing turns a report into the commands that clear it
repair runs the mechanical pass and then every finding whose remedy is a complete command, re-reading the report between writes, and prints what needs a sentence or a choice.
- RK421 · 63ef98eNothing holds the tool to having a door for every defect it reports
the codes are scraped from the modules that emit them and every one must resolve to a door, so a check added without stating its repair is a red here instead of a dead end on someone's backlog.
- RK420 · ded260b25 of the gate's 37 codes report a defect and name no verb for it
every finding carries the command that closes it — a complete argv where one exists, the doors and what separates them where a decision does, and the blank where L4 forbids the tool the sentence.
- RK419 · 9043ba1A project whose ledger is organised by nothing can no longer write its first line
the add and the gate ask the ledger only where it is organised by blocks, so neither names a remedy that refuses.
- RK418 · 976380aTwo copies at one version number are called agreed, on the one fact known not to tell trees apart
engines compares the commit as well as the version and answers agreed, behind or unpinnable, the last being one version and a modified checkout, which is no commit to match.
- RK416 · 6010117A line proposing what a revert already undid reads as new work
reversals reads the forward pointer back with the reversing entry's sentence, so what was tried and undone is a read an author makes before spending an id rather than after.
- RK414 · eefa83fA slip of the pen in a symptom has to borrow the verb for a false premise
restate --typo declares a slip of the pen, so the answer and the payload say which of the two acts it was and every other restatement still means a premise that turned out false.
- RK410 · bf25a77The free address is the last line of a listing of spent ones
anchors --next prints the free address alone in both surfaces, so the read an add --ref makes every time is one line instead of the last of twenty-eight.
- RK409 · 3ec449cThe machine-readable brief answers a finished block in prose
the finished branch answers on stdout in the shape it was asked for, carrying empty, the block and the reason, so a loop reads a payload instead of matching English on stderr.
- RK408 · 85a5d72The ship that empties a block reports it and names no verb for it
the empty event names block drop for the label it just finished, so the state the answer computes and the command it makes available arrive together.
- RK407 · e712b43A refusal blames the author for a character its own shell wrote
a control character that is not a line break is refused as its own code, naming the codepoint, its position and the backtick escape that writes it.
- RK402 · c461e2fThe tree that ships the plugin is told to wire the guard a second time
a tree declaring the guard in its own plugin manifest is skipped for the settings surface with a reason, as its two siblings already were, so the check reports clean here.
- RK401 · 0128d94A line the gate calls clean is refused by the door that corrects it
status, amend and restate validate against the schema the file was loaded under, so a role that [rules] excused a field for is corrected by the grammar the gate reads it with.
- RK400 · 221bdd1Shipping a family's last child leaves its parent describing deleted work
the ship names the parent its drop left with no subsections, beside the citation it already named, so an introduction to work that shipped is an edit in the same commit.
- RK399 · 1dcaeb1One field is spelled --status on add and --marker on resume
add, budget, list and resume each accept --marker and --status for the one declared field, so the name learned on any verb is the name the others answer to.
- RK385 · 0e85e86Nothing notices that a new line asks for what a shipped entry already delivered
delivered <block> states every claim a block already made good on, named in the guard's table beside non-goal list, because a duplicate is a read and never a refusal.
- RK366 · 8a384b5The skill every adopting project loads has 24 body lines past 110 characters against a file otherwise wrapped at 90
the body is re-wrapped at 90 with no word changed and a test holds it there, which is the answer the section argued for over a config width or a fixer that rewrites prose.
- RK417 · f159ce0The finding for one label under two headings names no verb, and one of the two is often removable
the finding names block drop where that verb would remove the empty heading, and says it is a hand merge where it would not.
- RK415 · c29df3aThree engines write and judge one project and none names the others
engines reads the running copy, the plugin the harness wired and every workflow ref, and lint notes a pen and judge apart.
- RK413 · 91307c6The first block heading lands after the section the blocks are supposed to precede
the first block heading goes before the file's next section at that level, and only takes the end where there is none.
- RK412 · 877689fThe seam every line write passes is told which file it is writing into twice
place takes the role and derives the path and the organise remedy from it, so defer names its own file too.
- RK411 · 0cbb432The add and the gate stay quiet about a ledger organised by nothing, and now a verb repairs it
the add asks a flat ledger again, and the gate reports it once about the file rather than once per block.
- RK406 · b6afd6dThe body flag that takes a path refuses the dash every other tool reads as standard input
the path flag refuses the dash by name and says where the body comes from, at both doors that take one.
- RK405 · 502ac37A ledger organised by nothing is a project every ship refuses and no verb can repair
block add --organise <role> writes the first heading into a file organised by nothing, and the refusal names it.
- RK404 · 431b1b7The refusal that sends an add to the block verb never says which file the line was going into
the refusal names the file the line was going into, where that is not the file its labels came from.
- RK403 · 892d6eaA block heading the changelog declares twice has no verb to fold into one, leaving only the hand-edit the guard denies
block merge folds a label's duplicate headings into the first, moving the entries and including the ledger, so the doubled heading only a hand-edit could repair has a verb at last.
- RK398 · 33a9dc2The version bump the hook writes is never staged again once both files are dirty
the hook asks whether the difference is the number, against the index, so its own unstaged bump is still its own.
- RK397 · 934b330A prose paragraph whose line starts with a bold span is inserted verbatim instead of filled
A list marker is the character and the space after it, so a line opening with a bold span is prose the writer fills and the estimate measures.
- RK396 · b644e93A dep on a partially shipped task is annotated as satisfied
a dep on a task shipped in halves is annotated with the line's own marker and resolves as open, naming which half the ledger holds.
- RK395 · 0a1a9e4A shipped entry that gets reverted stays in the ledger saying it shipped
record add --supersedes writes the revert entry and appends the forward pointer to the entry it replaces, so the ledger's two records of one decision name each other.
- RK394 · a1dbc5dThe wiring writes four surfaces and leaves the flag unhonoured when the driver's file cannot be written
The driver's own file is checked with the surfaces and a target that is a directory is in its own way, so the flag refuses instead of landing four.
- RK393 · 505a587The gate names a command that cannot run, on a tree the wiring half wrote and refuses to finish
The wiring refuses a directory a file is standing in before it writes, and the gate reports that apart from a difference it can close.
- RK392 · 03f5140A scaffold that cannot create a declared file's directory leaves the configuration behind, and both doors out refuse
A directory a file is standing in is refused with the rest, and the directories are made before the config, so a failing write leaves nothing that looks configured.
- RK391 · 0bddd0dThe gate holds no one-heading-per-label rule, and the write path resolves a repeated one by position
lint reports block.repeated at the second heading, and every write through place refuses instead of picking one.
- RK390 · 24e9adfA block label checked only to its first line, and never against the others, scaffolds a file no verb can address
A block value must be one heading and no two may share a label, so the scaffold refuses what it would otherwise write out unasked.
- RK389 · 17fa2d0A dep naming two real ids is accepted as one thing outside the backlog
a dep that names this project's ids inside free text is refused at the write, naming them, instead of resolving as work nothing can satisfy.
- RK388 · 483fd40A heading that parsed with its sigil is rewritten without one by a verb amending a different part of the file
A body-only amend leaves the heading line's bytes alone, so a sigil the reader accepts and the writer would not reproduce survives a write to the prose beneath it.
- RK387 · 3f36370The line telling an unread file from an empty one is on the backlog path only, so --sections still gives that zero
Both runs count what they read and one test holds the pair across them, so a rationale file of prose no longer answers a blank one's words.
- RK386 · 2e2005aThe oldest of the estimate's three argument refusals is the one no test holds
The three argument refusals are one parametrised table, so the untested one is held and a fourth arrives with its row empty.
- RK384 · 59e0c46A prefix named with --sections is taken and never used, and a value the command refuses elsewhere passes silently
A prefix named beside --sections is refused, so the combination that reads nothing cannot look like one that read it.
- RK383 · e189583The free-address help says one outline spans both files, which a declared namespace makes false
both accounts of the free top-level say it is per namespace, and a test holds the skill and the help against what the command computes.
- RK381 · 897a880A refusal on a short field costs the whole rationale a second time
The rationale is fetched below every refusal the line can raise, and
--section-body-file/--body-filename it by path so a retry re-reads it. - RK380 · 677c199A block can carry open lines for months and be found missing only by the first ship
add asks the ledger for the block's heading too, and lint reports a block whose open lines nothing there can receive.
- RK379 · 72fa1f6The refusal for a missing anchor does not name the anchor to use
amend, restate, status and renumber name the block's family and the free address under it when a line has no pointer (design §RK379 superseded: add had been enriched by RK312 the day before).
- RK377 · f807262A doubled anchor has no verb that repairs it
A section's address moves with its subtree and every pointer at it, and a pointer follows only where nothing else answers it or the heading names its task.
- RK368 · 878ccceA non-goal whose reason changes has no door but drop and re-add, which moves the bullet to the end of the list
non-goal amend rewrites the reason where the bullet already sits, so a reworded constraint is a word changing rather than a deletion and an append.
- RK376 · ccc1c4aA file that is not a backlog reports the headline an empty one gets, so a mistyped path reads as needing nothing
The estimate counts what it read against what the file holds, so a zero over prose is told apart from a zero over an empty backlog.
- RK375 · a0958beA pyproject that configures roadkeep measures as an empty backlog, the reading RK374 refused for the other declaration
Both doors into this format ask one reader whether a file declares it, so the refusal reaches the pyproject that does.
- RK374 · 9cf40e2The configuration measured as a backlog answers zero of everything, under a comment saying a later command refuses it
A path naming this format's own declaration is refused with the files it declares, so the comment that cited that refusal is now true.
- RK373 · cc033baA prose file the run left out of its set is still absent from the unread list, so a check it never made reads as covered
The unread sentence is derived from the files the across-files read opened, so a set the caller narrowed is not covered for.
- RK372 · 8c5d23cOne report calls a governed file both read and ungoverned, two functions resolving the same path by different rules
One reader answers what role a path holds and the field says only how the file was named, so neither sentence is a claim the other denies.
- RK371 · 2c78e9aA doubling over files the caller named comes back in a field called
roles, holding filenames no[files]answersEach file in the payload sits under the key that says what its name is, and which of them the run treated as outside the project is its own field.
- RK370 · 387e131A file the estimate cannot open is refused in the OS's own sentence, with an absolute path and no argument named
Every path is checked before the first is opened, so a run over a set refuses whole and names the argument that carried each one.
- RK369 · 77534c6A prose file the estimate is handed by name is read unqualified, so a namespace already declared reads as a collision
A named file is read through its role where it has one, so a declared namespace answers the same whichever way the run reached it.
- RK367 · 118a5b4The two figures the no-size-field non-goal argues from are stated in five places and both have drifted
The two ranges are restated as the comparison they were for — median to p90, lines 2.7× against files 1.4× — which is scale-free, so a test holds it and
weightprints it. - RK359 · 29ff20dThe doubled address the estimate reports is reachable only where the file is already one this project declares
The estimate takes the other prose files as arguments, so the doubled address is reachable where no configuration names them.
- RK358 · 90e5833The pick over this repository's own backlog is asserted lowest-ready, so a run made while a line is claimed is red
The fixture takes in-progress as a second right answer, so the tier no longer asserts nobody is working.
- RK365 · e735b28The function every gate check is threaded through grew a fifteenth branch, and what holds its size is an editor
The number is gated by nothing, deliberately; the cost was
checkeddecided at five points, now one — and the rule that an unnamed file sorts last is stated and held. - RK364 · 7fa3e00The median this repository's own granularity claim is stated against has fallen below the floor a test holds
The floor is 100 and far from the reading on purpose — by quarters the median falls 349 to 154, so the tasks got smaller under one-task-one-commit and the shape carries the claim.
- RK363 · 03fdbd2A mistyped address whose family exists is offered a new top-level instead of that family free child
A malformed address whose leading segment names a live family is answered with that family next free child, and only the rest with a top-level.
- RK362 · 33f2922The gate over near-twin verbs proves the sentence is declared and never that it reaches a caller
Every near-twin verb is run bare by the same property that enumerates it, so a sentence declared but never printed is a failing test.
- RK361 · 83e24a1A line the merge driver re-places is refused without naming the file or the line it is about
A merged line the schema refuses names the id it belongs to and the file being merged, so the count is about a line the reviewer can find.
- RK360 · 93908acA section written at an address no live task owns is refused with no way to learn a free one
A section written at an address no live task owns is told the free top-level and the command that lists what is taken, per namespace.
- RK357 · b755689A repair that removed a line reports the line number of whatever moved up into its place
A removal reports
gonewhere a rewrite reportsfixed,--jsoncarriesremovedon the one list, and the run says once that those addresses are the file as it was read. - RK356 · d763471Nothing says when the version this gate pins stopped being the one an installing user gets
A
driftjob asks the channel where the answer cannot gate —continue-on-errorand an annotation, never a red — so a newer reader refusing this payload is named before an adopter meets it. - RK355 · 000104fWhat
--fixrepairs is enumerated in four places and none of them is derived from the fixerfixing.REPAIRSis the list and a test holds all six statements against it, one direction; the three RK328 missed — the hook's copy among them — now name the dead queue entry. - RK354 · 8bd1c30The report names a file it does not list among the ones it checked, so a count and a finding disagree
checkedis now what the gate judged: roadkeep.toml joins it where it carries a queue and stays out where it declares none, so every finding's file is in the count. - RK353 · b1734e3A verb this tool publishes under one name on one surface is an unknown command on the other
A refused argv whose verb is a name this tool publishes over MCP is answered with the CLI's own spelling of that act, read from the tool table, which is what publishes the other one.
- RK352 · 1ae3690The replay test that asserts a codec drifted names a value the running process may already declare
the replay fixture reads its codec and locale against this process and records values it does not hold, so the drift assertion is about the comparison and not about the shell.
- RK351 · cc71cf4A test asserting on an MCP answer fails when any source file is touched while the suite runs
the staleness baseline is pinned to each test's setup, so a suite that edits source while it runs cannot append a note about the checkout to a refusal under test.
- RK350 · 08563b7A third near-twin verb would be found by the session that types it, not by a test
The survey RK339 ran once by hand is a test over the parsers, so a verb added tomorrow that shadows a report is named by a failure and not by whoever types it wrong.
- RK349 · e099f06The refusal that names the anchor command reaches one verb, and three others refuse the same way
defer, resume and section add end their refusal with the same clause add has, so a caller who met the good one once never reads a bare rule as there being no answer.
- RK348 · d1678b6A departure refused by a dependent's line reports the length and names no id
A refusal caused by a dependent's re-derived annotation names that line's id and address, so the author is not sent to shorten the sentence they just typed.
- RK347 · 6731283The estimate reads one prose file at a time, so the state two of them are in is the one it cannot report
adopt --sections opens every prose file the project declares and names the address two of them answer to, before the gate files one finding per collision.
- RK346 · d7ae890One question is answered by two fields, and the older one names one namespace of several
anchors --json answers the free top-level per namespace and nothing else, so the row states which namespace its address is for instead of a bare field meaning one of several.
- RK345 · 410dea6The budget every other field is read before is the one an every-turn file has no door for
budget --file reports what an every-turn file costs in lines and bytes and what is left, off the same count the gate holds, so an edit to agents.md is composed against a number.
- RK344 · df42612A capture embeds only the file a finding named, so a lint report from a three-file project cannot be replayed
--embed carries every governed file the config declares, and a replay reads a capture in either spelling so the reports already on disk still run.
- RK343 · eaa628eA replay reports a defect as still reproducing from a staging holding none of the files the command reads
A replay checks the governed files the staged config declares before it runs, so a capture carrying fewer than the command reads answers nothing.
- RK342 · 915270cA claim's read-back reports the files its own transaction wrote as owned by nothing
A claim's read-back names the governed files its own transactions wrote, so a scope carries only the code.
- RK341 · 12476d2A capture records no environment, so the field defect RK337 traced was unreplayable
A capture carries the text-handling variables and the codecs the three streams had before main hardened them, read at import, and replay names which of those this process does not share.
- RK340 · 2df078eoutline anchors are one namespace across prose roles, and every outline starts at I
A prose file declares its own namespace in [refs], so its addresses are written §<prefix>:<x.y> and two outlines that each start at I are two sets of addresses rather than one read twice.
- RK339 · bf79bbethe verb that writes a marker is the one whose name reads as the report
status with no arguments says it writes and names stats, and claim says the same about claims.
- RK338 · c136601The payload validator's own test cannot decode the report it asserts on, so it fails wherever the plugin is published
The three subprocess readers name UTF-8 instead of inheriting the locale codec, so the check RK334 stopped from skipping now runs on the machine that ships the plugin.
- RK337 · c79952aA crash in the environment's own stdio encoding is unreproducible and untested
tests/test_encoding.py runs the CLI under ascii, cp1252 and utf-8:surrogateescape reading bytes: UTF-8 on both output paths, strict in, a surrogate escaped, the pre-main window stated.
- RK335 · 1d8cb87The job that gates a release pipes an unpinned remote script into bash, under the workflow's default token
The workflow declares
contents: read, the reader gating a merge is a version this file names rather than a channel, and the step proving the install happened proves it produced that version. - RK334 · 1044b81The payload validator skips wherever the Claude CLI is absent, which is every CI run that gates a release
A third gate job installs the CLI and proves it answers before running the payload test, so the check cannot skip where it matters — and validate needs no login, so a fork runs it too.
- RK333 · f05b7f3The refusal offers mcp__roadkeep__add, which is not the name a plugin-provided server gives it
The refusal names the prefix this project's own files decide: bare where a
.mcp.jsondeclares the server, and the plugin's own spelling where the tree the engine runs out of is one. - RK332 · 926b218Nothing runs the payload's own validator, so a surface that loads with empty metadata passes CI
A test runs claude plugin validate --strict over a copy of the whole payload, with one surface broken as the control that proves it read them, and skips where the CLI is absent.
- RK331 · f79ca3bThe skill's frontmatter is not valid YAML, so the loader drops its name and description in silence
Both descriptions are quoted and one reader refuses what YAML refuses, so the skill's name and /ship's allowed-tools reach the loader and the payload validates strict and clean.
- RK330 · e6b5b93Each feature needing state outside the documents invents its own file format and its own reader
Claim dates, declared scopes and write digests share one TOML store beside the lock, so a fourth feature extends a grammar whose round-trip is a property test instead of writing a fourth.
- RK329 · 1b5ea61the two prose arguments of one command disagree about stdin, and the shell-hostile one is the literal
Every prose argument reads stdin on '-', so a sentence carrying a backtick or an apostrophe never meets a shell.
- RK328 · f431c82The one queue repair that is fully derived has no fixer, so a clean tree still costs a hand edit
--fixdrops the queue entry whose id the ledger holds as shipped or retired, naming each one at the line it was read from, and leaves the order and every live entry alone. - RK327 · 80b6946A departure leaves the priority entry that named it in place, so the queue outlives the line it ordered
Every door a line leaves by drops the entry that named it, in the same transaction, and says so.
- RK326 · dd23f1aThe gate passes a priority entry naming a shipped id, an unknown id or a block nothing declares
The gate resolves every queue entry as it resolves a dep, so a token naming shipped, retired, set-aside or unknown work fails at its own line and column.
- RK325 · b9215faThe queue that outranks the id order lives in the one file nothing governs, so no verb keeps it true
The queue is a governed Priority section of the roadmap with an insert, a drop and a read, and it wins over the config.
- RK324 · cae2519brief calls a shipped task ready, so the one command meant to start work invites redoing it
brief answers shipped for an id the ledger holds, and quotes no unblocks count for it, so the command a session starts work with never describes finished work as startable.
- RK323 · 1d266f9The published payload carries this repository's own CLAUDE.md, which the loader warns is not context
The context file moved to .claude/CLAUDE.md, read the same way in the checkout and no plugin surface in the payload, so the validator's one warning is gone and its output is signal again.
- RK322 · 05af7b7The payload's root .mcp.json is auto-loaded as a plugin surface, naming a path no adopter has
Which of the payload's two declarations launches is measured: the manifest's wins, the root file answers only where nothing declares, and a test holds the line that decides it.
- RK321 · fc9aaddThe manifest declared the hooks file the loader already auto-loads, so no surface loaded at all
The duplicate reference is gone and the convention is what finds the file, so the three hooks, the five skills and the server load on a marketplace install instead of failing together.
- RK320 · 1a4c1aeThe version bump stages two whole files, so an unrelated edit to either rides into the next commit
The hook reads the working tree before it bumps, and where either versioned file carries an unstaged edit it writes the number and stages neither, so a commit carries only what somebody staged.
- RK319 · 5f9e000A branch that refuses --json cannot be served at all, and nothing states the coupling
the command declares which argument its json is the form of, and a test holds every served tool against that declaration.
- RK318 · 7785f46The command the staleness note tells the reader to run is not the act the tool was called for
the note spells the verb plus the always flags that make the tool that act, resolved through the parser as argv does.
- RK317 · 73a7f71The driver path accepts a --json it silently ignores, on the one path git actually invokes
the branches that cannot structure an answer refuse the flag by name, before anything is written.
- RK316 · 655d407Which bounds table describes a tool is a verb spelled in a function, where every other per-tool fact is a field
the divergent verbs are a declared table whose every key a test holds against the commands the CLI accepts.
- RK315 · ab30a6eA test asserting on this repository's own docs fails when another session writes them mid-run
a test asserting about this repository's docs reads one coherent copy taken at collection, so a concurrent session's ship changes the tree and not the fixture.
- RK314 · 863cb07The marker argument publishes no enum on the one tool whose whole job is writing a marker
one bound serves both dests that mean the open set, and the filter that reads any governed file publishes the union.
- RK313 · 0384637The one refusal a stale server does explain names only a remedy the agent cannot perform
the staleness note closes with the verb through the CLI, which is the one remedy available inside the session that reads it.
- RK312 · 28fb46bThe refusal that demands a ref names nothing that would produce one
The refusal names the block's family and the free address under it, and anchors --block is the read it points at.
- RK311 · ca29b2eA body refused for one word is discarded whole, so the check costs what the limit saves
A refused body names what each paragraph costs and which is longest, so the second draft is composed once (design §RK311 superseded: the add --check it ranked cheapest costs a send twice).
- RK310 · 56749a5A design section can carry a stale premise and ship drops it in silence
A shipment records what the design it deleted had been wrong about, in the ledger's own sentence, so the reader who found out is not the last one who ever knows.
- RK309 · 782b1f7Every scope restates the governed files the tool itself just wrote
a departure prints the governed files it wrote itself, so a scope declares only what the author chose.
- RK308 · 30c1dc8The verb that declares a scope has no tool on the surface it was built for
the verb that declares a scope is served as the tool scope, both writing flags exposed and the read left to ship.
- RK305 · b8f92a9The scheme suggestion is suppressed by a majority that shipping erodes
adopt names the other scheme only where the declared one left an address unread, so a file it reads whole is never told to switch however the ratio falls.
- RK304 · 2b00f2bThe one closed-set argument on the MCP surface publishes no enum, so a role nobody declared is refused after the call
role publishes the declared files of the kind its own command means, narrowed per project and empty on none.
- RK303 · 4588efbThe section budget picks the first of two prose files declaring one anchor, where every other reader refuses
budget refuses an anchor two prose files declare, as every other reader of one does; --role names which, and a line's own budget keeps its fields and says why its section half is empty.
- RK275 · f1d15c4No MCP tool asks whether git would run this driver
merge --check is served as the tool merge_check, read-only and answering both halves of the wiring as fields.
- RK267 · 2e94fe8A staleness note lists every changed module and hands relevance back
the note names the modules that both moved and decided the refusal, and says nothing when the sets are disjoint.
- RK307 · 3654f3cA scope corrected mid-task is restated in full or not at all
claim --add-path names a path the work turned up without restating the scope, and the row is still replaced with the whole of it.
- RK306 · 1bc4ca9A closure leaves the claim its departure would have released
The closure path reconciles the registry as its sibling does, so a line closed against an entry already on disk releases the claim and the scope it carried.
- RK302 · 176ca01section add writes an anchor another declared prose file already holds, and only a retired one is refused
section add asks the project's declarations rather than the file's, so an anchor a sibling prose file already holds is refused before the write.
- RK301 · 720cf79The pre-write budget is silent about the one field in the same transaction that also refuses
budget carries a section row for the body add --section writes in the same transaction: the role's word limit, what that anchor spends, and an aim that sits under the limit.
- RK300 · 246c98bWhether a block still holds open work is computed in two modules
Document.holdsis the one reader both the event line and the gate's note call, and a source test says those two are the only callers. - RK299 · 673a023A report names every path relative to a root it never states
Both summary lines end with
(in <root>)and--jsonleads with therootkeyinstallalready uses, so every relative path in a report resolves. - RK298 · d02e946A shipped line's commit cannot read the scope its claim carried
A departure prints the
git add --line for the scope it releases, so the answer is in the output the committer is already reading. - RK297 · f43a2d0The read that says which anchor address is free asks one prose file on a project with two
anchors reads every declared prose file, so the free address is the project's and not the first file's, and any address two files both declare is named before a write can double it.
- RK296 · dec83c8An undeclared-block refusal still lists every label the file declares
An undeclared-block refusal names the file and the verb and stops listing every label, which
shadingalready answers by name in the one case it mattered. - RK295 · 0b6673eA scope naming a path the tree does not have is recorded in silence
A declared path that is in neither the dirty set nor the index is marked where it stands, so a typo reads as one instead of as a complete scope.
- RK294 · 3a0f849Nothing calls the scope at the moment the commit is made
shipandretirename what the tree holds that no claim of theirs does, read while the claim is still live. - RK293 · 9970ee0anchors names the next address under every family and not the next family
anchors now prints the next free top-level above the rows and orders every family by the number its numeral spells, so the address a reused block needs is derived rather than read off a tail.
- RK292 · fc15f1cThe scope line names files from the project that did not supply the target
The scope line asks whether the target is declared here, so a file no project owns names no siblings and states the narrower limit instead of offering files nobody can hand over.
- RK291 · 2960d99Nothing in the estimate says which checks it did not run
The report names the governed files it did not open, so the one class the estimate cannot decide is stated as a term of the measurement instead of being resolved from a file that cannot settle it.
- RK290 · f7872beThe estimate cannot see any finding that needs more than one line
adoptcounts whatwithinfinds — the half of the gate one file decides — so a duplicated id is priced instead of read as conforming, and the two disagree only across files. - RK289 · 8901b54Only one payload is held to the dataclass it renders
Estimate,PlanandRemovalare each held to their payload by a test over their fields, with the two renames declared beside it so the boundary that names them stays. - RK288 · 85201bbA rationale file's anchors read as absent under the other scheme
A prose file's own heading anchors are a second source for the scheme, so
--sectionsnames--ref-schemetoo — and only where the other scheme accounts for more of the file than the declared one. - RK287 · efde7c4A section's word count includes its subsections, so it names a figure no limit is measured against
every verb that prints a section's size now states its own prose and its subtree where they differ, with the role's limit beside them, so no figure stands next to a limit it is not measured against.
- RK286 · 9616bafThe declaration a ledger reject names does not change the count
The reject names every slot a line needs, and
adoptre-reads the file under each[ledger]declaration to report what it recovers — whole hypotheses, the slots not being independent. - RK285 · 7ac6d23The estimate calls a conforming backlog a total rewrite
schemescounts what the pointers spell and names--ref-schemethe way the prefix half is named, and the round-trip line says which reading produced its number. - RK284 · 9bad1edUninstall reports keeping a workflow the project never had
removalreads the workflow off the disk instead of a constant, so a project with no CI is told nothing was kept rather than told to delete a path that is not there. - RK283 · 1e5d613budget answers for the task line only, so the two largest prose limits are discoverable only by failing
budget --anchor answers a section body in words and budget --non-goal the list's two limits, so the two largest prose ceilings are read before a word rather than met as a refusal.
- RK282 · a0d49f3The refusal that most needs the adopt door is the one that does not name it
The would-overwrite refusal names
adopt <file>for the backlog it found, spelled relative to the project, so the branch reached by a repository that never adopted gets the door too. - RK281 · 75af1bbA rationale file not already using the sigil reads as no sections at all
unanchoredreads headings that carry prose and no sigil, so an unadopted rationale file prices its sections, while a level-1 title and a container heading stay out of the count. - RK280 · 3655014Two sessions each ship a commit carrying the other's code
A claim now carries the paths its commit owns, so
claim <id>names what the tree holds that another live claim says is its own. - RK279 · 767d3ebA backlog written as an ordinary Markdown list is priced at zero
Document.listedcounts top-level bullets and ordered items under a declared block, so a checklist prices like a table, and the preamble, non-goals and nested detail stay out of it. - RK278 · b6756a9The verb still names a driver the check has stopped asking for
A
Wiringvalue joins both halves once and every caller renders from it, so the verb withholds the advice the check withholds and no surface can reach for a fact the other has. - RK277 · 9c0a87dThe check demands a driver in a repository that routes nothing to it
The config half is demanded only where a governed file routes here now or once registered, which spares an all-claimed repository without withdrawing the repair from an unregistered one.
- RK276 · c118cbfOne write reports a skip on only one of its two surfaces
One
registration_reportrenders both surfaces, differing by the indent column that pushed them apart, and a test over the dataclass fields fails where the next one reaches only the JSON. - RK274 · 5a3380cThe repair a check names takes over a wiring the same check just reported
registerskips a governed file another driver is named for and reports the skip, and--checktreats it as settled — so the repair no longer overrides what it reported, nor fails forever. - RK273 · a9e75adWhether git sends a file to this driver is guessed from one file
attributedaskscheck-attr, so a rule set in a subdirectory or.git/info/attributescounts, a file wired to another driver is named rather than read as unset, and no git isunknown. - RK272 · 17ebd0cThe repair a driver check names writes one of the two halves it just failed on
merge --checknames the repair of each half it found broken — the verb for the attributes, thegit configline for the driver — so following the advice ends the check instead of repeating it. - RK271 · d6b5738The capture offer closes the gate's own answer as though the tool had failed
A read-only command's own exit 1 is a verdict and closes with nothing; a crash in the same command still offers, because
maincarries that as a flag. - RK270 · b1397c1A driver check that answers current has not looked at .gitattributes
merge --checkreports both halves and exits on their conjunction,registeris written on top of the same read so the check cannot drift from the write, and a partly-sent file is its own state. - RK269 · 106146cA block emptying is stated once to the console and recorded nowhere a later verb can read
lint --sincenotes every block this change emptied or reopened, which is what the shipped pre-commit hook runs and what the console-only event never reached. - RK268 · c561382A cached derivation survives the test that monkeypatched what it read
An autouse fixture clears the two caches a monkeypatch can poison, and an inventory of all six names why the other four are cleared for nothing.
- RK266 · cd79f73A registered driver that stopped resolving is silent until a merge
merge --checkreadsmerge.roadkeep.driverback and exits 1 where git has no driver it can run, keeping a command that merely moved apart from one this machine no longer has. - RK265 · 1df7dcebudget omits the pointer under an outline ref scheme, so it over-reports the room by the anchor width
budget takes --ref and counts the pointer as structure; unnamed under an outline it assumes the widest anchor on file and names that, so the answer is never more room than add allows.
- RK264 · 7de9c11The cost query spends 95% of its answer on records its own percentiles summarise
The answer is the distribution plus what was elided from it — 23.7k characters down to 1.6k — and the sample it summarises is
--records, a count and never a cap. - RK263 · f7bcf12A test asserting about the live checkout fails the same way whether code or the tree moved
A session
checkoutfixture skips the five checkout-reading tests with a warning naming the file that moved, so-W errorstill fails them. - RK262 · 144d1c0A section add writes a heading ship will later decline to delete
A heading written for a task now carries its id, appended by the writer that holds it, so the section binds to the line and ship deletes it instead of keeping it.
- RK261 · 3bb38b5A denial still loads the document model and the lock for names it never reaches
DocumentandLockBusyare reached inside the one method and the one function that use them, so a denial loads 5 modules at 44.6 ms rather than 7 at 50.1, and no command pays more. - RK260 · 490dc37Every denied edit imports the MCP server module to read a tuple of tool names
Each hook event imports in the branch that uses it and
wordscomes fromschema, so a denial loads 7 modules rather than 25, measured at 50.1 ms against 84.5 with a test holding the set. - RK259 · 1d2b91bThe body's word budget names a prose role the project may not declare
The note names only the prose roles
config.hasdeclares, taking its default fromprose_role, and falls back to the base number where a project declares no prose file at all. - RK258 · d1da2d7The three prose bodies publish no limit, so 250 words reaches the author as a refusal
The three prose bodies publish their word budget in the unit it is declared in, per role and with no
maxLength, so the number reaches the author before the paragraph is composed. - RK257 · 8986a1eA ship refusal names the missing block heading but not the verb that writes it
The refusal now names the file whose labels it listed and spells
block add <label> --title, the one verb that declares the heading wherever it is missing. - RK256 · b08f64cMessages outside the guard still spell the console script, the capture offer included
Sixteen sites in seven modules print
provenance.invocation(), and a test over the package's own constants holds the inventory, so a new message naming an underived command fails there. - RK255 · 8fc417eThe merge driver git is told to run is a bare console script
registerderives the driver frompersisted()— console script, launcher or module path, absolute and quoted for the shell git runs — and prints what would end it. - RK254 · 23f4883The guard prints a shell command a plugin install does not provide
provenance.invocationderives the shell prefix from a PATH lookup, the shipped launcher and the module path, and the guard's denial, gate and session notice all print that instead of a literal. - RK253 · ca60c53A field this project closed is refused as one that does not exist
A closed field is reported as declared by the CLI and shut by this project's config, over its own names, so only a name nothing declares still reads as
no such argument. - RK252 · b726eddThe declaration a closed field names is written beside its predicate, not with it
One
Conditionalrecord per dest carries the predicate that opens a field and the sentence a refusal gives, so the two cannot be edited apart and_withheldindexes without a guard. - RK251 · 23c42eaA conditional argument with no reason to give raises while composing the refusal
_withheldreads its reason with a fallback, so a field missing one drops a sentence instead of raising inside the answer, and a test holds both tables against everyTool.conditionaldest. - RK250 · 8dd3aacThe drift note asserts a wiring it never observed
The checkout branch states the fact its directory relation establishes and the remedy that follows, naming no launcher, so a venv or a local marketplace under the root reads nothing it has not got.
- RK249 · 6419517The add answer names the id it derived and not the pointer
add --jsonreportsrefbesideid, so both derived addresses are read as fields — including where--sectionanswered the pointer andneedsis null. - RK248 · db884d2The drift note reads the launch directory, not the root the wiring is a fact about
The remedy reads the project root the call already discovered, so a server started in a subdirectory still names the restart a checkout needs, and only a broken config falls back to the launch path.
- RK247 · 744e0f9Nothing says which outline anchors history still cites
anchors [--family <x>]reads live and retired addresses out of the file and its diffs with the next free child, andsection addrefuses a reused outline anchor by name. - RK246 · 9e88500The staleness note names a reload that cannot fire on the tree it fires in
The drift note names the remedy that restarts the server reading it,
Engine.carried_bydeciding from where the code lives whether a patch bump reloads it or only a restart does. - RK245 · fb31d4bThe number that binds an amend is the one figure
budgetstates only in charactersShare.roomfloors the remainder into words,budgetandbriefaim at what is left instead of at the whole field, and--jsoncarries it beside the characters that refuse. - RK244 · a0c6f6cA paused id cannot be named as what supersedes a retired line
retireresolves the replacement throughBacklog, so a paused id is a supersession the tool accepts, and the answer names which of the three files holds it. - RK243 · 38288d8The one refusal no prose edit fixes now advises deleting words
The word figure is now the caller's
prose=switch, soline.too-longnames the surplus and no edit, and the field refusals a shorter sentence does answer keep the hint. - RK242 · 6541d64The stale-import notice makes a correct refusal look like a bug
The drift note states a fact about the process beside a refusal that stands as the running code's answer, so a correct constraint no longer arrives pre-doubted and no call is spent disproving it.
- RK241 · 4e650efThe MCP add tool cannot write a line on an outline-ref project
The MCP
addexposesrefwhereroadkeep.tomlsetsref_scheme = "outline", so an outline project writes a line over the protocol, and the refusal names that table per field. - RK240 · bc5d1c6Where an id actually is gets composed by two modules in the same words
Whereaboutsinbacklogis the one composer of where an id is, soresumeand both section refusals read one sentence — andrecord amendis offered off the marker, not off a non-empty string. - RK239 · dc79ca1Two prose files declaring one anchor is silent until a line points at it
section.ambiguousfires at each of the two headings, so Turing's 13 doubled anchors are 26 findings where the pointer-end check reported none. - RK238 · 13e970c
anchor.unknownnames the one remedy RK4 closes for an id the ledger holdsThe refusal names where the id is and the doors that open —
record amendor an outline anchor — instead of theaddthatrefuse_reuseforbids for an id the ledger carries. - RK237 · c978705A block whose heading carries a pre-adoption note can never be withdrawn
block drop --prosetakes a heading's loose prose with it, refused still over anything a task or a section owns, and the refusal names the flag where prose is all that stands there. - RK236 · 66c7d0eA departing line takes a standing memo's subsection with it
A departure deletes only the section it owns, by
lint's own reading of ownership, so a line pointing into a standing memo leaves it and the reason names who it belongs to. - RK233 · fb6043dA non-goal
briefprints by its lead is onedropcannot addressOne reader:
readreturns every bullet with the leadleadsprints, shaped or not, so a printed constraint has the door the gate's shape finding asks for. - RK232 · 2abafe7Writer and gate part company again on an anchor two prose files declare
The count came back thirteen, one of them pointed at, so
_pointed_attakes the gate's last condition: an anchor two prose roles declare is charged its own prose by both readers. - RK231 · 4fb79d6A paused task's rationale cannot be corrected, the door refusing it as prose nothing owns
_task_forreads both live roles, so a paused task's design is amendable and a section can still be written for it — the refusal is left with the anchors no live line names. - RK230 · e2b26ed
add --sectioncannot write into the only prose file a project declaresadd --sectionderives the prose role instead of naming improvements, so the one-write door reaches the only file a strategy-only project declares — and the report names the file it wrote. - RK229 · e18ed55
deferreports the carried design as kept in a file it never asked declares itdeferresolves the anchor across the declared prose roles and carries the role, so the report names the file holding the design — a strategy-only project got a KeyError after both writes. - RK201 · 4c95036A length refusal states its surplus in the one unit the author composing the retry cannot count
A character overrun now names its surplus in words too —
delete 29 characters — about 5 words, ceiled off the aim's own constant, so the retry is a deletion and not a re-guess. - RK200 · 137ea4aWhich governed files no verb wrote is answerable only by trying to end the turn
writesreads the digest record against the files — attested, unattested or unrecorded, per role, with the record's path — and moves no baseline, so the fact survives being asked for. - RK235 · 104cf56
installreads the checkout that ships the plugin as a project to wire intoAt the plugin's own root the two copies are named as unwritten, not computed, so
--checkthere reports drift and not a category error — anduninstallrefuses, those entries being the tree's own. - RK234 · 5080b94Nothing in an adopting project runs the gate that holds its vendored skill in step
The
SessionStartnotice names a vendored copy that drifted from the checkout answering, before the session loads it — 0.86ms wired, 0.07ms where there is no copy, and never the gate. - RK228 · 5570ffdHow git spells a token is recomputed from scratch per token, and twice for most of them
The root is normalised once and a token is spelled once per base, so the path check costs 81 ms of a 306 ms gate instead of 270 of 529.
- RK227 · 21bd475The invisible-codepoint check calls a Python predicate once per character of every governed file
The check asks which codepoints occur before asking where, so a clean file is cleared in 6 ms instead of 148 and the whole gate costs 517 ms.
- RK226 · a43dc09A path written with Windows separators is a path on one platform and a filename on the other
A path token is normalised to forward slashes before anything asks, so one spelling reaches the disk, git and the report whichever platform wrote the line.
- RK225 · 1833c9eA run judging a revision stats the working tree once per token and throws every answer away
A revision run asks the tree it is judging and spells paths lexically, so Turing's check costs 270 ms and no filesystem call instead of 559 ms and 34070.
- RK223 · 3cb2922The path check reads every ledger entry twice, and the gate takes seconds on a large ledger
The check gathers candidates and findings in one pass, so Turing's ledger costs 559 ms of the gate instead of 2.9 s and every entry is read once.
- RK222 · 99f21d8show pays two git listings on every call, on the read that starts every task
The directory listing is a callable resolved on first need, so a task whose paths all resolve asks git nothing and show is back to 1.0 ms here.
- RK221 · 5f871dfshow and lint disagree about whether a deleted artefact is a path the task names
The directory set is read from the index by default, so show and lint give the same answer about an artefact the working tree no longer has.
- RK220 · b3643e2One path that escapes the repository disables the ignore check for every other path in the ledger
A spelling that climbs above the root is left out of the ignore batch, so one such path no longer disables the check for every other path in the file.
- RK219 · ea0d43dA cache on the tree answers whichever question it was asked first, and its key is nothing
The ignore answer is stored per token, so a second caller is answered about what it asked, and a repeat costs no second subprocess.
- RK218 · f77ed58The same revision answers two different things about a path depending on an untracked working file
A run naming a revision asks git for both a file and a directory and never asks this disk, so an untracked file created since the ref stops silencing the revision's own finding.
- RK217 · 8dc8fddDeleting a whole tracked directory silences the check that exists to notice a deleted artefact
A path claim is decided against the directories the repository tracks rather than against this disk, so deleting a directory reports what deleting one file already did.
- RK216 · ccee60fA refusal named a block the caller never mentioned, and it is a prefix of theirs
A refusal naming a label that shares a prefix with a declared one says so and warns against the second heading, at the write and at both reads that compose the same sentence.
- RK215 · 5613657A top-level section's own prose cannot be corrected once it has subsections
section amendcharges the subtree only where a line points at the anchor, which is what the gate charges, so an unpointed container's intro is amendable on its own prose. - RK214 · e81dc5bA ledger that declares no marker closes one of the three doors out of the roadmap
The refusal stands and the surprise does not:
lintnames the closed door every run and the generated declaration says so where the choice is made. - RK213 · db4bb12A gate whose answer turns on whether an ignored build directory happens to be on this machine
The gate asks git check-ignore before reporting a path, so a build output the repository declared untracked answers the same on every machine.
- RK212 · c6cdde9A citation of a shipped design cannot be told from a citation of one that never existed
origin takes an anchor, so a citation of a shipped design resolves to the commit that wrote it and the one that took it, and a typo answers that nobody ever wrote it.
- RK211 · 7f2abe5Every governed write now re-derives two projections and nothing measured what that costs
A parse is memoised by the bytes it came from, so the refresh re-reads nothing the command already read: a status write on the largest live backlog went from 94 ms to 46 ms.
- RK210 · e7eae5fA pinned corpus config reports six artefacts missing from a tree it deliberately does not carry
A pinned corpus is gated with lint at the revision, which moves the governed files and the tree together, so the three false path findings per corpus are gone.
- RK209 · c3d38b6section drop deletes prose other sections cite and reports nothing, the door the ship fix did not reach
section drop names the sections left citing what it deleted, from drop's own answer, so all three doors onto a deletion report the same fact once.
- RK208 · e775de9A block only the ledger declares made every projection raise instead of counting it as finished
project asked the roadmap census for a label it took from both files, so a block whose work all shipped answered KeyError — found the moment every write started projecting.
- RK207 · 5df149bThe screen's copy of the guard's path rule was held by nothing, so widening one would open a hole in the other
RK204's write screen restates
_PATH_KEYSand the resolve-and-normcase test, and the two are now asserted equal — a key added to the guard alone would skip a write it refuses, silently. - RK206 · 7193fc5A section other prose cites is deleted by ship, and the gate reads only the pointer a task line carries
Ship names every section whose prose cited the design it deleted, so the dangling citation is repaired in the commit that creates it.
- RK205 · bf36e13The package publishes annotations that no checker is allowed to read
Answered rather than marked: the import surface is a declared non-goal, so no
py.typedships by decision — and a test holds the absence and the constraint together, neither being honest alone. - RK204 · 9945d69A denied Edit pays the whole package import that a shell command no longer does
An Edit naming no governed file costs 35ms above the interpreter instead of 128ms: the screen resolves the config from the path the payload names, and adds 0.8ms where it must load.
- RK203 · 43d41f9The layout index grows with the package and the budget holding it cannot tell it from prose
A test holds the Layout index against the package, the two modules it had already lost are named, and the measurement says compress the prose first.
- RK202 · 050a04aThe CLI parser is a pure function of the code and is rebuilt for every message
A tool call builds the CLI parser once per process, not once per message: the parser was counted and holds nothing the config declares, so a list call after the first costs 1.3ms.
- RK199 · be3ae10Every entry point pays a schema import to reach a module that does not read one
Importing the package costs 0.6ms instead of 27.7ms: the schema re-exports resolve on first access, so the screen that imports only stdlib no longer loads the format to answer a shell command.
- RK198 · 8e606baEvery tool call rebuilds the whole CLI parser twice, and the argument check is what pays
A tool call builds the CLI parser once instead of three times: the argv rendering, the prose lookup and the dispatch all take one index, and a list call costs 5.0ms rather than 12.7ms.
- RK197 · e1d366a
addasks for a rationale section that another declared prose file already holdsThe follow-up asks every declared prose role, so a resolved pointer is silent, and where none answers it names the role it means rather than
section add's default. - RK196 · 18f0f6dA pointer into the strategy file survives the ship that deletes the line pointing at it
The drop resolves the anchor across every declared prose role and rewrites the file that has it, reporting that file rather than assuming the improvements one.
- RK195 · fd8a334The roadmap's own amend would strand the same tail, and nobody has counted whether a line wraps there
The count is now the rule
rewrite_entryholds rather than one caller's, andamendandrestatetake--lines— measured: cursarei wraps 19 of 19. - RK194 · 91dbd21No query shows the lines a wrapped entry owns, so what a correction replaces is read off the file
showprints every source line a wrapped entry owns and its span, so the countrecord amend --linesasks for is a command's answer rather than a 290-entry ledger opened by hand. - RK193 · 5ff6d44Completing a partial rewrites the first line of an entry whose sentence runs past it
shipcompleting a partial rewrites the entry's whole span, taking--lines <n>where the ledger arrived wrapped and refusing the count where it replaces no entry. - RK192 · ae0ce39A pinned corpus hands out a config whose file reads go to the live tree instead
A corpus config is rooted at a copy of the pinned bytes, so document and lint answer about the revision, and checkout is the named door for the reads that run git.
- RK191 · 427022aThe refusal on a second partial names the entry in the way, not the id the step needs
A second
ship --partgets its own refusal, naming the id the delivered step is filed under in the spelling this project's[ids]declares. - RK190 · 279bff6A line's prose budget is discoverable only by writing a sentence and being refused
budgetanswers what a line leaves its prose fields — the deps and symptom anaddnames, or the line anamendholds — andbriefprints thewhy's share of the line it hands over. - RK189 · 8621f98A path claim is satisfied by a file of that name anywhere in the tree, and the floor was never measured
Both pins now hold the number the widening was argued from: five silences on Turing, four of them a unique file, none on Shio, and requiring a slash is refuted.
- RK188 · 9b6767eEvery write stales the derived README block, so the gate fails until somebody remembers
exportEvery governed write re-derives the README's block inside its own transaction, so the gate no longer fails on a file the task did not touch.
- RK187 · 47de350
export --readme --sitewrites the first file and then refuses the second, leaving one refreshedThe two projections are planned, both targets are asked, and only then are they renamed into place, so a refusal on either leaves neither refreshed.
- RK186 · 645f5a1
briefreports a pointer into the strategy file as resolving to nothingshowandbrieflook the anchor up in every declared prose role, name the file that declares it, and state the ambiguity where two do — the resolution RK172 gave the gate. - RK185 · 9390800The budget an author is given is in characters, the one unit a model cannot count
Every budget is published in words as well as characters, from a ratio measured over this repository's own 392 fields, so a first attempt aims at a unit a model can count.
- RK184 · 651f8d2A length refusal names the rendered total and not the field that is over or the surplus
Every length refusal names the field, the surplus and the word delete, so the author subtracts a stated number instead of recomposing a sentence against a total nobody wrote.
- RK183 · c1a6ec8The two field limits sum to the line limit, so a line obeying both is refused by the third
The why is held to the smaller of its own limit and what the line has left after its structure and symptom, so no pair obeying the published numbers is refused by a third.
- RK182 · 7543b92The round-trip corpus reads two foreign roadmaps and no foreign ledger, where the wrapped shape lives
Both pinned ledgers join the round-trip corpus, and a test asserts they still carry the 149 wrapped entries the property is read for, so the widening cannot go vacuous.
- RK181 · 6430412A section refusal names the file by its whole filesystem path, where the gate beside it names it relatively
Every section refusal names the file through
config.relative, the caller rendering the address and passing it in as it already passesclaimed, so one file has one spelling. - RK180 · 460f93bA subsection is written at a fixed depth, so in a file whose top level is deeper it is no subsection
A subsection is written one level under the section it extends, read off that heading rather than fixed at 3, so it stays inside the subtree its anchor names whatever depth the file nests at.
- RK179 · ea2f48dCorrecting a wrapped entry's why leaves the rest of the old sentence below the new one
A correction on a wrapped entry is refused until
--linessays how many it replaces, and the whole span is then rewritten, so no tail of the old sentence survives and no paragraph goes silently. - RK178 · ac6a271A line whose bold symptom turns out to be false has no repair
restate <id> --symptomcorrects the claim under the id that keeps it, so a false premise costs neither an id nor a section nor a departure that never happened. - RK177 · bf0c29dThe tool list can change mid-session and the client is never told, so it validates against a cached schema
A client whose cached tool list aged out is told: the server declares listChanged, holds one digest of what this connection was sent, and notifies when a config edit moves the descriptors.
- RK176 · ad62a53Widening the matcher to Bash spawns an interpreter per shell command and nothing measured it
A shell command waits 77ms for the hook instead of 184ms: a stdlib-only screen answers the payloads naming no governed path before the package is imported, and every other loads and decides as before.
- RK175 · 3112274An approved shell write leaves a valid line and no record of who wrote it
A governed file whose bytes no verb wrote is named as the turn ends: every write records a digest under the lock it already takes, and the Stop hook states one such change once, never asking it back.
- RK174 · bb390b5Listing the tools rebuilds the whole CLI parser fifty-two times and costs a sixth of a second
tools/listbuilds the CLI parser once and indexes every subcommand path off it, so 29 descriptors cost 1 build and 3.4ms where 58 builds cost 195ms. - RK173 · 03211f3A path a ledger entry names relative to its own module is reported as not in the repository
A path is satisfied by any tail of a tracked file, so an entry relative to the module it is about resolves, and a
#L35anchor is stripped before the file is looked for. - RK172 · 93e56b3A pointer resolving to a section in the strategy file is reported as resolving to nothing
A pointer resolves against every governed prose file and each is orphaned and budgeted by the same rules; an anchor two of them declare is
ref.ambiguousand is read as neither. - RK171 · f507b38Nothing asks which exposed tool can reach a read of the transport
Each parser declares what it takes off a pipe, so all three paths refuse by naming the argument and a pytest over every tool fails on a fourth instead of the session that meets it.
- RK170 · 8fc84deA tool call that reads stdin eats the transport it arrived on
A call gets a stream already at EOF instead of the client's pipe, so a handler that reads prose refuses an empty body rather than swallowing every message queued behind it.
- RK169 · a7fa6d1section drop deletes rationale a live line points at, when the anchor is a bullet
The guard reads the name too, so an address under the anchor is claimed prose whether the file writes it as a heading or as a bullet.
- RK168 · 81119aaA busy checkout makes the gate exit like a violation, so a clean file reads as a failing one
The gate is declared a read and
--fixthe write in it, so a lint during somebody else's write answers about the format instead of about the lock — andreadOnlyHintis derived. - RK167 · 6bf13e4Three read-only commands take the write lock themselves, each in a different place
A read that can write declares which flag makes it one, so
dispatchdecides the lock again — and a test names the three and holds the property no call site could state. - RK166 · 78a017fA newly declared block cannot receive its first rationale section
A one-segment outline anchor opens a new top level, placed after the last one at the depth the file writes one at, and a task's section is placed by its anchor.
- RK165 · acd5323Clearing a stale row without a marker write means deleting every live claim with it
claims --prunedrops the rows that are not claims and keeps every one that is, so the precise remedy no longer means deleting a whole checkout's registry. - RK164 · 57de44cA claim on a paused or shipped id is reported as though no line ever carried it
The listing joins the ledger and the store as well, so an id that left the roadmap says which door it left by and only the leftover reads as one.
- RK163 · 734a308A release drops one id and reconciles nothing, so every row no door reported stays in the listing
Every write of the registry is a reconciliation against the lines it was given, and
followis the only thing that writes it — so a row no door reported is cleared by the next marker write. - RK162 · d6a6e61A shipped line leaves an entry in the registry that nothing will ever read again
The terminal doors release the claim on the line they take out, so the listing holds what somebody is looking for and not one row per shipped task.
- RK161 · dc48cfaWhich lines are claimed is answerable only as a side effect of asking for work
claimslists the registry against the roadmap — held, expired or stale, oldest first, with the window and the file — so the last question about a claim is a command like every other. - RK160 · b7274dcSetting the in-progress marker on a line another worker holds takes the claim without a word
The marker write is where a taken line is refused, so
status <id>on the in-progress marker cannot re-date somebody's claim — and nothing re-dates a live one at all. - RK159 · 201ed1dTwo places write the claim on the one path that takes one, and the second overwrites the first
The marker write is the only writer of a claim:
takeandholdread the registry and no longer date it, and one test states that all three doors leave the same thing behind. - RK158 · 8211f17Marking a line in progress by hand asserts nothing, so the next caller is sent at it
A marker write now moves the claim with it: the in-progress one dates a claim and any other drops it, which is the rule the read already assumed of every door but this one.
- RK157 · f8161f5A new ledger entry lands between the last entry and its own wrapped lines
Entrycarries the span the parser already knew, so an insertion lands after the whole last entry and a removal takes the whole one. - RK155 · a4271d1A tool call answers with the code the session started, so a refusal can name a key the config declares
A refusal names the build that read the config and which modules moved after the process imported them, so a stale server states the cause instead of describing a file that is correct.
- RK148 · a6b54bbinstall wires four surfaces and leaves the merge driver to whoever remembers it
installnames the merge driver among the surfaces it does not write, and--register-mergewrites the.gitattributeshalf during adoption while thegit configline is printed. - RK147 · ca45abdA prose file's own limits are enforced by the gate and ignored by the write that creates the text
section addandamendare held to the schema the document was loaded under, so a[limits.improvements]declaration binds the write that creates the text and not only the gate. - RK146 · 87fc2a6A tab is reported as an invisible character and repaired by nothing, for ever
A tab in the indentation is the nesting RK49 keeps and is reported by nothing; past it,
char.tabnames the separator and--fixwrites the space the format meant. - RK145 · 7dd8d05A block can only be opened last, and where it sits is what every ordered answer reads
block add --after <label>opens a block beside a named neighbour, resolved per file, and refuses where a file that wants the heading declares no such block. - RK144 · 830a6d1Declaring a block writes three files and nothing takes the heading back out
block drop <label>withdraws the heading from every file where its subtree is blank, and names what is filed under it where anything is. - RK143 · 673d197A ledger entry filed under the wrong block can be corrected by no verb at all
record move <id> --to-block <x>re-files a ledger entry under another heading, reporting both positions and refusing one no heading declares. - RK140 · 34d2052The CI workflow
installwrites is red on its first run for every backlog with debtinstallruns the gate while it writes the workflow: a clean project gets the strict one, a backlog with debt gets the baseline plus the count it defers and when to drop the line. - RK139 · f67f0aa
adoptmeasures the task lines and says nothing about the non-goals it will governadoptreports the non-goals too — parsed, unread, over, and the longest lead and reason against their limits, declared or not — and counts them in the headline only where the project opted in. - RK138 · 7d14600Un-wiring a project is the hand-edit this tool exists to deny
uninstalltakes out this project's server entry, the guard's three hook entries and the copied skill — keeping every entry that is not ours, and the CI gate, which calls the published action. - RK137 · e5f285cThe copied skill names a shell command that does not exist in the project it was copied into
The copied skill names
python "<launcher>"— the pathinstallalready wrote into the server and the hook — and a shipped skill that stopped spelling the sentence is a refusal, not a copy. - RK136 · 4fb1e89The section budget charges a measured table exactly what it charges a paragraph
A table row, a fenced block and a blockquote cost the section budget nothing, so the limit charges the argument an agent has to read and a list stays charged.
- RK135 · 398be2bA rationale section whose task points at a different one is reported by nothing
A section whose title names a live task no pointer reaches — its own or another's, directly or through a parent anchor — is reported as
section.unreachable. - RK134 · c6e32b5A section that four open lines point at is reported stale, and the drop it names is refused
The ownership check reads the same pointer index
section droprefuses from, so a section open lines still point at is silent and the finding names only remedies the tool allows. - RK132 · c681fddThe README block is read and written back with nothing checking the file did not move
The bytes read from the README are compared against the file before the rename, so a splice landing on top of somebody else's write is refused at the gate instead of applied.
- RK131 · 1a79172The check that a transaction's files have not moved is taken before writes that take it again
A transaction renders every file to a scratch name, then checks all of its targets, then renames them, so a writer landing between the check and the last write is caught before anything has landed.
- RK128 · e1d8056The guard denies Edit and Write and answers silence to a shell command writing the same file
Bashis matched and answered withask: a governed path mentioned in a command is the decidable half, and what the command does with it is the user's call, so silence is no longer the answer. - RK125 · 05aad70Declaring an unmarked ledger takes a whole verb away, and the refusal offers no way through
A retirement is the one line a markerless ledger marks — a departure being the status such a file does not state about itself — so
retireis a door on every project and 🗑 is never read as ✅. - RK122 · 5fe5db3id.two-files calls a correct half-shipped state a contradiction
A ⏳ line or an entry naming a half is read as a live partial and passes, so the gate stays loud only for the shape it was written for — a line shipped and not deleted.
- RK114 · 954125bA subsection whose task is gone is exempt from the ownership check that would report it
A sub-anchor is owned by its first segment, so
§RK34.1belongs toRK34and a subtree a renumber left behind is reported stale or orphaned instead of exempt. - RK111 · ff9a025The MCP write path cannot write an id the deriver never mints
A project declaring
[ids] suffixgetstask_idonadd, bounded to require the letter, so the split the skill prescribes is a call and not only a terminal, and a bare number is still derived. - RK110 · fda510c
adoptcounts the id findings without saying they are one declarationadoptnames each leading-zero width and the split letter as an[ids]key with a count, so nine findings read as one unwritten declaration — and whether to write it stays the reader's call. - RK107 · d8f22cfA project that declares the format still has nothing enforcing it
Dumont runs the plain gate green —
[ids] pad = 2made its nine ids legal and rewrote no line — beside Turing's baselined one, so four projects declaring the format is two that cannot drift from it. - RK105 · a561e5cA concurrent edit in another repository turns this project's suite red
Every assertion about a foreign corpus reads a pinned revision, so an edit next door cannot turn this suite red, and the live tree is read as an advisory that warns rather than fails.
- RK104 · ca2de76Nothing gates the README block this tool writes, so a stale restatement passes lint
lintsplices the derived block into every file carrying the markers and compares, so a projection nobody re-derived fails the commit rather than a pytest fixture an adopting project never installs. - RK103 · 6fbd29cA bullet whose marker holds a space is read as prose and reported by nothing
A bullet putting GitHub's
[ ],[x]or[]where the status goes, with a bold id after, is a named reject — counted byadopt, inside what would change, and never offered as a marker to declare. - RK156 · f0fef51Renaming an id drops the claim on that line, so work somebody is holding is offered again
A renumber carries the claim to the new address with its age intact, and a defer drops it — the two doors that change a claim without the marker it is read against moving.
- RK154 · bc87da5The one call a session starts a task with never names the lines a claim kept out of its answer
A brief carries the pick's own answer instead of its reason sentence, so the door a session starts a task with names the held ids — and so does the absence where a claim is what emptied it.
- RK153 · 54b01bbA checkout whose plugin version never moves is one the session keeps running the old copy of
.githooks/pre-commitruns the release's own bumper on every commit and never blocks, so a plugin loaded from this checkout is re-read after each one. - RK152 · 03e2b7dA started task that is blocked is reported to every caller with nothing saying somebody holds it
A stalled line now reports the live claim on it, so
started and stuckreads apart fromsomebody is on this— whileheldstays the candidates the ranking stepped around. - RK151 · 6b780e9Every project's claims expire after the same hour, and how long a task takes is not the same everywhere
[claims] helddeclares the window in minutes, bounded at both ends where it is read, so a project states how long its work takes andheld = 3600is refused instead of becoming a lock. - RK150 · f2938abThe query an agent runs most may now ask permission, for a flag it did not pass
The claiming flag is its own tool,
claim, whose argv and description are stillbrief --claim's own — sobriefandpickcarryreadOnlyHintagain and a client has nothing to ask about. - RK149 · 83e024eThe door the skill sends an agent through to start work cannot take the line it hands over
brief --claimtakes the line it describes inside one lock, andbrief <id> --claimtakes a named one — refused, not re-dated, where another worker already holds it. - RK142 · 080f6d6The ledger inherits the roadmap's problem statement by default, and no verb can revise it
shiprefuses at input where it would write an entry without an outcome, so the ledger's sentence is the author's rather than the roadmap's problem statement inherited by omission. - RK141 · ca6b3e2Opening a block needs a heading only a hand-edit can write, and the guard denies that edit
block add <label> --titledeclares the heading in every file already organised by blocks, at that file's own level and separator, after the last block's subtree. - RK130 · 5230360A transaction that stopped after its ledger write can be finished by no command
shipreads the ledger side too, so an entry for a still-open line closes it — unless the files say the work is in halves, or the two describe different work. - RK129 · 0f4386eRetiring a task whose half already shipped deletes the record that it did
The completion path is a ship's alone: a retirement against a task whose half the ledger records is refused, so the sentence about what landed is not deleted silently.
- RK127 · 60046dbrecord drop assumes a duplicate is redundant, and picks the later entry either way
record droprefuses two entries that do not say the same thing, andrecord renumber --linegives one of two deliveries its own address without moving it. - RK126 · 2b0e210Corruption inside a ledger entry is reported by lint and repairable by no verb
lint --fixdeletes every codepoint that is not text wherever it sits, including lines no parse reaches; a Zs that renders as a space and a rejected bullet stay the author's. - RK124 · 45dee80A ledger entry can be written and deleted but never corrected
record amendrewrites an entry's why, or a partial's qualifier, where the line already is — the symptom is the claim and the block is a move, so neither is a field. - RK123 · 412a9cbAn open task's rationale cannot be corrected by any verb, and the hook denies the hand-edit
section amendrewrites a live section's own prose or its heading text, leaving the subtree and the anchor alone and charging the budget what the gate charges. - RK121 · ba505f6A task delivered in halves has no representation, so the corpus invents one the grammar cannot read
A ledger entry may carry the qualifier the corpus already writes, and
ship --partis the verb that sets it and the latershipthat removes it. - RK120 · 04f05c5Two branches each spend the same id, and the merge git produces is a conflict in a file only this tool may write
mergeis git's driver for the governed files: every id decided against the ancestor, an id both branches created named forrenumber, and anything unprovable handed back as markers. - RK119 · 9f76cf7Every agent asking what to work on is handed the same line, including one another agent already started
pick --claimanswers and flips the marker in one locked transaction, a claim expires and is stepped over rather than waited on, and the ids it held are named in every answer. - RK118 · bca39a0A reader can load a governed file truncated, and an interrupted ship leaves two of its three files written
Every file is replaced in one step rather than truncated and refilled, and the order of a transaction's writes is chosen so each middle state is loud and lossless.
- RK117 · 8e76b18Two adds started together mint the same id, and the gate reports it only once both lines exist
Every mutating command holds one exclusive lock for the whole span from scan to save, and the query surface never takes it.
- RK116 · c0ea373A second write to a governed file erases the first one's line and both commands exit 0
savere-reads the target and refuses a write onto a file that moved, and a transaction asks about every file it writes before writing any. - RK115 · 6d710ffWhere a heading's region ends is re-derived at every call site, under two rules that already differ
Document.subtree_endandDocument.prose_endare the two rules named once, and the four loops overheadingsthat spelled them are gone. - RK113 · c0cbb89renumber renames a section's heading and leaves the anchors of everything nested under it
renumber re-addresses the whole subtree:
§RK1.1moves to§RK9.1with its heading, a stranger nested inside keeps the id that owns it, and the command names every anchor it moved. - RK112 · 5fb1150section drop deletes a section an open line points at
section drop refuses when an open line points at the anchor it was given, before any write.
- RK109 · f521b8eThe id's shape is declared once and read by two parsers that answer differently
Schema.parse_idis the one parse the pattern and the ordering both derive from, andid_orderis the one sort key three callers used to spell by hand. - RK108 · 2a1fd7bThe first line added to a block lands above the paragraph that introduces it
An empty block's first task lands after the paragraph that introduces the block, not between the heading and that paragraph.
- RK106 · fab6677An id a live backlog spells the same way every time is refused as malformed
[ids] padand[ids] suffixdeclare the spelling, so Dumont's 9 findings and Turing's 4 go to 0 with no other finding moved — measured against both working trees. - RK102 · dab62bfA test over a live corpus fails when the other project ships the work it counted
The live-corpus assertions name what the file spells instead of a floor, so Shio's progress no longer turns this suite red.
- RK101 · 15bd0b8An outline anchored by block letter declares no section, and one by block C declares one
An outline anchor may begin with one uppercase letter and a dot, so a rationale numbered by its own block letters is read whole instead of at the headings the Latin alphabet happened to allow.
- RK100 · 8ef877dA project that runs roadkeep from a checkout has no write-path skill
installwrites the harness the plugin ships — server, guard, skill, CI job — translated from the plugin's own files, the launcher's path being the only substitution, and--checkgates the copy. - RK99 · 50911d6Nothing measures the rationale file an adopting project brings
adopt --sections measures the rationale file too, so the longest section and the width its prose is wrapped to come from the corpus instead of a throwaway script or this repository's numbers.
- RK98 · 3969993A table-shaped backlog reads as zero lines, which is what an empty file reads as
adopt counts the table rows filed under a block heading and names them, so a table-shaped backlog reports its rows as work instead of reading as the empty file it is not.
- RK94 · 8ef0710weight gives one commit's whole size to every task it shipped, so a bulk import pins the percentiles to itself
an entry whose commit wrote several is named under batched and left out of the percentiles, so a squashed import no longer pins the median that judges granularity to itself.
- RK92 · d2346f9The dep resolver has no answer for a dep blocked on paused work
a dep on a paused task now resolves as deferred and the line waiting on it as blocked-paused, so pick neither offers it nor buries it and the gate stops calling the id missing.
- RK84 · c969127lint cannot answer whether this change made it worse
lint --baseline REVruns the same gate over the files as they were at REV and fails on the difference alone, so a corpus with 586 standing problems gets an exit code about its own commit. - RK83 · 98b848cpick offers an idea when a designed task is ready
pick and brief now say when the line they chose still needs designing, and
--designedsets those aside, so a caller asking to execute a block is never handed a design session. - RK21 · 3403939A standard adopted by one project is a preference
Turing and Dumont each carry their own
roadkeep.tomland the measurement it produced, so four projects share one format; the fourth was measured and retired instead (RK77). - RK97 · 3f8b9a2an id two branches allocated to different work has no door that moves either line
renumber moves the line, its section and every dep naming it in one transaction, deriving a free id in the line's own family, so a merge that spent one id twice has a door that is not a departure.
- RK96 · fc24911There is no state for a task set aside but neither shipped nor abandoned
The schema reads a fifth marker in a fifth governed file, so a paused line keeps its id, deps, symptom and section where neither the roadmap nor the ledger could hold it.
- RK95 · 9543a20an id no commit ever carried is reported as history being unreadable
gapsanswers "never carried" where a complete history mentions the id nowhere, and keeps "unresolvable" for the checkout that cannot see far enough to say. - RK93 · 3930a04add exits 0 on a line whose derived pointer fails lint at once, and names no follow-up
add --section writes the rationale in the same transaction, and an add without one names the section add that answers its pointer, so the gate is no longer the first to mention it.
- RK91 · cdc492aPausing a task means retiring it, losing its id, rationale section and every dependent that named it
defer moves the line to the store keeping the id, the deps, the symptom and the section a departure deletes, and resume returns it under its block: a pause is a state, not a retirement.
- RK89 · 4f61395A capture survives the command that produced it and not the session that ran it
Every capture is written to
.roadkeep/reports/before it is printed, and the same run appends.roadkeep/to.gitignorewhen nothing already covers it. - RK78 · 59d87f7ship deletes the sections nested under the one it drops
A drop is bounded by ownership: the subtree still goes whole, and a nested section another open line points at refuses the whole transaction before a byte is written.
- RK90 · 69712d1A command declared to tolerate a broken config still crashed on a TOML syntax error
ConfigError never covered tomllib's own exception, so report died on the file it existed to carry as evidence.
- RK88 · 69712d1A field report cannot be told fixed from unfixed without restaging the reporter's project
report --json --embedwrites a capture that carries its own inputs, andreplaystages them in a scratch directory to answer whether the defect still reproduces. - RK87 · 52893c6A capture taken inside a private repository is a disclosure the moment it is filed
A capture prints and goes nowhere;
--without <part>deletes what a reviewer names, and--issueemits the body for aghcommand somebody else runs against the configured upstream. - RK86 · a4d988aA refusal names the rule it enforced and never what to do when the rule is the defect
Every non-zero exit, and any traceback, now closes with the
reportcommand that captures it, argv already substituted and the claim left to the caller. - RK85 · bf438ccA defect an agent hits in another repository is reported as prose, or is not reported at all
reportre-runs the failing command in this process and emits the argv, the exit code, the engine, the config and the offending line, with the claim refused against this backlog's own limits. - RK82 · 0ac7782Nothing announces the write path at the moment a session starts reading the files
A
SessionStarthook states which files this project governs and that reading them is a command, once, before the first grep can happen. - RK81 · 1aedfc0The MCP server is declared and no tool reaches the client
The plugin's declaration moved beside its manifest and the root
.mcp.jsonbecame this repository's own, approved in.claude/settings.jsonand proven to answertools/listover real stdio. - RK79 · ef6b774The plugin cache and the developer checkout are two engines, and both answer 0.1.0
--versionand the MCP handshake now name the directory the modules loaded from and the commit those files are at, so a plugin cache and a checkout are one line apart. - RK76 · c4004b5The estimate a project takes before adopting is not the one the gate applies
adopt reads its file through Config.schema_for like every other command, so --ledger names the changelog role and that role's own limits and rules reach the estimate.
- RK75 · b4ca08dA backlog that files work under any other word cannot declare its headings
The heading word is [headings] word in roadkeep.toml, read by the parser and the dep grammar from one place, so Dumont files under Track and its 34 entries stop reading as filed under nothing.
- RK74 · f97687bA backlog numbered by track cannot declare its ids
prefix takes a list, so a backlog numbered by track declares every family and each one counts on its own, add --prefix naming which track while the number stays derived.
- RK73 · d635390A non-goal could be written and never corrected, so a wrong lead was the Edit the hook denies
non-goal drop <lead>removes the bullet an address names, so correcting a lead is one constraint retired and one written, and lint's non-goal.duplicate has its repair. - RK72 · 43b0e85The non-goal against estimates names a schedule, not the field a size bucket would be
The list now names the field and argues the field instead of the schedule, so a P/M/L proposal is settled by a lookup rather than the analysis it cost.
- RK71 · 24a02ceA task that should be two looks exactly like one that should be one
weight [--block <x>]derives what comparable tasks cost from the commit that wrote each ledger entry — two axes, no score, no field on a line. - RK70 · 5ee6a76No command can write a non-goal, and the denial names five that cannot
A non-goal is written by its own door where
[non_goals]declares the list governed, addressed by its lead, so a binding constraint no longer needs thesedthe hook does not match. - RK69 · 6677b6aNon-goals are printed when a task starts, not when one is proposed
The list is now
non-goal list— beside the two write doors, over stdio, and in the guard's roadmap table — so it prints when work is *proposed* and not only when a task starts. - RK68 · bd8c60aThe brief prints a non-goal narrower than the file states
The lead is now the bold run at the start of a bullet or its first sentence, read from the bullet joined across its wrapped lines and cut to the project's own limit where the cut shows.
- RK67 · bb81307A ledger entry written twice cannot be removed, so the file states one decision twice
record drop <id> removes the later of two ledger entries for one id, refused unless the ledger states it twice, and record's write path is record add so the two doors are one grammar.
- RK66 · c7d47e0A project whose convention is no section means no pointer cannot declare it
ref is a per-role rule in [rules.<role>], so a project whose convention is no section means no pointer declares it and lint stops reporting a pointer nobody promised.
- RK65 · 8f6690eA line can be created and removed but never corrected, so every adoption defect needs a hand-edit
amend corrects an open line's why, deps or pointer — validated at input, symptom excluded — which is the door none of Shio's seventeen defects had.
- RK64 · 89d8adcShipping one of several tasks that share a section deletes the design the others still point at
A section another open line points at is kept and the reason is reported, so shipping one of Shio's four tenant tasks no longer deletes the design the other three point at.
- RK63 · cd773d2A heuristic read off this repository disabled the new check on the corpus it was written for
Ownership is the claim a heading makes by naming a task, with no exemption for where the section sits, and this repository's own preface stopped making it.
- RK62 · 2c81c76A roadmap line for work already in the ledger has no door out of the roadmap
ship closes a roadmap line whose id the ledger already records and whose marker the roadmap may not carry, leaving the entry untouched.
- RK61 · d323506Under the outline scheme no check can say which task a section belongs to
A section's owners are the anchor under the id scheme and the ids its heading names under an outline, so Shio's 39 stale sections and 9 orphans are visible.
- RK60 · 873a6e7A project that adopts the tool with drift already in it has its every turn blocked by history
The Stop gate keeps only findings on lines the working tree changed, so Shio's 278 fell to zero at the end of a turn that touched none of them.
- RK59 · 72e1abbFour tools cover four commands, so the eight a task actually needs still require a shell
Twelve tools cover the write path and the reads a task calls, nested commands included, so an installed plugin needs no shell for anything after init.
- RK58 · 20bb7c5A refusal names a command the machine may not have, now that the plugin needs no install
The refusal names mcp__roadkeep__add and ship before the shell form, so the route the same plugin certainly installed is the one it offers first.
- RK57 · cfe0597Installing the plugin is not enough: every surface it declares calls a console script the user has to install first
Both surfaces run python on the launcher at the plugin's own root, so /plugin install is the whole setup and no console script or PATH entry is needed.
- RK55 · f6cbfa9A MIME type, an i18n key and a list of method names are reported as missing files
A path claim is reported only when it has an extension and its directory exists, which takes Shio's 61 findings to the 1 naming a renamed file.
- RK54 · 9cb4419Deleting a section one line at a time validates half-deleted states nobody wrote
A span is deleted in one validated edit, so a section quoting a fenced example is never half-removed and re-parsed as a file nobody wrote.
- RK53 · 9cb4419An example line inside a fenced code block is read as a task and counted
The parser tracks the fence, so a quoted example is text: the section documenting this change is one the tool refused to write before it.
- RK52 · 46efe09A shipped line is told to move its second sentence to a section that was deleted on ship
The two prose rules are per role in [rules.<role>], read by lint and by the write path alike, so Shio's findings fall from 629 to 347.
- RK51 · b7391e8A link written relative to its own file is read as a path the repository lacks
A token now resolves against the file's own directory as well as the root, so Shio's file-relative ledger links fall from 886 findings to 61.
- RK50 · 4fc05f3One budget judges a roadmap line and a ledger of history nobody will rewrite
A limit is declared per role in [limits.<role>], so Shio's ledger keeps its own 4300 and its length findings fall from 600 to 134.
- RK49 · 9cb4419A follow-up nested under its parent line is invisible to every count and every pick
An indented task line parses and keeps its indentation verbatim, so Shio's four nested follow-ups are counted, picked and never handed out twice.
- RK48 · 74eb939A ledger whose lines carry no marker reads as prose, and every dep on one goes unknown
The ledger's shape is declared in [ledger] — marker and symptom, either absent — so Shio's 234 entries parse and its unknown deps fall from 96 to 5.
- RK26 · fa8e6ddA plugin installed by hand is a plugin one project has
publish a
marketplace.jsonso/plugin installreaches it. - RK25 · 1862886A human driving the same standard should not have to learn the CLI
/roadkeep:add,/roadkeep:ship,/roadkeep:pickand/roadkeep:lintover the one engine. - RK24 · 5ec860eShelling out puts argument names in prose, where they are guessed
expose
add/ship/pick/lintas MCP tools so the field schema *is* the tool's input schema. - RK23 · 24e6fcdRules resident every turn spend the budget they exist to protect
package the format as a skill with trigger phrases so it loads when a governed file is in play, and not before.
- RK47 · c70171cA lettered outline subsection is no anchor, so 20 of Turing's headings are sections nothing sees
the anchor's final segment may be one lowercase letter, measured and not guessed: it admits Turing's 20 lettered headings and nothing more, one of them 779 words the budget was not charging.
- RK46 · 004c501All 8 paths reported missing on Shio are globs, placeholders or files the task will create
A roadmap names unshipped work, so its paths are the ones not there yet: resolve the claim in the ledger only, never for a token carrying a glob, an ellipsis or a placeholder.
- RK45 · 00050d0A section belonging to no task lands after the last block, where it reads as that block's rationale
the place is derived from the anchor: the end of the subtree of the longest anchor the new one extends, and one extending nothing this file declares is refused rather than appended.
- RK44 · e597c6bUnder ref_scheme = outline a heading numbers itself, so 151 headings yield zero sections
the anchor is read per scheme, so an outline numbers its own headings and keeps the sigil on the pointer: Shio's 151 headings are 146 sections and its 72 pointers all resolve.
- RK43 · defe69dA changelog whose lines carry no status marker parses as zero entries and zero rejects
a bullet that leads with a bold id is now a reject naming the empty slot, and
markers.ledger = falsestates a ledger's marker once instead of on all 920 of its lines. - RK42 · 19aecc3The landing page claimed 9 of 36 tasks shipped through twenty-five ships
export --sitesplices the same projection into the page as HTML between the same two markers, so one call refreshes both restatements and a test fails when either drifts. - RK41 · 2b5d8c3A fix that was never planned has no door into the ledger
a fourth command writes the ledger entry alone, so a fix nobody planned is recorded without a fictitious roadmap line shipped in the same breath to carry it.
- RK40 · dcec385A block's own next task is not askable, so a global answer reads as that block being finished
every part of a scoped answer is about that block, so nothing open in Block C is the wording that means finished and a lower id elsewhere can no longer read as one.
- RK39 · ead75ddA README and a site restate a backlog they cannot re-read, so both are stale from the first ship
the restatement is derived: one marked README block and one JSON payload, idempotent and stamped with nothing, so a refresh with nothing to say makes no diff.
- RK38 · 67bd1f4A write reports an exit code and nothing about what it changed, so only a human can react to it
every mutator prints the id, the block and whether that block still holds an open line, which is the whole event a hook needs and the last thing the tool does about it.
- RK37 · 45845e8A dep on a block that does not exist resolves as satisfied
a block is declared by a heading and by nothing else, so a dep naming one no heading declares is unresolvable, never a block that happens to have nothing open.
- RK36 · af9f4caA rationale section can gain a requirement the line carrying its status never mentions
a section edited while the line carrying its status was not is reported from the diff at exit zero, so a requirement written only into the reasoning is seen before it leaves with it.
- RK35 · ab51d20A dep on a range or a block hides how much work it actually names
a dep on a block or a range is reported with the open tasks it expands to, at exit zero, so the abbreviation stops costing whoever counts deps to judge a line.
- RK34 · 8e43c1bAn invisible character reports a visible error about something else
an invisible codepoint is reported as its own name, class and column and nothing else on that line is judged, so the diagnosis stops naming the consequence.
- RK32 · 35a3707An id that exists in neither file was retired for a reason nobody recorded
a line now leaves by three recorded doors: retire writes the forward pointer at the moment of the decision, and gaps resolves the older holes against the commit that removed them.
- RK31 · c2d9b17The reasoning behind a shipped decision survives only in a commit nobody greps
the shipping commit is derived from the ledger's own diff, so the reasoning is one lookup away and no stored hash can rot when history is rewritten.
- RK30 · 1327282The instruction file loaded every turn has a budget nothing enforces
the budget of a file loaded every turn is a declared number in the configuration and an exit code in the gate, instead of a sentence inside the file it governs.
- RK29 · 6e89ad7Starting a task costs reading two whole files to learn one line's worth of context
one call composes the line, its rationale, its resolved deps, the blocker chain, what shipping it unblocks and the non-goals, bounded to fit a tool result.
- RK28 · 34d4284A dep the tool cannot resolve reads exactly like one that is merely pending
Block Pandreal design partnersare real deps on work outside the backlog, so a resolver has to name them unresolvable instead of counting them unfinished. - RK27 · e1463e5A pointer's target is numbered by hand, and deleting a section leaves a hole nobody renumbers
keying each rationale section by task id makes the pointer derivable from the line, so shipping costs no renumbering and resolving it costs no reading of the outline.
- RK22 · cf99c0aAn agent can hand-edit the file the CLI is supposed to own
A
PreToolUsehook deniesEdit/Writeon a governed file and answers with the command to call, and aStophook runslintso aBashbypass is caught before the turn ends. - RK20 · 49c7212Shio's 92 active lines average 142 words against a one-sentence rule
migrating a real backlog is the only test of whether the schema fits a live project.
- RK19 · 8d677beInstalling from a git clone keeps a standard local
publish to PyPI so
uvx roadkeepruns with no checkout. - RK18 · 43120d9A tool that requires an empty repo cannot be adopted by the repo that needs it
initscaffolds the files and config, andadoptreports what an existing backlog must change to pass. - RK17 · 2a957f0A gate that runs only on a developer's machine is not a gate
the same command is declared once as an action and once as a pre-commit hook, so the exit code is enforced where the commit happens and where the push lands.
- RK16 · e90c945A report of ninety-two violations is a report nobody acts on
the mechanical half is repaired from the parse and the editorial half is left, so the report that survives a first run on a real backlog is one somebody reads.
- RK15 · c95a3a6A pointer to a section that does not exist reads as a design that does
the pointer is resolved in both directions and the paths a line claims against disk, so a design that does not exist can no longer read as one that does.
- RK14 · 2b7d906A format that is documented but not enforced is a format that drifts
the gate is one command that re-reads every governed line through the schema that wrote it and exits 1 on any drift, so a hook and an Action share one contract and neither parses a report.
- RK13 · 69d0de8A blocked task looks identical to a ready one, and one that unblocks half the backlog to one that unblocks nothing
the walk is tested code instead of an ad-hoc traversal: it names the blocker chain, reports a cycle as a group, and counts how many tasks shipping this one unblocks.
- RK12 · 66fd7cfA task's design lives in a second file and nothing joins them
one call joins the line, its rationale section and the paths its text names, and an absent section carries the reason it is absent instead of reading as a design that exists.
- RK11 · e307938Picking work means reading the whole file to find one task whose deps are shipped
three tiers answer it and the answer names the one that fired: work already in progress, then the priority a project declares, then the lowest id whose deps all shipped.
- RK10 · 41e11bbCounting a backlog by grep silently drops the lines it fails to match
every count prints what it could not read beside what it did, so a broken line, a parked task and a marker this project never declared are visible instead of silently absent.
- RK9 · f02c059The four files are not four of the same thing, and prose has no line to validate
prose is governed by section instead: an anchor a pointer resolves, a budget in words, and a place derived from the block, with drop being the edit ship already calls.
- RK8 · c508e85A dep annotation goes stale the moment its target ships
the annotation is derived from the resolver on every write, so a shipped dep never reads as pending and a marker nobody typed is never invented.
- RK7 · 1b75ea2Two files can disagree about one task's status
the marker is written in the roadmap alone, and a sibling file carrying one for the same id is refused rather than reconciled because nothing says which of the two would be right.
- RK6 · 1d54c01Shipping a task is four edits across three files, so one is always missed
the three edits are one command that validates every one of them before a file is touched, and the roadmap line is removed rather than stubbed so status keeps one home.
- RK5 · de71ed7Writing the line by hand is where the prose leaks in
the fields are refused at input, so the limit is met before a sentence is composed to fill it and the file is only ever touched by a line that renders back to what was written.
- RK4 · 6b5872aThe next id cannot be inferred from a block header, and a wrong guess collides with a retired one
take the max across every configured file, in one command, with no counter file to drift.
- RK3 · 7068a10Hardcoding one project's vocabulary makes the tool single-use
roadmap.tomlcarries prefix, file paths, marker set and per-field limits, so Turing'sSTRATEGY.mdand Shio's absence of one are both configurations. - RK2 · a3fd7c2A parser that cannot re-render what it read corrupts the file it edits
parse → render → byte-identical is the invariant that lets a CLI own writes to a hand-written Markdown file.
- RK1 · 3a36fd0Nothing knows what a task line is, so every check is a regex over prose
a schema over the six fields (id, status, block, deps, symptom, why, ref) is the only thing that can refuse an over-length line at write time.
- RK1697roadkeep-gui is a second repository, so a CLI change reaches its CI only through a separate checkout of this one
roadkeep-gui lives in gui/ with its 402 commits and RG ids, and its suite runs from the root against this tree's own engine instead of a checkout of @main.