shelve
File one new entry on an existing shelf, correct or retire an entry by id, and create a shelf the owner just named. Refuses duplicate or oversized entries with a clear reason.
Instructions
Library lane: files one new entry on an existing shelf, or corrects or retires one by id - never the code lane. Use remember instead for code or how to work, never the owner's own life. On a replica this queues instead of writing ('queued for the main machine' is not an error). Refused, naming the shelves that exist, when none fits, unless new_shelf_named_by_owner repeats the owner's new name - then it is created (refused at the ceiling) and the entry filed on it in one call. Refused on a near-duplicate already there, pointing at it; refused past roughly 600 characters unless one_thing_because names the single thing the entry is. retire (id alone) removes it from the listing and search; library still shows it by number, refused without id, with a title/body/label change, or without retire_because. Replies 'filed ', 'revised ' or 'retired ', or the refusal text.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | CORRECT AN ENTRY THAT ALREADY EXISTS instead of filing a new one: its number, as the shelf listing shows it. The fields given replace what is there; the number stays, and the version replaced stays readable. Use this whenever a filed entry turns out wrong, badly worded or missing a label - a second entry saying the same thing better makes a shelf unreadable. Omit it to file something new. Required together with `retire`. | |
| body | No | The rest, at any length. Optional. See `title`'s own note on `retire`. | |
| shelf | Yes | An EXISTING shelf, or the one just named in `new_shelf_named_by_owner` on this same call. | |
| title | No | One line that stands on its own. This is the index. When correcting an entry (see `id`), leave it empty to keep the title it has. Leave it empty on a `retire` too - retire is refused together with a title, body or label change. | |
| labels | No | Optional labels for filtering inside a shelf. See `title`'s own note on `retire`. | |
| retire | No | Take this entry out of the shelf listing and out of search, without deleting it - `library` still returns it whole, marked retired, when asked for by its number. Works only together with `id`, and only alone: refused together with a title, body or label change (one thing per call), and refused without `id`. Requires `retire_because`. | |
| retire_because | No | Required together with `retire: true`: why this entry no longer belongs on the shelf, in a real sentence - the same requirement `retract` makes on the code lane, and for the same reason: without it nobody can tell a decision from an accident later. Ignored when retire is not set. | |
| one_thing_because | No | WHY THIS LONG BODY IS STILL ONE THING - required past the length where an entry is usually several things glued together, ignored below it. Name the single thing it is (e.g. "one pizza dough recipe") in a real sentence. Cannot name it in one? Then it is more than one thing - file separate entries on the same shelf with labels instead. Filler here does not get a pile past the question. | |
| new_shelf_named_by_owner | No | THE OWNER JUST NAMED A NEW SHELF - repeat that name here exactly as he gave it, and it is created (the shelf ceiling still applies) and this entry filed onto it in the same call. THE GAP THIS CLOSES: creating a shelf used to live only behind the `library` command-line binary's own `shelf-new` - an agent that asked and was answered still had no way to act on the answer, which was a dead end at a new user's very first recipe. Never fill this in on your own judgement or to get past a refusal - only after the owner himself named it. Must match `shelf` on this same call, or the write is refused. Meaningless together with `id`: correcting or retiring an entry never creates a shelf. |