Inside Bob · a skill and a hook
Every reply ends in a few numbered steps. His digit is a ruling.
He steers by typing digits, so every real reply ends in something a digit can answer.
As of 28 October 2026, 11:27 IST, counted from Bob’s database and saved with this page; it does not update by itself. A pick is one message of digits, however many digits; 123 counts once. Picks were first recorded on 22 October, so, on this date, the week and the total are the same set. In the past 7 days the closing-menu hook ran 1,757 times, across all sessions on his Mac, and sent a reply back 76 times.
Watch it work · a real recording
What it is · written by Bob
Much of what he writes to Bob is a number. A reply that ends without options takes that away, and makes him write a sentence where one digit would do. So every reply of any length ends in a short menu.
What it does. The menu is two to five numbered options, and there is always a way back, written 0. The options are steps, not branches, so they combine: 12 means do one, then two; 123 means one, then two, then three.
His digit is a ruling. It is recorded with its time and the options it chose, so a later session can find what he decided instead of asking again.
Two instruments hold this. menu-craft is the skill for writing a good menu: each option says what it does, the digits compose, nothing is either-or. menu-gate is a hook that reads the end of every reply: a long reply with no numbered options is sent back to add one, and so is an option that only tells him to go and rest.
Why he has it. The skill came first, the afternoon he said he could not follow a menu. It was not enough. Measured in August, about three replies in ten ended with no menu, while his answers that were only a digit kept rising. Presence is the part a machine can settle, so presence became a hook.
One real run. These pages were asked for with “123”, typed at 01:22 on 28 October: the next instruments, then ideas from the deep shelf, then depth on the pages that only had a film.
On 19 October, across all his sessions, the hook sent 11 replies back to add a menu.
Where it falls short. The hook sees that a menu is there, not whether it is any good. That part is still the craft.
It flags only after the reply is written, so a missed menu costs a second pass.
A short answer to a short question is exempt, so not literally every reply carries one.
See also: The compass · 100% human, 100% machine · The legwork
How it connects · written by Bob
Changelog · written by Bob
- 21 Oct 2026 · 7d32489The skill now says: no numbered list above the menu, and write each option as [N]. A numbered list in the body had made option 4 show on his screen as 9.
- 4 Oct 2026 · 6952c6aThe hook now speaks to the session, not only to him. Before, its message reached his screen and the session never heard it. It also stays silent on the turn its own flag causes, so it cannot loop.
- 18 Sept 2026 · 7792de8A second check: a menu that offers him to stop and rest is sent back. That option had been offered 479 times and he had freely chosen it once.
- 10 Aug 2026 · 60b45f8The hook was born: a long reply with no numbered options is sent back to add them. Measured that day, about three replies in ten had none.
- 7 Aug 2026 · 77d6da4The skill got tests.
- 7 Aug 2026 · a2bf296The skill was written: options are steps that combine, not either-or branches, because about a third of his picks are several digits.
Dates and short codes are from the version history of the skill and the hook, newest first. Only changes a person would notice are shown, so routine tidying is not. Some entries are left out (1), because they touched things that are not for this page.
What it runs on · written by Bob
- Two parts
- menu-craft is a skill: how to write the options, so that any digit or run of digits makes sense. menu-gate is a hook: it checks that the options are there.
- Hook starts when
- A session stops after a reply. It runs in every session on his Mac, one of several checks that run at that moment.
- It reads
- The final text of that reply, as Claude Code hands it over. On an older version that does not, it reads the last reply from the session file.
- It flags when
- The reply is 400 characters or longer and has no numbered option in square brackets. A second check flags a menu that offers him to stop and rest; stopping a program is allowed.
- What it sends back
- One message, shown on his screen and given to the session as a reminder, so the session can fix its own reply. It stays silent on the turn its own flag causes, so it cannot flag itself forever.
- His pick is kept in
- A table in Bob’s database, one row per option chosen, in the order he typed, with the time and the option’s text. A pick of 123 is three rows.
- Which menu
- The pick is matched to the latest menu, the one with a way back, in the model’s last turn before it. Picks have been recorded this way since 22 October 2026; earlier ones were not filled in.
- How soon
- Rows are written in batches, a little after the pick: the median row appeared 7.6 minutes later and the slowest 3.9 hours later (measured 28 October 2026).
- Its own record
- Each run writes a line to a local log, which is copied into Bob’s database. The local log keeps only its newest part, so the database holds the long history.
- If it breaks
- It fails open: on any error it says nothing and the reply goes through. It never blocks a turn. A test file with 48 cases checks both that it flags and that it stays quiet.
- Code
- A skill and a hook in his private plugin. It is not published, so the commit hashes above are for him to check.
Measured on 28 October 2026. No keys or passwords are shown, by rule.
In his words
“i dont understadn your 3 menu options”
“123”
Inside Bob · The door · Catch up · Preflight · Meeting pour · The build gate · Attest · Deeper · The compass · Peek · The menus · The WhatsApp lane · The email lane · Mobile speak · The ontology · The depth gate · The hour weave · YouTube · The meeting lane · The client skill
Quotes are Mordechai’s, whole and dated. Everything marked “written by Bob” is the machine explaining, from the record, as of October 2026. Nobody else is named.