docs: fix user-manual commands that fail or mislead as documented - #268
Open
sigilante wants to merge 2 commits into
Open
docs: fix user-manual commands that fail or mislead as documented#268sigilante wants to merge 2 commits into
sigilante wants to merge 2 commits into
Conversation
Every command below was run on a fake ship (v4.6 pill, [%zuse 409]) and the generator source read at urbit/docs.urbit.org@08026c84b2. Sample outputs are real captures, not reconstructions. +vats (dojo-tools.md): the documented argument surface did not exist. Source is `(list desk)` positional with `=filt` and `=verb` named (gen/vats.hoon:6-20). Verified: +vats, =show-blocking | -> dojo prints "keywords allowed [filt=@tas verb=?(%.y %.n)]", then fails +vats %suspended -> "desk does not yet exist: %suspended" (parsed as a DESK, not a filter) Removed the four phantom `=show-*` arguments; corrected `%nonexistent` to `%exists-not` and added the missing `%exists`; documented that the filter must be passed as `=filt`. The field list was also wrong. Default output is terse, not verbose, and prints `%cz hash ends in`, `essential desk` and `/desk/bill` -- none of which were documented -- while omitting `updates`, `base hash`, `force on/off` and `publishing ship`, all of which were. Split the list into terse and `=verb &` sections. `app status` has three values, not two: running / suspended / "suspended until next update" (sur/hood.hoon:203). All four examples replaced with real captured output. |bump (updates.md): `|bump, =force &` fails. gen/hood/bump.hoon takes no arguments at all; the dojo reports an empty keyword set (`%~`) then -find.force. Both occurrences corrected to plain `|bump`, which already does the suspend-and-upgrade. dojo-tools.md was already right. +vats "updates: tracking" (updates.md): `tracking` is never emitted. The field is `?~(sink 'local' 'remote')` (sur/hood.hoon:243), so the prose told readers to act on a string they cannot see. Both sample outputs replaced with real captures -- one `local`, one `remote` -- and the commands changed to `=verb &`, since the terse default omits `updates` entirely. |ota (get-on-urbit.md): a bare `|ota` matches neither branch of the arg mold `?([%disable ~] [her=@p sud=?(~ [@tas ~])])` and fails with bad-argument. Corrected to `|ota (sein:title our now our)`, matching updates.md. |reload / |breload (shell.md): both generators are gone; `|reload %eyre` fails with %generator-build-fail and no /gen/hood/reload exists. The `|breload` entry is deleted and the `|reload` example -- which existed to demonstrate the `|` hood-command syntax -- now uses `|mass`, verified working. |new-desk (dojo-tools.md): `=from` does NOT fill the desk with the source desk's contents. It only selects where a fixed five-file template is read from (gen/hood/clay/new-desk.hoon:30-60). Verified on a fresh ship: %base -> {app sur gen lib mar ted desk sys} |new-desk %testdesk, =from %base -> {mar sys}, mar holding exactly {hoon txt kelvin noun} Dropped the desk.bill warning, which was advice about a copy that never happens -- the created desk has no desk.bill at all. |nuke (dojo-tools.md): added the undocumented `=hard` flag, which skips the confirmation prompt on an irreversible state wipe. |suspend (dojo-tools.md): takes `(list desk)`, not a single desk; multiple desks suspend together. Confirmed the generator has no named arguments. |essential-desk (dojo-tools.md): new entry. Previously documented nowhere in the user manual despite `essential desk` appearing in every +vats print-out. Verified end to end: `|essential-desk %testdesk &` flips the field from no to yes. Kelvin figures in sample output are 409 because that is what the shipping pill reports; develop is at 408. Left as captured pending that decision. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Amends the sample output committed in the previous PR-9 commit. Those captures came from a fake ship booted on the v4.6 pill, which reports [%zuse 409]; that is the OLD kernel, since kelvin counts down. Recaptured on a ship booted from urbit-408k-rc1.pill, which reports [%zuse 408]. Nothing about the findings changed -- every command corrected in the previous commit behaves identically on 408. Only the printed kelvins and desk hashes in the examples differ. Updated in dojo-tools.md: the terse +vats sample (%base, %webterm), the `=verb &` sample, and the `=filt %suspended` sample. Updated in updates.md: both +vats print-outs, and the illustrative pending update `~[[%zuse 408]]` -> `~[[%zuse 407]]` so that it still names a kelvin newer than the one the desk reports. The remaining `[%zuse 409]` in each file is not stale: it is one entry in %webterm's list of supported kelvins, which legitimately spans 408 through 416. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This was referenced Aug 4, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Third of three PRs from an audit against
urbit/urbit@08026c84b2. This batch is dojo commands a reader would actually run. Every command below was run on a fake ship booted fromurbit-408k-rc1.pill([%zuse 408]), and every sample output is a real capture rather than a reconstruction.Companion PRs: mechanical corrections, and Hoon stdlib signatures.
+vats— the documented argument surface did not existSource is
(list desk)positional with=filtand=verbnamed (gen/vats.hoon:6-20). The dojo reports its own interface while rejecting the documented one:That second one matters: the filter is a named argument, so a bare
+vats %suspendedis parsed as a desk of that name. Removed the four phantom=show-*arguments, corrected%nonexistent→%exists-not, and added the missing%exists.The field list was also wrong in both directions. Default output is terse, not verbose, and prints three fields that were undocumented (
%cz hash ends in,essential desk,/desk/bill) while omitting four that were documented (updates,base hash,force on/off,publishing ship). Split into terse and=verb §ions.app statushas three values, not two —running,suspended, andsuspended until next update(sur/hood.hoon:203). All examples replaced with real captures.|bump, =force &failsgen/hood/bump.hoontakes no arguments at all; the dojo reports an empty keyword set (%~) then-find.force. Both occurrences inupdates.mdcorrected to plain|bump, which already does the suspend-and-upgrade.dojo-tools.mdwas already right, so the two pages had been contradicting each other.updates: trackingis never emittedThe field is
?~(sink 'local' 'remote')(sur/hood.hoon:243), so the surrounding prose told readers to act on a string they can never see. Both sample outputs replaced with real captures — onelocal, oneremote— and the commands changed to=verb &, since the terse default omitsupdatesentirely.Comet
|otaA bare
|otamatches neither branch of the arg mold?([%disable ~] [her=@p sud=?(~ [@tas ~])])and fails withbad-argument. Corrected to|ota (sein:title our now our), matching whatupdates.mdalready said.|reload/|breloadare goneBoth fail with
%generator-build-fail; no/gen/hood/reloadexists. The|breloadentry is deleted, and the|reloadexample — which existed only to demonstrate the|hood-command syntax — now uses|mass, verified working.|new-desk, =fromdoes not clone a deskIt only selects where a fixed five-file template is read from (
gen/hood/clay/new-desk.hoon:30-60). Verified on a fresh ship:with
marholding exactly{hoon txt kelvin noun}. Dropped thedesk.billwarning, which was advice about a copy that never happens — the created desk has nodesk.billat all.Smaller
|nuke— added the undocumented=hardflag, which skips the confirmation prompt on an irreversible state wipe.|suspend— takes(list desk), not a single desk; multiple desks suspend together.|essential-desk— new entry. Documented nowhere in the user manual despiteessential deskappearing in every+vatsprint-out. Verified end to end:|essential-desk %testdesk &flips the field fromnotoyes.🤖 Generated with Claude Code